NFsec Logo

Lets Encrypt najpopularniejszym dostawcą TLS w top 750.000 popularnych domen

17/11/2024 w Techblog Możliwość komentowania Lets Encrypt najpopularniejszym dostawcą TLS w top 750.000 popularnych domen została wyłączona

C

loudflare udostępnił publicznie usługę Radar, w której są zawarte dane o rankingu domen: Domian Rankings Worldwide. Tutaj należy mieć świadomość, że dane pochodzą z ich publicznego serwera DNS, z którego nie koniecznie musi korzystać cały internet. Niemniej jednak jest to dobra próbka, aby przeprowadzić eksperyment podobny do analiz nagłówka HTTP. W pliku pobranym 28.09.2024 znalazło się 1.008.856 domen. Finalnie udało połączyć się z 750.892 domenami w celu pobrania informacji o ich certyfikacie TLS. Aby szybko pozyskać te dane został zmodyfikowany kod skryptu httpsrvreaper na bazie którego powstał sslsrvreaper. Jest on na tyle prosty, że czyta z pliku tekstowego domains.txt adresy, z jakimi ma się połączyć i zapisać ich metadane TLS w formacie JSON, na przykład:
[ czytaj całość… ]

Podpisywanie plików za pomocą certyfikatów TLS

21/05/2024 w Administracja, Bezpieczeństwo Możliwość komentowania Podpisywanie plików za pomocą certyfikatów TLS została wyłączona

J

akiś czas temu dowiedzieliśmy się, że klucze OpenSSH mogą posłużyć do podpisywania plików lub commitów git. Do tego samego celu możemy wykorzystać klucze używane w certyfikatach SSL/TLS (pozyskane z dowolnej strony, która jest dostępna za pomocą protokołu HTTPS). Pierwszym krokiem jest stworzenie pliku z wiadomością:

echo 'TOP Secret Message' > msg.txt

Drugim jest podpisanie pliku za pomocą prywatnego klucza, który znajduje się na serwerze:

openssl dgst -sha256 -sign /etc/apache2/ssl/server.key -out msg.txt.sig msg.txt

Trzecim jest konwersja pliku msg.txt.sig z formatu binarnego do tekstowego używając BASE64:

openssl base64 -in msg.txt.sig -out msg.txt.sig.asc

Jeśli teraz opublikujemy plik z wiadomością msg.txt oraz jego podpis: msg.txt.sig.asc, każdy posiadający dostęp do strony będzie mógł zweryfikować jej autentyczność. W pierwszym kroku użytkownik musi uzyskać klucz publiczny:

openssl s_client -connect nfsec.pl:443 | openssl x509 -pubkey -noout > pubkey.key

Następnie użytkownik musi ponownie zamienić opublikowaną sygnaturę tekstową do formy binarnej:

openssl base64 -d -in msg.txt.sig.asc -out msg.txt.sig

i zweryfikować poprawność wiadomości za pomocą pobranego klucza:

user@user:~$ openssl dgst -keyform pem -verify pubkey.key -signature msg.txt.sig msg.txt
Verified OK

Ale to nie wszystko. Skoro użytkownik może bardzo prosto pozyskać klucz publiczny serwera to jest w stanie szyfrować wiadomości przeznaczone do jego administratora lub właściciela:

openssl pkeyutl -in msg.txt -out to_agresor.enc -pubin -inkey pubkey.key -encrypt

Tak przesłana wiadomość może zostać odczytana za pomocą klucza prywatnego, który został użyty w certyfikacie TLS/SSL danego serwera:

root@stardust:~# openssl pkeyutl -in to_agresor.enc -out msg.txt -inkey \
                 /etc/apache2/ssl/server.key -decrypt
root@stardust:~# cat msg.txt
TOP Secret Message

W ten sposób każdy użytkownik może zaszyfrować wiadomość dla właścicieli swoich ulubionych stron internetowych – nawet jeśli nie publikują one jawnie klucza publicznego.

Więcej informacji: Using HTTPS certificates to sign/encrypt arbitrary data

Urzędy certyfikacji w systemach Linux mają zbyt prosty pogląd na “zaufanie”

06/12/2022 w Bezpieczeństwo Możliwość komentowania Urzędy certyfikacji w systemach Linux mają zbyt prosty pogląd na “zaufanie” została wyłączona

J

ak zauważył Chris Siebenmann prawie każdy system Linux (a tak naprawdę, każdy system Unix) posiada systemowy “schowek” dla głównych certyfikatów CA. Możemy przez to rozumieć katalog, w którym przechowywana jest lista wszystkich certyfikatów CA, które są domyślnie zaufane przez większość oprogramowania wykorzystującego TLS. Z różnych rozsądnych powodów, wiele dystrybucji Linuksa wykorzystuje magazyn CA Mozilli jako swój systemowy czasami wprowadzając pewne zmiany. Na czym polega więc problem? Sednem jest fakt, że Mozilla oraz Microsoft właśnie przestały ufać głównym certyfikatom TrustCor w swoich przeglądarkach. Oznacza to, że certyfikaty wydane od 1 grudnia przez tego CA nie będą zaufane, a główne certyfikaty zostaną usunięte z przeglądarek po wygaśnięciu. O ile zmiana w przeglądarkach zadziała się dość szybko to należy zauważyć, że w systemach takich jak Linux, które bazują na głównym magazynie certyfikatów Mozilli będą w pełni ufać TrustCor przez co najmniej kolejny rok lub dłużej ze względu na opóźnienia w wydaniu i instalacji aktualizacji paczki ca-certificates. Możemy być zdezorientowani dlaczego systemy Linuksowe tak długo będą ufać certyfikatom TrustCor. Mniej istotnym powodem są opóźnienia jakie wynikną z aktualizacji spakowanych kopii magazynu Mozilli (powstała nawet na ten temat praca naukowa pt. Tracing Your Roots: Exploring the TLS Trust Anchor Ecosystem), a później skłonienie użytkownika do zastosowania tej aktualizacji. Dość znamiennym przykładem mogą tutaj być dystrybucje Ubuntu oraz Debian, które same cofnęły usunięcie certyfikatu Symantec z pakietu Mozilli, ponieważ program nuget używał jeszcze certyfikatów, które nie zostały odnowione, więc tymczasowo przywrócono te od Symantec. Ważniejszym problemem może wydawać się ograniczony model tradycyjnego przechowywania certyfikatów CA w systemach *nix.
[ czytaj całość… ]

1001 Pen Test oraz Bug Bounty Tips & Tricks #6 – Korelacja czasowa ważności certyfikatu

08/10/2022 w Pen Test Możliwość komentowania 1001 Pen Test oraz Bug Bounty Tips & Tricks #6 – Korelacja czasowa ważności certyfikatu została wyłączona

W

iele nowoczesnych serwisów internetowych stosuje automatyczne wydawanie i odnawianie certyfikatów TLS. Dla firm dostępne są usługi komercyjnych wystawców SSL. Dla wszystkich innych dostępne są bezpłatne usługi, takie jak Let’s Encrypt i ZeroSSL. Jednak bardzo często popełniany jest błąd w sposobie w jaki konfiguruje się wdrożenie darmowych wersji certyfikatów TLS. Pozwala on każdemu odkryć prawie wszystkie nazwy domen i subdomen używanych przez ten sam serwer webowy. Jak wiemy, istnieje takie coś jak Certyficate Transparency (CT), czyli internetowy standard bezpieczeństwa służący do monitorowania i audytu wystawiania certyfikatów TLS. Tworzy on system logów publicznych, które służą do rejestrowania wszystkich certyfikatów wydawanych przez publicznie zaufane urzędy certyfikacji (CA). Do przeszukiwania dzienników CT możemy używać serwisów: crt.sh, certstream, a także Censys, który również pozwala na przeszukiwanie wyników skanowania certyfikatów w internecie.
[ czytaj całość… ]

eCapture – przechwytywanie SSL/TLS bez CA przy użyciu eBPF

25/05/2022 w Bezpieczeństwo, Pen Test Możliwość komentowania eCapture – przechwytywanie SSL/TLS bez CA przy użyciu eBPF została wyłączona

W

yobraźmy sobie, że nasz system został zainfekowany przerobionym i trudnym do wykrycia implantem sieciowym. W swojej przeróbce został on uzbrojony w moduł inwigilacji oparty o eCapture. Jest to zwinne narzędzie napisane w języku Go, które również wykorzystuje technologię eBPF. Umożliwia ona uruchamianie programów zamkniętych w piaskownicy jądra systemu operacyjnego. Dzięki temu potrafi przechwycić zaszyfrowaną komunikację sieciową bez konieczności “podpinania” Urzędu Certyfikacji (ang. Certificate Authority), któremu należy zaufać. Zamiast tego wpina się w funkcje SSL_write / SSL_read współdzielonej biblioteki SSL, aby uzyskać kontekst tekstowy i wysłać tak uzyskane wiadomości do przestrzeni użytkownika za pomocą map eBPF.
[ czytaj całość… ]

Interceptor – pasywny fingerprinting botów, skanerów i innego szkodliwego oprogramowania

14/11/2021 w Bezpieczeństwo Możliwość komentowania Interceptor – pasywny fingerprinting botów, skanerów i innego szkodliwego oprogramowania została wyłączona

D

zisiaj stworzymy sobie małe wejście do szyny danych wzbogacającej o metadane adres IP klienta. Prototyp o nazwie Interceptor, który zademonstruje użyje JA3 do fingerprintingu botów, skanerów, szkodliwego oprogramowania oraz innych programów, które korzystają w komunikacji z protokołu HTTPS. Zacznijmy od JA3. Firma Salesforce otworzyła tę metodę fingerprintigu klientów TLS w 2017 roku. Podstawowa koncepcja pobierania “cyfrowych odcisków palców” od klientów TLS pochodzi z badań Lee Brotherstona (w 2015 roku wygłosił on prezentację na ten temat). Jak wiemy TLS i jego poprzednik SSL, są używane do szyfrowania komunikacji dla popularnych aplikacji, aby zapewnić bezpieczeństwo danych. Aby zainicjować sesję TLS klient wysyła pakiet: TLS Client Hello po potrójnym uścisku dłoni TCP. Pakiet ten i sposób, w jaki jest generowany, zależy od metod i innych pakietów / bibliotek oprogramowania użytych podczas budowania danej aplikacji klienckiej.
[ czytaj całość… ]

Obchodzenie zapór pośrednicząco-filtrujących strony web #5

01/06/2021 w Pen Test Możliwość komentowania Obchodzenie zapór pośrednicząco-filtrujących strony web #5 została wyłączona

W

ypożyczanie domen (ang. domain borrowing) jest ulepszoną techniką domain fronting. Tą ostatnią można łatwo wykryć jeśli w sieci znajduje się urządzenie deszyfrujące ruch HTTPS i porównuje wartości nagłówków SNI i HOST. Jednak wypożyczanie domen pozwala na ukrywanie ruchu C2 i innej komunikacji za pomocą CDN w celu obejścia zapór sieciowych i systemów IDS. Jak wygląda normalny, niepodejrzany ruch sieciowy, który się monitoruje, ale nie blokuje? Na pewno jest szyfrowany (HTTPS); odnosi się do domen z poprawnymi certyfikatami TLS, które są znane i mają dobrą reputację w sieci; nawet rozszyfrowany wygląda jak poprawny (SNI == HOST); nie jest blokowany ze względu na możliwość utraty generycznego ruchu od dużego gracza w internecie.
[ czytaj całość… ]

Mozilla Observatory

02/05/2020 w Bezpieczeństwo Możliwość komentowania Mozilla Observatory została wyłączona

P

odczas słuchania Rozmowy Kontrolowanej z udziałem Michała Purzyńskiego padło narzędzie Observatory od Mozilli. Okazuje się, że w jednym miejscu jesteśmy w stanie sprawdzić konfigurację kilku mechanizmów bezpieczeństwa naszej strony. Od nagłówków HTTP (w tym szczególnie ustawień polityki CSP) poprzez konfigurację TLS, a na opcjonalnych testach dla SSH kończąc. Dodatkowo jeśli interesuje nas wygenerowanie bezpiecznych konfiguracji dla najpopularniejszych serwerów możemy wykorzystać narzędzie Mozilla SSL Configuration Generator.

Więcej informacji: Konfiguracja nagłówków bezpieczeństwa na A+, HTTP Strict Transport Security – wymuszamy SSL na przeglądarkach, Konfiguracja SSL dla Apache na 5+, Konfiguracja SSL dla nginx na 5+, Audytujemy algorytmy szyfrowania SSH

1001 Pen Test oraz Bug Bounty Tips & Tricks #4 – (Sub)domeny w czasie rzeczywistym

21/03/2020 w Pen Test 1 komentarz.

K

to ma informację ten ma władzę. Jeśli pamiętamy serwis umożliwiający nam rekonesans przez listę certyfikatów, czy innego tego typu rozwiązania – to możemy dojść do wniosku, że wszystkie te rozwiązania mają opóźnienia w czasie. No chyba, że będziemy codziennie wykonywać z nich zrzut danych i porównywać różnicę, ale to może być trochę czasochłonne. Czy istnieje możliwość stworzenia prostego mechanizmu, który będzie w czasie rzeczywistym śledził dla nas pojawienie się domen lub subdomen będących w centrum naszego zainteresowania ?
[ czytaj całość… ]

Kroniki Shodana: Docker cz.I

16/03/2020 w Pen Test Możliwość komentowania Kroniki Shodana: Docker cz.I została wyłączona

D

ocker jako jedno z rozwiązań dla tworzenia kontenerów zyskał ogromną popularność w ciągu kilku ostatnich lat i stał się nowym sposobem pakowania, dostarczania i wdrażania aplikacji. Niestety, jeśli dana technologia się szybko rozwija i jest szeroko adoptowana przez społeczność, staje się również cennym celem dla adwersarzy. Na początku pojawiły się złośliwe obrazy. Były one umieszczane w publicznych rejestrach. Jeśli użytkownik sam lub za namową cyberprzestępcy skłonił się do skorzystania z takiego obrazu w rzeczywistości pobierał i wykonywał złośliwe ładunki (np. koparki kryptowalut), umożliwiał wejście przez tylną furtkę (ang. backdoor), przeszukiwanie logów dla poufnych informacji, czy dostęp do systemu plików hosta z kontenera.
[ czytaj całość… ]