Vulnhub打靶记录:narak

相关信息


kali:1.0.0.201/24

靶机:1.0.0.205/24

靶机介绍:HA: Narak ~ VulnHubvmware运行)

靶机下载:https://download.vulnhub.com/ha/narak.ova

目标:2flag + root权限

难度:中

Narak是梵语词汇,通常被用来描述印度教和佛教中的地狱。

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

文字思路


全流程思路:

  • 主机发现 端口扫描
  • 信息搜集:网页中的电话,邮箱,单次有时候也是搜集的对象
  • 密码字典定制:这一步并不常用,但是非常重要
  • 密码爆破
  • webdav漏洞:新工具的使用
  • PUT方法上传 BF语言解码 MOTD注入 CVE-2021-3493提权

下意识的操作

  1. 密码复用
  2. 特征字典的生成和使用

主要的知识点

  • 在渗透过程中定制化社工字典非常重要,比如网页上的电话号码,邮箱号等等都要进行搜集。后期利用社工工具
  • 文件查找命令 find的灵活使用
  • linux中文件路径到的熟悉程度

具体流程


信息搜集

  1. 发现主机,端口扫描,服务确认。该靶机只开放了 22,80端口,基本确认打靶思路就是通过80获取密码登陆ssh亦或者直接通过web突破边界

    Snipaste_2023-07-29_11-38-47

  2. 访问web为大量的图片,都是描绘印度地狱的场景。图片,源码中都没有太多的提示信息。

    Snipaste_2023-07-29_11-50-56

  3. 进行路径爬取就现的非常关键了:dirsearch -u http://1.0.0.205,默认字典成功爬取出webdav目录,但是无法成功的访问,需要身份认证,尝试进行401绕过和密码字典爆破也无法成功。 什么是webdav

    Snipaste_2023-07-29_11-53-09

    /webdav目录需要身份认证

    Snipaste_2023-07-29_11-53-44

    更换web目录的爬取字典,同时附加爬取文件的种类,发现 note.txt这个提示文件:提示我们存在一个creds.txt。但是无论的在每个url中添加creds.txt这个文件还尝试401绕过的方式读取这个文件都是无法成功的。(creds.txt这个文件名在后续的打靶中也没有用处)

    dirsearch -u http://1.0.0.205 -f -e html,txt,php -w /usr/share/wordlists/dirb/common.txt 
    

    Snipaste_2023-07-29_11-56-27

    Snipaste_2023-07-29_11-57-33

突破边界

  1. 常规提供的密码字典无法完成对靶机的401密码爆破,所以使用cewl工具生成的针对该网页特征的字典进行爆破尝试。

    Snipaste_2023-07-29_12-03-32

  2. cewl生成的特征密码字典并不是特别大,所以定义hydra爆破时使用的用户和密码都是这个生成字典。成功的爆破出:yamdoot : Swarg这个用户密码。

    Snipaste_2023-07-29_12-05-02

  3. 通过破解出来的密码进行登陆发现webdav就是个空文件的网站,没有什么重要的信息。Snipaste_2023-07-29_12-06-55

  4. 由于靶机是使用 webdav框架,这里使用davtest专门针对webdav漏洞的工具来进行探测。

    davtest工具的介绍

    • 使用方法也很简单,如下:

      Snipaste_2023-07-29_12-15-38

    • 先进行全部漏洞的测试,不难发现可以在靶机的webdav中创建目录,执行文件(php文件是可以执行的),上载文件这些操作。

      Snipaste_2023-07-29_12-10-46

  5. 上载kali自带的PHP反弹shell脚本(简单的修改端口和ip即可),然后使用davtest进行文件上载,并将上载的文件命名为rev.php

    Snipaste_2023-07-29_12-16-01

    可以发现webdav页面多出存在一个文件夹(davtest测试文件夹生成时产生的),一个rev.php(上传的反弹shell)文件。

    Snipaste_2023-07-29_12-16-25

  6. 点击上载的rev.php文件就可以成功的反弹shell,突破边界。进行简单的shell升级和信息收集。(重点关注这个靶机发行,内核的版本

    Snipaste_2023-07-29_12-18-21

信息搜集

  1. www用户使用sudo命令是需要密码的,同时系统版本为4.15的内核版本。查看家目录发现 narak,yamdoot这两个用户,尝试使用暴力破解获取的yamdoot : Swarg进行用户跳转发现都失败了。

    Snipaste_2023-07-29_12-21-02

  2. 进行相关文件的查找:root的用户可执行,其他用户可写的文件。最终结果如下,重点关注hell.sh这个文件。

    find / -type f -user root -perm -ug=x,o=w -exec ls -l '{}' \; 2>/dev/null
    # -perm -ug=x,o=w:用户组具有可执行权限,其他用户具有写权限
    

    Snipaste_2023-07-29_12-24-23

  3. 可以发现这就是个脚本文件,重点是其中的一大串特殊字符的语言,这是brainfuck编程语言的代码。

    brainfuck语言简介

    Snipaste_2023-07-29_12-27-14

    在https://tio.run网站上可以找到能够运行Brainfuck语言的网页,运行后是:chitragupt这个字符串。

    Snipaste_2023-07-29_12-29-24

  4. 尝试将获得的字符串当做密码进行ssh登陆,结果以inferno的身份成功登陆获取第一个flag。但这个用户无法使用sudo命令。

    Snipaste_2023-07-29_12-35-08

进行提权

  1. 通过上面步骤中的uname -a命令可以发现该靶机适用 CVE-2021-3493针对ubuntu的提权漏洞。

    Snipaste_2023-07-29_12-54-03

    • 先在靶机上下载符合靶机要求的链接库:

      wget http://launchpadlibrarian.net/172657656/libc6_2.19-0ubuntu6_amd64.deb
      
    • 解压获取的链接库的打包文件:dpkg -x xxx xxx

    • 编译 CVE-2021-3493漏洞的exp.c(利用脚本可在网上获取)。

    • 利用scp命令上载编译好的exp

  2. 赋予exp可执行权限,然后执行即可完成打靶获取root权限查看第二个flagSnipaste_2023-07-29_12-53-13

相关工具/命令


命令

chpasswd

  1. what? 返回

    chpasswd命令用于批量更改用户密码,通常与输入重定向结合使用。它允许您一次性更改多个用户的密码,从而在脚本或批量操作中非常有用。与passwd不同,chpasswd命令不会提示用户输入密码,而是从输入中读取密码。

    ​ 通常,使用chpasswd命令用在脚本中居多,会将用户名和密码作为输入传递给命令,格式为用户名:密码: echo -n 'cchl:1234' | chpasswd

工具

各种语言的在线运行

https://tio.run

davtest

  1. what? 返回

    davtestKali Linux 中的一个工具,用于评估 WebDAV(Web Distributed Authoring and Versioning) 服务器的安全性。WebDAV是一种允许用户通过HTTP协议来进行文件管理和编辑的协议,通常用于在远程服务器上共享和编辑文件。然而,不正确地配置或者不安全的WebDAV服务器可能会导致信息泄露和其他安全问题。

复盘/相关知识


复盘

第二种提权思路:MOTD修改

  1. 还是如下的查找文件的命令,重点关注 00-headeer文件。/etc/update-motd.d 是一个文件夹,用于存放用于更新系统欢迎消息(Message of the Day,简称 MOTD)的脚本文件。在许多 Linux 系统中,当用户登录到系统时,系统会显示一条包含系统信息、通知、警告等的欢迎消息。由于给文件是root用户身份运行,而我们又可以修改,所以漏洞在此产生。

    find / -type f -user root -perm -ug=x,o=w -exec ls -l '{}' \; 2>/dev/null
    

    Snipaste_2023-07-29_12-59-27

  2. 为了实现直接修改root密码的修改,就不使用passwd命令(需要交互)。直接使用在脚本中常用更改密码的命令chpasswd,来更改root密码为1234chpasswd命令介绍

    Snipaste_2023-07-29_13-04-56

    Snipaste_2023-07-29_13-04-21

  3. 然后重新登陆inferno用户,触发MOTD脚本完成root用户密码修改,然后成功的suroot用户,完成打靶。Snipaste_2023-07-29_13-05-55

重要

brainfuck

  1. what? 返回

    ​ Brainfuck 是一种极简主义的编程语言,它于1993年由Urban Müller创建。这种编程语言以其极端的简洁性和奇特的语法而闻名,它只有八种基本操作符,却能够进行图灵完备的计算。Brainfuck 的设计初衷是用来挑战程序员,测试他们的创造力和编程能力。

    ​ 由于 Brainfuck 的操作符非常有限,编写和理解 Brainfuck 程序可能会非常困难。但是,正是由于这种极简主义的设计,Brainfuck 在某些情况下能够产生非常紧凑且高效的代码。它通常用于编写小型程序、编程挑战、以及娱乐目的

webdav

  1. what? 返回

    WebDAV(Web Distributed Authoring and Versioning)是一种用于在互联网上进行文件共享和协作的协议和技术。它扩展了HTTP协议,使其能够支持文件的创建、编辑、移动和删除,以及版本控制等功能。WebDAV最初是由IETF(Internet Engineering Task Force)开发的标准,旨在为用户提供一种能够像操作本地文件系统一样操作远程文件的方法。

.d后缀

​ 在 Linux 文件系统中,.d 后缀通常用来表示一个目录,该目录包含一组相关的配置文件或脚本文件。这种模式通常用于组织和管理系统配置。

/etc/update-motd.d

/etc/update-motd.d 是一个文件夹,用于存放用于更新系统欢迎消息(Message of the Day,简称 MOTD)的脚本文件。在许多 Linux 系统中,当用户登录到系统时,系统会显示一条包含系统信息、通知、警告等的欢迎消息。

posted @ 2023-08-09 17:18  C_CHL  阅读(86)  评论(0编辑  收藏  举报