Cum de a face un backdoor pentru Linux, BSD și MacOS
Sposobov punct de sprijin pe greutatea mașinii compromisa. Din modulele de kernel complexe cele mai banale și ușor detectabile (adăugați-vă la baza de utilizatori) pentru care implementează un shell inversă pe calculatorul la distanță. Dar printre ei sunt foarte simplu de implementat și metoda destul de secretos, care este cunoscut pentru a surprinde câțiva oameni. Această modificare a modulului PAM autentificare, koto.puyu folosesc toate-sistem UNIX modern.
Ce este PAM
Pluggable Authentication Module (conectabile Module de autentificare PAM) - un set de API, să pună în aplicare mecanisme de autentificare într-o varietate de aplicații.
Înainte de apariția PAM, să pună în aplicare de autentificare, de exemplu, folosind carduri cheie, dezvoltatorii au trebuit să facă acest cod pentru a sprijini aceste aceeași cheie carduri în fiecare componentă a sistemului responsabil pentru autentificarea utilizatorului. Aceasta este de a construi pe și a trebuit să reconstruiască utilitatea conectării, sshd, precum și orice alt software, care planirovalos adăuga funcționalitate similară.
Odată cu apariția situației PAM este mult mai simplă. Acum, pentru a adăuga la sistemul de autentificare unic protocolul samopisny sale suficient să-l realizeze într-un singur modul PAM. Și toate instrumentele și aplicațiile care se pot ocupa de PAM, a prins și pot fi folosite pentru autentificarea utilizatorului.
În practică, se pare ca acest lucru: utilitar de conectare se referă la PAM, care efectuează toate verificările necesare cu ajutorul acestor module în fișierul de configurare și returnează rezultatul înapoi la conectare de utilitate. Convenabil, nu-i așa? Cu toate acestea, acest podhod conține caracteristici pe care le putem folosi pentru a repara sistemul.
Acesta ar trebui să facă o rezervare mică. Există trei realizarea de bază a PAM:
- Linux-PAM - PAM realizarea de bază a oricărui sistem Linux;
- OpenPAM - utilizat în BSD sisteme și MacOS;
- JPam - punerea în aplicare a PAM pentru aplicații bazate pe Java.
Focus pe unele implementare konkretnoy, nu vom. Funcționalitatea de bază este același peste tot.
Aspecte de fixare în * nix folosind PAM
configurare PAM pentru fiecare aplicație puteți găsi în directorul /etc/pam.d (Linux) sau în fișierul /etc/pam.conf. Exemplu de fișier de configurare pentru utilitarul de conectare din MacOS:
Să vedem cum magia se întâmplă aici.
Fișierul de configurare descrie regulile de validare care trebuie îndeplinite pentru autentificarea utilizatorului cu succes sau de a efectua alte acțiuni (schimbarea parolei, pregătirea mediului de utilizator). Fiecare linie a fișierului de configurare conține o regulă. Verificările sunt efectuate de linie.
De la stânga la dreapta: tipul de modul, control_flag. numele modulului. Pentru noi, în primul rând de modul de autorizare de tip interes, aceste module sunt responsabile pentru autentificare. Control_flag - această proprietate modul. Acesta poate fi:
- necesare (necesar) - În cazul în care modulul reușește, restul lanțului, iar solicitarea este acordată. Dacă modulul returnează un răspuns negativ, cererea este respinsă imediat, și sunt făcute alte controale;
- este necesar (obligatoriu) - la fel ca și condiție: în cazul în care răspunsul este pozitiv, restul auditurilor de lanț. Singura diferență este că, în cazul unui lanț de controale răspuns negativ continuă să curgă, cu toate acestea, aceasta respinge cererea;
- suficiente (suficient) - satisface cererea de taxe în cazul în care nici unul dintre celelalte audituri efectuate anterior al lanțului nu reușește. În cazul în care modulul de încărcare ECLI este negativ, rezultatul este ignorat și a lucrat printr-un lanț de controale;
- opțional (neobyazatelny) - modulul este executat, dar rezultatul este ignorat.
Scrierea propriul modul de backdoor-
PAM ne permite să se conecteze propriile lor de autentificare moduli. Prin urmare, putem crea un modul cu „magic“ parola și asigurați-vă că sistemul este acceptat ca standard de parole de utilizator, și propriul nostru. În cazul unei parole incorecte este introdus, vom vedea că este de așteptat eroare de autentificare. Nu este o opțiune de rău.
Deci, codul (nu uitați să înlocuiască magic parola pe dvs. „magic“ parola)
În unele Linux-sistem de autentificare setările pot fi livrate în mai multe fișiere: comune-auth, comună cu parolă, comună de sesiune, și apoi conectați la fișierele de configurare de instrumente specifice pe @include. ar trebui să fie luate în considerare acest punct.
Construim un backdoor într-un modul existent
Prin editarea de configurare PAM, ai putea vedea modulul pam_unix.so. Acest modul este responsabil pentru autentificarea utilizatorilor cu standardul pomoschyu pentru parole de baze de date bazate pe UNIX sisteme / etc / passwd. Acesta este utilizat de mai multe utilități, inclusiv su, datele de conectare, sshd și alte programe (de exemplu, SecureFTPd).
Din moment ce PAM - este încă open source și avem acces la codul sursă atât de demon și componentele sale standard, putem încorpora un backdoor direct în modulul.
Pentru a face modificările necesare, descărcați codul sursă de PAM:
Colecta parolele utilizatorilorSe înțelege că toate elementele de mai sus sunt cel mai bun mod de a rămâne în cât mai mult posibil - pam_unix.so de înlocuire. Schimbarea de configurare este posibil, dar arde rapid în jos orice administrator cu capul pe umeri. Același lucru se poate spune despre un modul rău intenționat.
Dar pam_unix.so pot sta mai mult timp. Dar nu la fel de mult ca v-ar dori. În cazul în care administratorul utilizează sistemul de monitorizare a integrității sictemy fișier și cel puțin ocazional, verifică hash fișierelor critice și fișiere de configurare, acesta zapodozpit rapid greșit. Da, și când faceți upgrade modulul PAM pachet va comoara suprascrisă.
[Total voturi: 13 Media: 3.7 / 5]
Ați putea fi, de asemenea, interesat în:
Virus pentru Linux. A învăța să scrie cod coajă.