NFsec Logo

Zaciemnianie poleceń w powłoce bash

15/09/2024 w Hacks & Scripts, Pen Test Możliwość komentowania Zaciemnianie poleceń w powłoce bash została wyłączona

P

owłoka bash zawiera wiele funkcji, które pojawiają się w innych popularnych powłokach, a także niektóre funkcje, które są tylko w niej. Dzięki rozbudowanej składni pozwala na pisanie skryptów w wewnętrznym języku programowania, a jego elementy upraszczają pracę w codziennej pracy z wydawanymi poleceniami np. touch {exploit,payload}.{c,sh} tworzy jednym poleceniem cztery pliki: exploit.c, exploit.sh, payload.c, payload.sh. Dzięki temu jedno polecenie może zostać wydane na wiele różnych sposobów używając techniki zaciemnienia / obfuskacji (ang. obfuscation), która zmienia składnię polecenia, ale zachowuje jego semantykę jednocześnie utrudniając jego zrozumienie i umożliwiając ominięcie różnego rodzaju filtrów i mechanizmów detekcyjnych. Na przykład popularne polecenie, takie jak:

cat /etc/passwd

może zostać zapisane na wiele różnych sposobów dając ten sam wynik:

cat /et\
c/pa\
sswd

cat${IFS}/etc/passwd

IFS=,;`cat<<<cat,/etc/passwd`

{cat,/etc/passwd}

cat</etc/passwd

X=$'cat\x20/etc/passwd'&&$X

cat ${HOME:0:1}etc${HOME:0:1}passwd

{\c''\a""t,/e''*?/?a?s??}

{\c''\a""\t,/\e''*?/\p*w\d}

{$'\x63'\a$'\x74',/\e''*?/\p*w$'\x64'}

{/b??/g?e?,.,/e??/p?s??d}

$(echo {/b??/ge*n''t,\p\a\s\s\w\d})

$(echo cat /etc/[p][a][s][s][w][d])

cat `echo -e "\x2f\x65\x74\x63\x2f\x70\x61\x73\x73\x77\x64"`

hex=(63 61 74 20 2F 65 74 63 2F 70 61 73 73 77 64) \ 
echo $(for i in ${hex[@]}; do echo -n -e "\x$i"; done) | sh

cat $(echo . | tr '!-0' '"-1')etc$(echo . | tr '!-0' '"-1')passwd

showme=/ehhh/hmtc/pahhh/hmsswd&&cat ${showme//hhh\/hm/}

Przykłady te wykorzystują znak ucieczki dla nowej linii, separator pól wejściowych, przekierowania strumieni, notację ANSI-C, podstawianie poleceń, rozbudowę klamry, manipulację ciągami tekstowymi, symbole wieloznaczne, wyrażenia regularne z nawiasami kwadratowymi, przekształcanie oraz rozszerzanie parametrów powłoki. Możliwości zapisu poleceń w postaci alternatywnej zależy tylko od naszej kreatywności oraz poziomu zaawansowania umiejętności administracyjno-programistycznych w powłoce.

Więcej informacji: Extraction of wiki.bash-hackers.org from the Wayback Machine

SSHFP – ministerium DNS na rzecz SSH

02/03/2024 w Bezpieczeństwo Możliwość komentowania SSHFP – ministerium DNS na rzecz SSH została wyłączona

P

odczas pierwszego łączenia się z wybranym serwerem klient SSH poprosi użytkownika o weryfikację autentyczności tego serwera. Jest to zasada zwana TOFU – Trust On First Use – przy pierwszym połączeniu zakładamy lub weryfikujemy, że jest ono prawidłowe, a jeśli później coś się zmieni w łączności, będzie to podejrzane i wygeneruje ostrzeżenia. Z obserwacji zachowań użytkowników systemów *nix wynika, że wielu z nich po prostu na ślepo odpowiada: "Yes / Tak", nie biorąc pod uwagę potencjalnych zagrożeń bezpieczeństwa. Osoba, która jest w stanie przejąć sieciowo komunikację może przeprowadzić atak man-in-the-middle (MITM) prowadzący do wycieku danych uwierzytelniających lub przejęcia sesji użytkownika. Zgodnie z RFC 4251 istnieje kilka sposobów na weryfikację “odcisku palca” (ang. fingerprint) klucza serwera.
[ czytaj całość… ]

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

15/12/2019 w Pen Test Możliwość komentowania Obchodzenie zapór pośrednicząco-filtrujących strony web #4 została wyłączona

J

eśli posiadamy podatność, która bazuje na adresie IP, ale zapora pośrednicząco-filtrująca utrudnia nam zadanie eksploatacji pamiętajmy, że adres IP od strony klienta można zapisać na wiele sposobów. Na przykład:

$ ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1): 56 data bytes

$ ping 3232235521
PING 3232235521 (192.168.0.1): 56 data bytes

$ ping 0xC0A80001
PING 0xC0A80001 (192.168.0.1): 56 data bytes

$ ping 192.168.1
PING 192.168.1 (192.168.0.1): 56 data bytes

$ ping 192.168.257
PING 192.168.257 (192.168.1.1): 56 data bytes

$ ping ::ffff:c0a8:0001
PING ::ffff:c0a8:0001(::ffff:192.168.0.1) 56 data bytes

$ ping 0000:0000:0000:0000:0000:ffff:c0a8:0001
PING 0000:0000:0000:0000:0000:ffff:c0a8:0001(::ffff:192.168.0.1) 56 data bytes

Więcej informacji: IPv4 Converter, inet_aton(3), IPv6 address formats,

sup – małe narzędzie do eskalacji uprawnień w systemach Unix

21/05/2016 w Bezpieczeństwo Możliwość komentowania sup – małe narzędzie do eskalacji uprawnień w systemach Unix została wyłączona

s

up jest małą i bezpieczną aplikacją napisaną w języku C. Przeznaczony do ułatwienia przekraczania uprawnień użytkowników przez uruchamianie niektórych programów jako administrator (root – z bitem suid). Wszystkie ustawienia dla programu sup są na sztywno wprowadzane w kodzie podczas kompilacji. Jego autor twierdzi, że jest wysoce przenośny oraz samowystarczalny (w środowiskach produkcyjnych może zostać użyty jako statyczny plik binarny – wymaga wówczas biblioteki musl-libc). Można powiedzieć, że stanowi alternatywę dla sudo w wbudowanych i skonteryzowanych systemach.
[ czytaj całość… ]