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 23:01] zdeljkic |
studenti:zad_deljkic:badusb_dnevnik [2023/06/19 16:21] (trenutno) |
||
---|---|---|---|
Redak 58: | Redak 58: | ||
* 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.) | * 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 | * 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... | + | * Uz USB, obično imamo 3G, wifi, bluetooth, mikrofon... |
* Mogu se koristiti kao kanali za eksfiltraciju podataka neovisni o situaciji | * Mogu se koristiti kao kanali za eksfiltraciju podataka neovisni o situaciji | ||
* Općenito, vlastiti pristup internetu otvara velike mogućnosti (npr. command&control server) | * Općenito, vlastiti pristup internetu otvara velike mogućnosti (npr. command&control server) | ||
Redak 69: | Redak 69: | ||
* Uštekava se u PC između ostaloga za prijenos podataka i punjenje baterije, tako da nije sumnjivo vidjeti ga uštekanog | * 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?" | * "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 == | ||
+ | |||
+ | Kad dobim povratne informacije u vezi seminara, dalje ga pisati u skladu s njima te dalje razvijati aplikaciju. | ||
~~NOTOC~~ | ~~NOTOC~~ | ||