准备:

攻击机:虚拟机kali、本机win10。

靶机:DarkHole: 1,下载地址:https://download.vulnhub.com/darkhole/DarkHole.zip,下载后直接vm打开即可。

知识点:文件上传、环境变量替换命令提权。

信息收集:

通过nmap扫描下网段内的存活主机地址,确定下靶机的地址:nmap -sn 192.168.1.0/24,获得靶机地址:192.168.1.40

扫描下端口对应的服务:nmap -T4 -sV -p- -A 192.168.1.40,显示开放了22、80端口,开启了ssh、http服务。

目录扫描:

使用dirmap进行目录扫描,发现register.php、login.php等页面。

web测试:

访问web服务进行源代码审查,发现login.php页面,使用登录页面进行使用默认账户admin/admin进行登录,显示登陆失败。

在register.php页面进行注册,在注册admin账户时显示已经存在该账户,那就换一个账户:123/123进行注册并登录,登陆后显示只有一个更新的功能。

看到只有修改密码的功能和刚才注册时账户:admin已经存在的提示,想到使用bp抓取修改密码数据包并修改其中关于身份标识的身份,成功修改admin账户密码:admin。

文件上传获取shell:

使用账户和密码:admin/admin登录web页面,发现存在一处文件上传功能。

在这个网站:https://www.revshells.com/生成php反弹shell的脚本(使用PHP PentestMonkey),但是在上传的时候限制只允许:jpg,png,gif,检查源代码信息,显示并不是在前端做的验证,该限制是在服务端代码做的限制。

尝试修改php代码文件后缀,如:php3、php4、php5、phtml等,测试phtml时上传成功并可以访问获取反弹的shell(其他存在上传,但是无法执行),并获得上传后的目录信息:upload/shell.php4。

在kali端开启对6688端口的监听,然后在web端访问我们上传的后门文件,成功获取到shell权限。

提权-john:

在/home/john目录下发现一个当前用户具有可执行权限的可执行文件:toto,执行该文件返回了john用户的id命令的执行结果。

那我们就自己写一个id命令然后导入环境变量,让其引用我们的id命令即可执行我们写入的代码。cve-2021-4034是为了测试polkit的一个漏洞,这里测试未成功。

echo '/bin/bash' > /tmp/id
chmod +x /tmp/id
export PATH=/tmp:$PATH

返回/root/john目录执行toto文件,成功获得john账户权限,并读取目录下的user.txt文件,成功获取到flag。

提权-root:

读取/home/password文件发现密码:root123,查看下当前账户是否存在可以使用的特权命令,sudo -l,显示存在:/usr/bin/python3 /home/john/file.py。

观察file.py文件,发现john账户具有读写和执行权限,那我们写入shell脚本:echo 'import os;os.system("/bin/bash")' > file.py。

然后使用python3去执行该脚本,命令:sudo python3 /home/john/file.py,成功获得root权限。

在/root目录下发现root.txt文件,读取该文件成功获取到root权限。

vulnhub靶场之DARKHOLE: 1的更多相关文章

  1. Vulnhub靶场题解

    Vulnhub简介 Vulnhub是一个提供各种漏洞环境的靶场平台,供安全爱好者学习渗透使用,大部分环境是做好的虚拟机镜像文件,镜像预先设计了多种漏洞,需要使用VMware或者VirtualBox运行 ...

  2. VulnHub靶场学习_HA: ARMOUR

    HA: ARMOUR Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-armour,370/ 背景: Klaw从“复仇者联盟”超级秘密基地偷走了一些盔甲 ...

  3. VulnHub靶场学习_HA: InfinityStones

    HA-InfinityStones Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-infinity-stones,366/ 背景: 灭霸认为,如果他杀 ...

  4. VulnHub靶场学习_HA: Avengers Arsenal

    HA: Avengers Arsenal Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-avengers-arsenal,369/ 背景: 复仇者联盟 ...

  5. VulnHub靶场学习_HA: Chanakya

    HA-Chanakya Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-chanakya,395/ 背景: 摧毁王国的策划者又回来了,这次他创造了一个难 ...

  6. VulnHub靶场学习_HA: Pandavas

    HA: Pandavas Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-pandavas,487/ 背景: Pandavas are the warr ...

  7. VulnHub靶场学习_HA: Natraj

    HA: Natraj Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-natraj,489/ 背景: Nataraj is a dancing avat ...

  8. VulnHub靶场学习_HA: Chakravyuh

    HA: Chakravyuh Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-chakravyuh,388/ 背景: Close your eyes a ...

  9. VulnHub靶场学习_HA:Forensics

    HA:Forensics Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-forensics,570/ 背景: HA: Forensics is an ...

  10. Vulnhub靶场——DC-1

    记一次Vulnhub靶场练习记录 靶机DC-1下载地址: 官方地址 https://download.vulnhub.com/dc/DC-1.zip 该靶场共有5个flag,下面我们一个一个寻找 打开 ...

随机推荐

  1. (三)JPA - EntityManager的使用

    (二)JPA 连接工厂.主键生成策略.DDL自动更新 建议在需要使用时,看看之前的文章,先把环境搭起来. 4.EntityManager EntityManager 是完成持久化操作的核心对象. En ...

  2. 前端三件套 HTML+CSS+JS基础知识内容笔记

    HTML基础 目录 HTML基础 HTML5标签 doctype 标签 html标签 head标签 meta标签 title标签 body标签 文本和超链接标签 标题标签 段落标签 换行标签 水平标签 ...

  3. Apollo 中配置String、Map和List和默认值

    摘要:在Apollo 中,配置String.Map和List等类型的信息,同时设置默认值. 综述   随着业务需求的变更,需要在Apollo中配置一个Map<String, List>类型 ...

  4. KTV和泛型(3)

    泛型除了KTV,还有一个让人比较疑惑的玩意,而且它就是用来表达疑惑的:? 虽然通过泛型已经达到我们想要的效果了,例如: List<String> list = new ArrayList& ...

  5. 10.MongoDB系列之副本集组成

    1. 同步 复制是指多台服务器保持相同的数据副本.MongoDB通过保存操作日志(oplog)实现复制功能. oplog存在于主节点local数据库中的一个固定集合,包含了主节点执行的每一次写操作. ...

  6. 商品期货通用模型JF1

    更多精彩内容,欢迎关注公众号:数量技术宅,也可添加技术宅个人微信号:sljsz01,与我交流. 行情不确定性加剧 回顾2022年上半年的期货市场行情,在一个个宏观事件的不断冲击下,期货市场的不确定性加 ...

  7. etcd实现分布式锁

    转载自:etcd实现分布式锁 当并发的访问共享资源的时候,如果没有加锁的话,无法保证共享资源安全性和正确性.这个时候就需要用到锁 1.需要具备的特性 需要保证互斥访问(分布式环境需要保证不同节点.不同 ...

  8. 硬核剖析ThreadLocal源码,面试官看了直呼内行

    工作面试中经常遇到ThreadLocal,但是很多同学并不了解ThreadLocal实现原理,到底为什么会发生内存泄漏也是一知半解?今天一灯带你深入剖析ThreadLocal源码,总结ThreadLo ...

  9. LcdTools如何通过PX01把EDP屏的EDID拷贝出来

    PX01点EDP屏在上电过程会自动读取屏EDID,怎么把EDP EDID值拷贝出来呢? 在上电时序函数调用SetEdidRdShowEn(ON)指令开启EDID值读取显示功能.如下图 通过上述操作开机 ...

  10. Java多线程(5):CAS

    您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来- 在JDK1.5之前,Java的多线程都是靠synchronized来保证同步的,这会引起很多性能问题,例如死锁.但随着Java的不断完善,JNI ...