Napisał: Patryk Krawaczyński
27/09/2021 w Bezpieczeństwo, Debug
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ść… ]
Napisał: Patryk Krawaczyński
05/04/2021 w Bezpieczeństwo
J
eśli w katalogu domowym użytkownika istnieje plik ~/.ssh/rc
– sh(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ść… ]
Napisał: Patryk Krawaczyński
09/05/2020 w Hacks & Scripts
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ść… ]
Napisał: Patryk Krawaczyński
08/03/2020 w Hacks & Scripts
Z
ałóżmy, że posiadamy wiele projektów u publicznego dostawcy chmury obliczeniowej. Jeśli pracują na nich różni użytkownicy może dojść do sytuacji, w której zostanie otwartych zbyt wiele portów do danej usługi. Aby posiadać kontrolę nad tym, co nowego pojawia się w projektach można m.in. systematycznie skanować ich adresy IP. Jednak, aby cały proces nie trwał za długo nawet dla dużej ilości projektów można go zrównoleglić. Na pomoc przychodzi nam już znany parallel. Na początek musimy stworzyć listę projektów w formacie CSV:
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
13/07/2019 w Bezpieczeństwo
W
tej części zajmiemy się ścieżkami, do których odwołują się nasze skrypty. Na przykładzie z aktualnie używanego systemu operacyjnego Ubuntu w wersji 18.04.X LTS przeanalizujemy proste błędy, które mogą doprowadzić do innych problemów z działaniem oraz bezpieczeństwem. Pierwszym błędem jest zapisywanie różnych danych do tymczasowych katalogów pod przewidywalnymi nazwami plików. Musimy mieć świadomość, że do tymczasowych katalogów mają dostęp wszyscy użytkownicy systemu – dlatego działanie w ich obrębie musi być bardzo przemyślane w stosunku do danych, jakie chcemy w nich umieszczać (możemy porównać to do tłumu, który patrzy na wszystko, co robimy). Nawet, jeśli chodzi o proste mechanizmy sprawdzające, czy inny proces skrypty już nie jest uruchomiony.
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
30/08/2017 w Bezpieczeństwo
W
kolejnej części naszej serii [ 1 ] [ 2 ] [ 3 ] zajmiemy się atakami związanymi z uwierzytelnianiem. Zaczniemy od tezy, że nie należy polegać na skryptach, aby ustalać, czy użytkownik ma lub nie ma uprawnień do danej czynności. Jest to możliwe, jednak istnieją dobre i złe strony takiego rozwiązania. Za przykład posłuży nam skrypt:
#!/bin/bash
if [ $UID = 0 -a $USER = "root" ] ; then
echo "Jesteś administratorem zapraszam do domu."
echo $HOME
fi
Kod ten zawiera trzy błędy bezpieczeństwa i wszystkie są spowodowane używaniem zmiennych. Mimo, że bash chroni przed modyfikacją zmienną $UID
to już $USER
jest niezabezpieczona. No i kto powiedział, że inne powłoki chronią zmienną $UID
?
root@darkstar:/home/agresor# ./test.sh
Jesteś administratorem zapraszam do domu.
/root
root@darkstar:~#
Skrypt działa poprawnie dla konta administratora. Przeprowadźmy teraz atak za pomocą zwykłego użytkownika:
agresor@darkstar:~$ ./test.sh
agresor@darkstar:~$ # Niestety nic z tego, ale...
agresor@darkstar:~$ tcsh
darkstar:~> setenv UID 0
darkstar:~> setenv USER root
darkstar:~> setenv HOME /tmp
darkstar:/home/agresor> /bin/bash test.sh
Jesteś administratorem zapraszam do domu.
/tmp
Jeśli ewentualnie chcemy pozyskać informacje o użytkowniku powinniśmy wykorzystać polecenie id:
# Prawdziwy UID
USRUID="$(/usr/bin/id -u -r)"
# Efektywny UID
USEUID="$(/usr/bin/id -u)"
# Nazwa użytkownika
USNUID="$(/usr/bin/id -u -n)"
Na szczęście powyższy skrypt operował tylko wyświetlaniem komunikatów za pomocą echo
. W połączeniu z innym możliwym atakiem (wstrzykiwania) można te błędy wykorzystać w bardziej zły sposób.
Więcej informacji: TCSH / CSH Shell Set PATH Variable, Shell Script Security
Napisał: Patryk Krawaczyński
09/01/2017 w Ataki Internetowe, Bezpieczeństwo
Przez przypadek trafiłem na wpis na wykopie. Idąc tym tropem dotarłem do źródła, w którym możemy znaleźć prosty przepis na stworzenie szkodliwego skryptu w powłoce bash, który z pozoru będzie wyglądał normalnie:
$ printf '#!/bin/bash\necho szkodliwy kod!\nexit\n\033[2Aecho cos tam! ...\n' > backdoor.sh
$ chmod +x backdoor.sh
$ cat backdoor.sh
#!/bin/bash
echo cos tam! cos tam!
$ ./backdoor.sh
szkodliwy kod!
Jak to działa? Istnieją specjalne sekwencje znaków, które interpretuje terminal nie wyświetlając ich, ale podejmując daną akcję. Dlaczego takie polecenia, jak: cat, head, tail, more
i inne zostają oszukane? Ponieważ sekwencja \033[XA powoduje przesunięcie kursora do góry o X linii nadpisując to, co jest w tej X linii. Przez, co użytkownik widzi zupełnie inny kod niż w rzeczywistości zostanie wykonany. W połączeniu z innymi atakami mogą stanowić kompletny wektor na oszukanie użytkownika sytemu z rodziny *nix.
Więcej informacji: JournalCTL Terminal Escape Injection && Log Injection, Terminal Emulator Security Issues
Napisał: Patryk Krawaczyński
11/09/2016 w Pen Test
T
infoleak jest prostym skryptem napisanym w języku Python, który pozwala na uzyskanie takich informacji o użytkowniku Twittera, jak:
- podstawowe informacje: nazwę, zdjęcie, lokacje, śledzących itp.,
- urządzenia oraz systemy operacyjne,
- aplikacje oraz używane inne media społecznościowe,
- odwiedzane miejsca oraz dane geolokalizacyjne,
- analizę hashtagów, wspomnień i wiele innych…
Oczywiście informacje te uzależnione są od ustawień konta, jakie wybrał dany użytkownik Twitter’a. Przejdźmy do procesu instalacji i przykładowego użycia skryptu.
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
12/03/2016 w Bezpieczeństwo
P
o napisaniu podstaw bezpieczeństwa DNS zastanawiałem się, jaka jest skala problemu źle skonfigurowanych serwerów, które pozwalają na ściągnięcie całej strefy lub wykonywanie zapytań dowolnemu klientowi. Duch patryjotyzmu namawiał mnie na sprawdzenie TLD .pl, zarządzaną przez NASK. Niestety, jak zawsze polski dwór zakończył nadzieję na czwartej wymianie zdania. Dialog wyglądał tak:
– Czy istnieje możliwość otrzymania od Państwa listy wszystkich dotychczas zarejestrowanych domen .pl?
– NASK nie udostępnia tego typu informacji.
– A orientują się Państwo do jakiego organu można zwrócić się w tej sprawie?
– Te dane posiada tylko NASK.
Nie chciało mi się już próbować, czy aby jednak istnieje taka możliwość poprzez CZDS. Rozważałem już przerzucić się na zagraniczne banany, ale z pomocą przyszedł portal, który stanowi swoiste źródło wiedzy o ruchu w Internecie. Okazuje się, że Alexa bez żadnych zbędnych formalności udostępnia milion najczęściej odwiedzanych stron. To stanowi już jakąś próbkę, którą można poddać testom.
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
02/01/2016 w Administracja
J
eśli chcemy nagrać interaktywny „film” z sesji, jaką odbyliśmy na naszej konsoli możemy posłużyć się prostym narzędziem script
. W celu rozpoczęcia nagrywania wystarczy uruchomić polecenie:
script --timing=sesja1.tim sesja1.log
Odpali to nową powłokę bash i zacznie nagrywać wszystkie nasze polecenia dopóki jej nie opuścimy. Po zakończeniu nagrania możemy je odtworzyć korzystając z polecenia:
scriptreplay sesja1.tim sesja1.log
Istnieje możliwość przyśpieszenia lub zwolnienia szybkości odtwarzania za pomocą dodatkowego parametru. Ctrl+S
wstrzymuje odtwarzania, a Ctrl+Q
wznawia.
Więcej informacji: Strony manualne dla script(1) oraz scriptreplay(1)
Ostatni komentarz :