четвъртък, 28 февруари 2008 г.

Hiding techniques (linux) - part 1
Sled kato ste root-nali daden server idwa po-trudnata chast...da go
zadyrjite w swoi ryce. Ot moite nabliudeniq sym stignal do izwoda che
mechtata na lamerite e da napishat (citiram) "rm minus rf naklonena
cherta" w momenta w kojto poluchat root dostyp, no edin umen chowek nikoga
ne bi go naprawil, poneje towa oznachawa da zagubi kontrol nad mashinata,
koqto toku shto e hack-nal. Ta nashata cel(na umnite hora :)) e da opazim
mashinata ot loshiq chichko admin, kojto e gotow na wsichko, za da moje da
si opazi rabotata (ponqkoga gi syjalqwam :( ).

W tazi statiq shte razgldam samo nqkoi naj-osnowni neshta bez da se
zadylbochawam mnogo.
Izwestno e che ako edin admin razbere che sistemata mu e hack-nata (a dori
da ne e hacknata) bi proweril koi procesi sa nalice w momenta
(wseizwestnata komanda "ps"). Edna ot nashite celi e da skriem opredeleni
procesi (sniffers, scanners...) ot nego, za da ne moje da razbere che sme
wytre. Drugata tema koqto shte zastypq e kak da skriem file-owe ot
komandata "ls"

Zabelejka: Imajte predwid che ako admin-a izpolzuwa X Windows i tam
raznite im File Manager i Process Viewer shte wi byde mnoooogo po-trudno
da skriete neshto ot pogleda mu.

Neka sega widim kakwo predstawlqwa Rootkit-a:
Rootkit-a e nabor ot troqnizirani programi, koito mojete lesno da
zamenite s obiknowennite na dadena unix sistema. Sami se doseshtate che
powecheto hora nqmat umenieto sami da crack-nat 'telnet' taka che da
zapiswa wyw file username i parolata wywedena pri login. Imenno za towa se
polzuwat tezi neshta. Edin dobyr rootkit e LRK (mojete da go izteglite ot
www.packetstormsecurity.com). W nego se sydyrjat slednite programi:
ls, find - troqnizirani taka che da skriwat opredeleni files
crontab - troqniziran taka che da se startirat newidimi w /etc/cron.*
procesi
netstat - troqniziran taka che da se skriwat opredeleni connections
ps,top - skriwat opredeleni procesi
killall - naprawen taka che da ne mogat da se kill-wat skriti procesi
W nego ima syshto troqnizirani wersii na inetd, sshd i rshd, koito wi
pozwolqwat da izpylnqwate komandi sled kato se swyrjete kym tezi deamons.
Paketa wkliuchwa i utmp i wtmp editor pozwolqwasht wi da redaktirate
log-owete pokazwani chrez "last"
Predpolagam opisanieto na programite wi razqsni celite na edin rootkit.

Da razgledame naprimer kak bihte mogli da skriete niakoi file-owe ot
administratora na server-a (naprimer exploiti koito ste kachili). W
powecheto sluchai kakto kazah po-gore e dobre da izpolzuwate
Rootkits. No ako ne iskate da se zanimawate da kachwate razni dopylnitelni
programki mojete da naprawite sledniq hityr trik:

[admin@nasko /var]# whereis ls
ls: /bin/ls
[admin@nasko /var]# mv /bin/ls /tmp/mcdx
[admin@nasko /var]# echo "/tmp/mcdx \$* | grep -v -f /tmp/unall" > /bin/ls
[admin@nasko /var]# chmod a+x /bin/ls
[admin@nasko /var]# touch /tmp/unall

Sega komandata "ls" shte filtrira wsichki files, koito se sydyrjat w
/tmp/unall (trqbwa da bydat podredeni po edin na red). Mislq che towa e
dosta po-byrz nachin ot kachwaneto na Rootkit, no wse pak wie precenete

Analogichno moje da se zameni "ps" taka che da skriwa opredeleni procesi

Ideqta tuk mi beshe che s obiknowen shell script mojete da swyrshite
syshtata rabota kakto i s naj-moshtnite rootkits.
Wypreki po-skritiq metod na rabota eto nqkolko nachina, po koito mojete da
razberete dali washata sistema nqma takiwa troqnizirani programi:
1) srawnete rezultata na predpolagaemata troqnizirana programa s druga
programa, koqto ima podobna funkciq
Naprimer: wmesto "ls -R" mojete da napishete "du" i da srawnite
rezultatite (w sluchaq dali ima razlika w pokazanite ot dwete programi
file-owe).
2) srawnete file-a sys siguren netroqniziran file (malko e glupawo towa)
3) izpolzuwajte "strace" za da widite kym kakwi sistemni powikwaniq se
obryshta washata programa (moje bi towa e naj-sigurniq metod oswen ako
razbira se hacker-a ne e pipal samoto qdro na sistemata)
Naprimer: strace -e open /bin/ls > /dev/null
shte pokaje kakwi file-owe chete komandata "ls" po wreme na izpylnenieto
si:

[root@nasko /root]# strace -e open ls > /dev/null
open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or
directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
open("/lib/libtermcap.so.2", O_RDONLY) = 3
open("/lib/libc.so.6", O_RDONLY) = 3
open("/usr/share/locale/locale.alias", O_RDONLY) = 3
open("/usr/lib/locale/en_US/LC_IDENTIFICATION", O_RDONLY) = 3
open("/usr/lib/locale/en_US/LC_MEASUREMENT", O_RDONLY) = 3
open("/usr/lib/locale/en_US/LC_TELEPHONE", O_RDONLY) = 3
open("/usr/lib/locale/en_US/LC_ADDRESS", O_RDONLY) = 3
open("/usr/lib/locale/en_US/LC_NAME", O_RDONLY) = 3
open("/usr/lib/locale/en_US/LC_PAPER", O_RDONLY) = 3
open("/usr/lib/locale/en_US/LC_MESSAGES", O_RDONLY) = 3
open("/usr/lib/locale/en_US/LC_MESSAGES/SYS_LC_MESSAGES", O_RDONLY) = 3
open("/usr/lib/locale/en_US/LC_MONETARY", O_RDONLY) = 3
open("/usr/lib/locale/en_US/LC_COLLATE", O_RDONLY) = 3
open("/usr/lib/locale/en_US/LC_TIME", O_RDONLY) = 3
open("/usr/lib/locale/en_US/LC_NUMERIC", O_RDONLY) = 3
open("/usr/lib/locale/en_US/LC_CTYPE", O_RDONLY) = 3
open("/dev/null", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = -1 ENOTDIR (Not a
directory)
open(".", O_RDONLY|O_NONBLOCK|O_DIRECTORY) = 3
open("/etc/mtab", O_RDONLY) = 3
open("/proc/meminfo", O_RDONLY) = 3

Towa e netroqniziran wariant na "ls", no ako widite red ot wida:
open("/etc/hide", O_RDONLY) = 3
bydete siguren che neshto ne e w red i momentalno preinstalirajte
sistemata (poneje sys sigurnost ste seriozno hack-nat :) )

4) izpolzuwajte gotowi programi za prowerka na nalichnost na niakoi ot
standartnite rootkits (naprimer za LRK). Edna dobra takawa programa ima
na adres:
http://packetstormsecurity.org/UNIX/audit/chkrootkit-0.23.tar.gz
Tq moje da zasicha ot swoq strana promqna na utmp i wtmp, da srawnqwa izhoda ot komandata ps
sys sydyrajanieto na /proc i da sledi mrejowiq trafik za podozritelni paketi (syshto i da wi prashta e-mail
ako nameri takiwa)

Kraj na pyrwa chast

Няма коментари: