Od assemblera do html5 czyli jak się dziś kradnie pieniądze Tomasz “keidii” Bukowski
@~# id
★ IRT @ Cert Polska ○
malware hunter / devops
★ member of DragonSector
Jak działaj internet jakaś między-sieć przeglądarka
serwery banku
Jak działają komputery (przeglądarki)
1 2
magia wewnątrz komputera
Gdzie kraść pieniądze ?
1 2
Jak działają komputery (przeglądarki) 1. 2.
3. 4. 5. 6. 7. 8.
USER otwiera [ https : // bank.test / login ] rozbij URL na: a. protokół == https (-> port = 443) i. czyli http + SSL b. adres (domen) == bank.test c. zasób == login znajdź adres IP bank.test (zapytanie DNS poprzez API systemowe) połącz się z IP (socket / TCP, port 443) -> [1] wynegocjuj połączenie SSL przez [1] (zestaw kanał SSL) -> [2] a. weryfikacja certyfikatu (ważność, CA, Cname, etc) prześlij zapytanie HTTP przez [2] odczytaj odpowiedź na (6) przez [2] -> [3] przetwarzaj [3]
Jak działają komputery (przeglądarki) 8.
przetwarzaj [3] :-) a.
odczytaj nagłówki
b.
odczytaj treść
c.
rozpocznij parsowanie dokumentu HTML i. ii. iii.
pobierz dodatkowe treści renderuj ! uruchamiaj skrypty (javascript)
sprawdź Origin Policy sprawdz milion innych rzeczy tutaj dużo magii tutaj dużo magii
Jak działają komputery (przeglądarki) 8.
przetwarzaj [3] :-) a.
odczytaj nagłówki
b.
odczytaj treść
c.
rozpocznij parsowanie dokumentu HTML i. ii. iii.
pobierz dodatkowe treści renderuj ! uruchamiaj skrypty (javascript)
sprawdź Origin Policy sprawdz milion innych rzeczy tutaj dużo magii tutaj dużo magii
Pomysł 1.0 Zmodyfikujmy treść dokumentu! Gdzie? (i dlaczego nie tam): ★
routerek ?
★
MITM ?
★
system-level socket (ws2_32) ?
★
internalsy przeglądarki ?
★
inne pomysły ?
stage 0 - infekcja
Pomysł 1.0 Czyńmy zło: 1. 2. 3. 4.
Wstrzyknij kod do procesu(ów) przeglądarki (jesteśmy w domu :-) Wyszukaj funkcji odczytu/zapisu treści żądania Wstaw inline-hook (trampolina) do własnego kodu czyli ?