Skip to content

SEConference 2k10 – materiały

Zgodnie z obietnicą, publikuję materiały, które zostały przedstawione na bezpłatnej konferencji SEConference 2010 (http://www.2k10.seconference.pl/), organizowanej na terenie Politechniki Krakowskiej. Tematem mojej prelekcji były luki bezpieczeństwa jądra Windows, a konkretnie potencjalne pułapki i miejsca, w których programista trybu jądra może popełnić błędy odbijające się na bezpieczeństwie całego systemu.

Prezentacja w formacie .pdf: link (943kB)

Ponadto, Gynvael Coldwind miał okazję prowadzić w Krakowie zarówno warsztaty z Reverse-Engineeringu, jak i prelekcję na ten temat – zachęcam do przyjrzenia się materiałom, które na pewno niedługo się pojawią.

Wszelkie uwagi na temat slajdów / samej prezentacji mile widziane!

“Descriptor tables in kernel exploitation” – nowy artykuł

Cześć!

Jakiś czas (kilka tygodni) temu, mieliśmy wspólnie z Gynvaelem Coldwindem okazję przeprowadzić pewne badania, dotyczące zastosowania Globalnej oraz Lokalnej Tabeli Deskryptorów (ang. Global / Local Descriptor Table) w kontekście exploitacji błędów klasy write-what-where condition, na systemach Microsoft Windows, rodzina NT. Owocem naszej pracy jest krótki artykuł w języku angielskim, opisujący poszczególne kroki, podejmowane w celu eskalacji uprawnień przy użyciu wymienionych wyżej struktur. Jak zwykle, dostępny jest przykładowy kod źródłowy podatnego sterownika, oraz exploitów prezentujących działanie poszczególnych technik.

Continue reading ›

Tabela graficznych wywołań systemowych Windows

Każdemu, kto choć raz poważniej zajmował się mechanizmami działania jądra systemu Windows, zdarzyło się zapewne potrzebować pełnej listy numerów wywołań systemowych (wraz z ich definicjami). Tablica tychże wywołań, będąca jedną z najważniejszych części procesu komunikacji pomiędzy aplikacjami użytkownika a jądrem, bardzo często wykorzystywana jest zarówno do czysto praktycznych celów (zakładanie hooków na konkretne syscalle w celu modyfikacji sposobu działania systemu itp.), jak i teoretycznych badaniach czy dyskusjach.

Continue reading ›

Znajdowanie adresów tablicy SSDT

W dniu dzisiejszym chciałbym poruszyć temat odnajdywania adresów nieeksportowanych funkcji jądra (handlerów syscalli) z poziomu trybu użytkownika. Jest to mój własny, autorski pomysł, na który wpadłem podczas rozmów dotyczących sposobów exploitacji podatności sterowników kernel-mode, na platformie Windows 32 (pozdrowienia dla sUN8Hclf!). Pomimo to, nie jestem w stanie zagwarantować, że opisany sposób nie został wymyślony i opisany przez niezależnych autorów kilka miesięcy/lat temu. Jeśli ktoś z czytelników jest świadomy istnienia podobnej publikacji, proszę o kontakt (z przyjemnością udostępnię materiał uzupełniający do tego, o czym dziś piszę) w celu wyjaśnienia sprawy. Przejdźmy więc do sedna…

Continue reading ›

Monitorowanie listy procesów Windows, cz. 1

W pierwszej części posta (patrz Wstrzymywanie procesów w systemie Windows, cz. 1) starałem się omówić znane oraz mniej popularne techniki pozwalające na wstrzymanie działania wątków lub całych procesów działających pod kontrolą systemu Microsoft Windows. Zapowiedziałem również, że w części kolejnej opisany zostanie konkretny sposób modyfikacji programu TaskMgr.exe, rozszerzający go o interesującą nas funkcjonalność. Aby jednak przejść do sedna – zmiany kodu wykonywalnego aplikacji – musimy najpierw zwrócić uwagę na pewien ważny fakt. Mianowicie, zależy nam, by owej modyfikacji ulegała każda działająca w systemie instancja Task Managera. Już w tym momencie możemy obrać więc jedną z trzech możliwych dróg:

Continue reading ›

TraceHook v0.0.2

Jako że okazało się, iż znalazłem ostatnimi dniami chwilę czasu na powrót do rozwoju projektu TraceHook, postanowiłem oznaczyć to co powstało w wyniku kilkugodzinnej sesji kolejnym numerem – 0.0.2. Do tej pory aplikacja miała charakter czysto praktyczny – była opisana pod konkretny problem i środowisko, jednak powoli staram się uzupełniać go o opcje, które mogą okazać się przydatne w kontekście szerszej publiczności.

Continue reading ›

Słów kilka o SecDay 2k9

Po kolejnym miesiącu idle’owania, postanowiłem (jak zwykle?) wziąć się poważniej za rozwój bloga i zacząć regularnie postować. Co z tego wyjdzie – zobaczymy. Aktualny wpis poświęcony jest zakończonej przedwczoraj konferencji SecDay 2009, odbywającej się we Wrocławiu. Jak zdążyłem już wspomnieć tutaj, miałem przyjemność poruszyć IMHO bardzo interesujący temat bootkitów – szczególnie w kontekście działania na maszynach pod kontrolą systemów operacyjnych z rodziny Microsoft Windows NT.

Continue reading ›

Publiczny TraceHook v0.0.1

Dzisiejszy post chciałbym rozpocząć od krótkiej uwagi w stronę wszystich komentujących – pomimo postów pojawiających się w dwóch językach, okazuje się, że komentarze w podobny sposób rozdzielane nie są (i w najbliższym czasie nie będą). W związku z tym zwracam się z prośbą o używanie języka angielskiego zarówno w komentarzach czytanych po polsku, jak i po angielsku.

Continue reading ›

Wstrzymywanie procesów w systemie Windows, cz. 1

Ostatnimi czasy zaStarCraftczął dręczyć mnie dosyć nietypowy problem – gra w StarCrafta była mocno utrudniona ze względu na ilość działających w tle procesów, wliczając w to kilka instancji IDA, wirtualne maszyny oraz najbardziej uciążliwą… przeglądarkę Firefox. Biorąc pod uwagę fakt, że jest to aplikacja dość pamięciożerna (nie mówiąc o CPU) oraz samą ilość otwartych zakładek wahającą się w granicach 150-200, a także procesor, który bardzo szybko się nagrzewa, wspomniana wcześniej gra, pomimo swoich lat, zaczęła ostro przycinać.

Continue reading ›

Nadchodząca konferencja SecDay

Chciałbym z radością poinformować wszystkich czytelników mojego skromnego bloga, że będę miał okazję wystąpić na nadchodzącej konferencji poświęconej ogólno pojętemu bezpieczeństwu komputerowemu – SecDay! ;)

Continue reading ›