0x01 信息收集
nmap扫描 发现80端口 和22端口
0x02对80端口进行测试
访问是一个页面,啥也没有。 打开burp抓包查看sitemap 发现/cdn-cgi/login/存在登录页面 尝试弱口令,但是没有成功,有个访客登录,登录后存在一个上传的地方,但是需要super admin权限。 查看account url栏里id修改为1 发现了admin的access id 值 替换cookie
gobuster dir --url http://10.129.57.229/ --wordlist /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -x php 目录扫描发现了存在/uploads 访问webshell.php 获得反弹shell
0x03 权限提升
python3 -c ‘import pty; pty.spawn("/bin/bash")’ 升级shell
切换到 /var/www/cnd-cgi/login cat * | grep -i passw* 查找有关于passw的文件 -i启用替换 grep 搜索 发现网页账号密码是 admin MEGACORP_4admin!! 查看db.php 成功登录 在家里发现flag
find / -perm -4000 2>/dev/null 查找具有suid权限的文件 2>/dev/null 意思就是把错误输出到“黑洞”,/dev/null被称为黑洞
0——标准输入(stdin) 1——标准输出(stdout) 2——标准错误(stderr)
运行一下bugtracker 这里会通过输入的数字来显示 bug 输入一个不存在的数字 这里显示了cat 不到 这里是用root权限去调用cat
bugtracker调用cat命令没有使用cat命令的绝对路径,而是使用绝对路径调用的,即在当前用户的 P A T H 环 境 变 量 指 定 的 路 径 中 搜 寻 c a t 命 令 。 可 以 创 建 一 个 名 为 c a t 的 恶 意 命 令 , 并 修 改 当 前 用 户 的 PATH环境变量指定的路径中搜寻cat命令。 可以创建一个名为cat的恶意命令,并修改当前用户的 PATH环境变量指定的路径中搜寻cat命令。可以创建一个名为cat的恶意命令,并修改当前用户的PATH值以使bugtracker调用恶意cat命令,以获取root权限。 切换到robert用户身份,将/tmp目录设置为
P
A
T
H
环
境
变
量
的
第
一
个
目
录
,
切
换
到
/
t
m
p
目
录
下
构
造
恶
意
c
a
t
命
令
并
赋
予
执
行
权
限
。
当
b
u
g
t
r
a
c
k
e
r
再
次
调
用
c
a
t
命
令
时
实
际
上
调
用
的
是
/
t
m
p
目
录
下
的
恶
意
c
a
t
命
令
(
s
h
e
l
l
执
行
命
令
时
按
照
PATH环境变量的第一个目录,切换到/tmp目录下构造恶意cat命令并赋予执行权限。当bugtracker再次调用cat命令时实际上调用的是/tmp目录下的恶意cat命令(shell执行命令时按照
PATH环境变量的第一个目录,切换到/tmp目录下构造恶意cat命令并赋予执行权限。当bugtracker再次调用cat命令时实际上调用的是/tmp目录下的恶意cat命令(shell执行命令时按照PATH环境变量中目录的顺序搜索,搜索到即开始执行),此时robert用户临时具有了root权限,上面的id命令可以看出只是robert用户的uid变为了root,不是真正的root用户。
获取了root用户的flag信息,注意,此时不能使用cat命令输出root.txt中的内容,因为cat命令已被替换
export PATH=/tmp:$PATH
echo $PATH
在root文件夹 root.txt发现flag
af13b0bee69f8a877c3faf667f7beacf
0x04 总结
首先通过burp sitemap获得后台地址 访客登录后发现cookie和会话可控 发现上传点 上传php反弹shell nc连接 python升级 ttlshell find 查找密码相关的文件 发现 robert账号密码 搜索拥有suid的文件 bugtrack 发现是调用环境变量里的cat 将tmp写入环境变量 创造一个恶意cat 内容为bin/sh 在tmp目录下 运行bugtrack 获得root权限
|