Hacktober CTF - это двухдневное мероприятие, организованное Cyber ​​Hacktics. Это мероприятие начнется с 9:00 CDT в пятницу, 16 октября, и закончится в 21:00 CDT в субботу, 17 октября.

В этом событии я играю с моими друзьями из Мьянмы (вы можете проверить его блог здесь), и мы решили 38 из 47 задач, чтобы начать играть в этом событии, вам нужно сначала решить задачу в категории запуска, если вы решили все их, Интернет автоматически запускает реальные проблемы, в этой рецензии я не собираюсь писать рецензию для стартовой категории, есть некоторая проблема, решенная моим другом, поэтому я тоже не писал ее здесь.

Криптография

1. Слава Цезарю!

Эта задача довольно проста, вам просто нужно декодировать эту строку, используя dcode.fr в этом веб-сайте, и просто обернуть ее форматом флага.

Флаг: flag {BOO SCARED YOU}

SQL

1. Демоны прошлого

В этой задаче мы дали один файл sql, поэтому я пытаюсь открыть его с помощью sqlite3 в Linux, наша цель здесь - получить пароль пользователя spookynoi

Давайте начнем искать пароль, поэтому я сбрасываю все пароли в таблицу passwd

мы не знаем, какой из них правильный, поэтому сначала найдите spookyboi id

Пользователь spookyboi находится на идентификаторе 8, это означает, что пароль должен быть на идентификаторе 8, а затем, поскольку этот пароль зашифрован md5, я использую онлайн-сеть для его расшифровки, ссылку здесь.

59dea36d05aacaa547de42e9956678e7:zxcvbnm

Флаг: flag {zxcvbnm}

2. Адресная книга

В этой задаче наша цель - найти адрес электронной почты пользователя luciafer, я уже восстановил этот файл sql на моем локальном сервере mysql, так что давайте проверим его

давайте просто сбросим таблицу пользователей и найдем этого пользователя

Итак, есть тысяча данных, давайте просто запросим их

select * from users where username like "%luc%";

Флаг: flag {[email protected]}

3. Ничто и пустота

Итак, в этой задаче нам нужно найти, какое поле принимает значения NULL и синтаксис для отображения информации, так что это действительно простая задача, давайте просто найдем все, что нам нужно.

с этим синтаксисом мы получили все, что нам нужно.

Флаг: flag {middle, DESCRIBE}

4. Подсчет трупов

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

просто используя «count ()», мы можем узнать, сколько пользователей на таблице пользователей.

Флаг: флаг {900}

5. Калисота

Хорошо, в этой задаче нам нужно опросить пользователей, которые живут в Калифорнии и Миннесоте, так что давайте просто запросим его.

Во-первых, нам нужно найти идентификатор для Калифорнии и Миннесоты, и если вы покопаетесь в таблицах состояний, вы можете найти этот идентификатор для Калифорнии и Миннесоты, так что давайте просто запросим его.

select count(*) from users where state_id=6 or state_id=28;

вот мой запрос, а также наш флаг.

Флаг: flag {выберите количество (*) от пользователей, у которых state_id = 6 или state_id = 28;}

6. Дети 90-х

В этой задаче я не понимаю, что означает «90-е», я запрашиваю данные только с «1990», из-за чего я застрял на несколько минут, затем я полагал, что «90-е» - это диапазон между 1990 и 1999 годами, так что вот мой запрос

select count(*) from users where dob like "%199%%-10-%";

Флаг: флаг {32}

7. Головоломка

Это довольно крутая задача, я многому научился в этой задаче, в этой задаче нам действительно нужно понимать ключ и использовать правильное регулярное выражение шаблона.

Давайте начнем запрашивать первую подсказку, которая запрашивает первые два символа - это char R, K или I

по-прежнему много жертв, давайте попробуем запросить вторую подсказку, нам нужно создать шаблон, который может включать любой символ, кроме новой строки, поэтому я делаю его от 0–9, a-z и A-Z с последующими 3 буквами

начать уменьшаться, давайте просто перейдем к третьей подсказке, которая запрашивает последний символ между E-N

вот и наша жертва, а имя пользователя - наш флаг.

Флаг: flag {image.wa1k3624}

Linux

1. Разговор с мертвыми 1

просто подключитесь к ssh-серверу и начните базовое перечисление

флаг для этой задачи находится в каталоге документов пользователя

2. Talking to the Dead 2

По-прежнему подключайтесь к тому же серверу ssh, продолжайте перечисление в том же каталоге, потому что он говорит, что флаг скрыт

Флаг: flag {728ec98bfaa302b2dfc2f716d3de7869f3eadcbf}

3. Разговор с мертвыми 3–4

Здесь мы можем получить flag3 и flag4, просто выполнив одно действие, подключившись к серверу и выполнив некоторое перечисление, и, наконец, я нашел двоичный файл set-uids

Как видите, здесь двоичный файл принадлежит пользователю root, а это означает, что он дает нам права root.

Если вы указали несуществующий файл, вы получите информацию о том, что делать дальше.

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

и у нас есть оболочка как root, поэтому мы можем указать flag4, который находится в корневом каталоге, и flag3, в каталоге документов пользователя spookyboi.

так что мы получаем flag3

Флаг: flag {445b987b5b80e445c3147314dbfa71acd79c2b67}

теперь flag4 находится в корневом каталоге.

Флаг: flag {4781cbffd13df6622565d45e790b4aac2a4054dc}

Программирование

1. Сообщение в массиве

В этой задаче вам просто нужно объединить индекс и массив

["DEADFACE","Nothing", "Stop", "Will"]
print "[1] [3] [2] [0]"

Флаг: flag {Nothing Will Stop DEADFACE}

2. Кошелек или жизнь

Скачав файл, вы получите файл на Python, давайте просто откроем его.

если мы запустим его, он будет печатать только «Понюхайте мои ноги». и есть функция show_flag, которая не вызывается, поэтому я думаю, что это может быть флаг, поэтому я ее назвал.

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

Флаг: flag {2f3ba6b5fb8bb84c33b584f981c2d13d}

3. Красный ром

В этой задаче нам нужно подключиться к службе NC и вставить наш ответ, который представляет собой номер списка от 1 до 500, и для каждого числа, делимого на 3, нам нужно заменить его красным и т. Д. Итак, здесь я сделал скрипт Python

Флаг: flag {h33eeeres_j0hnny !!!}

4. Лестница в ад

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

поэтому в этой задаче нам нужно сделать ее похожей на лестницу, но, начиная с 666 и 30 строк, также нужно, чтобы пробел между числами и новой строкой был полосатым, поэтому я делаю скрипт python

Флаг: flag {plung3_to_the_4by55}

OSINT

1. Ползучая 1

Наша цель - найти компанию, в которой работает Али Тевлин, поэтому сначала я пытаюсь найти «De Monne Financial», и я нахожу доменное имя для этой компании, но у меня ничего там не было, поэтому я начинаю искать «Али». Тевлин », и я нашел его страницу в фейсбуке.

и мы получаем название компании, на которую он работает.

Флаг: flag {F. Kreuger Financial}

2. Ползучая 2

Задача этой задачи - найти свое место в компании, эта информация уже есть на странице facebook.

Флаг: flag {Senior Acquisitions Supervisor}

3. Ползучая 3

В этой задаче хочу знать день его рождения, он уже есть на странице facebook.

Флаг: flag {17 июня 1973}

4. Ползучая 4

Если вы знали, что Али Тевлин загрузил свой отпуск на facebook в

поэтому я пытаюсь найти это место с помощью изображения Google

тогда вы найдете место.

Флаг: flag {Point Pleasant, WV}

Криминалистика

1. Запечатленные воспоминания

Здесь я использую волатильность, давайте начнем, сначала вам нужно найти изображение профиля.

если вы запустите его с помощью команды pslist, вы получите весь процесс программы, а если вы посмотрите в конец, вы найдете программу «winpmem_v3.3».

если вы немного поищете, то обнаружите, что эта программа предназначена для захвата памяти или для дампа памяти, поэтому нам просто нужен pid и введите его как флаг.

Флаг: flag {3348}

2. Совершенство предварительной загрузки

В этой задаче я использую инструмент от PoorBillionaire, давайте начнем.

вот так, мгновенно мы получили флаг :)

Флаг: flag {2017–05–01 21:11:41}

3. Prefetch Perfection 2

В этой задаче нам нужно выяснить, какая программа загружает файлы cookie, принадлежащие cmaldonado, мы уже знаем, что iexplorer использует их, поэтому нам нужно выяснить другие.

Я все еще использую инструмент от PoorBillionaire, но я делаю bash-скрипт, чтобы помочь нам его найти.

for x in $(ls ../../prefetch/); do
    echo -ne "$x\n"
    python2 prefetch.py -f ../../prefetch/$x | grep -i CMALDONADO | grep -i COOKIE
    python2 -c "print '='*200"
done

как вы можете видеть, другая программа, использующая cmaldonado, - это DLLHOST.EXE, что означает, что это наш флаг

Флаг: flag {dllhost.exe}

4. Злые близнецы

Хорошо, это непростая задача для меня, хорошо, это проблема - программа, которая запускает повторяющийся процесс, давайте просто начнем.

Я начинаю с pslist и выясняю, какая программа подозрительна

осмотревшись около 5 часов, я наконец понял, что одна программа работает подозрительно

если вы смотрите на PID 6096, эта программа PPID (идентификатор родительского процесса) сама является исследователем, после того, как я посмотрел, есть ли такая программа, я не нашел ее, поэтому я, возможно, означает «Злые близнецы», и это действительно правильный флаг :)

Флаг: flag {explorer.exe}

Анализ трафика

1. Дистанционно управляемое зло

Нам предоставляется файл pcap, и нам нужно найти исполняемый файл в url-адресе, я открываю его с помощью wirehark.

с первого взгляда вы, возможно, восстановили исполняемый файл этого файла

Флаг: flag {solut.exe}

2. Дитя Корпорации Зла

Я открыл его с помощью wirehark и нашел картинку

и когда я пытаюсь открыть ссылку, эта ссылка приводит меня на этот сайт

и когда я пытаюсь получить этот файл, это exe-файл, а затем я пытаюсь ввести его, и это был флаг

$ md5sum picture4.png

Флаг: flag {a95d24937acb3420ee94493db298b295}

3. Злая рождественская песнь

Наша цель - найти IP-адрес, который используется для отправки файла.

Я пытаюсь проанализировать его, и когда я прокручиваю трафик, я обнаружил, что какой-то подозрительный файл был передан через http

этот трафик выполняет GET и загружает файл july22.dll, поэтому я ввожу 202.185.125.104 в качестве флага.

Флаг: flag {202.185.125.104}

4. Ребенок Злого Копра 2

В этой задаче я просто провел некоторый анализ и обнаружил что-то подозрительное в трафике между 192.168.1.91 и 213.136.94.177, потому что это было между протоколом трафика NBNS, поэтому я думаю, что это было подозрительно.

и это был правильный флаг.

Флаг: flag {213.136.94.177}

5. Evil Corp’s Child 3

Эта задача состоит в том, чтобы мы нашли имя местоположения сертификата для HTTPS-трафика для этого IP-адреса.

Я использую фильтр

ip.src == 37.205.9.252

Я ищу информацию с надписью «Server Hello», потому что это означает начало трафика https, и я открываю

Я раскрываю Transport Layer Security и нахожу название населенного пункта.

Флаг: flag {Могадишо}

6. Злая рождественская песня2

нам нужно найти доменное имя, которое используется для пост-заражения через HTTPS

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

Флаг: flag {vlcafxbdjtlvlcduwhga.com}

7. Дистанционно управляемое зло 2

В этой задаче вам нужно найти домен в myddns, поэтому я открываю его с помощью wirehark и фильтрую с помощью протокола dns.

и, как видите, есть домен myddns.

Флаг: flag {solution.myddns.me}