Взлом дескрипторов в Windows с помощью Leaked Handle

Leaked Handle атака

Leaked Handle — эта ата­ка нес­коль­ко отли­чает­ся от Handle Duplicating, хотя во мно­гом похожа. Она осно­вана на том, что при­виле­гиро­ван­ный про­цесс запус­кает с откры­тыми и нас­леду­емы­ми дес­крип­торами дру­гой про­цесс, неп­ривиле­гиро­ван­ный, пре­дос­тавляя ему дос­туп к сво­им дес­крип­торам.

Еще по теме: Как убить процесс системы обнаружения атак

Взлом дескрипторов в Windows с помощью Leaked Handle

Итак, пусть про­цесс запущен от лица NT AUTHORITY\SYSTEM. У это­го про­цес­са есть свои дес­крип­торы каких‑то объ­ектов. Затем этот сис­темный про­цесс дер­гает CreateProcess(), ука­зывая bInheritHandles рав­ным TRUE.

Это при­водит к тому, что про­цесс, который запус­кает­ся через CreateProcess(), во‑пер­вых, ста­новит­ся дочер­ним по отно­шению к сис­темно­му (родитель­ско­му) про­цес­су, во‑вто­рых, нас­леду­ет все хен­длы родитель­ско­го про­цес­са. Нап­ример, если родитель­ский про­цесс получил дес­крип­тор на какой‑нибудь дру­гой про­цесс, а затем соз­дал дочер­ний с нас­ледова­нием дес­крип­торов, то дочер­ний про­цесс получит дос­туп к это­му дес­крип­тору.

В резуль­тате у дочер­него про­цес­са с низ­кими при­виле­гиями появ­ляет­ся воз­можность исполь­зовать хен­длы родитель­ско­го про­цес­са.

Как ни стран­но, но здесь исполь­зуют­ся плюс‑минус те же вызовы API. С помощью NtQuerySystemInformation() перечис­ляем хен­длы, обна­ружи­ваем те, которые при­над­лежат нашему родитель­ско­му про­цес­су, пос­ле чего копиру­ем их и экс­плу­ати­руем!

На эту ата­ку чуть боль­ше PoC’ов, но вооб­ще алго­ритм такой же, как и у Handle Duplicating, поэто­му мож­но счи­тать Leaked Handle более час­тным слу­чаем стан­дар­тно­го Handle Duplicating. Вот нес­коль­ко вари­антов PoC:

Пример работы ExploitLeakedHandle
Пример работы ExploitLeakedHandle

Вто­рой и тре­тий наибо­лее инте­рес­ны из‑за воз­можнос­ти авто­мати­чес­кой экс­плу­ата­ции мно­жес­тва раз­личных хен­длов.

В следующей статье я расскажу о технике Handle Hijacking.

ПОЛЕЗНЫЕ ССЫЛКИ:

Дима (Kozhuh)

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

Добавить комментарий