PACTF 2018 (2 round)

Debug

Red Team
07.07.2017
217
445
BIT
6
It's In, If -- 20
Нам дана картинка.
1525093266506.png

Скачиваем и используя exiftool как всегда обнаруживаем флаг(big_brother_is_looking_at_your_photos)
1525093520700.png
 

Debug

Red Team
07.07.2017
217
445
BIT
6
Am I Pwned? -- 15
Дан следующий текст

I was talking on IRC with a guy who tricked me into giving him a hash of my password and then said he could hack me! He said I might be “pwned”! I know the hashing algorithm is MD5; that’s still secure, right?
… Oh, you want to know whether my password is secure or not?
It doesn’t have any uppercase letters or numbers or punctuation, but isn’t six characters still a lot? what he meant by that one. Would you be able to hack my password? Here’s the hash:
eca065fba51916821eb7274c786c67d9
Нам нужно расшифровать хэш. Идем на серис и узнаем, что это MD5
Затем следующий сервис дает нам флаг(lmaoez )
1525093908274.png
 

Debug

Red Team
07.07.2017
217
445
BIT
6
Hash Master -- 90
Дан текст:

Miles forgot his login for , so he asked Darcy to send a password reset. Instead, she gave him the hash of his password—and the custom hashing algorithm. Miles doesn’t have great password security, so you could probably brute force it… but maybe there’s a way to do this more efficiently?
Here is the hash of Miles’ password: 293366475
Here is the hashing algorithm:
def hash_it(string):
q = 0
z = 127
for i in [int(byte) for byte in bytearray(string, "utf-8")]:
q += i
z *= i
return (((q << 3)+1)*z) % (2**32 - 1)

Я пошел следующим путем и решил просто сбрутить хэш используя следующий алгоритм. Для атаки был взят словарь rockyou.
Сам скрипт следующий:
f = open('rockyou.txt' , 'r')
f_read = f.read().split()
def hash_it(string):
q = 0
z = 127
for i in [int(byte) for byte in bytearray(string, "utf-8")]:
q += i
z *= i
return (((q << 3)+1)*z) % (2**32 - 1)
for i in f_read:
try:
if str(hash_it(i)) == "293366475":
print i
break
except Exception, ex:

После нескольких секунд получаем флаг - aaaaab

1525094346156.png
 

Debug

Red Team
07.07.2017
217
445
BIT
6
The Signal and the Noise -- 35
Дан файл с большим количеством слов
1525094473140.png

И нам требуеться найти среди этого го**а флаг. В подсказки четко сказано,что искать нужно фильтруя по кодировке.
Составляем следующий скрипт
P.S. можно взять который выше и немного изменить

f = open('haystack.txt' , 'r')
f_read = f.read().split()
def hash_it(string):
q = 0
z = 127
for i in [int(byte) for byte in bytearray(string, "utf-8")]:
q += i
z *= i
return (((q << 3)+1)*z) % (2**32 - 1)
for i in f_read:
try:
hash_it(i)
except Exception, ex:
print i
1525095191478.png


Мы получаем следующие -
th‍e
fla‌g
i​s
iп»їn
pп»їlain
sighп»їt

Чистим от мусора и получаем флаг(the flag is in plain sigh)
 

Debug

Red Team
07.07.2017
217
445
BIT
6
Zip Zap Zop -- 45
Текст: My friend gave me this file, but I have no idea what to do with it?
Скачиваем файл. Узнаем что это zlib архив, распаковываем и получаем опять zlib. Проще всего написать скрипт который все сделает за нас.


from zlib import *
import os
import zlib
while True:
str_object1 = open('test.zip', 'rb').read()
str_object2 = zlib.decompress(str_object1)
f = open('my_recovered_log_file', 'wb')
f.write(str_object2)
f.close()
os.remove('test.zip')
os.rename('my_recovered_log_file', 'test.zip')

Затем мы получим в конце ошибку, значит скрипт завершился и перед нами уже не zlib. Идем дальше и смотрим содержимое файл. Результат следующий - }q X flagqX! Gotza_Makes_1T_V_small_1539248962qs.
Как всегда чистим от мусора и получаем флаг.
1525095749582.png
 

sinner67

Green Team
24.03.2017
279
357
BIT
0
Truly Blue?45
TruluBlue_1.png


И так, нам дано, синий квадрат(монотонный на первый взгляд)
TruluBlue_2.png


Проверки binwalkом, stringsом и exiftoolом не дала никаких результатов.
Обычно, после такого я проверяю картинку stegsolve. Давайте посмотрим что мы сможем увидеть:
Дойдя до проверки по каждому биту синего цвета, вот какую картину мы увидели на 0 бите:
TruluBlue_3.png


Я думаю у вас возникла та же мысль что и у меня тогда. Бинарный код. Черный - 0. Белый - 1
Как оказалось это была ошибочная теория, которая украла уйму времени.
Я решил заново пройтись stegsolveом по картинке и Аллилуйя! смотрите что я нашел:
TruluBlue_4.png


Видите!? Видите? Когда stegsolve начал проверять картинку рандомными цветами все сразу стало понятно,
потому что не было никакий двух цветов, их было МНОГО. Много разных оттенков синего(не путать с серого -_-)
Слудующим моим шагом было выяснить что это за цвета такие и я написал маленький скриптик:

TruluBlue_5.png


И вот что получилось:
TruluBlue_6.png


Т.е. оттенков всего 8. Чувствуете к чему все дело идет???
Теперь я пронумеровал каждый оттенок трех разрядным бинарым числом следующим образом:
0-48-156 - 000 - 0
0-48-157 - 001 - 1
0-49-156 - 010 - 2
0-49-157 - 011 - 3
1-48-156 - 100 - 4
1-48-157 - 101 - 5
1-49-156 - 110 - 6
1-49-157 - 111 - 7

Далее все прост:) пишем скриптик:
TruluBlue_7.png


Как вы могли заметить я не по всем строчкам прохожу, т.к. stegsolve показал нам, что информация есть только в первых 17.
Получаем бинарную последовательность с которой мы уже знаем что делать.
TruluBlue_8.png


Вот и все :)
 

Citizen0

Green Team
07.02.2017
203
228
BIT
0
Redacted Problem — 10

ANDOVER, MA— Phillips Academy Capture the Flag releases an institution-wide memorandum on the security of PDF documents. For privacy, parts of the memo are redacted.

View the memo: .
Переходим по ссылке и видим pdf-документ с "замазками"
pdf_txt.png

Копируем текст и вставляем, например, в блокнот
На месте из одной замазанных областей будет флаг
pdf_flag.png
###################################################################################
Wakanda problem is this? — 60
You’ve arrived at Wakanda’s border. Only the flag will allow you to enter.

Hint: Use the bytes in the second image.
Нам дано одно изображение, но в подсказке указана вторая картинка.
Предположим, что у нас картинка в картинке.
Давайте посмотрим с помощью strings
Код:
strings %ПУТЬ_ДО_КАРТИНКИ%
wakanda_img.png
Действительно что-то есть. Обратите внимание на последние 2 строчки
Пробуем извлечь с помощью binwalk
wakanda_binwalk.png
Посмотрим с помощью strings второе изображение (blackpanther2.jpg)
А вот и флаг
wakanda_flag.png
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!