Napisał: Patryk Krawaczyński
25/05/2017 w Bezpieczeństwo
B
ezpieczeństwo, jeśli chodzi o pisanie skryptów shell bywa różne. Większość użytkowników skupia się zazwyczaj na rozwiązaniu napotkanego problemu programistycznego lub automatyzacji żmudnego zadania. Nie doprowadzanie w kodzie do luk umożliwiających późniejszą ich eksploatację schodzi na drugi plan. Dlatego w tej serii zostanie opisanych kilka typowych błędów popełnianych w skryptach shell oraz sposoby, w jaki można je wykorzystać i nim zapobiec.
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
19/03/2017 w Bezpieczeństwo
C
iekawe demo oraz słuszność swojego pomysłu przedstawił N.J. Hartwell. Pokazuje on, że niektóre znaki zachęty szczególnie te, którym dołożono wyświetlanie nazwy brancha git mogą być podatne na wykonanie dowolnego kodu. Można oszukać naszą, lokalną powłokę, aby wykonała polecenie lub skrypt, jeśli nazwiemy nasz branch na przykład tak: $(./skrypt.sh)
. Jak sprawdzić czy nasz prompt jest podatny? Wystarczy, że ściągniemy to repozytorium i wejdziemy do niego za pomocą polecenia cd
. Jeśli prompt naszej powłoki niepoprawnie przeprowadzi interpretację zestawu znaków $(..)
to wykona skrypt ./pw3n
i wyświetli (na szczęście) tylko odpowiedni komunikat.
Napisał: Patryk Krawaczyński
10/03/2017 w Ataki Internetowe, Bezpieczeństwo
I
nternet przyzwyczaja nas do wielu nowych rzeczy. To, co jest w nim opublikowane przyjmujemy czasem za pewnik, a porady za sprawdzone i uzasadnione. Niestety nie zawsze tak jest. Jeśli spojrzymy na niektóre, zalecane metody instalacji lub konfiguracji oprogramowania to aż trudno uwierzyć, że nikt nie pomyślał na ile różnych sposobów można je wykorzystać. Sprawdźmy dokąd może zaprowadzić nas na przykład polecenie:
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
08/02/2017 w Bezpieczeństwo
L
UNAR jest narzędziem do audytu systemów z rodziny *nix opartym na kilku benchmarkach oraz innych frameworkach. W skryptach źródłowych można znaleźć nawet adnotacje odnoszące się do konkretnych punktów z zaleceń benchmarków. Obsługuje m.in systemy: RHEL 5, 6, 7 (w tym CentOS oraz Scientific Linux); SLES 10, 11, 12; Debian / Ubuntu; Amazon Linux; Solaris 6, 7, 8, 9, 10 oraz 11 oraz Mac OS X. Jak sam autor zaleca, aby mieć największą pewność, że żadne niepowołane zmiany zostaną dokonane w naszym systemie – najlepiej uruchamiać narzędzie w trybie audytu (-a
). W ten sposób do wykrytych nieprawidłowości można odnieść się poprzez czytanie konkretnych instrukcji kodu (całość napisana jest w języku powłoki bash) lub wspomnianych wcześniej komentarzy. Gdyby doszło to jakieś pomyłki istnieje możliwość wycofania zmian, ponieważ pliki są backupowane za pomocą cpio.
[ czytaj całość… ]
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
20/04/2016 w Ataki Internetowe, Bezpieczeństwo
K
ażda instalacja pakietów z nieznanego źródła, czy ślepe kopiowanie i wklejanie poleceń do terminala jest ewidentnie złym pomysłem. Ostatnio bardzo modne stało się instalowanie różnego rodzaju pluginów, aplikacji, rozwiązań wirtualizacji i innych tworów startapowych poprzez polecenie typu curl http://startup.io/install.sh | bash, co w założeniu ma znacznie upraszczać proces instalacji i konfiguracji dla użytkownika. Wykrywany jest system, instalowane zależności, ściągane dodatkowe instalatory itd. – wszystko szybko i automatycznie, ale czy bezpiecznie?
[ czytaj całość… ]
Napisał: Patryk Krawaczyński
06/04/2016 w Bezpieczeństwo
P
anowie z osławionego błędu związanego z GRUB2 ujawniają bardzo proste obejście mechanizmu ASLR. Każdy użytkownik, który mógł uruchomić aplikacje 32-bitowe na maszynie x86 – mógł za pomocą prostego polecenia wydanego z poziomu powłoki bash (ulimit -s unlimited) wyłączyć mechanizm Address Space Layout Randomization. Nie jest to luka sama w sobie, ale prosty i bardzo stary trik, jak obejść mechanizm dodatkowego zabezpieczenia, aby ułatwić sobie eksplorację innego błędu.
Więcej informacji: CVE-2016-3672 – Unlimiting the stack not longer disables ASLR
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)
Napisał: Patryk Krawaczyński
26/08/2014 w Administracja
T
he Linux Command Line – wydanie drugie – to 537-stronicowy tom autorstwa Williama Shotts’a, który obejmuje ten sam materiał udostępniony na stronie linuxcommand.org, ale znacznie bardziej szczegółowo. Poza przedstawieniem podstaw wykorzystania linii poleceń i skryptów powłoki, “The Linux Command Line” zawiera rozdziały dotyczące wielu wspólnych programów wykorzystywanych w linii poleceń, jak i dotyka bardziej zaawansowanych tematów (np. procesy, składnie regexp, dostępy). Lektura z pewnością przeznaczona dla początkujących administratorów systemu Linux, ale niektóre opisy również przydają się do odświeżenia wiedzy bardziej doświadczonym użytkownikom.
Więcej informacji: The Linux Command Line
Napisał: Patryk Krawaczyński
19/06/2014 w Hacks & Scripts
Prosty skrypt autorstwa Vittorio Milazzo ukazujący sposób przyznania powłoki za pomocą netcat
dopiero po podaniu hasła:
#!/bin/bash
ncpassword () {
NC="/bin/netcat"
PORT="999"
PASSWORD="123456"
SHELL="/bin/bash"
echo -n "Enter password: "
stty -echo
read mypass
stty echo
if [ ${mypass} = $PASSWORD ]
then
echo "Access granted...start netcat shell on port $PORT"
while true; do $NC -l -p $PORT -e $SHELL; done
else
echo "Incorrect Password"
fi
}
ncpassword
sh $0
Ostatni komentarz :