一、测试环境
1、系统环境
渗透机:kali(192.168.245.134)
渗透机: 本机(192.168.245.1)
靶 机:narak (192.168.245.173)
2、使用工具/软件:
Chrome(浏览器):访问网站
vi/nano:进行文本编辑
namp:发现主机、扫描端口
gobuster(dirb、dirsearch):目录扫描
ssh:用于进行ssh远程登录连接
cewl :用于字典生成
hydra:用于爆破注入
cadaver:用于与WebDAV服务器交互
- 测试目的
对narak靶场进行的主机渗透并且提权操作
二、操作过程
①、主机发现
- nmap扫描存活主机
nmap -sP 192.168.245.0/24
②、端口发现
- 扫到主机192.168.245.148,扫描主机漏洞
nmap --script=vuln 192.168.245.173
此时我们直接在浏览器中访问该服务器网址,看到如下图所示界面:
③、目录扫描(获取Web根目录中其它目录)
这里我们使用目录扫描工具:gobuster(Kali中如果没有安装的话大家可以使用:#apt install gobuster自行安装),也可以使用其它目录扫描工具(比如dirb、dirsearch、feroxbuster[一款使用Rust编写的内容发现工具].....)进行扫描。
具体命令如下:
#gobuster dir -u http://192.168.245.173 -w /usr/share/wordlists/dirb/big.txt -x txt,htm,html,php,php3,php5,jpg
对上面命令简单说明:
dir:表示扫描模式为“目录扫描”
-u:表示扫描主机地址
-w:使用字典(使用Kali自带字典)
-x:指定文件类型
当然大家也可以指定:-t选项配置搜索线程、-d选项配置搜索目录层数
扫描结果如下图所示:
这里我们发现了一个images目录,index.html页面,tips.txt文本文件。访问该文件发现其中记录了一个字符串:Hint to open the door of narak can be found in creds.txt.
,意思为打开纳拉克之门的提示可以在 creds.txt 中找到,暂时记住。
接着访问images目录,如下图所示:
访问该文件夹没有什么内容,只是index中的图片所在,但是揭露了所用web服务器为apache/2.4.29和操作系统为ubuntu
访问刚刚扫到目录webdav显示401应该是需要登录
除了这个就没有其他信息了,用kali 下的cewl 字典生成工具 爬取该页面存在的密码,生成一个密码文件没有安装可以输入apt-get install cewl进行安装后使用
cewl(Custom Word List generator)是一个非常有用的工具,用于从网站上抓取内容并生成自定义的字典文件。这些字典可以用来进行密码破解尝试、安全测试等。cewl可以从指定的网页中提取单词,并根据需要调整输出格式和过滤条件。
Cewl基本语法
cewl [选项] <URL>
输入cewl 192.168.245.173 -w password.txt抓取页面内容生成password文件
已经生成了password.txt文件
④、爆破用户名密码
在上面的过程中已经通过cewl工具进行生成password文件,现在用hydra进行爆破
hydra -L password.txt -P password.txt -f 192.168.245.173 -Vv http-get /webdav
上面命令解释:
hydra:爆破工具;
-L:用户名使用字典,-l则是指定用户名;
-P:密码使用字典,-p则是指定密码;
-f:找到一个结果立马终止
-Vv:显示过程
http-get:使用协议
爆破结果如下图所示:
成功爆破出一个用户的账户和密码
⑤、收集信息利用
上面爆出了用户的信息,现在尝试用来登录webdav
本来是什么都没有的,这个是刚刚试的时候上传进去的,无视掉
登录进来了虽然什么都没有,但是可以利用webdav
WebDAV(Web Distributed Authoring and Versioning)是一种基于HTTP协议的扩展,它允许用户通过网络协作编辑和管理存储在远程服务器上的文件。WebDAV提供了一种标准的方法来创建、更改和移动文档,以及设置和获取文件属性。它支持多种功能
利用kali中的cadaver工具
cadaver 是一个用于与WebDAV服务器交互的命令行客户端工具。它允许用户通过命令行界面执行各种文件操作,如上传、下载、删除文件和目录等
用kali登录webdav
输入:cadaver http://192.168.245.173/webdav
登录成功后利用cadaver中的put命令来上传文件
输入:put ./dama.php
这是提前准备好的大马,可以用来在一定的权限内操作web服务器
访问dama.php,并且输入账号gyWpLHKN,密码YZVlYfiI后进入主页
进行文件操作,点击文件督查
用来操作文件查询需要的信息
使用在线访谈,进入命令行,类似于终端
其他不一一介绍,查询一下当前用户
输入:whoami
⑥、提权
上面已经查询到了当前为web用户,现在进行提权
寻找可以写入的文件:find / -writable -type f -not -path "/proc/*" -not -path "/sys/*" -not -path "/var/*" 2>/dev/null
查询第一个文件mnt/hell.sh发现里面是一段密文
通过查询得知这是一段由Brainfuck语言编写的代码
进行解密:网站(https://www.splitbrain.org/services/ook)
输入这段密文后点击最后一个按钮Brainfuck to Text将密文转为普通文本
得到:
Chitragupt像是一个密码,查看home目录中的用户
三个用户,挨个尝试此密码ssh登录
最终inferno: Chitragupt登录成功
进一步进行提权
刚刚可以写入的文件中还有一个/etc/update-motd.d/00-header文件
这个文件是用户的登录文件
也就是说此文件在用户登录时可以执行命令将内容显示出来
既然可以执行命令,那么输入:
echo "echo 'root:123456' | sudo chpasswd" >> /etc/update-motd.d/00-header
意思是将echo 'root:123456' | sudo chpasswd这一段命令传入/etc/update-motd.d/00-header文件使他在用户登录时一起执行,root:123456' | sudo chpasswd:利用chpasswd命令来将root用户密码更改为123456
命令加入进去后由于此文件为登录时候才能执行的文件,所以退出登录,重新ssh连接即可
切换root用户尝试一下是否改成功
输入:su
Password:123456(不会显示出来)
成功提权