NFsec Logo

Podstawy skryptów shell #1

25/05/2017 w Bezpieczeństwo Możliwość komentowania Podstawy skryptów shell #1 została wyłączona

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ść… ]

Niektóre znaki zachęty mogą być podatne na wykonanie kodu

19/03/2017 w Bezpieczeństwo Możliwość komentowania Niektóre znaki zachęty mogą być podatne na wykonanie kodu została wyłączona

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.

#Kochanki.Adminów – where there’s a shell, there’s a way

10/03/2017 w Ataki Internetowe, Bezpieczeństwo Możliwość komentowania #Kochanki.Adminów – where there’s a shell, there’s a way została wyłączona

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ść… ]

LUNAR – Lockdown UNix Auditing and Reporting

08/02/2017 w Bezpieczeństwo Możliwość komentowania LUNAR – Lockdown UNix Auditing and Reporting została wyłączona

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ść… ]

Ukrywanie szkodliwego kodu w skryptach bash

09/01/2017 w Ataki Internetowe, Bezpieczeństwo Możliwość komentowania Ukrywanie szkodliwego kodu w skryptach bash została wyłączona

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

CURL i skrypty instalacyjne w powłoce

20/04/2016 w Ataki Internetowe, Bezpieczeństwo Możliwość komentowania CURL i skrypty instalacyjne w powłoce została wyłączona

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ść… ]

CVE-2016-3672 – Zniesienie limitu dla stosu już nie wyłącza ASLR

06/04/2016 w Bezpieczeństwo Możliwość komentowania CVE-2016-3672 – Zniesienie limitu dla stosu już nie wyłącza ASLR została wyłączona

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

Piszemy skrypty, a raczej scenariusze

02/01/2016 w Administracja Możliwość komentowania Piszemy skrypty, a raczej scenariusze została wyłączona

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)

The Linux Command Line

26/08/2014 w Administracja Możliwość komentowania The Linux Command Line została wyłączona

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

Netcat shell zabezpieczony hasłem

19/06/2014 w Hacks & Scripts Możliwość komentowania Netcat shell zabezpieczony hasłem została wyłączona

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