Slijede razlike između dviju inačica stranice
Starije izmjene na obje strane Starija izmjena Novija izmjena | Starija izmjena | ||
studenti:zad_deljkic:badusb_dnevnik [2016/04/15 20:54] zdeljkic |
studenti:zad_deljkic:badusb_dnevnik [2023/06/19 16:21] (trenutno) |
||
---|---|---|---|
Redak 44: | Redak 44: | ||
Pročitao sam literaturu, organizirao ju te napisao bilješke o bitnim dijelovima (sve je u Zotero grupi). | Pročitao sam literaturu, organizirao ju te napisao bilješke o bitnim dijelovima (sve je u Zotero grupi). | ||
- | Postoji velika količina radova koji se bave USB | + | Postoji velika količina relevantnih radova te je dosta toga već istraženo, uključujući i USB napade sa Androida te fingerprintanje OS-a preko USB-a, čak i sa Androida (u svrhe forenzike). |
+ | |||
+ | No ne postoji nikakvo rješenje sa već objavljenim source kodom za fingerprintanje OS-a, niti neko rješenje koje integrira više koraka napada, primjerice detekcija OS-a te napad ovisno o rezultatu detekcije (no spominje se). | ||
== Daljnji koraci == | == Daljnji koraci == | ||
- | Pročitati i odrediti koja je literatura najrelevantnija, te ovisno o postojećim radovima odrediti daljnji smjer ovog rada kako bi se napravilo nešto novo. | + | Ja mislim da najviše ima smisla fokusirati daljni smjer rada na sljedeće točke te izrada aplikacije/jednostavnog frameworka za Android USB napade u tom duhu: |
+ | |||
+ | * USB napadi imaju neke velike prednosti - zaobilaze sve sadašnje forme zaštite, pod pretpostavkom da uspijemo uštekati ili nekoga navesti da ušteka naš zlonamjerni uređaj | ||
+ | * Android smartphone je odlična platforma za USB napade jer: | ||
+ | * Relativno lagano ga je reprogramirati da radi što želimo | ||
+ | * Ima //izrazito// puno mogućnosti, potpuno neusporedivo sa drugim uređajima za USB napade: | ||
+ | * Moguće je koristiti ogroman broj alata razvijenih za linux, npr. sa Kali NetHunterom imamo pristup svim alatima pakiranim u Kali Linux-u (nmap, čak metasploit, itd.) | ||
+ | * Jedna velika prednost korištenja takvih postojećih popularnih alata je što nije potrebno izrađivati/održavati vlastite alate, npr. nmap OS scan će samo postajati bolji s vremenom, detektirati će i nove OS-ove kako se pojavljuju itd., dok drugi pristupi za detektiranje OS-a s Androida zahtjevaju određenu količinu posla i inicijalno i za održavanje | ||
+ | * Uz USB, obično imamo 3G, wifi, bluetooth, mikrofon... | ||
+ | * Mogu se koristiti kao kanali za eksfiltraciju podataka neovisni o situaciji | ||
+ | * Općenito, vlastiti pristup internetu otvara velike mogućnosti (npr. command&control server) | ||
+ | * Snažne performanse | ||
+ | * Široko su dostupni, često ih nije potrebno kupiti već ih gotovo svatko posjeduje (gotovo svi imaju smartphone, Android ima ~80% market share) | ||
+ | * Ali opet u pitanje dolazi koliko tih mobitela je moguće rootati, te za koliko njih su podržani neki alati relevantni ovom radu (primjerice kernel patch za HID napade ili cijeli Kali NetHunter) | ||
+ | * Uvijek ih nosimo sa sobom što je praktično te smo uvijek "spremni", za razliku od raznih USB rubber duckya i sličnih rješenja, jer smartphone-i imaju i izrazito korisnu svrhu osim USB napada | ||
+ | * Uz USB napade, moguće je sa Androida lansirati razne druge napade pa je takav mobitel praktičan kao općenito platforma za napade | ||
+ | * Nije "sumnjiv", tj. često je korišten kao primjerice i USB memory stick-ovi te postoje legitimni razlozi zašto ga uštekati u PC | ||
+ | * Uštekava se u PC između ostaloga za prijenos podataka i punjenje baterije, tako da nije sumnjivo vidjeti ga uštekanog | ||
+ | * "Možeš li staviti moj mobitel na punjenje na tvoj PC?" | ||
+ | |||
+ | U raznim radovima su već predložene neke zanimljive ideje, no nigdje to nije skupljeno i implementirano. | ||
+ | |||
+ | Funkcionalnosti koje su potrebne za efektivan napad bi bile: | ||
+ | |||
+ | * Način detektiranja kada korisnik nije za računalom, kako bi se tada izvršio napad koji bi korisnik inače primijetio | ||
+ | * Detektiranje OS-a (ili čak i detaljnije fingerprintanje PC-a) kako bi se napad mogao prilagoditi | ||
+ | * Razni načini napadanja PC-a | ||
+ | |||
+ | Zato sam mislio kako bi bilo dobro pretvoriti aplikaciju koju radim u nekakav framework za USB napade, koji bi podijelio otprilike ovako: | ||
+ | |||
+ | * **Trigger** - okidači za započinjanje napada (prvenstveno kako ih korisnik ne bi primijetio), npr.: | ||
+ | * Čekanje fiksne količine vremena - npr. pričekaj 5min | ||
+ | * I ako se nešto dogodi na računalo što korisnik primijeti, ako je prošlo neko vrijeme od uštekavanja uređaja manje će sumnjati da je on to uzrokovao | ||
+ | * Čekanje određenog vremena - npr. napadni u 22:00 | ||
+ | * Ako se primjerice uređaj ušteka u računalo u nekoj firmi gdje ga nitko ne dira (npr. svi misle da je nečiji tuđi), moguće mu je reći da pričeka 22:00 kada nikoga više neće biti tamo te da pokrene napad - tada nitko neće moći vidjeti kako se napad odvija niti vjerojatno reagirati do jutra | ||
+ | * Čekaj naredbu za napad - npr. napadni kada ti preko interneta C&C server to kaže | ||
+ | * "Možeš li uštekati ovaj mobitel na punjenje u neko računalo?" te kada napadač primijeti da nitko nije oko računala, preko interneta (ili na neki drugi način) pošalje naredbu da mobitel izvrši napad | ||
+ | * Čekaj dok korisnik ne ode od računala - potencijalni načini implementacije: | ||
+ | * mobitel MITM-a internet promet od računala - po prometu može saznati otprilike je li korisnik aktivan (barem na internetu) - čak nije potrebno sav promet MITM-at, može se samo mobitel zadati kao DNS server preko DHCP-a no ne i default gateway, te pratiti DNS promet | ||
+ | * bilokoji USB uređaj može sniffati promet poslan sa PC-a drugim uređajima na istom hub-u - npr. ako korisnik prebacuje nešto na USB drive, uređaj uštekan u isti hub može vidjeti to i pretpostavit da je korisnik aktivan | ||
+ | * **Scan** - skeniranje računala | ||
+ | * Raspoznavanje OS-a po razlikama na razini USB protokola (postoje radovi o tome) | ||
+ | * Povezivanje mobitela i računala na istu mrežu + mrežno skeniranje (npr. nmap) | ||
+ | * Spomenuto je u jednom radu no ne i implementirano (u mojoj aplikaciji već je) | ||
+ | * **Attack** - razne implementacije USB napada, prilagođene ovisno o rezultatu skeniranja | ||
+ | * HID napad (simuliranje tipkovnice, miša, joysticka) | ||
+ | * MITM - simuliranje USB ethernet adaptera, preusmjeravanje svog internet prometa preko uređaja ili samo DNS-a | ||
+ | * Razno exploitanje: | ||
+ | * Exploitanje USB driver-a | ||
+ | * Exploitanje koda koji parse-a filesystem na USB drive-u | ||
+ | * Exploitanje koda koji prikazuje thumbnailove/ikone datoteka na USB drive-u | ||
+ | * Zločudni office dokumenti, pdf-ovi, bilošta što će korisnik potencijalno otvoriti... | ||
+ | |||
+ | Naravno ne bih implementirao sve ovo, no velik dio toga je moguće lagano implementirati. | ||
+ | |||
+ | Sama aplikacija bi bila izrazito jednostavna - u njoj bi bilo moguće podesiti koje shell skripte treba pokrenuti pri sljedećem USB spajanju na PC, te bi se glavna funkcionalnost implementirala u njima (tako više manje za sad i funkcionira). | ||
+ | |||
+ | === Period međuispita + 4. tjedan (9.5.2016. - 15.5.2016.) === | ||
+ | |||
+ | == Dosadašnji rad == | ||
+ | |||
+ | Napisao sam početnu verziju seminara od 10-ak strana u skladu sa smjerom određenim u 3. tjednu, posalo sam ju na mail mentorima za povratne informacije. | ||
+ | |||
+ | Dalje razvijam i restrukturiram aplikaciju kako bi kod bio pregledniji jer bi aplikacija trebala prijeći iz prototipa u nešto što će se objaviti. | ||
+ | |||
+ | == Daljnji koraci == | ||
- | Za sada okvirnim pregledom svih radova nisam naišao na ništa slično aplikaciji koju sam razvio, tako da mi se čini da bi nastavak u tom smjeru bio dobar. | + | Kad dobim povratne informacije u vezi seminara, dalje ga pisati u skladu s njima te dalje razvijati aplikaciju. |
~~NOTOC~~ | ~~NOTOC~~ | ||