CTF HTB — Beatles

Привет, а вот и первый врайтап из очень популярной CTF платформы Hackthebox, вот и пруф популярности:

Уж больно понравилась эта стеганография и ровно поэтому решил ее запостить, надеюсь и Вы оцените…

Скачав архив мы видим изображение и пойдем по привычному для нас пути:

Stegsolve.jar

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

cat -b BAND.JPG

или

nl BAND.JPG

Мы получаем много мусора:

Дальше пробуем инструментом, который мы показывали ранее — созвучным с иконкой браузера поисковика от Яндекса:

strings BAND.JPG

А ще лучше сразу научиться так, если мы работаем со стеганографией, прочти всегда нужно фильтровать мусор и все  значения мешьше <10 так:

strings BAND.JPG | awk 'length($0) > 10'

Вот это другое дело, Base64:

echo 'VkhKNUlFaGhjbVJsY2lFPQ==' | base64 --decode

получаем матрешку VHJ5IEhhcmRlciE=

echo 'VHJ5IEhhcmRlciE=' | base64 --decode

Ну или одной коммандой, я в винде использую Notepad++ быстро и эффективно:

echo 'VkhKNUlFaGhjbVJsY2lFPQ==' | base64 --decode | base64 --decode

Try Harder! Так и что бы это значило? Я понимаю, что это девиз OSCP, но все же…

Идем по привычке, попытаемся узнать, что за фотография это:

binwalk BAND.JPG

DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
0 0x0 JPEG image data, JFIF standard 1.01

Чаще всего на равне со strings можно использовать file, быстро подручно и результативно:

file BAND.JPG
BAND.JPG: JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, baseline, precision 8, 1600x1067, components 3

Хорошо попробуем steghide чтобы извлечь данные получив некий пароль из base64 в base64:

steghide extract -sf BAND.JPG

и к нашему удивлению это не пароль от стеги. 2 вечера я возвращался к этой стеганографии и вспоминал только Try Harder! Try Harder! Try Harder! Try Harder! Try Harder! клинит уже… Если у нас нет других вводных данных и эта картинка все что у нас есть, нужно реальное погружение, что нам остается кроме брута? Правильно — только брут стеги и нам нужен stegcracker:

sudo curl https://raw.githubusercontent.com/Paradoxis/StegCracker/master/stegcracker > /usr/local/bin/stegcracker
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2323 100 2323 0 0 3852 0 --:--:-- --:--:-- --:--:-- 3865
sudo chmod +x /usr/local/bin/stegcracker
sudo stegcracker --update
StegCracker - (https://github.com/Paradoxis/StegCracker)
Copyright (c) 2019 - Luke Paris (Paradoxis)

Updating StegCracker to the latest version.. DONE

Запускаем с нашим любимым словариком rockyou.txt в нем 14 344 365 строк с символами как никак:

stegcracker BAND.JPG rockyou.txt

Это конечно весело, пару часов ждать, а давайте попробуем составить свой тематический словарик из информации с Wiki: Да кстати просматривая информацию в википедии на английском, то и дело нарывался на словосочетание группы, так же у них оказывается были прикольные названия альбомов типа !Help и A Hard Day’s Night прям в тему:

nano Beatles_words.txt

stegcracker BAND.JPG Beatles_words.txt
StegCracker - (https://github.com/Paradoxis/StegCracker)
Copyright (c) 2019 - Luke Paris (Paradoxis)

Attacking file 'BAND.JPG' with wordlist 'Beatles_words.txt'..
Successfully cracked file with password: THEBEATLES
Your file has been written to: BAND.JPG.out

Ура! Мы успешно подобрали пароль и получили вывод в виде файла BAND.JPG.out

file BAND.JPG.out
BAND.JPG.out: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=ca68ea305ff7d393662ef8ce4e5eed0b478c8b4e, not stripped

Так из полезного, это LSB и у нас есть некий sha1 ca68ea305ff7d393662ef8ce4e5eed0b478c8b4e

Дальше смотри содержимое, увеличивает фильтрацию, т.к. при 10 символах тоже много мусора, ставим 20:

strings BAND.JPG.out | awk 'length($0) > 20'

Hey Paul! If you are here… Give my your favourite character!
Ok Paul… A little challenge for you mate, cause last month someone crazy man hacked…WTF! Let’s Begin!
########################################Challenge#####################
Tell me PAul! The result of 5+5?
Ok!ok! it was easy… Tell me now… The result of: 5+5-5*(5/5)?
Last one! The result of: (2.5*16.8+1.25*10.2+40*0.65+1.5*7.5+1.25*3.2):40
Hey Paul! nice!!! this is the message
VGhlIHRvdXIgd2FzIGNhbmNlbGVkIGZvciB0aGUgZm9sbG93aW5nIG1vbnRoLi4uIQ0KDQpJJ2xsIGdvIG91dCBmb3IgZGlubmVyIHdpdGggbXkgZ2lybGZyaWVuZCBuYW1lZCBZb2NvISA7KQ0KDQpIVEJ7UzByUnlfTXlfRlIxM25EfQ0K
WTF! You are not Paul!! SOS SOS SOS HACKER HERE!! I will call the police someone want to steal my data!!!
########################################END OF HALLENGE##############

Шайтан трава, мы сделали это! Давайте посмотрим Вывод:

echo "VGhlIHRvdXIgd2FzIGNhbmNlbGVkIGZvciB0aGUgZm9sbG93aW5nIG1vbnRoLi4uIQ0KDQpJJ2xsIGdvIG91dCBmb3IgZGlubmVyIHdpdGggbXkgZ2lybGZyaWVuZCBuYW1lZCBZb2NvISA7KQ0KDQpIVEJ7UzByUnlfTXlfRlIxM25EfQ0K" | base64 --decode
The tour was canceled for the following month...!

I'll go out for dinner with my girlfriend named Yoco! ;)

Ну там и флаг, и это мучение за 30 очей прям получилось. Реально Русская Матрешка!

Автор сия стеги пересмотрел фильм Кристофера Нолана — Начало…