Tehnici simple de hacking. Bazele pirateriei. Verificarea autenticității și piratarea securității de bază. Găsiți un loc de muncă potrivit

Acest tutorial va acoperi următoarele două subiecte: instrumente de introducere și hacker.

Introducere
Buna cititor. Acum un an am venit în HZ și mi-am dorit foarte mult să devin hacker. Nimeni nu mi-a putut explica multe lucruri simple, am văzut multe lucruri cu experiență, dar literalmente câteva m-au ajutat să intru pe calea unui hacker. Și le pot numi: PinkPanther, DrWeb, R_a_ID_e_R. M-am studiat pe mine însămi, fără să sper în ajutorul nimănui, încercând să descriu cunoștințele mele în articole pentru începători. Așa că timpul a trecut, generațiile s-au schimbat ... Nu vreau să complic viața Newbes, le-am tratat întotdeauna bine și cred că noii veniți au dreptul să știe. Oricine spune că greșesc, spune că „lasă-i să-și dea seama, doar așa vor crește”, și drept și greșit. Da, încăpățânatul își va atinge scopul, dar persoana care nu are nevoie de acest lucru pur și simplu nu va citi acest articol. Pentru cei care încă chinuiesc motoarele de căutare cu întrebări precum „cum să devii hacker”, am decis să dedic o serie de lecții și poate o carte. Vei merge de la lammer la hacker, vei învăța tehnologii de programare, hacking și multe altele. Urmați această cale conform lecțiilor mele și totul va fi OK. Aceasta este prima lecție despre elementele de bază ale hackingului, este destul de atrăgătoare. Amintiți-vă, toate acestea sunt doar jucării, iar hacking-ul real va veni mai târziu. Și în această etapă trebuie să decideți dacă aveți nevoie sau nu. Treptat, vom studia tehnologiile de rețea, veți afla cum funcționează internetul, ce puteți găsi interesant în el, ce puteți și ce nu. Bun venit in lumea noastra!
Instrumente hacker
În această secțiune, voi descrie trusa de gentleman a hackerului. Vom folosi din când în când aceste instrumente în viitor.

Forta bruta
- Scanner port
- Scanner de securitate
- Joyner
- Mail Bomber
- Hackează parolele Windows
- Vizualizați parolele
- troian
- KeyLogger
- IP ascuns (proxy / sox)
- Spoofing cereri HTTP

Să începem în ordine:

[Forta bruta]. Bruteforce (tradus din engleză "brute force") este utilizat pentru a forța parolele brute de la e-mail și serverele ftp. Există multe tipuri de programe de forță brută, dar capacitățile lor sunt similare. Când utilizați astfel de programe pe conexiuni dial-up, unde viteza nu depășește 56 Kbps, selecția poate fi lungă și obositoare, în timp ce utilizați aceeași internet de mare viteză(ADSL, fibră, satelit etc.) viteza de selecție crește, dar apoi se consumă mult trafic. Cea mai bună opțiune este selectarea dicționarului. Crackerul alcătuiește un document text din parolele posibile ale victimei, programul se conectează la serverul specificat pentru acesta și se uită pe rând la parolele din fișier. Dacă parolele pentru o cutie poștală au forță brută, trebuie să îi spuneți forței brute serverului mesajele primite ale victimei, de exemplu, dacă rupem săpunul, atunci cel mai adesea pop.pupkin.ru va fi serverul. Dacă nu rupem e-mailul, ci site-ul pupkin.ru, atunci trebuie să specificăm serverul ftp, acesta va fi ftp.pupkin.ru. Forțarea brută are o mulțime de setări utile, de exemplu, dacă ați observat că prietenul dvs. introduce o parolă de 5 caractere, iar primul său caracter este L, atunci trebuie să utilizați potrivirea cu mască. Masca va arăta astfel: L ####. am adus descriere generala, și pentru mai multe cunoștință apropiată Vă sfătuiesc să descărcați wwwHack.

[Port Scanner]
Deoarece acest tutorial este o introducere, tehnologii de rețea Te voi tortura altă dată, dar tot trebuie să știi.
Scannerele de porturi verifică o anumită gamă de adrese IP pentru un anumit port deschis. Dacă portul este deschis, acest IP este adăugat la listă.
Unde se aplică? Creatorii așa-numiților „troieni” includ uneori un scanner de porturi în creațiile lor. Ideea este că serverul
Când troianul intră în mașină, acesta deschide un port din sistem prin care primește comenzile clientului. Pentru cei care nu au ghicit încă, voi explica: Știind,
ce port se deschide troianul nostru, „întrebăm fiecare computer din raza” dacă acest port este deschis și, dacă da, atunci pe această mașină
trio-ul nostru stă - puteți conecta și controla în siguranță acest computer. Recomand să folosiți Essentional Net Tools așa cum este
un scaner bun cu un set suplimentar de funcții. Nu este doar un scaner - rețineți. În timpul existenței sale, a devenit
legendar și nu și-a pierdut încă relevanța. Se plătește. Fratele meu a cumpărat și mi-a dat un serial din versiunea 1.1:
Nume: Jan Klaassen
S / N: 2957888021

[Scanner de securitate]
Există două tipuri de pagini pe Internet: statice (HTML) și dinamice (PHP, ASP, CGI). Dacă extensia paginii este htm, html, înseamnă că conținutul paginii nu depinde de utilizator și este întotdeauna neschimbat - „static”. Paginile dinamice procesează datele primite de la utilizator, aproximativ vorbind, știu cum să gândească. Bineînțeles, nu se poate pune problema oricăror găuri în paginile html, găurile sunt doar în scripturile paginilor dinamice. Cele mai frecvente vulnerabilități sunt XSS. DrWeb le-a descris bine în articolul „XSS pentru începători”, așa că nu voi explica esența lor. Pentru a automatiza căutarea vulnerabilităților XSS (și nu numai), hackerii folosesc scanere de securitate. Recomand XSpider.

[Joyner] - (English Join - pentru a vă conecta, a uni).
Joyner este un program care vă permite să combinați mai multe fișiere într-unul singur, cu posibilitatea de a lipi o pictogramă arbitrară în fișierul rezultat. Astfel, folosind un joyer, un hacker poate lipi un cal troian cu o utilitate utilă și îl poate împinge către victimă. Că, la rândul său, deschiderea fișierului, consideră că lansează propriul program, deși de fapt sunt lansate două dintre ele (trei, patru etc.), troianul pur și simplu nu se dă singur. Dezavantajul acestei abordări constă în faptul că majoritatea bucuroșilor sunt detectați de software-ul antivirus.


Acest tip de program este conceput pentru a „bombarda” e-mailurile, adică. aruncând un număr imens de scrisori. Bombardierele poștale sunt utilizate pe scară largă de către spammeri. Personal, nu sunt spammer, dar folosesc Ganja Spammer pentru a falsifica adresa expeditorului. Foarte la îndemână când faci phishing. Vă voi spune ce este mai târziu.

[Parole Windows]
Respect produsele InsidePro și vă sfătuiesc să le descărcați. Acestea sunt: ​​PasswordsPro, MD5Inside, PWLInside, SAMInside. Scopul programelor este deja stabilit în numele lor, dar despre fiecare voi vorbi separat.
SAMinside este un program pentru cracarea fișierului SAM. În Windows 2k / XP, parolele utilizatorului sunt stocate în directorul windowssystem32config și sunt denumite în consecință. SAM și SYSTEM, fără extensie. Pentru a le copia pentru decriptare, va trebui să utilizați dos sau un sistem de operare alternativ, cum ar fi Windows PE. Deci, parolele sunt stocate criptate și, pentru a le decripta, trebuie să aveți copii ale acestor fișiere. Trebuie să le punctăm în SAMinside, să setăm o metodă de forță brută și să așteptăm.
PWLinside - în mod similar, numai acest lucru este valabil pentru Windows 95/98, unde parolele (inclusiv pentru Internet) sunt stocate în directorul Windows în fișiere cu extensia * .PWL.
MD5inside - Decriptează hash-ul MD5 utilizat în multe sisteme de autentificare. Decriptând hash-ul, puteți obține parola. Apropo, în forumurile IPB, aproximativ acest hash este stocat în cookie-uri.
PasswordsPro este un instrument puternic pentru lucrul cu parole, are toate funcțiile MD5inside, generare hash, poate afișa și parole ascunse în spatele asteriscurilor, pentru aceasta trebuie să activați corespondentul. mod și mutați șoarecii în câmpul de parolă.

[Vizualizați parolele]
Dacă sunteți interesat să știți că un prieten vă scrie logodnicei dvs. prin e-mail, trebuie doar să veniți la el acasă și să-l trimiteți să facă cafea, iar în acest moment scoatem o dischetă și rulăm un program care prezintă toate permisele sale, inclusiv săpun. Magie? Nu! Lucrul este că, pentru comoditate, pentru a vă salva de buzz de fiecare dată când vă conectați la site, în ICQ etc. introduceți o parolă, browserele / ICQ / mailers o rețin. Pentru asta sunt pedepsiți). Există multe programe care arată tot felul de parole salvate. Pentru a vedea ce au salvat IE și Outgluk Express acolo, puteți utiliza programul PSPV. Pentru TheBat - TheBatPasswordViewer, pentru ICQ / Trillian / Miranda etc. - Recuperare avansată a parolei Instant Messenger, prescurtată ca AIMPR.

[Cal troian]
Așa că am ajuns la cele mai interesante). Această subspecie de animale se numește așa deoarece acționează ca celebrul cal troian. Pătrunzând în sistemul utilizatorului, el stăpânește acolo și lucrează pentru proprietar. Ce vreau să spun? Spre deosebire de un virus, un troian este inofensiv atunci când sunteți offline. Este activat atunci când creatorul său îi trimite comenzi prin LAN sau Internet, de exemplu, vă poate trimite parolele proprietarului la comandă, și mult mai interesant, permite, de asemenea, crackerului să acceseze cu crawlere fișierele și registrul dvs., în general, să înțeleagă esența, dar au posibilitățile ca fiecare să fie diferit. Cei mai populari troieni sunt ALB, NetBus, LamerDeath. Dar abia acum au ars cu toții de mult timp. Și propria mea se numește LamerHack, puteți căuta pe site-ul meu și nu se declanșează, dar acum există încă o versiune beta slabă disponibilă, în plus, non-arderea este compensată de dimensiunea serverului.


Keylogger este în rusă " cheylogger". El îți prinde toate apăsările de tastă și le scrie într-un fișier, după care le poate trimite creatorului său sau le poate salva la șurub. Este util să le pui la un prieten - el va scrie tot ceea ce ea îi scrie cui. scrie pe ICQ.


Dacă faceți ceva care nu este în întregime legal, este puțin probabil să fiți mulțumit de faptul că adresa dvs. IP va rămâne pe serverul pe care l-ați piratat, prin care nu vă puteți da seama ce să faceți. Și ce atunci? Există așa ceva numit server proxy sau sox. Nu voi intra în subtilități și vă voi explica cum diferă - în acest stadiu nu contează pentru dvs. Linia de jos este aceeași - adresa dvs. IP este înlocuită cu adresa serverului proxy. Aceasta este utilizată atunci când există unele restricții privind adresa IP, de exemplu, cantitatea de muzică de descărcat sau un număr limitat de încercări de a înregistra ICQ. Și pentru primul caz, trebuie să utilizați proxy-uri anonime sau de elită. Dezavantajul lor este inconsecvența. Se schimbă la fiecare n ore. Există întotdeauna o listă nouă de proxy. În calitate de program proxy, vă recomand.

[Spoofing pachete HTTP]
De asemenea, voi descrie acest lucru mai detaliat în lecțiile viitoare. Toate informațiile de pe Web vor fi transferate așa-numitele. „pachete”. La fel ca pachetele de informații clasificate în război, pachetele HTTP au o umplutură și o inscripție: către / unde etc. , cu singura diferență că ACEASTĂ informație nu este considerată deosebit de secretă, dar este de interes. Antetul pachetului conține informații despre browser, de unde am venit și care scripturi ce date sunt transmise. După cum ați înțeles, vom vorbi despre înlocuirea acestor date. Se pune întrebarea: "De ce?" ... Și apoi. Să considerăm un exemplu mai bun. În Dnepropetrovsk avem un foarte furnizor de internet popular„Alkar Teleport”. Acesta conține mai multe site-uri cu resurse interesante care sunt disponibile doar utilizatorilor săi. Când intră din alți provovitori, ei trimit nafig. Dar cum verifică aceste site-uri de unde am venit? Prin IP. Dacă, de exemplu, IP cu formularul 212.15.x.x, atunci accesul este permis. Și dacă înlocuim ținutul (de unde am venit) cu adresa serverului în sine, atunci, cel mai probabil, nu ne va interzice nimic. Se folosește programul InetCrack, descărcați-l.

Desigur, nu toate programele au fost descrise în această secțiune, ci cele principale.

Vladislav Novik aka VladUha :: HackZona.Ru

Roman Shirokiy

Timp de citire: 5 minute

A A

Mulți utilizatori de internet sunt interesați de modul de a deveni hacker de la zero și de unde să înceapă. De obicei, cunoscătorii acestui hobby sunt băieți tineri, a căror vârstă medie este de 16-20 de ani.

Tinerii sunt de părere că un hacker este un cracker de calculator, dar aceasta este o concepție greșită. De aceea, înainte de a stăpâni această profesie, vă recomand să vă dați seama ce este un hacker.

Un hacker este un programator de top care lucrează cu un produs gata făcut softwareși cu ajutorul limbajelor de programare își realizează imaginația.

Pentru unii oameni, munca este un mod de viață. Astfel de înclinații sunt cel mai adesea stabilite în copilărie. Într-o măsură mai mare, acest lucru se aplică în mod special hackerilor profesioniști. Aflați mai jos cum să deveniți unul dintre ei.

  • Stăpâniți noțiunile de bază ale programării. Această abilitate vă va ajuta să vă atingeți obiectivul. Potrivit profesioniștilor, este cu adevărat posibil să studiezi singuri baza de date acasă, dacă dedici cât mai mult timp studierii materialelor, limbajelor de programare și tehnologiei computerelor.
  • Bazele programării au o structură și principii similare. Va trebui să înveți o serie de limbaje de programare pe de rost. Acestea includ PHP, MySQL, Java și altele.
  • Pe lângă limbajele de programare, asigurați-vă că vă familiarizați cu sistemele de operare care, la prima vedere, par nepretențioase. Acestea sunt platforme UNIX și Linux. Hackerii reali nu funcționează cu firmware-ul Windows.
  • Hackerii își propun să muncă corectăîntr-o rețea care implică mult mai mult decât să discute cu prietenii. Dacă vrei cu adevărat să devii un adevărat as, va trebui să câștigi o mulțime de cunoștințe și doar Internetul te va ajuta. Aflați cum funcționează webul global și aflați de ce clientul trimite servere HTTP, cum interacționează browserul cu serverul și așa mai departe. Fără aceste cunoștințe, nu va trebui să vă bazați pe un rezultat bun.
  • Luați un pachet software. Vă voi avertiza imediat că alegerea programelor instrumentale potrivite nu este ușoară, dar dorința puternică va simplifica sarcina. Găsiți câteva compilatoare și ansambluri pentru a începe. Primele soluții traduc codul programului într-un program echivalent. A doua opțiune este software-ul care convertește programele în instrucțiuni ale mașinii.
  • Nu poți face fără bine editor de text permițându-vă să creați și să modificați fișiere text, vizualizați, imprimați și găsiți informații despre text.
  • Veți avea nevoie de un editor specializat în care să creați și să modificați coduri sursă programe. O astfel de soluție ar putea fi un program separat sau parte a unui mediu de dezvoltare.

Ai prima idee despre cum să devii hacker. Dacă intenționați să vă construiți o carieră, nu este rău să învățați mai multe limbi străine. Experții recomandă să acorde o atenție specială limbii engleze, deoarece este utilizată foarte mult pe internet.

Instrucțiuni video

Rezumând, observ că perseverența, împreună cu înțelegerea obiectivului și abilitatea de a implementa idei, vă vor permite să deveniți un hacker de succes. Este adevărat, este mai bine să lucrați în cadrul legii, deoarece hackingul rău intenționat este o infracțiune.

Cum să devii hacker de la zero


Meseria de hacker profesionist este foarte interesantă. Site-uri de piratare, furt de informații importante, furt de bani, penetrare, dezvăluirea secretelor. Posibilitățile unui adevărat hacker sunt nelimitate. În ceea ce privește numele său, este ascuns cu grijă.

Tinerii sunt atrași de activități viguroase de a fura informații și de a pirata site-urile. Însă, nu iau în considerare faptul că astfel de acțiuni trebuie deseori răspunse în fața legii.

Munca nu implică întotdeauna activități ilegale, iar acest lucru este un fapt real. Dacă doriți să lucrați în domeniul computerului, serviciile dvs. vor fi utilizate de către companii mari... Nu este surprinzător că un hacker este un specialist IT de top.

După cum arată practica, corporațiile și băncile mari doresc să vadă un hacker profesionist în statul lor. Organizațiile protejează informațiile sensibile cu tehnologia calculatoarelor, iar un specialist este capabil să detecteze lacune în protecție și să prevină furtul de date.

Numai dezvoltarea de sine va ajuta la găsirea unei profesii. Îți voi împărtăși câteva sfaturi și, cu ajutorul lor, te vei apropia de visul tău, poate, și-l vei realiza.

Plan de acțiune pas cu pas

  1. Abilitati de baza ... În primul rând, cunoașteți Internetul, aflați semnificația diferitelor antete, aflați o mulțime de concepte de bază și înțelegeți modul în care browserele interacționează cu serverele.
  2. Limbaje de programare ... Acordați o atenție deosebită învățării limbajelor de programare. Cu ajutorul tutorialelor, care abundă pe Internet, aflați cum să scrieți programe simple. Cu puțin efort, veți stăpâni abilitățile de programare și, în viitor, va exista posibilitatea de a le îmbunătăți.
  3. Dacă visezi să lucrezi ca hacker, acordă o atenție specială învățării unui limbaj de marcare hipertext numit HTML.
  4. Engleză... Cunoașterea este indispensabilă de limba engleză... Această limbă este utilizată de toate serviciile mondiale. Prin urmare, deținerea acestuia este obligatorie.

Cele patru puncte subliniate mai sus vă vor ajuta să stăpâniți abilitățile de bază. După ce ați făcut față sarcinii, continuați cu studiul problemelor profesionale și a complexităților hacking-ului. Din fericire, Internetul este plin de informații legate de subiectul de astăzi.

  • Prețuiește-ți timpul și colegii ... Asigurați-vă că împărtășiți realizările dvs. cu „frații în brațe”.
  • Respectă Codul... Hackerii au propriul cod care interzice acordarea sau preluarea în schimb. Dacă ați reușit să hackerați programul altcuiva, informați-l pe proprietar, astfel încât acesta să poată lucra la protejarea ideii sale.
  • Elimină gândurile formulate ... Un hacker nu trebuie să gândească într-un mod formulic. El trebuie să poată găsi răspunsuri rapid și întotdeauna.
  • Cere un sfat ... Dacă ceva nu este clar, nu ezitați să cereți sfaturi pe forumul tematic. Dacă ați rezolvat problema dvs., spuneți colegilor dvs. despre algoritmul soluției. Vor face același lucru în viitor.
  • Urmați tehnica ... Un computer este un organism viu și un prieten apropiat al unui specialist IT. De aceea tehnologia calculatoarelor, sistemele staționare, laptop sau netbook necesită îngrijire.

Atingeți-vă obiectivul rapid dacă echipa dvs. de aliați este alimentată cu perseverență și timp liber. În fiecare zi trebuie să stăpânești informație nouă care va aduce experiență.

Sfaturi video

Este mai bine să uitați de jocurile pe computer. Petreceți-vă timpul liber pentru a dobândi cunoștințe care vă vor fi utile în viitor. Asigurați-vă că citiți Codul penal pentru a evita o situație neplăcută.

Cum să devii un hacker de unde să începi


Continuând subiectul articolului de astăzi, să aruncăm o privire asupra principalelor etape ale antrenamentului pentru a afla în detaliu cum să începeți pentru a deveni hacker.

În filmele de lung metraj, hackerii intră în sisteme de plăți, site-uri guvernamentale, organizații mari și facilități industriale. Scopul principal al hacks-ului este informații importante sau bani. În realitate, nu totul este atât de simplu.

Un hacker este un programator obișnuit, care este capabil să spargă codul programului. Cu toate acestea, el are și alte obiective. El nu caută să obțină date importante și să le vândă pe bani mari pe piața neagră. În timpul hacks, un specialist se familiarizează cu principiul de funcționare al unui anumit program, examinează codul pentru a găsi găuri, pentru a crea un program analog sau similar.

Mulți consideră că hackerii sunt criminali care hackează și distrug, așa că există „specialiști” care nu sunt hackeri, dar încearcă să ducă un stil de viață similar. Chiar și un începător poate dăuna unui site web sau unui computer dacă folosește script rău intenționat, care se deghizează în program și este postat pe site-uri.

În viața reală, întâlnirea cu un profesionist real în acest domeniu este problematică. Un hacker experimentat nu vă va spune niciodată ce face. Lucrează singur pentru că știe că astfel de activități sunt pedepsite.

  1. Fii răbdător. Realizați că stăpânirea abilităților va dura ani.
  2. Acordați o atenție deosebită învățării matematicii aplicate. Crede-mă, nu vei putea deveni un hacker fără cunoștințe matematice.
  3. Asigurați-vă că achiziționați cărți despre funcționarea programelor, platformelor software, sistemelor de securitate.
  4. Învață să scrii cod și să creezi sisteme criptate fără ajutor extern. Lucrul fără aceste abilități este imposibil.
  5. Citiți reviste tematice, vizitați site-uri și forumuri dedicate hacking-ului. Sursele de informații vor ajuta la auto-dezvoltare.
  6. Ține un jurnal. Înregistrați statistici privind succesele și realizările. În timp, veți observa că abilitățile s-au îmbunătățit.

Pregătește-te pentru o experiență lungă și solicitantă de învățare acasă. Aceasta este singura modalitate de a cuceri vârfurile și de a sparge stereotipurile. Amintiți-vă, trebuie să acționați în conformitate cu legea.

Video

Sper că povestea te va ajuta și tu, după ce te-ai familiarizat cu materialul, vei obține rapid succesul.

Nu uitați că este o infracțiune sancționabilă crearea sau modificarea programelor care duc la copierea ilegală, blocarea sau distrugerea informațiilor importante. Pentru astfel de acțiuni, aceștia pot fi închiși 3 ani și amendați cu o sumă ordonată.

Dacă acțiunile produc consecințe grave, pedeapsa va fi mai severă. Prin urmare, înainte de a începe să lucrați, asigurați-vă că vă gândiți dacă puteți rezista tentației și nu treceți linia legii. Mult succes și ne vedem în curând!

Abilități în securitatea informațiilor sunt acum la mare căutare. Întrucât oamenii se străduiesc să creeze o aplicație din toate și să conecteze chiar și cele mai primitive dispozitive la Internet, cererea va crește. Așadar, nu este de mirare că toată lumea vrea astăzi să învețe cum să hack.

Cu toate acestea, pe multe forumuri, puteți găsi începători care nu știu de unde să înceapă să învețe hacking-ul sau de unde să-l practice. Mai ales pentru ei, vă prezentăm o selecție de site-uri de unde puteți dobândi și îmbunătăți abilitățile de hacking.

Aproximativ. transl. Site-urile de mai jos sunt disponibile numai în limba engleză.

1.CTF365

Utilizatorii CTF365 își instalează și protejează propriile servere în timp ce atacă serverele altor utilizatori. CTF365 este potrivit pentru profesioniștii din domeniul securității care doresc să dobândească abilități ofensatoare sau administratori de sistem interesați să-și îmbunătățească abilitățile defensive. Dacă sunteți nou la infosec, vă puteți înregistra gratuit cont pentru începători și să o cunoască prin câteva servere vulnerabile preconfigurate.

2. PESTE

OverTheWire este potrivit pentru oricine dorește să studieze teoria securității informațiilor și să o aplice în practică, indiferent de experiența lor. Începătorii ar trebui să înceapă cu provocările la nivel de Bandit, deoarece sunt necesare pentru a continua alte provocări.

3. HACKING-LAB

Hacking-Labs oferă provocări CTF pentru provocarea europeană de securitate cibernetică, dar găzduiesc și competiții regulate pe platforma lor la care oricine poate participa. Doar înregistrați-vă, configurați un VPN și alegeți o sarcină pe placul dvs.

4.PWNABLE.KR

Această platformă se concentrează pe sarcini CTF de tip pwn, a căror esență este de a găsi, citi și trimite fișierele de semnalizare care se află în fiecare sarcină. Pentru a accesa conținutul fișierelor, trebuie să utilizați abilități de programare, inginerie inversă sau exploatare a vulnerabilității înainte de a putea trimite o soluție.

Problemele sunt împărțite în 4 niveluri de dificultate: ușor - pentru începători, intermediar, dificil și hardcore, unde sarcinile necesită abordări non-standard pentru a le rezolva.

5.

IO este un joc de război de la creatorii netgarage.org, o comunitate în care oamenii cu aceeași părere își împărtășesc cunoștințele de securitate, inteligență artificială, VR și multe altele. Au fost create 3 versiuni ale jocului de luptă: IO, IO64 și IOarm, dintre toate IO este cea mai matură. Conectați-vă la IO prin SSH și puteți începe să lucrați.

6. SMASHTHESTACK

SmashTheStack este format din 7 jocuri de luptă diferite: Amateria, Apfel (în prezent offline), Blackbox, Blowfish, CTF (în prezent offline), Logic și Tux. Fiecare joc de luptă conține multe sarcini, de la vulnerabilități standard la sarcini de inginerie inversă.

7. MICROCORUPȚIE

Microcorupția este un CTF în care trebuie să inversați dispozitivele de blocare electronice fictive ale Lockitall. Dispozitivele Lockitall protejează obligațiunile deținute în depozitele deținute de compania fictivă Cy Yombinator. Pe drumul către furtul de obligațiuni, veți învăța limbajul asamblării, veți învăța cum să utilizați depanatorul, veți trece prin cod, veți seta puncte de întrerupere și veți examina memoria.

8. REVERSING.KR

Aici puteți găsi 26 de provocări pentru a vă testa abilitățile de hacking și inginerie inversă. Site-ul nu a fost actualizat de la sfârșitul anului 2012, dar sarcinile disponibile sunt încă resurse valoroase de învățare.

9. HACK ACEST SITE

Hack This Site este un site gratuit de jocuri de luptă pentru a vă testa și îmbunătăți abilitățile de hacking. Avem o mulțime de sarcini de hacking în mai multe categorii, inclusiv sarcini de bază, sarcini realiste, aplicații, programare, phreaking, JavaScript, criminalistică, steganografie etc. De asemenea, site-ul se mândrește cu o comunitate activă, cu un director mare de articole despre hacker și un forum pentru discutarea problemelor legate de securitate. Recent a fost anunțat că baza de cod a site-ului va fi revizuită, așa că se pot aștepta îmbunătățiri mari în lunile următoare.

10. W3CHALLS

W3Challs este o platformă de învățare multi-tasking într-o varietate de categorii, inclusiv hacking, jocuri de luptă, criminalistică, criptografie, steganografie și programare. Scopul platformei este de a oferi provocări realiste. În funcție de complexitatea problemei rezolvate, obțineți puncte. Există, de asemenea, un forum unde puteți discuta și rezolva probleme cu alți membri.

11.PWN0

Site-ul pwn0 este un VPN în care se întâmplă aproape orice. Luptați împotriva roboților sau utilizatorilor și câștigați puncte prin obținerea controlului asupra altor sisteme.

12. EXERCITII DE EXPLOATARE

Exercițiile Exploit oferă multe mașini virtuale, documentație și sarcini care sunt utile la învățarea escaladării privilegiilor, analizei vulnerabilității, dezvoltarea exploatării, depanare, inginerie inversă etc.

13. ECHIPA RINGZER0 ONLINE CTF

Echipa RingZer0 Online CTF oferă peste 200 de provocări care vă vor permite să vă testați abilitățile de hacking în mai multe domenii - de la criptografie, analiză malware la injecție SQL, shellcoding și multe altele. După ce ați găsit o soluție la problemă, o puteți trimite echipei RingZer0. Dacă decizia dvs. este luată, veți primi RingZer0Gold, care poate fi schimbat cu indicii în timp ce rezolvați problemele.

14. HACKBOUND HACKERS

Pe Hellbound Hackers puteți găsi sarcini tradiționale cu exploit-uri și astfel de formate de sarcini care nu sunt disponibile în alte resurse. De exemplu, corecția aplicației și sarcini limitate în timp. În activitățile de corecție, vi se oferă o bucată de cod vulnerabilă și trebuie să propuneți o soluție pentru această vulnerabilitate.

15. TRY2HACK

Try2Hack este unul dintre cele mai vechi site-uri pentru îmbunătățirea abilităților de hacking și este încă pe linia de plutire. El oferă mai multe provocări pentru a vă distra. Sarcinile sunt variate și devin mai dificile pe măsură ce progresați.

16. HACK.ME

Hack.me este o colecție largă de aplicații web vulnerabile pentru punerea în practică a abilităților dvs. de hacking. Toate aplicațiile sunt furnizate de comunitate și fiecare poate fi rulată din mers într-o cutie de nisip sigură, izolată.

17. HACKTHIS !!

HackThis !! constă din peste 50 de sarcini de diferite niveluri, pentru rezolvarea fiecăruia dintre care obțineți un anumit număr de puncte în funcție de nivelul de dificultate. Similar cu Hack acest site, HackThis !! Există, de asemenea, o comunitate plină de viață, numeroase articole și știri despre hacking și un forum unde puteți discuta despre sarcinile și problemele legate de securitate.

18. GRUPUL ENIGMA

Grupul Enigma conține peste 300 de sarcini, cu accent pe primele 10 exploatări OWASP. Site-ul are aproape 48.000 de membri activi și găzduiește concursuri săptămânale CTF, precum și concursuri săptămânale și lunare.

19. GOOGLE GRUYERE

Google Gruyere vă arată cum să exploatați vulnerabilitățile din aplicațiile web și cum să vă protejați împotriva acestora. Veți putea face teste de penetrare reale și puteți hack de fapt o aplicație reală folosind atacuri precum XSS și XSRF.

20. JOCUL HACKS

Game of Hacks vă arată un set de fragmente de cod într-un test cu mai multe opțiuni și trebuie să identificați vulnerabilitatea corectă în cod. Acest site se evidențiază puțin din această listă, dar este totuși un joc bun pentru identificarea vulnerabilităților.

21. RĂDĂNI-MĂ

Root Me oferă peste 200 de provocări și peste 50 de medii virtuale, permițându-vă să vă exersați abilitățile de hacking într-o varietate de scenarii. Acesta este cu siguranță unul dintre cele mai bune site-uri de pe această listă.

22.CTFTIME

În timp ce CTFtime nu este un site de hacking ca celelalte din această listă, este o resursă excelentă pentru a fi la curent cu competițiile CTF care se desfășoară în întreaga lume. Prin urmare, dacă sunteți interesat să vă alăturați unei echipe CTF sau să participați la o competiție, ar trebui să aruncați o privire aici.

Acum 15 ani, epopeea lui Chris Kaspersky The Fundamentals of Hacking a fost o carte de referință pentru fiecare cercetător în devenire din domeniu. Securitatea calculatorului... dar timpul curge, iar cunoștințele postate de Chris nu mai sunt relevante. Editorii Hacker au încercat să actualizeze această voluminoasă lucrare și să o mute din zilele Windows 2000 și Visual Studio 6.0 la Windows Times 10 și Visual Studio 2017.

Verificare autenticitate

Verificarea autenticității (din limba greacă authentikos - autentică) este „inima” majorității covârșitoare a mecanismelor de apărare. Trebuie să ne asigurăm că persoana despre care pretinde că lucrează cu programul și dacă această persoană are voie să lucreze cu programul!

Nu numai utilizatorul poate acționa ca „persoană”, ci și computerul sau un mediu de stocare care stochează o copie licențiată a programului. Astfel, toate mecanismele de apărare pot fi împărțite în două categorii principale:

  • protecții bazate pe cunoștințe (parolă, număr de serie);
  • protecții bazate pe posesie (disc cheie, documentație).

Dacă protecția se bazează pe simpla presupunere că codul său nu va fi studiat și / sau modificat, este o protecție proastă. Lipsa codului sursă nu este în niciun caz un obstacol insurmontabil în calea învățării și modificării aplicației. Tehnologiile moderne de inginerie inversă permit recunoașterea automată a funcțiilor bibliotecii, variabilelor locale, argumentelor stivei, tipurilor de date, ramurilor, buclelor și multe altele. Și într-un viitor nu prea îndepărtat, dezasamblatorii vor învăța probabil să genereze listări apropiate aspect la limbi de nivel înalt.

Dar chiar și astăzi, analiza codului binar nu necesită atât de mult timp încât să oprească atacatorii pentru mult timp. Numărul mare de hack-uri în curs este cea mai bună confirmare a acestui fapt. În cazul ideal, cunoașterea algoritmului operației de protecție nu ar trebui să afecteze rezistența acestuia, dar acest lucru este departe de a fi întotdeauna realizabil. De exemplu, dacă dezvoltatorul program server decide să stabilească o limită a numărului de conexiuni procesate simultan în versiunea demo (așa cum se întâmplă adesea), un atacator trebuie doar să găsească o instrucțiune de procesor care să efectueze o astfel de verificare și să o șteargă. Modificările aduse programului pot fi prevenite prin verificarea constantă a integrității sale, dar din nou codul care verifică integritatea poate fi găsit și eliminat.


Primul pas. Încălzire

Algoritmul celui mai simplu mecanism de autentificare constă într-o comparație caracter cu caracter a parolei introduse de utilizator cu o valoare de referință stocată fie în programul în sine (așa cum se întâmplă adesea) sau în afara acestuia, de exemplu, în fișier config sau registrul (care este mai puțin frecvent).

Avantajul unei astfel de protecții este implementarea software-ului extrem de simplă. Miezul său constă de fapt dintr-o linie, care în C poate fi scrisă după cum urmează:

Dacă (strcmp (parola introdusă, parola de referință)) (/ * Parola incorectă * /) altceva (/ * Parola OK * /)

Să completăm acest cod cu proceduri pentru solicitarea unei parole și afișarea rezultatelor comparației și apoi testăm programul rezultat pentru rezistență, adică pentru rezistență la fisurare:

Listare 1. Un exemplu de sistem de autentificare de bază

#include "stdafx.h" // Cel mai simplu sistem de autentificare - // comparație caracter cu caracter a parolei #include #include . = 0; // Buffer pentru parola introdusă de utilizatorul char buff; // Bucla principală de autentificare pentru (;;) (// Solicitați și citiți utilizatorul // parola printf ("Introduceți parola:"); fgets (& buff , PASSWORD_SIZE, stdin); // Comparați parola originală și introdusă dacă (strcmp (& buff, PASSWORD)) // Dacă parolele nu se potrivesc, jurăm printf („Parolă greșită \ n”); // În caz contrar (dacă parolele sunt identice) // ieșiți din bucla de autentificare altfel rupeți; // Măriți contorul încercărilor de autentificare nereușite // și dacă toate încercările sunt // epuizate, ieșiți din program dacă (++ număr> 3) returnează -1;) / / De când suntem aici, utilizatorul a introdus // parola printf corectă („Parolă OK \ n”);)

În filmele populare, hackerii cool se infiltrează cu ușurință în orice sistem securizat înfiorător, cumva într-un mod de neînțeles ghicind parola dorită după mai multe încercări. De ce nu încercați să mergeți pe drumul lor?

Nu este neobișnuit ca parolele să fie cuvinte semnificative, cum ar fi Ferrari, QWERTY, numele de hamsteri preferați sau locații geografice. Ghicirea parolei este asemănătoare cu ghicirea pe frunzele de ceai - nu există garanții de succes, puteți conta doar pe noroc. Și noroc, după cum știți, o pasăre este mândră - nu puneți un deget în gură. Nu există o modalitate mai fiabilă de hack?

Să ne gândim la asta. Deoarece parola de referință este stocată în corpul programului, dacă nu este criptată într-un mod dificil, poate fi detectată printr-o privire banală asupra codului binar al programului. Parcurgând toate șirurile de text găsite în acesta, începând cu cele care seamănă cel mai mult cu o parolă, vom selecta foarte repede cheia necesarăși deschideți programul pentru ei! Mai mult, zona de vizualizare poate fi redusă semnificativ - în majoritatea covârșitoare a cazurilor, compilatoarele plasează toate variabilele inițializate în segmentul de date (în fișierele PE, este localizat în secțiunile .data sau .rdata). Excepția este, probabil, primii compilatori din Bagdad (Borland) cu dragostea lor maniacală de a lipi linii de text într-un segment de cod - direct la locul apelului lor. Acest lucru simplifică compilatorul în sine, dar introduce o mulțime de probleme. Modern OS, spre deosebire de vechiul MS-DOS, interzice modificarea segmentului de cod și toate variabilele plasate în acesta sunt doar în citire. În plus, pe procesoarele cu un sistem de cache separat, acestea „aștern” memoria cache, ajungând acolo în timpul citirii înainte, dar la primul acces la acestea sunt încărcate din nou de la lent memorie cu acces aleator(cache de nivel secundar) în cache-ul de date. Rezultatul este frânele și scăderea performanței.

Ei bine, hai să facem din secțiunea de date! Tot ce rămâne este să găsiți un instrument la îndemână pentru a vizualiza binarul. Puteți, desigur, să apăsați tasta F3 din shell-ul preferat (FAR, de exemplu) și, apăsând tasta Page Down cu o cărămidă, să admirați cifrele care rulează până vă plictisiți.

Puteți utiliza orice editor hexagonal (QView, Hiew ...) - oricare vă place - dar în articol, din motive de claritate, este dat rezultatul utilitarului DUMPBIN din livrarea standard a Microsoft Visual Studio. DUMPBIN este lansat din Prompt Command Command.

Permiteți-ne să setăm utilitarul în funcție de fișierul executabil al programului nostru, care conține parola și să îi cerem să tipărească secțiunea rdata care conține datele inițiale numai în citire (cheia /SECTION:.rdata) în forma brută (/ RAWDATA : Tasta BYTES) prin specificarea pictogramei> pentru redirecționarea ieșirii către un fișier (răspunsul programului ocupă mult spațiu și doar „coada” se potrivește pe ecran).

Listarea 2

> dumpbin / RAWDATA: BYTES /SECTION:.rdata passCompare1.exe> ​​rdata.txt 004020E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ............. . .. 004020F0: 18 30 40 00 68 30 40 00 45 6E 74 65 72 20 70 61 [e-mail protejat]@ .Introduce pa 00402100: 73 73 77 6F 72 64 3A 00 6D 79 47 4F 4F 44 70 61 ssword: .myGOODpa 00402110: 73 73 77 6F 72 64 0A 00 57 72 6F 6E 67 20 70 61 ssword..pa greșit 00402120 : 73 73 77 6F 72 64 0A 00 50 61 73 73 77 6F 72 64 ssword..Parola 00402 130: 20 4F 4B 0A 00 00 00 00 00 00 00 00 00 00 00 00 00 OK ......... ... 00402140: 00 00 00 00 90 0A C1 5B 00 00 00 00 02 00 00 00 ...... A [........ 00402150: 48 00 00 00 24 22 00 00 24 14 00 00 00 00 00 00 H ... $ ".. $ .......

Printre altele, există o linie, asemănătoare dureroasă cu parola de referință (în text este evidențiată cu caractere aldine). Să-l testăm? Cu toate acestea, ce rost are - judecând după codul sursă al programului, aceasta este într-adevăr parola dorită care deschide protecția ca o cheie de aur. Compilatorul a ales un loc prea proeminent pentru stocare - nu ar strica să ascundem mai bine parola.

O modalitate de a face acest lucru este plasarea forțată a parolei principale într-o secțiune pe care am ales-o noi înșine. O astfel de posibilitate nu este prevăzută de standard și, prin urmare, fiecare dezvoltator de compilator (strict vorbind, nu un compilator, ci un linker, dar acesta nu este punctul) este liber să-l implementeze în felul său sau să nu-l implementeze deloc . Microsoft Visual C ++ oferă o pragmă specială data_seg în acest scop, care specifică în ce secțiune să plaseze următoarele variabile inițializate. În mod implicit, variabilele neinițializate sunt localizate în secțiunea .bss și sunt controlate de pragma bss_seg, respectiv.

În Listarea 1, înainte de funcția principală, adăugați o nouă secțiune pentru a ne stoca parola:

// De acum înainte, toate variabilele inițializate vor fi // localizate în secțiunea .kpnc #pragma data_seg (". Kpnc") #define PASSWORD_SIZE 100 #define PASSWORD "myGOODpassword \ n" char passwd = PASSWORD; #pragma data_seg ()

În interiorul funcției principale, să inițializăm matricea:

// Acum toate variabilele inițializate vor fi // plasate în secțiune în mod implicit, adică rdata char buff = "";

Condiția pentru compararea șirurilor într-o buclă sa schimbat ușor:

If (strcmp (& buff, & passwd))

Să setăm utilitarul DUMPBIN pe un nou fișier executabil:

> dumpbin / RAWDATA: BYTES /SECTION:.rdata passCompare2.exe> ​​rdata.txt 004020C0: D3 17 40 00 00 00 00 00 D8 11 40 00 00 00 00 00 [e-mail protejat]@ ..... 004020D0: 00 00 00 00 2C 11 40 00 D0 11 40 00 00 00 00 00 ...., [e-mail protejat][e-mail protejat] 004020E0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ 004020F0: 18 30 40 00 68 30 40 00 45 6E 74 65 72 20 70 61 [e-mail protejat]@ .Introduceți pa 00402100: 73 73 77 6F 72 64 3A 00 57 72 6F 6E 67 20 70 61 ssword:. Greșit pa 00402110: 73 73 77 6F 72 64 0A 00 50 61 73 73 77 6F 72 64 ssword..Plasă 00402120 : 20 4F 4B 0A 00 00 00 00 00 00 00 00 00 00 00 00 00 OK ............. 00402 130: 00 00 00 00 6F CB C4 5B 00 00 00 00 02 00 00 00 . ... oEA [........ 00402140: 48 00 00 00 14 22 00 00 14 14 00 00 00 00 00 00 H .... ".......... 00402150: 6F CB C4 5B 00 00 00 00 0C 00 00 00 14 00 00 00 oEA [............

Aha, acum nu există nicio parolă în secțiunea de date și hackerii se „odihnesc”! Dar nu trece la concluzii. Să afișăm mai întâi o listă cu toate secțiunile din fișier:

> dumpbin passCompare2.exe Summary 1000 .data 1000 .kpnc 1000 .rdata 1000 .reloc 1000 .rsrc 1000 .text

Secțiunea personalizată .kpnc atrage imediat atenția. Să vedem ce conține?

> dumpbin /SECTION:.kpnc / RAWDATA passCompare2.exe RAW DATA # 4 00404000: 6D 79 47 4F 4F 44 70 61 73 73 77 6F 72 64 0A 00 myGOODpassword ..

Iată-l, parola! Ascuns, se numește ... Puteți, desigur, să fiți pervertit și să puneți date secrete în secțiunea de date neinițializate (.bss) sau chiar în secțiunea de cod (.text) - nu toată lumea va ghici să se uite acolo, iar o astfel de plasare va nu rupe performanța programului. Dar nu uitați de posibilitatea de a căuta automat șiruri de text într-un fișier binar. Indiferent de secțiunea care conține parola de referință, filtrul o va găsi cu ușurință (singura problemă este de a determina care dintre seturile de șiruri de text este cheia dorită; poate fi necesar să sortați o duzină sau doi potențiali „candidați”).

Pasul doi. Cunoașterea dezasamblatorului

Bine, am aflat parola. Dar cât de obositor este să îl introduci de fiecare dată de la tastatură înainte de a începe programul! Ar fi frumos să o hackem astfel încât să nu fie solicitată deloc parola sau programul să perceapă orice parolă introdusă ca fiind corectă.

Hack, spui? Ei bine, acest lucru nu este dificil! Este mult mai problematic să decidem ce anume să-l piratăm. Trusa de instrumente a hackerilor este extrem de diversă, ceea ce pur și simplu nu există: dezasamblatori, depanatori, API-uri și spioni de mesaje, monitoare de acces la fișiere (porturi, registru) și despachetatoare de fișiere executabile și ... Este dificil pentru un săpător de cod pentru începători cu toată această economie!

Cu toate acestea, spionii, monitoarele, despachetatorii sunt utilități secundare secundare, în timp ce arma principală a unui atacator este un depanator și un dezasamblator.

Deci, dezasamblatorul este aplicabil pentru examinarea programelor compilate și este parțial potrivit pentru analiza codului pseudo-compilat. Dacă da, ar trebui să fie adecvat pentru deschiderea protecției prin parolă passCompare1.exe. Întreaga întrebare este ce dezasamblator să aleagă.

Nu toți dezasamblatorii sunt la fel. Printre aceștia există „intelectuali” care recunosc automat multe constructe, precum: prologuri și epiloguri de funcții, variabile locale, referințe încrucișate și există „simpletoni” ale căror abilități sunt limitate doar prin traducerea instrucțiunilor mașinii în instrucțiuni de asamblare.

Cel mai logic mod este să folosești serviciile unui dezasamblator intelectual (dacă există), dar ... să nu ne grăbim, ci să încercăm să efectuăm întreaga analiză manual. Tehnica, desigur, este un lucru bun, dar nu este întotdeauna la îndemână și ar fi frumos să învățăm cum să lucrăm pe teren în avans. În plus, comunicarea cu un dezasamblator rău este cel mai bun mod de a sublinia „bunătățile” celor bune.

Să folosim utilitarul DUMPBIN, deja familiar pentru noi, un adevărat „cuțit elvețian” cu mulți funcții utile, printre care există și un dezasamblator. Dezasamblăm secțiunea de cod (așa cum ne amintim, purtând numele .text), redirecționând ieșirea către un fișier, deoarece evident nu se va potrivi pe ecran:

> dumpbin /SECTION:.text / DISASM passCompare1.exe> ​​code-text.txt

Să aruncăm o altă privire la secțiunea de date (sau alta, în funcție de locul în care este stocată parola): consultați Listarea 2.

Să ne amintim parola găsită: myGOODpassword. Spre deosebire de Visual C ++ 6.0, pe care Chris l-a folosit, Visual C ++ 2017 nu accesează variabilele inițializate la decalaj hexagonal, ci înlocuiește valoarea direct în secțiunea de cod. Astfel, să încercăm să găsim parola identificată anterior în lista dezasamblată printr-o căutare contextuală banală folosind orice editor de text.

0040107D: B9 08 21 40 00 mov ecx, offset [e-mail protejat][e-mail protejat]@[e-mail protejat] 00401082: 8A 10 mov dl, octet ptr 00401084: 3A 11 cmp dl, octet ptr 00401086: 75 1A jne 004010A2 00401088: 84 D2 test dl, dl 0040108A: 74 12 je 0040109E

Vedeți, centrul acestei liste este responsabil pentru compararea valorilor registrelor EAX și ECX. În acesta din urmă, după cum putem vedea, în prima linie a listei, parola de referință este scrisă, prin urmare, în prima - cea introdusă de utilizator. Apoi are loc o comparație și se fac tranziții în aproape același punct: 0x4010A2 și 0x40109E. Să aruncăm o privire la ceea ce este acolo:

0040109E: 33 C0 xor eax, eax 004010A0: EB 05 jmp 004010A7 004010A2: 1B C0 sbb eax, eax 004010A4: 83 C8 01 sau eax, 1 004010A7: 85 C0 test eax, eax 004010A9: 74 63 je 0040110F 1F4010AB dword ptr 004010B0: 68 18 21 40 00 push offset [e-mail protejat][e-mail protejat]@[e-mail protejat] 004010B5: E8 56 FF FF FF apel _printf

Aici, rolul central îl joacă testul eax, instrucțiunea eax situată la offset 0x4010A7. Dacă eax este 0, echipa JE care îl urmează sare la 0x40110E. În caz contrar, linia de parolă greșită este împinsă în partea de sus a stivei:

Împingeți offset [e-mail protejat][e-mail protejat]@[e-mail protejat]

urmat de un apel la o funcție cu un nume auto-explicativ:

Apelați _printf

Aceasta înseamnă că o valoare EAX diferită de zero indică o parolă falsă, iar un zero indică una adevărată.

Ok, atunci să trecem la analiza ramurii valide a programului, care se face după ce ați sărit la 0x40110E. Și apoi există o instrucțiune la pândă care pune șirul OK de parolă în partea de sus a stivei, după care se apelează procedura _printf, care, evident, imprimă șirul pe ecran:

0040110E: 68 28 21 40 00 împingere offset [e-mail protejat][e-mail protejat]@[e-mail protejat] 00401113: E8 F8 FE FF FF apel _printf

Considerațiile operaționale sunt următoarele: dacă înlocuiți comanda JE cu JNE, atunci programul va respinge parola adevărată ca fiind incorectă și orice parola corectă percepe ca fiind adevărat. Și dacă înlocuiți TEST EAX, EAX cu XOR EAX, EAX, atunci după executarea acestei comenzi, registrul EAX va fi întotdeauna zero, indiferent de parola pe care o introduceți.

Singurul lucru de făcut este să găsești acești mici biți în fișierul executabil și să-i modifici ușor.

Pasul trei. Chirurgical

Efectuarea de modificări direct unui fișier executabil este o problemă serioasă. Strânși de codul deja existent, trebuie să ne mulțumim doar cu ceea ce avem și nici extinderea comenzilor, nici măcar mutarea lor, aruncarea „pieselor de schimb suplimentare” din protecție, nu va eșua. La urma urmei, acest lucru ar duce la o schimbare a compensărilor tuturor celorlalte instrucțiuni, în timp ce valorile pointerilor și ale adreselor de salt ar rămâne neschimbate și ar începe să se îndrepte complet în locul greșit!

Ei bine, este atât de ușor să te descurci cu „aruncarea pieselor de schimb” - este suficient să introduci codul cu comenzi NOP (al căror cod de opțiune este 0x90 și nu 0x0 deloc, așa cum cred mulți excavatori de cod începători din anumite motive ), adică o operațiune goală (de fapt, NOP este simplă o altă formă de scriere a instrucțiunilor XCHG EAX, EAX - dacă este interesat). Cu "alunecare" este mult mai dificil! Din fericire, în fișierele PE există întotdeauna multe "găuri" rămase de la aliniere, în ele puteți plasa codul sau datele dvs.

Dar nu este mai ușor să compilați doar fișierul asamblat, după ce ați făcut modificările necesare? Nu, nu este mai simplu și iată de ce: dacă ansamblorul nu recunoaște indicatorii trecuți către funcții (și așa cum am văzut, dezasamblatorul nostru nu le-a putut distinge de constante), în consecință, nu se deranjează să le corecteze corect, și, firește, programul nu va funcționa.

Trebuie să întrerup programul în direct. Cel mai simplu mod de a face acest lucru este utilizarea utilitarului Hiew, care „digeră” formatul PE al fișierelor și simplifică astfel căutarea fragmentului dorit. Orice versiune a acestui editor hex va funcționa. De exemplu, nu am folosit cel mai mult versiune noua 6.86, care se înțelege bine cu Windows 10. Să începem specificând numele fișierului în Linie de comanda hiew32 passCompare1.exe, prin apăsarea dublă a tastei Enter, comutați la modul de asamblare și utilizați tasta F5 pentru a merge la adresa dorită. După cum ne amintim, comanda TEST, care verifică rezultatul pentru egalitate la zero, a fost localizată la 0x4010A7.

Pentru ca Hiew să distingă o adresă de un offset în fișierul însuși, o precedăm cu un simbol punct: .4010A7.

004010A7: 85 C0 test eax, eax 004010A9: 74 63 je 0040110E

Aha, exact de ce avem nevoie! Apăsați tasta F3 pentru a comuta Hiew la modul de editare, mutați cursorul la comanda TEST EAX, EAX și, apăsând tasta Enter, înlocuiți-l cu XOR EAX, EAX.

004010A7: 33 C0 xor eax, eax 004010A9: 74 63 je 0040110E

Observând cu satisfacție că noua comandă se încadrează exact în cea precedentă, apăsați tasta F9 pentru a salva modificările pe disc, apoi ieșiți din Hiew și încercați să rulați programul introducând prima parolă care vă vine în minte:

> passCompare1 Introduceți parola: Bună ziua, pălărie! Parola OK

S-a întâmplat! Apărarea a căzut! Ei bine, cum am acționa dacă Hiew nu ar ști cum să „digere” fișierele PE? Apoi, va trebui să recurgeți la căutarea contextuală. Să ne uităm la depozitul hexagonal situat de dezasamblator în stânga instrucțiunilor de asamblare. Desigur, dacă încercați să găsiți secvența 85 C0 - codul de comandă TEST EAX, EAX, nu va rezulta nimic bun - pot exista câteva sute dintre aceste TEST-uri în program sau chiar mai multe. Dar adresa de salt este cel mai probabil diferită în toate ramurile programului, iar șirul TEST EAX, EAX / JE 0040110E are șanse mari să fie unic. Să încercăm să găsim codul corespunzător în fișier: 85 C0 74 63 (în Hiew, doar apăsați tasta F7).

Opp! Am găsit o singură apariție, de care avem nevoie de fapt. Să încercăm acum să modificăm fișierul direct în modul hexagonal, fără a intra în asamblare. Pe parcurs, să luăm o notă - inversarea bitului cel mai puțin semnificativ al codului de comandă duce la o schimbare a condiției de tranziție la opus, adică 74 JE -> 75 JNE.



Lucrări? În sensul acesta, protecția a devenit complet nebună - nu recunoaște parolele adevărate, dar salută fericit restul. Minunat!


Va urma?

Așa că ați citit (nu-i așa?) Primul fragment din clasicul lui Chris Kaspersky The Foundations of Hacking cu o regândire modernă. Am reușit să actualizăm aceste cunoștințe la nivelul actual? Ar trebui să continui? Împărtășiți-vă părerea