Copy Link
Add to Bookmark
Report

3x01 Injecting Malware Symbian Micro Kernel

eZine's profile picture
Published in 
phearless
 · 10 months ago

 
...................
...::: phearless zine #3 :::...

...........>---[ Injecting Malware: Symbian Micro Kernel ]---<...........

...........................>---[ by argv ]---<...........................
argv.cpp[at]gmail[dot]com

Sadrzaj:

[1] Intro
[2] Symbian Micro Kernel
[3] HardFuck
[4] Outro


////////////////////////////////////////////////////////////////////////////
--==<[ 1. Intro
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Rekli su da se nemoze, da je Kernel u read-only modu i da nema sanse da
se iz user-moda predje u kernel-mod @ runtime. E lagali su. Nakon veoma dugog
i iscrpnog istrazivanja donosim vam pravi VIRUS za Symbian mobilne telefone.
Ovo je relativno PoC virus jer nema mogucnosti sirenja i slicnih pizdarija.
Iako se virus moze zakaciti za neku aplikaciju i tako ga poslati nekome.
U ovom tekstu necu okolisati s teorijom koja vas ne zanima (ne zanima vas ni
sam virus, al ajd). Finalni cilj ovog teksta je da sastavimo virus koji ce
vam otvoriti vrata kernel-moda tako sto ce u sebi sadrzavati petlju koja ce
stalno varati sam kernel i vrtiti se u kernel-modu.

////////////////////////////////////////////////////////////////////////////
--==<[ 2. Symbian Micro Kernel
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Pitate se koja je razlika izmedju user-moda i kernel-moda? E pa velika.
Iz user-moda nemozete nista, al doslovno nista. Mozete pisati SMS, MMS, zvati
i ostale pizdarije. A sta se recimo dogadja u telefonu dok ukljucite Bluetooth,
ili Infrared? Sta se dogadja dok Symbian komunicira s telefonom da bi napravio
telefonski poziv? To ne vidite jer nemate pristup. Sad se mozda pitate, zasto
nemate pristup? Zato jer je kernel zasticen zbog mogucih manipulacija sa samim
telefonom: Prckanje po interruptima poziva, mijenanje headera MMS-a da izgleda
kao SMS i jos mnogo stvari (da, da i 'prisluskivanje' je tu). Zapravo, svakoj
zanimljivijoj komponenti telefona moze se pristupiti jedino preko kernela,
tocije mijenjanja interrupta hardvera unutar telefona i tako manipulirati
nekim zanimljivim osobinama da bi na kraju dosli do developer moda gdje se
nalazi cijeli izvorni kod koji upravlja samim telefonom (nemoze Symbian na
svaki telefon). Posto nema bas previse zainteresiranih za ovu temu, ja cu vam
objasniti kako da otvorite vrata, a ono sto cete naci unutra sami istrazite.
Naravno, ako vam treba pomoc mail mi je gore. Svakako, pogledajte i
BTLocalDoS.cpp gdje se nalazi prvi 'exploit' kojeg sam napravio na bazi
informacija dobivenih iz kernela. Vidjet cete interne bluetooth pozive i
jos neke lijepe sitnice :)

////////////////////////////////////////////////////////////////////////////
--==<[ 3. HardFuck
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Najveci problem za napravit ovo predstavljali su mi procesi koji ce se
vrtiti umjesto orginalih i koliko je memorije potrebno alocirati da bi se
stari procesu zadrzali na heapu memorije kako bi se ponovo iskoristili.
Nakon par dana mozganja, pokusao sam jednostavno ukinuti postojece procese i
ubaciti jedan proces koji ce ostale drzati ispod sebe, a u sebi ce drzazi
kljucne funkcije za pristup kernelu. To naravno nije upalilo jer bi se
telefon svaki put zblokirao jer se orginalni procesi nikad ne bi vratili na
mjesto. Zatim sam malo svrljao po netu i nasao neke zanimljive clanke o
procesima koji svoje funkcije pozivaju direktno iz kernela. To su sysamob
(ovog se sjecate iz argworma), appsys i phone. Sysamob i Appsys skoro sve
svoje pozive vrse iz eKern.dll, dok Phone svoje pozive vrsi iz eUser.dll u
kojem je sadrzana vecina funkcija koje su vec dostupne. Mene je naravno
najvise zanimao eKern.dll jer o tome nema ni 'a':). Nakon dugo isprobavanja,
testiranja, zajebavanja napokon sam uspio. Malo sam obradio orginalne procese
i u njih ubacio neke svoje pizdarije i tako su nastala 3 nova procesa koji
ce se ubaciti na vrh memorije @ runtime s time da ce orginalni procesi ostati
u pozadini i povremeno se vracati jer u protivnom telefon ce se kad tad
zablokirati. Virii sigurno radi na EKA1 kernelu, tj. Symbian <= 6.1 i 7.0.
Za 8.0++ nisam siguran jer nemam to na mobitelima :). Da ovdje ne duzim
previse, source je fino komentiran pa mozete lako pratiti sva dogadjanja.

////////////////////////////////////////////////////////////////////////////
--==<[ 4. Outro
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

Autor ovog teksta nije ni na koji nacin odgovoran za eventualnu stetu
nastalu koristenjem ovog virusa na vasim mobitelima, takodjer Autor nece
placati eventualne popravke u obliku reflasha mobitela i slicno. Tekst i
izvorni kod su samo za informativne svrhe i tako ih trebate shvacati.
Svaka modifikacija koda ce proizvesti novu varijantu virusa i za to uopce
nisam odgovoran. Sve radite na svoju odgovornost.

Pozdrav - sunnis, deroko, Shatterhand, _bl00dz3r0_ i svima sa BlackHat
foruma :P. Takodjer pozdrav Placebu za korisne informacije o EKA1 i LKM
programmingu :D.











← previous
next →
loading
sending ...
New to Neperos ? Sign Up for free
download Neperos App from Google Play
install Neperos as PWA

Let's discover also

Recent Articles

Recent Comments

Neperos cookies
This website uses cookies to store your preferences and improve the service. Cookies authorization will allow me and / or my partners to process personal data such as browsing behaviour.

By pressing OK you agree to the Terms of Service and acknowledge the Privacy Policy

By pressing REJECT you will be able to continue to use Neperos (like read articles or write comments) but some important cookies will not be set. This may affect certain features and functions of the platform.
OK
REJECT