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

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

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

Сделал загрузку shared objects из памяти без временных файлов. И никаких сигнатур. Красивенько.
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

Unix security [Nov. 9th, 2013|06:28 pm]
[Tags|, , , , , , , ]

Заинтересовался собственно вопросом, а как бы оторвать LD_PRELOAD и ptrace каким-нибудь штатным образом. Нашел только ответ Кокса, о том, что неотрываемость оных - is the normal Unix model. Normal, блядь, model. За 15+ лет работы с юниксами, мне один раз понадобился LD_PRELOAD для более или менее "нормальной" задачи, а вот не очень нормальных я знаю вагон. =)
Link15 comments|Leave a comment

sshd backdoor [Jun. 2nd, 2013|11:03 am]
[Tags|, , , , , , , ]

Переживаю из-за того, что под юниксами так и не появилась культура работы с бинарями, лошадки в мире open-source поставляются в исходниках (и зачастую открытых*, я уже писал про Темную Пиявку aka DarkLeech), на этот раз мне подкинули пару бинарей sshd на посмотреть. Один из них оказался резервной копией оригинала. Второй пропатченный. Спалили его по rpm -V.

Я тоже не люблю спросонья в бинарях копаться. Взял strings.

      pax vobiscum
      /tmp/mc.tmp
      Sshd password detected: %s:%s

На колупание бэкдора ушло 10 минут. До дизассемблера не дошло. А я-то думал отложить на утро, и предвидел чудеса кодерской мысли и тайны ондеграунда. :-) С pam_unix.so - та же беда, вот уже несколько лет школоло таскает один и тот же one liner ("if (strcmp(p,"secpass")==0 ){retval = PAM_SUCCESS;}"), zero-day, блять, сцыкьюрити, оборачивая его не менее "илитными" скриптами на sh. Мир вам, тупые дети! Неужели, так трудно написать нормальную лошадку, так чтобы не тащить в систему 100500 девелоперского стаффа и прочего говна? Тем более, что все уже давно написано. Подсказки давать не буду, кому нужно - сам найдет.

(* у этого подхода есть и достоинства - антивирус бесполезен, чуть менее, чем полностью. Впрочем, антивирус бесполезен в любом случае. Недостатков вагон.)

Link1 comment|Leave a comment

Неунывающий зверь пиздец (ELF OS ABI) [May. 20th, 2013|12:20 pm]
[Tags|, , , , , , , ]

CentOS 4.8/i386, click to open Centos 4.8/i386
355 #define ELFOSABI_NONE   0
356 #define ELFOSABI_LINUX  3
и чтобы два раза не вставать: unknown type name 'off64_t', самый лучший ответ: We need more to be able to reproduce this. A number of us build on linux x86_64 and haven't seen this issue.. Добавлю-ка я еще тэг уебаны. P.S. да, off64_t != uint64_t
LinkLeave a comment

Linux/ELF [May. 12th, 2013|04:39 pm]
[Tags|, , ]

Знаете ли вы, что Ehdr не обязателен в загружаемом сегменте?
В динамике тоже. (То что он не нужен статическим бинарям - это и ежу понятно).
Таким образом у ELF'ов может быть незагружаемая часть произвольного размера,
в начале файла. (Это может быть засадой, для любителей искать базовый
адрес по сигнатуре. Вроде меня :-)
Link5 comments|Leave a comment

Darkleech [May. 7th, 2013|02:25 pm]
[Tags|, , , , , , , ]

Полистал $subj, это просто Ебаный стыд )
P.S. Пожалуйста, не ксорьте стринги, и детект рута так тоже не делается.
Link25 comments|Leave a comment

Вливаем немного кода и медленно перемешиваем [Jan. 5th, 2013|02:47 pm]
[Tags|, , , , , , , , , , ]

Я уже, как-то пользовался подобной фичей, а тут умница Indy (я ведь не ошибаюсь, Danilova на васме - это он?), напомнил. В результате получился вот такой кодик: ... )
L1:     mov     edx, 0xc88cffff
        db      0x66, 0xea
        dd      L2
        jae     L2
... )
format  db      "EAX=%08x EDX=%08x", 10, 0
EAX=7 EDX=FFFF Для тех, кто в танке, можно и подробнее: ... ) Ага? P.S. Привет дизассемблерам и кривоэмуляторам. Indy - respect.

UPD. Чтобы жизнь медом не казалась, переходим на x64: ... )

Link6 comments|Leave a comment

LDE на исключениях [Oct. 20th, 2011|12:46 pm]
[Tags|, , , , , , ]

Indy предложил интересную идею для LDE - вместо того, чтобы парсить инструкции, пытаться исполнять их на границе двух страниц (RWX и NOACCESS), и по генерируемым исключениям определять длину. Скачать Индин код можно здесь Написал приблизительную реализацию для Linux:Read more... )
Link23 comments|Leave a comment

Hardware breakpoints [Sep. 21st, 2011|01:38 pm]
[Tags|, , , , , , ]

Вдогонку. Долго вспоминал, как ставить аппаратные бряки. Где-то так )
Link13 comments|Leave a comment

Highway to libc [Sep. 13th, 2011|01:21 pm]
[Tags|, , , , ]

Почему эта хрень работает? Хрень )
Link8 comments|Leave a comment

Кое-что об EPO [Jul. 22nd, 2011|02:46 pm]
[Tags|, , , ]
[Current Mood | content]

$ ./date
Fri Jul 22 [ Entering tracer
Work's done.

Virus is OK!] 14:48:38 EEST 2011
таки будет в EOF#3 ;-)
LinkLeave a comment

Отображение сегментов в память [Jul. 22nd, 2011|09:31 am]
[Tags|, , , , , ]
[Current Mood | blank]

Как сделать munmap на сегмент бинаря?
munmap(phdr->p_vaddr & ~4095, (phdr->p_filesz + 4095) & ~4095)
? А вот хуй!
elf_page_start = phdr->p_vaddr & ~4095;
elf_page_offset = phdr->p_vaddr - elf_page_start;
munmap(elf_page_start, phdr->p_filesz + elf_page_offset);
Интересующимся - welcome to binfm_elf.c
LinkLeave a comment

Энтропия [Nov. 3rd, 2010|04:42 pm]
[Tags|, ]

Задумался над тем, как бы снизить энтропию шифрованного/сжатого текста до "нормальных" значений, и где она та норма? Пробежался быстренько по всем бинарям, установленным в системе и получается вот что: )
Link6 comments|Leave a comment

Ах, пингвин, пингвин, пингвин! Белый пузо, черный спин! [Mar. 27th, 2009|05:07 pm]
[Tags|, , , , ]
[Current Mood |awake]

Куда-то делся сайт EOF :-( Нашелся! Ж-)
Вчера увидел смешное в elf/dl-addr.c А и правда, что сделаешь-то? Ну не добавлять же в самом деле DT_SYMCOUNT? Сколько нужных и полезных полей (grep DT_ /usr/include/elf.h) уже реализовано, а это подождёт! Ж-)
   101      /* There is no direct way to determine the number of symbols in the
   102         dynamic symbol table and no hash table is present.  The ELF
   103         binary is ill-formed but what shall we do?  Use the beginning of
   104         the string table which generally follows the symbol table.  */
   105      symtabend = (const ElfW(Sym) *) strtab;
А свежий JCompVir нежданно, негадано нашёлся в обыкновенном почтовом ящике, куда приходят не имейлы, а счета и прочая дрянь. Ж-) (UPDATE) Чтобы не плодить посты, добавлю предисловия (авторское и переводчиков) прямо сюда. Vorwort )
Link1 comment|Leave a comment

navigation
[ viewing | most recent entries ]