Vulnhub打靶记录:narak
相关信息
kali:1.0.0.201/24
靶机:1.0.0.205/24
靶机介绍:HA: Narak ~ VulnHub(vmware
运行)
靶机下载:https://download.vulnhub.com/ha/narak.ova
目标:2
个 flag
+ root
权限
难度:中
Narak
是梵语词汇,通常被用来描述印度教和佛教中的地狱。
未提及的相关知识点,命令和代码等等可以查看我其他三个blog:
-
渗透相关知识补充 - CC-HL - 博客园 (cnblogs.com)
当然我也只是记录了我认为有必要的。
文字思路
全流程思路:
- 主机发现 端口扫描
- 信息搜集:网页中的电话,邮箱,单次有时候也是搜集的对象
- 密码字典定制:这一步并不常用,但是非常重要
- 密码爆破
- webdav漏洞:新工具的使用
- PUT方法上传 BF语言解码 MOTD注入 CVE-2021-3493提权
下意识的操作
- 密码复用
- 特征字典的生成和使用
主要的知识点
- 在渗透过程中定制化社工字典非常重要,比如网页上的电话号码,邮箱号等等都要进行搜集。后期利用社工工具
- 文件查找命令
find
的灵活使用 - 对
linux
中文件路径到的熟悉程度
具体流程
信息搜集
-
发现主机,端口扫描,服务确认。该靶机只开放了
22,80
端口,基本确认打靶思路就是通过80
获取密码登陆ssh
亦或者直接通过web
突破边界 -
访问
web
为大量的图片,都是描绘印度地狱的场景。图片,源码中都没有太多的提示信息。 -
进行路径爬取就现的非常关键了:
dirsearch -u http://1.0.0.205
,默认字典成功爬取出webdav
目录,但是无法成功的访问,需要身份认证,尝试进行401
绕过和密码字典爆破也无法成功。 什么是webdav/webdav
目录需要身份认证更换
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
突破边界
-
常规提供的密码字典无法完成对靶机的
401
密码爆破,所以使用cewl
工具生成的针对该网页特征的字典进行爆破尝试。 -
cewl
生成的特征密码字典并不是特别大,所以定义hydra
爆破时使用的用户和密码都是这个生成字典。成功的爆破出:yamdoot : Swarg
这个用户密码。 -
通过破解出来的密码进行登陆发现
webdav
就是个空文件的网站,没有什么重要的信息。 -
由于靶机是使用
webdav
框架,这里使用davtest
专门针对webdav
漏洞的工具来进行探测。-
使用方法也很简单,如下:
-
先进行全部漏洞的测试,不难发现可以在靶机的
webdav
中创建目录,执行文件(php文件是可以执行的),上载文件这些操作。
-
-
上载
kali
自带的PHP
反弹shell
脚本(简单的修改端口和ip即可),然后使用davtest
进行文件上载,并将上载的文件命名为rev.php
。可以发现
webdav
页面多出存在一个文件夹(davtest测试文件夹生成时产生的),一个rev.php
(上传的反弹shell)文件。 -
点击上载的
rev.php
文件就可以成功的反弹shell
,突破边界。进行简单的shell
升级和信息收集。(重点关注这个靶机发行,内核的版本)
信息搜集
-
www
用户使用sudo
命令是需要密码的,同时系统版本为4.15的内核版本。查看家目录发现narak,yamdoot
这两个用户,尝试使用暴力破解获取的yamdoot : Swarg
进行用户跳转发现都失败了。 -
进行相关文件的查找:
root
的用户可执行,其他用户可写的文件。最终结果如下,重点关注hell.sh
这个文件。find / -type f -user root -perm -ug=x,o=w -exec ls -l '{}' \; 2>/dev/null # -perm -ug=x,o=w:用户组具有可执行权限,其他用户具有写权限
-
可以发现这就是个脚本文件,重点是其中的一大串特殊字符的语言,这是
brainfuck
编程语言的代码。在https://tio.run网站上可以找到能够运行
Brainfuck
语言的网页,运行后是:chitragupt
这个字符串。 -
尝试将获得的字符串当做密码进行
ssh
登陆,结果以inferno
的身份成功登陆获取第一个flag
。但这个用户无法使用sudo
命令。
进行提权
-
通过上面步骤中的
uname -a
命令可以发现该靶机适用CVE-2021-3493
针对ubuntu
的提权漏洞。-
先在靶机上下载符合靶机要求的链接库:
wget http://launchpadlibrarian.net/172657656/libc6_2.19-0ubuntu6_amd64.deb
-
解压获取的链接库的打包文件:
dpkg -x xxx xxx
-
编译
CVE-2021-3493
漏洞的exp.c
(利用脚本可在网上获取)。 -
利用
scp
命令上载编译好的exp
-
-
赋予
exp
可执行权限,然后执行即可完成打靶获取root
权限查看第二个flag
。
相关工具/命令
命令
chpasswd
-
what? 返回
chpasswd
命令用于批量更改用户密码,通常与输入重定向结合使用。它允许您一次性更改多个用户的密码,从而在脚本或批量操作中非常有用。与passwd
不同,chpasswd
命令不会提示用户输入密码,而是从输入中读取密码。 通常,使用
chpasswd
命令用在脚本中居多,会将用户名和密码作为输入传递给命令,格式为用户名:密码:echo -n 'cchl:1234' | chpasswd
工具
各种语言的在线运行
davtest
-
what? 返回
davtest
是Kali Linux
中的一个工具,用于评估WebDAV
(Web Distributed Authoring and Versioning) 服务器的安全性。WebDAV
是一种允许用户通过HTTP
协议来进行文件管理和编辑的协议,通常用于在远程服务器上共享和编辑文件。然而,不正确地配置或者不安全的WebDAV
服务器可能会导致信息泄露和其他安全问题。
复盘/相关知识
复盘
第二种提权思路:MOTD修改
-
还是如下的查找文件的命令,重点关注
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
-
为了实现直接修改
root
密码的修改,就不使用passwd
命令(需要交互)。直接使用在脚本中常用更改密码的命令chpasswd
,来更改root
密码为1234
。chpasswd命令介绍 -
然后重新登陆
inferno
用户,触发MOTD
脚本完成root
用户密码修改,然后成功的su
为root
用户,完成打靶。
重要
brainfuck
-
what? 返回
Brainfuck 是一种极简主义的编程语言,它于1993年由Urban Müller创建。这种编程语言以其极端的简洁性和奇特的语法而闻名,它只有八种基本操作符,却能够进行图灵完备的计算。Brainfuck 的设计初衷是用来挑战程序员,测试他们的创造力和编程能力。
由于 Brainfuck 的操作符非常有限,编写和理解 Brainfuck 程序可能会非常困难。但是,正是由于这种极简主义的设计,Brainfuck 在某些情况下能够产生非常紧凑且高效的代码。它通常用于编写小型程序、编程挑战、以及娱乐目的
webdav
-
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 系统中,当用户登录到系统时,系统会显示一条包含系统信息、通知、警告等的欢迎消息。