[Reverse engineering] - Početak

System Mehanic

Bila je to 1998. godina kada sam od prijatelja dobio "hack CD", svojevrsna Aladinova lampa puna digitalnih blaga. CD je sadržavao sve moguće tutorijale, alate i resurse vezane za cyber security dostupne do tada na internetu. Napravila ga je grupa/stranica "AstaLaVista" (nema veze sa pretraživačem Astavista) i prodavala online.

Slučajnim dodirom s tim CD-om kroz prijateljske veze, moj život je skrenuo u neočekivanom pravcu. U to vrijeme sam bio gladan informacija, a sadržaj CD-a mi se činio kao cyber securityja na steroidima.

Na samom CD sam pronašao alatke za reverse engineering - crackmes aplikacije, hiew, WinHex i OllyDbg. Uz njih su bili i uvodi u asembler, vx scenu, tutorijali za crackmes i sl.

Moje interesovanje nije bilo usmjereno na razbijanje igara, jer su većina njih tada bile dostupne u crackovanoj verziji. Međutim, aplikacije koje smo često koristili nisu bile dostupne besplatno nakon 30-dnevne probne verzije. Jedan od takvih primjera bio je System Mechanic 3.0.

Ova aplikacija je nudila čišćenje Windows 98, optimizaciju registra i mnoštvo drugih korisnih funkcija.

CD je postao moj put u svijet cyber securityja, otvarajući mi vrata u dubine digitalnog svijeta i razbuđujući strast za zaštitu informacija. Bila je to prekretnica koja je oblikovala moj profesionalni put i ostavila dubok trag na mojoj karijeri.

Godine 1999. osjetio sam potrebu za verzijom programa koja bi nastavila raditi i nakon 30 dana.

Nakon nekoliko neuspješnih pokušaja korištenja NOP instrukcija (no operation, hex kod 0x90) i promjene instrukcije JNZ u JE (ili obratno), uspio sam postići da aplikacija uvijek pokreće s 30 dana dostupnog korištenja. To sam postigao blokiranjem pisanja u registry, tako da je program svaki put pokazivao poruku "još samo 30 dana".

Kasnije sam otkrio da program generiše serijski broj u memoriji prilikom upisa korisničkog imena za "owner". Koristeći WinHex aplikaciju, kreirao sam dump kompletnog RAM-a i pronašao serijski broj za navedeni "username owner".

Ovaj pristup je radio sve do verzije System Mechanic 7.5, kada su u program ugrađene dodatne anti-debugging tehnike. hiew

Slučaj drugi

Pošto sam već do 2001 god stekao slavu u lokalnim opštinama (zezam se, nisam) do mene bi dolazili tehnički problemi koji regularni IT strucnjaci nisu uspjevlali da riješe.

Jedan od problema sa kojima sam se susreo je bila i aplikacija za kafić (uredno plaćena) koja je blokirala oko ponoći 4 Februara 2001 god. Vlasnici kafića su me pozvali nakon armije IT stručnjaka da pokusam da riješim problem.

Pošto sam shvatio da se radi o vremenskoj "smicalici" (na moje pitanje jel aplikacija prestala da radi oko 00h su odgovorili potvrdno sto je upucivalo da je sama aplikacija imala neki time limit i slično).

Kompletan računar sa aplikacijom sam donio kući, hard disk spojio na svoj racunar - pokrenuo Sysinternals alate (procmon, filemon i slično) kako bih dobio informacije o čemu se tu radi. Prvi problem na koji sam naišao je bio serijski broj particije diska (aplikacija gleda serijski broj C:\ uredjaja) - pa sam promjenio svoj na particiji u traženi. Drugi problem je bio putanja do fajla (znaci prilikom startovanja aplikacije, ista trazi fajl a FileMon alat prikazuje to trazenje fajla)

Nakon toga - sam nasao source kod u .arj fajlu - arj fajl je koristio enkripciju. Unutar fajla je bio jedan koji se nalazio u istom direktorijumu kao i arj arhiva. Brutforce na ARJ je isao jako jako sporo 1 pokusaj po sekundi. Nakon čitanja, o ARJ formatu, nasao sam da je moguće uraditi kriptoanalitički napad. Zapravo: ARJ-FILE-NOENC - ARJ-FILE-ENC => SIFRA Ukratko fajl koji se nalazio u cistom tekstu bi se kompresovao istom verzijom ARJ i sa ARJ fajlom koji je imao enkripciju - radjeno je poredjenje, ekstraktovanje šifre.

Jedan od alata: https://www.elcomsoft.com/help/en/archpr/known_plaintext_attack_(arj).html

Nakon što sam otvorio ARJ arhivu (šifra je bila PVSOFT - od Pavle Software), pronasao sam kod u Clipperu. Unutar poruke koja je bila prikazana kada se pokrene aplikacija "not enough memory" a koju sam nasao u source kodu - nasao sam IF gdje ima (otprilike) date => 20010402 i isti promjenio u 20990402 Kompajlirao, testirao, vratio računar vlasniku. Za sve ovo mi je bilo potrebno 12h i veci dio vremena sam proveo na pronalazenje informacija o ARJ, softweru za krekovanje ARJ enkripcije. SysInternals alate sam poceo koristiti jos 1999 god - djelovali su mi super i mogao sam pratiti sta zapravo aplikacije rade (čitanje registrija, pristup fajlovima, korisćenje TCP/IP i drugo) Mislim da je programer htio da zaštiti aplikaciju od kopiranja i da ovdje nije bilo namjerno uradjeno blokiranje.

Kasnije je bilo jos situacija gdje sam koristio reverse engineering alate, vjestine (pored onih za security, RE je jako jako bitan skills)

Pored korišćenja Windows 98, uporedo sam koristio Slackware i Phat Linux (bilo je moguće bootvati direktno iz Windowsa 98 u Linux bez Lilo boot loadera)

To je to.

Red teaming koncept i ideja

ninja picture/slika: iStock, credit edfuentesg

Koncept red teaminga temelji se na filozofiji i praksama ninjutsua, drevne japanske borilačke vještine. Nindže su bile specijalizovane za izvođenje tajnih operacija i špijunaže, a njihova vještina je bila u velikoj mjeri utemeljena na skrivenosti, obmani i iznenađenju.

Skrivenost/Tajnost

Nindže su se oslanjale na svoje sposobnosti maskiranja i prikrivanja kako bi se približile svojim ciljevima neopaženo. U savremenom red teamingu, timovi se takođe oslanjaju na skrivanju svoje prisutnosti kako bi izbjegli otkrivanje i uspjeli izvršiti svoje napade. Oni koriste tehnike kao što je prikupljanje obavještajnih podataka iz otvorenih izvora (OSINT), kao i prikupljanje informacija o mreži svog cilja kako bi identificirali potencijalne ulazne tačke ili inicijalni pristup/initial access (IA)

Obmana

Nindže su bile majstori obmane i zavaravanja. Oni su koristili različite tehnike kako bi zbunili i prevarili svoje protivnike. U savremenom red teamingu, timovi se također oslanjaju na obmanu kako bi izvršili svoje napade. Mogu koristiti socijalno inženjerstvo/social engineering da navedu svoje ciljeve da im daju pristup njihovim računarima ili mrežama. Mogu također koristiti lažne web stranice i URL-ove kako bi prevarili svoje ciljeve da kliknu na zlonamjerne linkove.

Iznenađenje

Nindže su bile eksperti u iznenadnim napadima. Oni su koristili svoju brzinu i pokretljivost kako bi iznenadili svoje protivnike i nanijeli im maksimalnu štetu. U savremenom red teamingu, timovi se također oslanjaju na iznenađenje. Oni planiraju svoje napade pažljivo i koriste sve dostupne resurse kako bi iskoristili slabosti svojih ciljeva. Mogu također koristiti automatizovane alate za napad kako bi izvršili veliki broj napada istovremeno.

Značaj ninjutsua za red teaming

Ninjutsu nudi nekoliko prednosti za red teaming timove:

  • Skrivenost: Ninjutsu pomaže red teaming timovima da se približe svojim ciljevima neopaženo, čime se smanjuje rizik od otkrivanja.
  • Obmana: Ninjutsu pomaže red teaming timovima da prevare svoje ciljeve, čime se povećava šanse za uspješan napad.
  • Iznenađenje: Ninjutsu pomaže red teaming timovima da izvrše iznenadne napade, čime se nanosi maksimalna šteta ciljevima.

Primjeri upotrebe ninjutsua u red teamingu

Ninjutsu se može koristiti na različite načine u red teamingu. Evo nekoliko primjera:

  • Prikupljanje obavještajnih podataka: Ninjutsu tehnike maskiranja i prikrivanja mogu se koristiti za prikupljanje obavještajnih podataka iz otvorenih izvora (OSINT). Timovi mogu koristiti ove informacije kako bi identifikovali potencijalne mete i slabosti.
  • Penetracija mreže: Ninjutsu tehnike obmane mogu se koristiti za obmanu protivnika i omogućavanje pristupa njihovim računarima ili mrežama. Timovi mogu koristiti ove pristupe kako bi instalirali zlonamjerne programe ili prikupili osjetljive podatke.
  • Izvršavanje napada: Ninjutsu tehnike iznenadjenja mogu se koristiti za izvršenje napada na protivnike. Timovi mogu koristiti ove napade kako bi nanijeli štetu ciljevima ili ukrali povjerljive podatke.

Ninjutsu nudi nekoliko korisnih alata i principa za red teaming timove. Timovi koji razumiju i primjenjuju ove principe mogu biti uspješniji u identifikovanju, prikupljanju obavještajnih podataka o mreži, penetraciji mreže, izvršavanju napada i izbjegavanju otkrivanja.

Za kraj: