Rapid prototyping czyli o szybkim prototypowaniu w niehandlowe niedziele

Niedziele niehandlowe takie jak ta, mogę przyczynić się w naszym kraju do rozwoju technologi druku 3d. Gdy wszelkie sklepy są pozamykane, a my potrzebujemy jakieś części zamiennej z pomocą przychodzi nam domowa drukarka 3d.   W tym wpisie postaram się przedstawić proces szybkiego prototypowania (a może bardziej adekwatna byłaby nazwa… Continue reading

Programowalny “pendrive” czyli jak szybko przejąć komputer

Dzisiaj wpis będący formą tutorialu jak niskim kosztem stworzyć własny programowalny pendrive na wzór drogiego i popularnego Rubber Ducky od Hak5. Będzie on działał na zasadzie klawiatury – podłączony do komputera wpisuje wcześniej zaprogramowaną sekwencję klawiszy.   Pierwszym krokiem jest zakup miniaturowej płytki Arduino opartej na mikrokontrolerze ATtiny85 – Digispark. Najtaniej można znaleźć… Continue reading

Testy wykorzystania kanałów szyfrowanych do przesyłania haseł oraz poufnych danych.

Wszystkie poufne dane takie jak hasła, loginy, czy też numery kart kredytowych powinny być przesyłane szyfrowanym kanałem pomiędzy klientem, a serwerem. Dzięki temu użytkownik chroniony jest przed atakiem typu „man in the midle”, gdzie atakujący jest wpięty w komunikację pomiędzy użytkownikiem a siecią z której aktualnie korzysta. Ma on dostęp… Continue reading

Analiza poprawności implementacji protokołów SSL/TLS

Sprawdzanie poprawności implementacji protokołów SSL/TLS przeprowadza się w celu wykrycia użycia znanych słaby metod szyfrowania lub funkcji skrótu.  Przykładem może być tutaj protokół SSL v2, który nie powinien być już używany ze względu na znane podatności. Innymi błędami których występowanie należy zweryfikować jest użycie  symetrycznego algorytmu szyfrowania z kluczami mniejszymi… Continue reading

Analiza wiadomości z błędami

Znalezienie i wywołanie komunikatów o błędach poddane analizie pozwala na zidentyfikowanie działających usług i technologii wykorzystywanych przez aplikacje. W wywoływaniu błędów najskuteczniejsza jest manualna modyfikacja zapytań HTTP poprzez losowe wstawianie nietypowych znaków w różne miejsce tegoż zapytania.   W jednej z testowanych aplikacji przykładowy komunikat o błędzie widoczny na rysunku poniżej… Continue reading

Odkrywanie aplikacji

Celem tego testu jest znalezienie otwartych portów i identyfikacja usług na nich działających, na przykład bazy danych, czy też interfejsów administracyjnych. Przydatnymi narzędziami będą tutaj – skaner portów i usług Nmap oraz skaner zabezpieczeń aplikacji internetowych Nikto. Na obrazie poniżej został zaprezentowany wynik skanowania testowanej aplikacji narzędziem Nmap, któremu udało… Continue reading

Zbieranie „odcisków palców” działających usług

Za pomocą analizy tzw. „odcisków palca” w  nagłówkach odpowiedzi serwera na zapytania HTTP można dowiedzieć się na przykład jaki język programowania oraz infrastruktura serwerowa została użyta przy budowie aplikacji. Przydaje się tutaj także analiza komunikatów błędów oraz kodu źródłowego. Na rysunku poniżej przedstawiona została przykładowa odpowiedź serwera z której można… Continue reading

Identyfikacja punktów wejścia

Celem identyfikacji punktów wejścia do aplikacji jest poznanie protokołów i metod wykorzystywanych do przesyłania informacji między klientem a serwerem. Sprawdzenie jakie poszczególne parametry przyjmowane są poprzez zapytania HTTP, oraz jakie informacje przechowywane są plikach cookie oraz jakie nagłówki są używane. Jest to widoczne na rysunku poniżej. Pozwala to na zbudowanie… Continue reading

Mapowanie strony

Mapowanie zasobów webaplikacji może zdradzić ważne informacje na temat drzewa i struktury katalogów aplikacji, tym samym ujawniając  informacje o użytym oprogramowaniu, jego wersji, czy też wykorzystanym przy budowie języku programowania. Polega ono na zbudowaniu systematycznego widoku, który zazwyczaj w hierarchiczny sposób przedstawia z jakich danych zbudowana jest aplikacja WEB. Mapę… Continue reading

Fazy przeprowadzania testu penetracyjnego

Podczas przeprowadzenia testu penetracyjnego aplikacji web można wyogólnić kilka etapów. Każdy z nich charakteryzuje się wykorzystaniem innych narzędzi i tym samym otrzymanym rezultatem. Można także zauważyć że poszczególne fazy nie zawsze występują ściśle po sobie. Najczęściej jednak wyniki uzyskane z jednego etapu są często danymi wejściowymi dla etapu kolejnego.  … Continue reading