prietenul tau uzurparea identității

prietenul tau uzurparea identității

Imaginați-vă situația. Programul tău nu rulează ca root, dar aveți parola de administrator (cum să-l - a se vedea articolul meu în intruziunile porfir). Nu ați priviligii că aveți nevoie, și acum crezi, ce să faci cu ei? Răspunsul este uzurparea identității.

Să ne uităm la definiția personificare în MSDN:

- Uzurparea identității - este abilitatea de a folosi un alt fir de informații de siguranță decât cel care este disponibil pentru procesul care deține firul.

Există mai multe tipuri de uzurparea identității, de exemplu, DDE, conducta de nume, RPC-personificare și așa mai departe. De obicei, uzurparea identității este utilizat atunci când serverul are nevoie de ceva timp pentru a acționa ca un client. Dar vom folosi această metodă pentru a obține drepturile noastre de administrator de comerț și de a stabili un proces care are astfel de drepturi.

Scenariu de utilizare personificare ar putea arata astfel: virusul este lansat sub drepturi de administrator și setați troian pentru a obține privilegii de administrator. Apoi, atunci când rulează sub un utilizator normal, se efectuează lucrări de personificare și ca în cazul în care a fost început de către un administrator.

În primul rând, vrem să știm dacă procesul rulează ca root sau nu (administrator de cheltuieli inutile uzurparea identității, dacă sunteți deja ele sunt :)). Acest mic fragment de cod pe care îl poate ajuta.

.Uzurparea identității rulează fir.

Să presupunem că avem o conectare „adminstrator“ cu parola „nemernicul“. În primul rând, trebuie să te autentifici acestui utilizator. Pentru a face acest lucru, vom folosi funcția LogonUser, care este exportat din advpi32.dll. Să aruncăm o privire la prototipul:

În phToken obținem mânere jetoane, pe care o vom avea nevoie în viitor. Start sesiune de service este nul, adică, implicit. Tastați începutul sesiunii va LOGON32_LOGON_INTERACTIVE, parola și numele de utilizator sunt evidente. Domeniul este egal cu zero. Acum, să ne uităm la codul.

Dacă totul a mers bine, dar acum avem o personificare jeton. Acum vom folosi funcția ImpersonateLoggedOnUser care anunța în cele din urmă comerțul nostru ca impersonitsirovanny. Funcția are un argument - token-ul.

Acum, comerțul nostru rula ca root. Putem face ce vrem, și apoi, când am terminat cu asta și doresc să-și recapete înapoi vechea lege, un simplu apel RevertToSelf funcția.

.Crearea unui nou proces în contextul de securitate al impersonitsirovannom.

În primul rând, trebuie să vă conectați, la fel ca în cazul precedent. Doar utilizați același cod ca și în secțiunea - Datele de conectare la sistem -. Vom folosi funcția CreateProcessAsUser, care este exportat din advapi32.dll. Această funcție este aproape la fel ca CreateProcess, dar este nevoie de mai mult de un argument - Toker.

Acest fragment de cod va porni un shell care va rula în contextul de securitate al unui administrator.

După cum puteți vedea, personificare - este un lucru foarte puternic. Singura legătură slabă - este o parolă. Dar dacă ai găsi o modalitate bună de a obține parole (de exemplu, troieni), atunci acesta va fi cel mai bun prieten :).