Hi Auf einem von mir mitbetreuten Webserver habe ich einen cronjob von 37815 Bytes Größe gefunden, dessen Inhalt sich mir nicht erschliesst. Ich habe den betreffenden Account erstmal gesperrt und um Klärung gebeten. Den vollständigen Code kann man unter ftp://singollo.de/pub/Final2001 ansehen bzw. downloaden. Ein Ausschnitt: # DO NOT EDIT THIS FILE - edit the master and reinstall. # (/tmp/qmcunnilt installed on Tue Sep 28 18:05:55 2004) # (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $) # "\177\105\114\106\001\001\001\000\114\151\156\165\170\000\000\000\002\000\003\000\001\000\000\000\200\200\004\010\064\000\000\000\000\000\000\000\000\000\000\000\064\000\040\000\002\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\200\004\010\000\200\004\010\270\005\000\000\270\005\000\000\005\000\000\000\000\020\000\000\001\000\000\000\270\005\000\000\270\225\004\010\270\225\004\010\054\000\000\000\054\000\000\000\006\000\000\000\000\020\000\000\207\154\236\341\177\125\120\130\344\005\013\012\061\355\130\211\341\215\124\201\004\120\203\344\370\122\121\350\376\001\000\000\364\012\000\044\111\156\146\157\072\040\124\150\151\163\040\146\151\154\145\040\151\163\040\160\141\143\153\145\144\040\167\151\164\150\040\164\150\145\040\125\120\130\040\145\170\145\143\165\164\141\142\154\145\040\160\141\143\153\145\162\040\150\164\164\160\072\057\057\165\160\170\056\163\146\056\156\145\164\040\044\012\000\044\111\144\072\040\125\120\130\040\061\056\062\064\040\103\157\160\171\162\151\147\150\164\040\050\103\051\040\061\071\071\066\055\062\060\060\062\040\164\150\145\040\125\120\130\040\124\145\141\155\056\040\101\154\154\040\122\151\147\150\164\163\040\122\145\163\145\162\166\145\144\056\040\044\012\000\125\127\126\123\121\122\374\213\164\044\034\213\174\044\044\203\315\377\353\014\220\220\212\006\106\210\007\107\001\333\165\007\213\036\203\356\374\021\333\212\007\162\353\270\001\000\000\000\001\333\165\007\213\036\203\356\374\021\333\021\300\001\333\163\357\165\011\213\036\203\356\374\021\333\163\344\061\311\203\350\003\162\015\301\340\010\212\006\106\203\360\377\164\166\211\305\001\333\165\007\213\036\203\356\374\021\333\021\311\001\333\165\007\213\036\203\356\374\021\333\021\311\165\040\101\001\333\165\007\213\036\203\356\374\021\333\021\311\001\333\163\357\165\011\213\036\203\356\374\021\333\163\344\203\301\002\201\375\000\363\377\377\203\321\001\215\024\057\203\375\374\212\004\017\166\016\212\002\102\210\007\107\11 Vielleicht kann mir jemand helfen? Ich schätze, wegen dem Script wurde der betreffende Server für eine Woche vom Netz genommen, so dass wir nur per Remote-Console eine Analyse durchführen konnten. Gruß Udo -- Live long and prosper. -- Spock, "Amok Time", stardate 3372.7
Udo Neist schrieb:
Auf einem von mir mitbetreuten Webserver habe ich einen cronjob von 37815 Bytes Größe gefunden, dessen Inhalt sich mir nicht erschliesst. Ich habe den betreffenden Account erstmal gesperrt und um Klärung gebeten. Den vollständigen Code kann man unter ftp://singollo.de/pub/Final2001 ansehen bzw. downloaden.
Wenn ich das richtig interpretiere, passiert ungefähr folgendes: Das Script schreibt ein 9371 Byte großes, UPF-komprimiertes Binary nach /tmp/qtlbvtpje. Die Datei wird ausgeführt und danach wieder gelöscht. Falls Du einen Virenscanner hast, könntest Du ihn mal über das Binary (Ausgabe per Umleiting von echo -e -n "\177\..." in Datei) drüber laufen lassen. Sieht schon irgendwie wurm- oder virusartig aus :) Gruß, Alex
Am Samstag Oktober 2 2004 21:11 schrieb Alexander Veit:
Udo Neist schrieb:
Auf einem von mir mitbetreuten Webserver habe ich einen cronjob von 37815 Bytes Größe gefunden, dessen Inhalt sich mir nicht erschliesst. Ich habe den betreffenden Account erstmal gesperrt und um Klärung gebeten. Den vollständigen Code kann man unter ftp://singollo.de/pub/Final2001 ansehen bzw. downloaden.
Wenn ich das richtig interpretiere, passiert ungefähr folgendes:
Das Script schreibt ein 9371 Byte großes, UPF-komprimiertes Binary nach /tmp/qtlbvtpje. Die Datei wird ausgeführt und danach wieder gelöscht.
Falls Du einen Virenscanner hast, könntest Du ihn mal über das Binary (Ausgabe per Umleiting von echo -e -n "\177\..." in Datei) drüber laufen lassen.
Sieht schon irgendwie wurm- oder virusartig aus :)
Gruß, Alex
Danke, das habe ich schon vermutet. 4GB in 5 Minuten... Ich werde das mal austesten. Gruß Udo --
... gibt es da nicht was fertiges ? Gibt's da nicht was von Ratiopharm? Gute Scripte, gute Besserung! -- Dominik Roettsches (auf dclp)
Am Samstag Oktober 2 2004 21:11 schrieb Alexander Veit: [...]
Sieht schon irgendwie wurm- oder virusartig aus :)
Gruß, Alex
udo@server:~/test> antivir qtlbvtpje AntiVir / Linux Version 2.1.1-25 Copyright (c) 1994-2004 by H+BEDV Datentechnik GmbH. All rights reserved. Loading /usr/lib/AntiVir/antivir.vdf ... VDF-Version: 6.27.0.83 vom 01 Oct 2004 For private, non-commercial use only. AntiVir-Lizenz: 1001075834 für Udo Neist, Oestrich-Winkel --------- Suchergebnisse --------- Verzeichnisse: 0 Gescannte Dateien: 1 Alarme: 0 Verdächtig: 0 Benötigte Zeit: 00:00:01 ---------------------------------- Vielen Dank für den Einsatz von AntiVir. udo@server:~/test> file qtlbvtpje qtlbvtpje: ERROR: Corrupted section header size udo@server:~/test> cat qtlbvtpje ELFLinu4žžž,,láUPXä 1íXáTPäøRQèþô $Info: This file is packed with the UPX executable packer http://upx.sf.net $ $Id: UPX 1.24 Copyright (C) 1996-2002 the UPX Team. All Rights Reserved. $ Bin immer noch etwas ratlos. Gruß Udo -- "On the Internet, no one knows you're using Windows NT" (Submitted by Ramiro Estrugo, restrugo@fateware.com)
Hallo zusammen,
da ich mich ja aus beruflichen Gründen des öfteren mit der forensischen
Analyse von Hackerangriffen beschäftige, möchte ich hier auf die Schnelle
meinen Senf beitragen. Zunächst muss der zusätzliche Müll aus der Datei
Final2001 entfernt und die restlichen Daten in einer eigenen Datei isoliert
werden (Final2001_neu enthält nur noch die UPX-gepackten Daten, z. B.
\177\105\114\106\ etc.):
echo -e -n `cat Final2001_neu` > /tmp/test
Mit Hilfe des strings-Befehls können alle Zeichenketten aus der Datei
herausgezogen werden (gekürzt):
sebastian@root66:~ $ strings /tmp/test
Linux
$Info: This file is packed with the UPX executable packer http://upx.sf.net $
$Id: UPX 1.24 Copyright (C) 1996-2002 the UPX Team. All Rights Reserved. $
UWVSQR
T$ 9
H+|$$
:ZY[^_]
WVSj
/prof
filej
UPX!u
j!Xj
/tmp/upxAAAAAAAAAAA
[m{r
n;76
nux.so.2
6*+7
t?>09
:+/5l
HwN.(
]3?(
?:Od
__gmon_start
gjmp
rcpy
unsetenv
waitpid
memMve4npr9tf
lMtol_n
ernal
LexEl
cxa_fi
izDdup2 X
feoLm
c\lee
Die Datei ist also mit UPX gepackt und muss dekomprimiert werden:
sebastian@root66:~ $ upx -d /tmp/test -o /tmp/test2
Ultimate Packer for eXecutables
Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002
UPX 1.24 Markus F.X.J. Oberhumer & Laszlo Molnar Nov 7th 2002
File size Ratio Format Name
-------------------- ------ ----------- -----------
15588 <- 9371 60.11% linux/386 test2
Unpacked 1 file.
Die Datei ist also eine Binärdatei für Linux:
sebastian@root66:~ $ file /tmp/test2
/tmp/test2: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), for
GNU/Linux 2.2.5, dynamically linked (uses shared libs), stripped
Jetzt kann man sich die Zeichenketten schon besser anschauen:
sebastian@root66:~ $ strings /tmp/test2
/lib/ld-linux.so.2
__gmon_start__
libc.so.6
longjmp
strcpy
unsetenv
waitpid
recv
connect
geteuid
memmove
snprintf
getenv
memmem
__strtol_internal
getpid
execl
__cxa_finalize
dup2
getuid
feof
malloc
sleep
vsnprintf
socket
select
readdir
strncasecmp
send
chmod
alarm
uname
fprintf
kill
__deregister_frame_info
chdir
strstr
rand
signal
strncmp
setpgrp
unlink
setenv
strcasecmp
sendto
_IO_getc
fork
execlp
fread
inet_aton
memset
srand
inet_ntoa
time
opendir
gethostbyname
fgetc
fclose
fwrite
__xstat
__errno_location
exit
fopen
_setjmp
_IO_stdin_used
__libc_start_main
open
strchr
execvp
closedir
fcntl
__register_frame_info
close
GLIBC_2.1.3
GLIBC_2.1
GLIBC_2.0
PTRh
QVhL
F H<
uvRj
[^_]
Hallo, Am Sat, 02 Oct 2004, Udo Neist schrieb:
Auf einem von mir mitbetreuten Webserver habe ich einen cronjob von 37815 Bytes Größe gefunden, dessen Inhalt sich mir nicht erschliesst. Ich habe den betreffenden Account erstmal gesperrt und um Klärung gebeten.
Gut so.
Den vollständigen Code kann man unter ftp://singollo.de/pub/Final2001 ansehen bzw. downloaden.
Ein Ausschnitt:
# DO NOT EDIT THIS FILE - edit the master and reinstall. # (/tmp/qmcunnilt installed on Tue Sep 28 18:05:55 2004) # (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $) # "\177\105\114\106\001 [..]
Das ist ein ELF-Binary! [1]. Ob und wie das so als cronjob funktionieren kann/soll weiss ich nicht.
Vielleicht kann mir jemand helfen? Ich schätze, wegen dem Script wurde der betreffende Server für eine Woche vom Netz genommen, so dass wir nur per Remote-Console eine Analyse durchführen konnten.
Gut so. Der Server ist IMHO komprimittiert. Am besten setzt ihr den Server neu auf und spielt die Backups von _VOR_ dem 27. wieder ein. -dnh [1] Was man z.B. erkennt, wenn man die ersten Zeichen (das sind oktale Escapesequenzen) mal mit 'echo -e' ausgibt, wenn man unsicher ist, was da alles dabei ist, dann sollte man das evtl. an 'hex' oder 'od' pipen. $ echo -en '\177\105\114\106' | hex 00000000 7F 45 4C 46 .ELF -- Allergien sind wenn ich mich recht erinnere Immunsystemteile welche individuelle Karrieren anstreben. Dies kann man durch geeignete Konditionierung in jungen Jahren wohl stark beeinflussen. -- Dietz Proepper
Gelesen am Samstag Oktober 2 2004 21:16:
Gut so. Der Server ist IMHO komprimittiert.
Am besten setzt ihr den Server neu auf und spielt die Backups von _VOR_ dem 27. wieder ein.
-dnh
[1] Was man z.B. erkennt, wenn man die ersten Zeichen (das sind oktale Escapesequenzen) mal mit 'echo -e' ausgibt, wenn man unsicher ist, was da alles dabei ist, dann sollte man das evtl. an 'hex' oder 'od' pipen. $ echo -en '\177\105\114\106' | hex 00000000 7F 45 4C 46 .ELF
Der Server wurde vom Provider direkt von Netz genommen, konnte also nicht weiter Daten versenden. Zugriff nur noch über Remote-Console. Ich habe direkt erstmal alle temporären Daten gelöscht, Logfiles gescannt und cronjobs überprüft. Die User mit direkten Shell-Zugang (per ssh) konnte ich erstmal ausschliessen, da ich keine Shell-Scripts entdecken konnte. Mir ist dann aber dieses File aufgefallen. Tja, der User hatte danach erstmal Pech. Da unsere Webserver alle gehosteten Scripte nur mit den Rechten der User ausführt, hatte ich einen Scan nach Files dieses Users ausgelöst. Bis auf seine regulären Dateien auf dem Webspace wurde dann nichts mehr gefunden. Ich hatte u.a. nach manipulierten Zeitstempel suchen lassen. Seit gestern abend ist der Server wieder am Netz, seit vielleicht 15 Minuten ist auch der Account freigeschaltet, aber ohne Shell-Zugang. Der User muss seine Passwörter ändern, ansonsten wird dieser gelöscht. Gibt es irgendeine Möglichkeit bei Linux ab einem gewissen Traffic ein irgendwie gearteten Alarm gesendet zu bekommen? Wir könnten solche Meldungen auch über zwei unabhängige Server weiterleiten. Gruß Udo -- "If a machine couldn't run a free operating system, we got rid of it." -- Richard Stallman (Open Sources, 1999 O'Reilly and Associates)
Udo Neist schrieb am 10/02/2004 09:49 PM:
Seit gestern abend ist der Server wieder am Netz, seit vielleicht 15 Minuten ist auch der Account freigeschaltet, aber ohne Shell-Zugang. Der User muss seine Passwörter ändern, ansonsten wird dieser gelöscht.
Ich würde, wenn der Server schon nicht neu aufgesetzt wird, zumindest chkrootkit laufen lassen... Michael.
Am Samstag Oktober 2 2004 21:55 schrieb Michael Schachtebeck:
Udo Neist schrieb am 10/02/2004 09:49 PM:
Seit gestern abend ist der Server wieder am Netz, seit vielleicht 15 Minuten ist auch der Account freigeschaltet, aber ohne Shell-Zugang. Der User muss seine Passwörter ändern, ansonsten wird dieser gelöscht.
Ich würde, wenn der Server schon nicht neu aufgesetzt wird, zumindest chkrootkit laufen lassen...
Michael.
Ich habe gerade den Systemcheck der Verwaltungssoftware durchführen lassen. Suche im Ordner /bin: Keine verdächtigen Dateien! Suche im Ordner /sbin: Keine verdächtigen Dateien! Suche im Ordner /usr/bin: Keine verdächtigen Dateien! Suche im Ordner /usr/sbin: Keine verdächtigen Dateien! Suche im Ordner /lib: Keine verdächtigen Dateien! Suche im Ordner /usr/lib: Keine verdächtigen Dateien! chrootkit hat ebenso ein negatives Ergebnis angezeigt. Die einzigsten Meldungen betreffen Perl-Module, die ich aber nicht weiter prüfen brauch. Gruß Udo -- /* Am I fucking pedantic or what? */ 2.2.16 /usr/src/linux/drivers/scsi/qlogicpti.h
Hallo, ich habe die Erfahrung gemacht, dass die ganzen Programme zur Erkennung von rootkits etc. nicht sonderlich hilfreich sind und vielfach die Schädlinge nicht erkennen. Da hilft nur ne manuelle Analyse des Systems, deshalb würde ich aufhören, die Beweise noch zu verändern und die Platte mit dd kopieren sowie schnellstmöglichst mit Sleuthkit etc. analysieren. Viele Grüße, Sebastian
Am Samstag Oktober 2 2004 22:19 schrieb Sebastian Wolfgarten:
Hallo,
ich habe die Erfahrung gemacht, dass die ganzen Programme zur Erkennung von rootkits etc. nicht sonderlich hilfreich sind und vielfach die Schädlinge nicht erkennen. Da hilft nur ne manuelle Analyse des Systems, deshalb würde ich aufhören, die Beweise noch zu verändern und die Platte mit dd kopieren sowie schnellstmöglichst mit Sleuthkit etc. analysieren.
Viele Grüße, Sebastian
Die Server stehen in einem RZ, da kommen wir gar nicht dran. Jedenfalls sieht es jetzt so aus, dass wir den Server komplett neu aufsetzen - damit werden wir auch von SuSE 8.1 auf 9.0 umgestellt - und ein Backup zurückspielen. Wir sind uns nur noch nicht ganz im klaren, wie und wo wir die Datenbanken sichern sollen. Visas ist leider nicht in der Lage, ein komplettes Datenbankbackup einzulesen und die Accounts wieder herzustellen. Die anderen Daten sind kein Problem. Gruß Udo -- "...and scantily clad females, of course. Who cares if it's below zero outside" (By Linus Torvalds)
Udo Neist wrote:
Hi
Auf einem von mir mitbetreuten Webserver habe ich einen cronjob von 37815 Bytes Größe gefunden, dessen Inhalt sich mir nicht erschliesst. Ich habe den betreffenden Account erstmal gesperrt und um Klärung gebeten. Den vollständigen Code kann man unter ftp://singollo.de/pub/Final2001 ansehen bzw. downloaden.
Hi Udo Is zwar schon ein paar Tage her aber trotzdem... Siehe http://www.heise.de/security/news/meldung/51838 Matti
participants (6)
-
Alexander Veit
-
David Haller
-
Matthias Keller
-
Michael Schachtebeck
-
Sebastian Wolfgarten
-
Udo Neist