NFsec Logo

Podstawy skryptów shell #3

29/07/2017 w Bezpieczeństwo Brak komentarzy.

T

rzecia część [ 1 ] [ 2 ] będzie poruszać ataki wstrzykiwania do skryptów powłoki. Te typy ataków występują, gdy użytkownik dostarcza jako argumenty przechowywane w zmiennych skryptu spreparowane polecenia lub wartości zamiast oczekiwanych danych wejściowych. W dodatku użyte zmienne są pozbawione znaków cytowania, które służą do usuwania interpretacji znaków specjalnych przez powłokę. Na przykład:

#!/bin/bash

read LOGIN
read COMMAND
if [ x$LOGIN = xroot ]; then
    echo $LOGIN
    eval $COMMAND
fi

[ czytaj całość… ]

Podstawy skryptów shell #2

11/06/2017 w Bezpieczeństwo Brak komentarzy.

W

drugiej części naszej serii zajmiemy się atakami na katalogi, które są dostępne do zapisu dla wszystkich użytkowników. Pliki znajdujące się w tych katalogach podatne są na atak polegający na możliwości zastąpienia ich innym, „złośliwym” plikiem, który skrypt zamierza odczytać lub zapisać.
[ czytaj całość… ]

Podstawy skryptów shell #1

25/05/2017 w Bezpieczeństwo Brak komentarzy.

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 Brak komentarzy.

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.

Uciekając z sudo – część pierwsza

18/08/2014 w Bezpieczeństwo Brak komentarzy.

S

udo jest narzędziem stosowanym w świecie systemów Unix i Linux do „bezpiecznego” ograniczenia dostępów do poleceń i plików wymagających praw administratora. Różni się tym od polecenia su -, że su daje natychmiastowy dostęp do konta root. Sudo natomiast pozwala na dostrojenie, które rzeczywiście polecenia mogą zostać uruchomione z wyższymi uprawnieniami. Problem z sudo jest taki, że nie jest ono w stanie przewidzieć / ograniczyć dalszych działań uprawnionych programów, ani upewnić się, że środowisko wokół tych programów nie posiada żadnych luk konfiguracyjnych, które mogą negatywnie wpłynąć na rozszerzenie nadanych praw.
[ czytaj całość… ]

Netcat shell zabezpieczony hasłem

19/06/2014 w Hacks & Scripts Brak komentarzy.

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

Restrykcyjne powłoki – jak je obejść?

28/06/2009 w Hakin9 & Linux+ Brak komentarzy.

A

dministratorzy, chcąc ograniczyć swobodę użytkowników systemu, decydują się na ustawienie restrykcyjnej powłoki, tak aby umożliwić wykonywanie tylko wybranych komend. Niestety, utworzenie w pełni restrykcyjnego środowiska nie jest rzeczą łatwą, a najdrobniejsze przeoczenie może zezwolić sprytnemu użytkownikowi na wydostanie się z pułapki.
[ czytaj całość… ]