实验前知识点概括
模块
模块目录
/usr/share/metasploit-framework/modules
- exploit 渗透攻击模块 精确针对某个漏洞
- payload 攻击载荷 如meterpreter,被运输过去的东西
- encoder 编码器 避免“坏字符”
- ...
操作简则
粗略搜索
- help 查看指令用法
- grep
- show [exploits|auxiliary|post|payloads|encoders|nops] [options] [target] 列出相关信息
- search 任意字符串,在所有模块中查找包含该字符串的模块名
精确搜索
- info 模块路径/模块名 查看模块信息
使用模块
- use 使用该模块
- show options 查看模块参数设置情况
- check
- set 设置参数
- run 运行
实验
实验1 - 直接攻击系统开启的漏洞服务,获取系统控制权
1.选择要使用的模块
- 在这里我选择的模块是ms08_067
- 首先我们需要查询一下有关ms08_067所在模块的相关信息
search ms08_067
- 【1】(注释)
- 可以发现,这是一个利用服务器服务进行攻击的漏洞,其路径为
exploit/windows/smb/ms08_067_netapi
- 根据路径提示使用ms08_067模块
use exploit/windows/smb/ms08_067_netapi
- 【2】
2.查看模块可攻击的操作系统
show target
- 【5】
- 我选择的是0:自动选择
set target 0
3.选择payload(攻击载荷)
- 查看payload选项
show payloads
- 【3】
- 我选择的是windows/exec
- 【4】
- 根据解释“Windows Execute Command”猜测,该载荷是利用windows执行漏洞进行攻击
- 使用SET命令设置payload为windows/exec
- 【6】
4.设置相关参数
- 因为中文版靶机IP地址与kali的不在一个网段(跟NAT与否无关,估计是虚拟机平台在不同电脑环境下的问题),所以尝试用英文版靶机做
(靶机IP:192.168.1.182 kali的IP:192.168.1.183) - 查看需要设置什么参数
- 【7】
- 其中我们需要设置的有RHOST(攻击IP(靶机IP))、CMD(待执行的命令串)和EXITFUNC(设置为seh的模式)
- 【8】
5.exploit尝试
- 【】
- 显示端口未打开
- 在XP中使用“netstat -an”命令查看已开放端口,选择开放端口为目标端口
- 【】
- 再次exploit
- 【】
- 失败,SMB服务器拒绝服务
- 尝试在XP服务器开启SMB服务(秘籍1),exploit仍失败,提示语相同
- 将payload换成generic/shell_bind_tcp,结果相同
换端口号为445后成功,猜测SMB服务拒绝与端口有关,但原payload设置端口为445不好使(问题在上面有提及),问题暂时搁置
- 理想效果图如下(如果exploit成功的话):
【】
6.换payload为generic/shell_recerse_tcp继续尝试
环境换成我的另一台电脑,靶机成功换成英文版的(这次IP地址相同了)
- 168.88.147 靶机
- 168.88.130 kali
- 【1】
- 攻击成功
- 用同样的方式做payload为generic/shell_bind_tcp,攻击也成功了
- 【2】【3】
- payload换成windows/exec,攻击失败,提示与之前不同,
- 【4】【5】【6】
- 说明与靶机有关,例如漏洞补上
- 附成功案例【(地址)】
小结
要选择好条件符合的靶机
实验2-针对浏览器的攻击,如ms11_050
- 靶机:192.168.88.148(中文版)
- kali:192.168.88.130
- 过程如实验1,不同的是使用模块为ms11_050,payload为 ,过程如下图
- 【7到9】
- 换成ms10_002
- 尝试1:用ms10_002_ie_object
- 【10 12】攻击失败
- 尝试2:用ms10_002_aurora(方法同尝试1)
- 【13】攻击失败
针对客户端的攻击,如Adobe
如图
- 【】
成功应用任何一个辅助模块
- 【】