VulnHub: Эксплуатируем уязвимость переполнения буфера в Lord Of The Root


444c9ba38e9840538347246124d2d54f.png

Продолжаем разбор квестов с VulnHub, на этот раз попался довольно интересный с обходом ASLR: Lord Of The Root. Но обо всём по порядку…

Запускаем виртуалку с образом:
f52e3951c7684e489c6b3123e87f76a4.png

Уже интересно. В этой лабе нам предоставили графический интерфейс, и дали первую зацепку, в виде логина пользователя: smeagol.

Но оставим пока авторизацию, и перейдём к изечению открытых портов:

$ sudo arp-scan -l | grep "CADMUS COMPUTER SYSTEMS" | awk '{print $1}' | xargs sudo nmap -sV -p1-65535

Starting Nmap 7.01 (nmap.org) at 2016–12–21 19:33 MSK
Nmap scan report for 192.168.1.175
Host is up (0.00033s latency).
Not shown: 999 filtered ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 1024 3c:3d: e3:8e:35: f9: da:74:20: ef: aa:49:4a:1d: ed: dd (DSA)
| 2048 85:94:6c:87: c9: a8:35:0f:2c: db: bb: c1:3f:2a:50: c1 (RSA)
|_ 256 f3: cd: aa:1d:05: f2:1e:8c:61:87:25: b6: f4:34:45:37 (ECDSA)
MAC Address: 08:00:27:40: B5: B3 (Oracle VirtualBox virtual NIC)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o: linux: linux_kernel:3 cpe:/o: linux: linux_kernel:4
OS details: Linux 3.10 — 3.19, Linux 3.2 — 4.0
Network Distance: 1 hop
Service Info: OS: Linux; CPE: cpe:/o: linux: linux_kernel

Всего 1 порт? Серьёзно? Запустив nmap повторно, убеждаемся, что пока нам доступен только ssh. Попробуем подключиться:
$ ssh smeagol@192.168.1.175

48cc07356d124210adf727d886aef7e5.png
«Постучи друг, чтобы войти» — отсылка к Властелину Колец. Быстро найдя, что в оригинале друг — это mellon, пробуем авторизоваться.
Попытка оказалась неудачной, брутфорс логинов и возможных паролей по тематике тоже не дал результатов.
Меня смутило слово постучи, уже имея дело с port knocking, я предположил что он и тут используется.
Проверяем догадку:
$ sudo knock 192.168.1.175 1 2 3; ssh smeagol@192.168.1.175

К сожалению, ничего не изменилось. авторизация по прежнему требуется.
А что если, после «стука» открывается какой-то порт?
$ sudo knock 192.168.1.175 1 2 3; sudo nmap 192.168.1.175 -sV -p1-65535

Спустя продолжительное время, получаем такой результат:
Starting Nmap 7.01 (nmap.org) at 2016–12–22 02:42 MSK
Nmap scan report for 192.168.1.175
Host is up (0.00020s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.3 (Ubuntu Linux; protocol 2.0)
1337/tcp open http Apache httpd 2.4.7 ((Ubuntu))
MAC Address: 08:00:27:39:91:65 (Oracle VirtualBox virtual NIC)
Service Info: OS: Linux; CPE: cpe:/o: linux: linux_kernel

P.S. Тут стоит оговориться, что для ускорения процесса, сканировать порты лучше небольшими диапазонами.

Действительно, на «элитном» порту крутится Apache, посмотрим что там:
7de70c2926984b82b2f3bd81688298e8.jpg




Не многословно… После анализа картинки, в ней тоже ничего не было найдено.
Возможно есть скрытые файлы и директории?
sudo dirsearch -u http://192.168.1.175:1337/ -e php,html,js,json,jpg,txt,bak -w /usr/share/dirb/wordlists/big.txt

ce8b384cd9e144279bdbbc9ab7af2aed.png

Ничего интересного, на всякий случай заглянув на 404.html, получаем ещё одно изображение:
c96241cf7fa54d9eaff5f12ebbf714cb.jpg
и вот такой код: