*********************************************************************************
May 2001
####################################
####################################
## FAQ ##
## ##
## Autor : ShooLeR ##
## e-mail : shooler@box43.pl ##
## ##
## linux, hacking, security ##
## ##
####################################
####################################
Wybaczcie, ale musze te bzdety napisac:
Tekst zostal napisany wylacznie w celach edukacyjnych. Autor nie ponosi
odpowiednialnosci, za jakiekolwiek poczynania zwiazane z opisanymi ponizej
metodami pracy przy komputerze.
------------------------------------------------------------------------------
Z wyniku tego ze jestem najwiekrzym lamerem pod sloncem prawdziwych haxorow
prosze o nieczytanie tego textu.
Heh to zaczynamy, prosze usiasc wygodnie w krzeselku (najlepiej obrotowym wyprofilowanym)
palacym proponuje zapalic fajeczke, lepiej sie czyta ;-) (nie palacych przepraszam
za zle slowa)
Zycze milej lekturki:
Oto spis tresci :
1. Linux
1.1 - komendy
1.2 - smaki powlok
1.3 - inetd
1.4 - komunikacja z innymi uzytkownikami
2. Hack
2.1 - jak zaczac ...
2.2 - obczaja (scaning)
2.3 - in the system
3. Security
4. Greets
1. Linux, hmm chyba kazdy wie co to jest, jezeli nie wiesz odsylam Cie do innych
faq'ow. Wspomne tylko iz jest to wspanialy system nad ktorym masz pelna kontrole,
a nie jakies dziadowskie Windowsy. Chcecie przyklad nie ma sprawy, a wiec:
jezeli jakis program uruchomiony pod windowsem nie spelnia wymaganych warunkow
to co sie dzieje? wiesza nam systemik (tradycyjny niebieski ekran itp :P)
Jednak w linuxie jezeli cos programowi nie pasuje grzecznie nas o tym powiadamia,
a jesli juz sie zdarzy, ze sie zawiesi to nie ma zadnego problemu mozna np zabic
proces komeda bash-2.04$ kill -9 nr_procesu.
Jezeli Cie nie przekonalem to trudno, ale w ponizszy text dotyczy tylko linuxa.
1.1 - komendy
No a jak bez komend w linuxie sie nie obejdzie przedstawiam kilka
najbardziej uzytecznych komend:
ls - wyswietla informacje o plikach
ls [opcje] [pliki_lub_katalog]
cp - kopiuje pliki i katalogi
cp [opcje] plik plik_docel_lub_katalog
mv - przenosi pliki lub katalogi lub zmiena ich nazwy
mv [opcje] plik plik_docel_lub_katalog
rm - usuwa pliki lub katalogi
rm [opcje] pliki_lub_katalogi
ln - tworzy dowiazania do plikow
ln [opcja] plik_lub_katalog link
chmod - zmienia prawa dostepu do plikow i katalogow
chmod [opcje] [uoga] [+-=] [rwxstugo] plik_lub_katalog
chown - zmienia wlasciciela pliku i katalogu
chown [opcje] nowy_wlascicel plik_lub_katalog
df - informuje o ilosci wolnej przestrzeni na dysku
df [opcje] [urzadzenie]
du - informuje o rozmiarze pliku
du [opcje] [plik]
ps - informuje o procesach w systemie i ich statusie
ps [opcje]
find - sluzy do znalezienia danego pliku
find [katalog_poczatkowy] -name [nazwa]
mkdir - tworzy nowe katalogi
mkdir [opcje] katalog
pwd - wyswietla nazwe bierzacego katalogu wraz z pelna sciezka dostepu
pwd
cat - przesyla pliki na standardowe wyjscie
cat [opcje] plik
touch - tworzy nowy plik
touch [opcje] plik
grep - wyswietla wiersze zawierajace zadany lancuch
grep [opcje] plik
i inne:
passwd - zmienia haslo
chage - zmienia date ostatniej zmainy hasla, waznosci konta
mc - odpala imitacje Nortona
finger - informacje o uzytkownikach
gcc - kompilacja cc
kill - moze zabijac procesy
startx - uruchamia winde
pico - edytor tekstu
pine - program pocztowy
telnet - uruchamia telnet
irc - klient irc-a
su - zmienia uzytkownika
logout - wylogowuje
1.2 - smaki powlok
Mozesz wybierac wsrod wielu powlok. Dlaczego?Poniewarz ludzie lubia robic
rozne rzeczy na rozne sposoby, wiec kilku programistow stworzylo nowe powloki,
aby rozwiazac pewne niedociagniecia lub braki.
Przedstawiam liste wielogatunkowej ewolucji powlok:
sh - poczatkowa, zwana "Bourne shell" nie oferuje zbyt wielu dzialan jakich
mozna wymagac od powloki takich chocby jak edycja wiersza polecen
ksh - "Korn shell" dosyc popularna powloka dawniej byla dostepna
w konkretnych wersjach Unixa
csh - "C shell" byl pierwsza powloka oferujaca kontrole procesow oraz
historie polecen
bash - "Bourne Again shell" najpopularniejsza powloka, jest domysna wiekrzosci
dystrybucji Linuxa. Dobrze jest znac te powloke ma mozliwosc edycji wiersza
polecen oraz realizacji nazw plikow jest tez kompatybilna z "Bourne shell"
zsh - jest to najnowsza powloka kompatybilna z "Bourne shell"
.
1.3 - inetd
Inetd jest to tzw. superserwer, ktory po otrzymaniu polaczenia z sieci
udostepnia owa usluge.Plik konfiguracyjny tego cuda znajduje sie w /etc/inetd.conf
Przykladowo jezeli FTP (moze byc tez telnet, finger) bedzie uruchamiany sporadycznie
(np. bedzie sluzyl tylko do zmiany strony www)lepiej bedzie zastosowac wlasnie to
rozwiazanie.Wtedy do pliku inetd.conf dodajemy nastepujacy wiersz (jesli go tam
niema albo jest zachaszowany #):
ftp stream tcp nowait root /usr/sbin/tcpd proftpd <=(chyba ze uzywasz innego
serwera FTP np. wu-ftpd
ktorego bardzo odradzam
ze wzgledy na ilosc
wystepujacych
dzioooor)
1.3 - komunikacja z innymi uzytkownikami
Czesto bedac w systemie potrzebujemy przeslac wiadomosc na terminal,
przy ktorym pracuje nasz qmpel.Jednym ze sposobow wykonania tej czynnosci
jest nastepujace polecenia:
$ write nazwa_uzytkownika [tty] <- dotyczy terminala na ktorym pracuje
uzytkownik dowiedziec sie o nim mozemy
wydajac komende $ who (finger itp.)
Komunikacja nawiazana z partneram bedzie trwala dopoki nie uzyjesz klawiszy
[Ctrl+D] co spowoduje zakonczenie pracy programu write.
Bardziej wyszukana metoda do nawiazywania rozmow w systemie *nixowym jest program
talk . wiadomosci przesylane miedzy nadawca i odbiorca beda umieszczane w dwoch
oddzielnych oknach ekranu.
2. - HACK
2.1
Od czego ja do cholery mam sie zabrac ? to pytanie na pewno zadaje sobie
wielu poczatkujacych tzw. lamerow. Nio ja bym proponowal najpierw sobie troche
poczytac, aby nie isc na impreze z pustym zaladkiem (to tylko taka przenosnia
chodzi o to zeby jak najwiecej czytac czytac i jeszcze raz czytac jezeli myslisz
ze obejdzie sie bez czytania to sie grubo mylisz i niewiem co ty tu jeszcze robisz,
dlaczego o tym tyle mowie otoz kiedy przyjdzie owa chwila musimy miec pojecie
jak zostawic backdoora ;) jak sobie sciagnac shadowa (i co to jest chyba kazdy wie)
i rozkodowac hasla.
a) najpierw musisz sie oswoic z linuxem (kup se ksiazke cos w stylu administracja
linuxem, biblia unixa) bo bez tego ani rusz zainstaluj sobie
linucha i baw sie na maxa (jak mawia moj tata - "cwiczenia czynia mistrzem")
cwicz komendy instaluj oprogamowania sniffery, testuj exploity, musisz
zaznajomic sie z dzialaniem scannerow pozniej sie przyda
nawet jesli Ci nie wychodzi to sie nie zrazaj podpatruj struktore katalogow
ogladaj pliki konfiguracyjne notuj sobie najuzyteczniejsze komendy
wal na pale polecenia (nie smiej sie cwicz az dojdziesz do wprawy)
b) jeszcze lepiej byloby jakbys przyswoil sobie jakis jezyk programisty
wysokiego poziomu (polecam Perl, C/C++ gdyz na bazie tych jezykow dzialaja systemy
*nixowe)
c) Oka, ale do rzeczy na poczatek musisz zalozyc sobie konto shellowe
najlepiej u qmpla, znajomego administratora poszukaj sobie na stronach
za friko =free.net.pl (odradzam nawet nie skompilujesz exploita)
oraz za pewna oplata na interwebie (polecam).
2.2 - obczaja
a) (jak masz shella u jakiegos ladmina to nieczytaj tego podpunktu i przejdz do e))
teraz ladujemy sie na stronki wyszukiwarki np www.wp.pl
i wybieramy jakis adresik serwera najlepiej z jakas dzika domena (www.dupa.kq.waw)
ktory wydaje sie nam slabo zabezpieczony ot tak poprostu.
Dobraaaaaaa, wybralismy teraz zaczniemy go obczajac najpierw sprawdzimy
sobie czy ma otwarta usluge telnetu laczac sie z portem 23 jak niema to patrzymy
na ssh (port 22) jak sie polaczy zapisujemy to sobie sprawdzamy na jakim systemie
pracuje, ladujemy sie na strone serwera sprawdzamy kto jest adminem jaka usluge
prowadzi itp. musimy sie jak najwiecej dowiedziec o serwerze , aby pozniej
wykorzystac do naszych celow ;->
Nastepnie sprawiamy sobie jakis scanner pod linucha polecam nmapa ktorego
cenie za szybkosc i funkcjonalnosc odpalamy go w nastepujacy sposob:
nmap [opcja] www.lamerserv.kq.waw po chwili wyskoczy ci jakie porty sa aktywne na
tym serwerze przykladowo :
Port State Service
21/tcp open ftp
23/tcp open telnet
25/tcp open smtp
80/tcp open http
110/tcp open pop3
Teraz widzimy jakie porty sa otwarte i sprawa jest jasna telnetujemy sie na np.
port 25 sprawdzamy jaki serwer obsluguje poczte jezeli bedzie to jakis zabytkowy
sendmail (przyjazny naszemu srodowisku) to czytamy buqi na sndmaila x.xx i jedziemy
z tym koksem, jezeli jednak nie to sprawdzamy dalej pokoleji wezmy teraz przykladowo
FTP jezeli okaze sie ze serwer korzysta z dzioorawej wersji jak sito
wu-ftpd to szczesliwi notujemy sobie.
Po takiej intensywnej analizie serverka wpieprzamy sie na jakas strone z eXploitami
polecam www.hack.co.za
i szukamy tzw sploitow remote (zdalnych) pod dana usluge (daemon) albo system
zgrywamy ile tylko sie da na swoje konto.
Logujemy sie na swojego shella i odpalamy je po kolei az poskutkuje najczesciej
w ten sposob:
$cc -o exploit exploit.c
$./exploit nazwa_hosta
po chwili exploit powinen przyznac nam shella !!!!!!!!! :)
#whoami
root
e) jezeli masz konto na serwerze, ktory chcesz zhaczyc (np. szkolnym)
to sprawa sie nieco upraszcza gdzyz wiemy jaki system jest zainstalowany.
Napoczatku radze poszukac programow z ustawionym bitem SUID lub SGID
wydajac komende : find / -perm 2000 (4000) - print
W ten sposob zobaczymy jakie programy zostaly udostepnione z prawami roota
slawna dzioora w abuse (gra dolaczana do dystrybucji czerwonego kapturka z bitem
SUID) programy te sa bardzo przyjazne cyberpunkom gdyz wykorzystujac odpowiedniego
exploita uzyskamy uprawnienia roota.Mozemy tez poszukac exploitow local
pod dany system lub usluge wtedy robimy niewielka petelke na ok.3 hosty
odpalamy sploita ........ i heja.
I co juz myslisz ze jestes niewiadomo jakim haxorem niestety nie gdyz kazdy
glupi potrafi odpalic exploita i zalogowac sie w systemie odsylam cie teraz
do czesci *in the system*
2.3 - in the system
You're in.
To do dziela rozwale mu wszystko co ma bedzie plakal caly tydzien ja mu pokaze
kto tu jest bogiem ! tak mysli zapewne wielu poczatkujacych i jezeli ty tak
myslales to sie puknij w lep mlotku po kiego grzyba rozwalac system kiedy mozna
jeszcze samemu skorzystac np. zyskac dodatkowe konto shellowe i na dodatek
z uprawnieniami roooooooooota !!! Ponizszy text dotyczy jak uleprzyc sobie zycie
w systemie.
a) po pierwsze musimy stac sie niewidocznym :
echo /wtmp, albo odpowiedni programik zap2.c
b) at second sprawic aby nasze polecenia nie byly zapisywane do
historii shella .bash_history klikamy takie cudenko :
# rm .bash_history
# ln -s /dev/null .bash_history
i juz nie jestesmy zapisywani do historii!
c) czytamy plik syslog.conf najczesciej w katalogu /etc
by sprawdzic gdzie sa trzymane logi potrzebne nam to bedzie przy
uruchamianiu programu do czyszczenia logow (killlog.c)
d)radzilbym takze sciagnac sobie przez FTP plik z haselkami
/etc/shadow w razie naglego wypadku rozkodujemy sobie John'ym i mamy
dodatkowe konta
e)teraz przyszla kolej na postawienie sobie backdoora
odradzam stawianie na egzotycznym porcie, czyli te z dopisywaniem
nowej uslugi w services i inetd.conf oraz tworzenie sobie shella
z ustawionym SUID'em najczesciej admin zna te pliki bardzo dobrze
i nie pozwoli na jego pozostanie.
- radzilbym raczej dodac nowego najlepiej kilku uzytkownika jak np. guest
cos co nierzuca sie w oczy najszybciej zrobimy to tak :
# useradd guest -u UID -g GID -s /bin/sh -d /home/guest
- teraz aby za kazdym razem nie odpalac exploita zastawimy sobie
malego backdoorka na cronie w nastepujacy sposob :
# crontab -e
otworzy nam sie edytor vim (najczesciej)
i dodajemy takie oto linijki :
0 18 * * * chmod +s /bin/ash {najlepiej wybrac shella zadko uzywanego}
0 23 * * * chmod -s /bin/ash
w taki oto sposob od godz 18 do 23 shell bedzie uruchamiany z prawami roota
a co za tym idzie ze kiedy zalogujemy sie po godzinie 18 tej i odpalimy
$ /bin/ash
zdobedziemy uprawnienia roota ;) i teraz
# whoami
root
# id
uid 0 gid 0
Godziny mozemy oczywiscie zmienic na jakie nam najlepiej pasuja ;/
f) teraz sprzatamy zatrudniamy experta czyli killloga wgrywamy przez FTP
# gcc -o killlog killlog.c
# ./killlog nazwa_uzytkownika
i posprzatane w logach ;)))))
3. - security
Security dlugo zastanawialem sie czy poswiecic czas &-) na napisanie tego artykulu
ale niech bedzie... tylko ostrzegam nie spodziewajcie sie tutaj niczego
wylozonego na tacy, chodzi mi wylacznie o to zeby przyszly administrator
uswiadomil sobie co ma do stracenia i nauczyl sie myslec jak temu zapobiec
to zaczynamy:
Rozwarzania o bezpieczenstwie, chcialby troche od innej strony podejsc
do tego problemu musimy sobie uswiadomic:
Co probujesz chronic ?
Jaka jest wartosc tego co moloby byc utracone ?
Jak potrzafisz odpowiedziec na te pytania, to uczyniles juz duzy krok w kierunku
zidentyfikowania i rozwazania problemow dotyczacych bezpieczenstwa.W koncu dobre
zabezpieczenie, jak i pomyslne administrowanie systemem jest sprawa wczesniejszego
przygotowania na rozne sytuacje. Chociaz zapobieganie z gory wydaje sie bardzo nudne
i ciezkie mysle ze przekonasz sie iz jest znacznie lzejsze.
Sytemy unixowe oferuja dwa glowne sposoby zabezpieczana sie:
* hasla
* prawa dostepu do plikow
Slabosc hasla polega na tym, ze jesli ktokolwiek wlamie sie do konta odgadujac haslo ;)
uzyskuje wszelkie prawa i przywileje nadane temu kontu.
jednak prawa dostepu tworza kolejna linie obrony zarowno przeciwko haxorom ktorym udalo
sie wlamac do konta, jak i legalnym uzytkownikomprobujacy robic cos czego im niewolno.
Lecz najslabsza strona ochrony plikow sa programy typu SUID i SGID z ktorymi powinenies
sie zapoznac.
Celem wszelkich zabezpieczen jest uniemozliwienie robienia przez uzytkownika rzeczy
ktorych nie powinni robic.
Kolejnym etapem zabezpieczenia serwera jest instalowanie wszystkich aktualnych
pakietow korekcyjnych (tzw. lat,patchow) dla odpowiedniego systemu.
Najwaniejsze pliki wymagajace ochrony i monitorowania:
/etc/cron |
/var/spool/cron |} pliki pozwolen cron, pliki crontab
/usr/spool/cron/crontabs |
/etc/fstab - plik konfiguracyjny systemow plikow
/etc/passwd, /etc/shadow - plik hasel i dodatkowy plik hasel
/etc/hosts.eqiuv - plik godnych zaufania hostow
/etc/inetd.conf - plik konfiguracyjny demonow sieciowych
/etc/services - plik konfiguracyjny TCP/IP
/etc/syslog.conf - plik konfiguracyjny logow systemowych
oraz wszystkie pliki SUID i SGIG gdzie kolwiek sa.
4. to by bylo na tyle .....
Big greets to : AlpIIInuS, BuliInBlack, Beowulf, c0dy, iMPACT, firam
and for all from #hacking (interweb)
Jezeli masz jakies uwagi na temat tego faq'u to wal na maila
mile widzane glosy krytyki jak i pochwaly!
********************************************************************************
Wyszukiwarka
Podobne podstrony:
basic hacking guides using linux tru wuftpd bugholeLinux Netfilter Hacking HOWTOLinux 2000 DVB T Experimentslinux kobietyHACKING itcompilar linuxLinux IPCHAINS HOWTO Appendix Differences between ipchains and ipfwadmWireless Hacking with backtrack 3systemy operacyjne cw linux apache mysqlLinux materialyLinux System PlikówAsembler linuxNauka słówek i memoryzacja na Puppy Linuxrs232 linux win32 cz2linux 1 00linux zenlinux nt loader pl 7hardware hacking (ebook promocyjny helion pl)więcej podobnych podstron