Hi, On Fri, 26 Aug 2005, Bernd Obermayr wrote:
Daniel Lord schrieb:
IMHO versteckt SuSEs ps selber Prozesse sonst ist das auf jedenfall kein gutes Zeichen ;)
frx:~/bin/chkrootkit-0.45 # ./chkrootkit -x lkm ROOTDIR is `/' ### ### Output of: ./chkproc -v -v -p 1 ### [...] PID 1254: not in ps output CWD 1254: /dev/net/.../work/fedssh2 (deleted) EXE 1254: /bin/bash PID 1424: not in ps output CWD 1424: /dev/net/.../work/fedssh2 (deleted) EXE 1424: /dev/net/.../work/fedssh2/exploit (deleted) PID 2250: not in ps output CWD 2250: /dev/net/.../work/fedssh2 (deleted) EXE 2250: /dev/net/.../work/fedssh2/exploit (deleted) PID 14295: not in ps output CWD 14295: / EXE 14295: /usr/bin/smbd -D PID 14306: not in ps output CWD 14306: /tmp/.../.../parliament (deleted) [...] PID 15322: not in ps output CWD 15322: /dev/net/.../personal/iroffer (deleted) EXE 15322: /dev/net/.../personal/iroffer/kjournald (deleted) [...] PID 20473: not in ps output CWD 20473: /dev/net/.../personal/iroffer (deleted) EXE 20473: /dev/net/.../personal/iroffer/kjournald (deleted) PID 20783: not in ps output CWD 20783: /dev/net/.../personal/iroffer (deleted) EXE 20783: /dev/net/.../personal/iroffer/kjournald (deleted) usw.
ok, d.h. du hattest dann noch einen schönen zweiten SSH Zugang zu der Kiste.
chattr -i <datei> rm -f <datei> Das hab ich schon versucht, geht nicht.. frx:/dev/net/.../kent # chattr -i ls frx:/dev/net/.../kent # mv ls ls-bad mv: cannot move `ls' to `ls-bad': Permission denied frx:/dev/net/.../kent # rm ls rm: cannot remove `ls': Permission denied frx:/dev/net/.../kent #
frx:/dev/net # lsattr -R ... suS--adAc------ .../kent .../kent:
chattr -suSadAc .../kent rm -rf .../kent
3. Angreifer beobachten. - eigenes LKM (umständlich) Hab grad ein Brett vorm Kopf: LKM was ist das?
Loadable Kernel Modul d.h. einfach ein Kernelmodul, dass dir auf unterster Ebene in die Suppe spuckt. Wenn das ding richtig programmiert ist hast du am laufenden System als admin fast keine chance dagegen. Einzige Alternative (die ich kenne) ist ein monolytischer Kernel oder ein eigenes "Admin LKM" das eben alles was du nicht haben willst rauswirft. Z.B. könnte das im einfachsten Fall ein Kernelmodul sein, dass als letztes geladen wird und danach keine neuen Module mehr annimmt. In lsmod etc. darf es natürlich nicht sichtbar sein ;)
- tty logger - tcpdump auf einem weiteren System mitlaufen lassen.
tcpdump wäre bei dir jetzt ins leere gelaufen, da der Angreifer einen eigenen sshd benutzt hat. Dann kannst du den netzwerkverkehr natürlich lange sniffen, das juckt ihn nicht.
Portscan von aussen zeigt nur ssh an. Mehr wurde nicht geprüft, der Kunde hielt das für unnötig.
portscan? nmap? Wenn nmap, dann mit welchen Optionen?
nmap -sT -p- -P0
Gerade eben: Starting nmap 3.50 ( http://www.insecure.org/nmap/ ) at 2005-08-25 21:15 CEST Interesting ports on <Adresse gelöscht> (The 65532 ports scanned but not shown below are in state: closed) PORT STATE SERVICE 22/tcp open ssh 35721/tcp open unknown
nmap -sV -p 35721 oder nc <ip> 35721 lsof -i TCP:35721 netstat -tulpen
Der letzte Port war da vorher nicht :(
hehe shit happens ;)
/var/log/firewall: Aug 11 23:19:54 frx kernel: SuSE-FW-ACCEPT IN=ppp0 OUT= MAC= SRC=85.186.224.83 DST=84.150.214.196 LEN=48 TO S=0x00 PREC=0x00 TTL=120 ID=32877 DF PROTO=TCP SPT=2936 DPT=35721 WINDOW=16384 RES=0x00 SYN URGP=0 OPT (02040 5AC01010402)
ok, das Packet darf also durch deine Firewall. D.h. du hast wohl highports in der Konfiguration erlaubt. Nicht gut.
Aug 11 23:19:55
hmm, auf einem server ist es wichtig immer eine genaue Uhrzeit zu haben (ntpdate oder eigene DCF77 Uhr) Sonst bist du im Fehlerfall immer am umrechnen der Zeiten.
Aug 11 23:27:53 frx kernel: eth0: Promiscuous mode enabled.
Aug 11 23:27:55 frx kernel: eth0: Promiscuous mode enabled.
Aug 11 23:27:55 frx kernel: Kernel logging (proc) stopped.
Aug 11 23:27:55 frx kernel: Kernel log daemon terminating.
Da wird man ja richtig zum Detektiv ;)
läuft da zufällig dein cron.daily? Oder ist es möglich, dass sich der Angreiffer ein Zeitfenster für seine Logins geschaffen hat? Die Rootkit Dateien habe ich mir mal näher angeschaut. bis auf top sind alles normal binaries. Normal heißt, dass es die Binaries sind die bei deiner SuSE dabei waren. Also keine Patches, Viren, Backdoors etc.. Top kann ich nicht so einfach verifizieren. Aber vielleicht hat jemand noch ne SuSE rumstehen, und kann dir sagen ob die MD5Summe zu einem "known good binary" passt. 3bc67a1772a8e5543d4459f581c1c25d top Ich habe das binary zerlegt und nichts besonderes gefunden. D.h. kein Laufzeitpacker, der gleiche Compiler, das gleiche Erstelldatum keine Sockets etc. Es fehlt mir folglich nur die richtige MD5Summe, oder irgendwann/irgendwo ist ein Bit in der Datei gekippt. Greetings Daniel -- Alle Pilze sind eßbar. Manche sogar mehrmals.