网络安全之渗透靶场实战详解
0x00 环境配置
虚拟网络编辑器:

Kali:

靶机:

0x01 主机发现/端口扫描
首先使用下面这条命令来发现靶机的 ip 地址为 192.168.26.131

然后开始使用 nmap 进行端口和服务的发现

经过对开放端口和服务的扫描,发现只开放了 22 端口和 80 端口,访问 80 端口也没发现什么可以测试的点,于是开始使用 dirsearch 进行目录的扫描。
【一>所有资源获取<一】1、很多已经买不到的绝版电子书 2、安全大厂内部的培训资料 3、全套工具包 4、100 份 src 源码技术文档 5、网络安全基础入门、Linux、web 安全、攻防方面的视频 6、应急响应笔记 7、 网络安全学习路线 8、ctf 夺旗赛解析 9、WEB 安全入门笔记
0x02 信息收集

经过目录扫描,发现了 webdav 的路径,访问了一波,发现需要登录,这里简单讲一下什么是 webdav:


0x03 密码字典定制
在我进行了多次简单的弱口令尝试后发现不行,于是开始使用 kali 自带的字典进行暴力破解,但是跑了很久失败了,所以我打算使用 kali 自带的字典生成工具 cewl 生成一个针对这个网站专属的字典进行测试一波。

0x04 hydra 密码爆破

0x05 webdav 漏洞



0x06 MOTD 注入提权
接下来我们通过下面这条命令找一些属主是 root 普通用户或组可执行 其他用户可写的文件,这种文件往往可以帮助我们实现权限提升。

先 cat 了一下搜索到的第一个文件,发现里面有 brainfuck 加密的内容,所以尝试解密下。

在线解密网站:http://bf.doleczek.pl/

解密得到的这个可能是某个用户的密码,所以根据查看/etc/passwd 文件发现的用户,挨个尝试下。

当我尝试切换到 interno 用户的时候,使用揭秘得到的这个字符串成功的 su 到了 inferno 用户上。到这里算是完成了从 www-data 权限到普通用户权限的权限提升。

然后我们在 inferno 用户的家目录下发现了第一个 flag。

既然已经获取到了 inferno 用户的密码,我接下来尝试使用 ssh 登录到 inferno 用户上。
成功登录到 inferno 用户后再次执行下面这条命令:

我观察到除了我们刚刚发现密码的那个文件,其他文件都在/etc/update-motd.d/这个目录下,motd 是 message of the day 这句话的缩写,我们通过 ssh 登录成功后看到的那些欢迎和提示的信息都是 motd 目录下存放的这些 sh 脚本所提供的。

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

然后保存修改后,退出 ssh 的连接,然后重新使用 ssh 登录,触发执行我们修改 root 用户的命令。

当我们看到登录成功后的欢迎语的时候,root 用户的密码已经成功的被我们修改成了 123。接着只需要 su 到 root 用户即可提权成功。

0x07 CVE-2021-3493 提权:

在 ssh 成功登录后的欢迎语中,知道了靶机的版本是 Ubuntu18.04,对于该版本我比较熟悉,之前用过该版本的提权漏洞,所以这里不过多赘述。先将 exp 下载到 kali 本地。



发现靶机上无法运行 gcc,那么我们就在 kali 上先编译好,然后再传到靶机上即可。


可以看到通过 CVE-2021-3493 同样获取到了 root 权限

评论