Seite gehackt mit unlock.php

Begonnen von erast, 08 August 2007, 13:31:39

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

erast

Gestern Abend wurde meine Seite gehackt.

Man war ich erschrocken.  :puzzled:

Nichts ging mehr im Admin......

Habe danach gesehen, die unlock.php wurde
komplett überschrieben bzw. ausgetauscht mit
des Hackerks Script-Code.  :puzzled:

Habe danach eine original unlock.php wieder
mit FTP raufkopiert und die Berechtigung auf
644 gesetzt.  (vorher war voll offen)

Wie kann so etwas nur passieren ? Lags an
der Datei berechtigung ?  :gruebel:

Ich habe 0.1.9 mit sp4 im Einsatz.


gruss


erast



Andi

Hi :)

was stand denn drin in der unlock.php?
Und wie kommst du drauf, dass die gehackt war?
Wie äusserte sich das "Nichts ging mehr im Admin......" ?


ZitatWie kann so etwas nur passieren ? Lags an der Datei berechtigung
Dateien ändern, überspielen, löschen usw. kann nur der, der zugriff auf deinen Server hat. Im pragmaMx sind keine Scripte enthalten, die sowas ermöglichen.

Also, übliche Fragen,
- wer hat Zugriff bei dir?
- irgendwelche Fremdmodule installiert?
- läuft auf dem Server noch andere Software?
- sind noch mehr domains auf dem Server?
- ist der FTP-Server sicher?
- usw.....


Sorry, aber mehr kann man da nicht sagen
schön´s Grüssle, Andi

erast

Hallo Andi

Danke für die schnelle Antwort. :smile:

Beim start der admin.php war ich direkt auf Hackers Seite. Also nicht mehr
auf der gewohnten pragmaMX Admin Seite bzw. der Admin ID / Passwort abfrage.

Habe via FTP gesehn dass SIZE und Datum der unlock.php verändert waren.

Inhalt der unlock.php war:
--------------------------------------------------------------------------------------
<html>
<head>
<meta http-equiv="content-type" content="text/html; windows-1254">
<meta name="author" content="HacKeD &#223;y LogoN www.1919Turk.Org and www.1919Turk.com II T&#252;rkiye Cumhuriyeti..!">
<meta name="description" content="HacKeD &#223;y LogoN www.1919Turk.Org and www.1919Turk.com II T&#252;rkiye Cumhuriyeti..!">
<meta name="keywords" content="HacKeD &#223;y LogoN www.1919Turk.Org and www.1919Turk.com II T&#252;rkiye Cumhuriyeti..!,HacKeD &#223;y LogoN www.1919Turk.Org and www.1919Turk.com II T&#252;rkiye Cumhuriyeti..!,HacKeD &#223;y LogoN www.1919Turk.Org and www.1919Turk.com II T&#252;rkiye Cumhuriyeti..!,HacKeD &#223;y LogoN www.1919Turk.Org and www.1919Turk.com II T&#252;rkiye Cumhuriyeti..!,HacKeD &#223;y LogoN www.1919Turk.Org and www.1919Turk.com II T&#252;rkiye Cumhuriyeti..!,HacKeD &#223;y LogoN www.1919Turk.Org and www.1919Turk.com II T&#252;rkiye Cumhuriyeti..!,HacKeD &#223;y LogoN www.1919Turk.Org and www.1919Turk.com II T&#252;rkiye Cumhuriyeti..!">
<meta name="generator" content="HacKeD &#223;y LogoN www.1919Turk.Org and www.1919Turk.com II T&#252;rkiye Cumhuriyeti..!">
<title>HacKeD By LogoN www.1919Turk.Org and www.1919Turk.com II T&#252;rkiye Cumhuriyeti..!</title>

<style type="text/css">
/*----------Text Styles----------*/
.ws6 {font-size: 8px;}
.ws7 {font-size: 9.3px;}
.ws8 {font-size: 11px;}
.ws9 {font-size: 12px;}
.ws10 {font-size: 13px;}
.ws11 {font-size: 15px;}
.ws12 {font-size: 16px;}
.ws14 {font-size: 19px;}
.ws16 {font-size: 21px;}
.ws18 {font-size: 24px;}
.ws20 {font-size: 27px;}
.ws22 {font-size: 29px;}
.ws24 {font-size: 32px;}
.ws26 {font-size: 35px;}
.ws28 {font-size: 37px;}
.ws36 {font-size: 48px;}
.ws48 {font-size: 64px;}
.ws72 {font-size: 96px;}
.wpmd {font-size: 13px;font-family: 'Arial';font-style: normal;font-weight: normal;}
/*----------Para Styles----------*/
DIV,UL,OL /* Left */
{
margin-top: 0px;
margin-bottom: 0px;
}
</style>

</head>

<body background="http://www.1919turk.org/images/arka.gif">

<div style="position:absolute; top:0; left:130; z-index:0"><SCRIPT language=JavaScript1.2>
<!--
function high(which2){
theobject=which2
highlighting=setInterval("highlightit(theobject)",50)
}
function low(which2){
clearInterval(highlighting)
which2.filters.alpha.opacity=40
}
function highlightit(cur2){
if (cur2.filters.alpha.opacity<100)
cur2.filters.alpha.opacity+=10
else if (window.highlighting)
clearInterval(highlighting)
}
//-->
</script>

<a href="http://www.1919turk.org/forum"><img src="http://www.1919turk.org/images/atam01.jpg" width="884" height="610" border="0" style="FILTER: alpha(opacity=40)" onmouseover=high(this) onmouseout=low(this)></a></div>
<div id="text1" style="position:absolute; overflow:hidden; left:218px; top:612px; width:725px; height:80px; z-index:1"><div class="wpmd">
<div align=center><font class="ws12" color="#FFFFFF"><B> LogoN , i.S.C , YouDieD , SsEs , S_e_YM_e_N , Duygusuz , Yasin , 1919T&#252;rk , NSlJ , SnipeR , TufanPa&#351;a</B></font></div>
<div align=center><font class="ws12" color="#FFFFFF"><B>Sory Web Masters</B></font></div>
<div align=center><font class="ws12" color="#FF0000"><B>[ www.1919Turk.Org ] and [ www.c-h-t.org ] and [ www.1919Turk.Com ]</B></font></div>
<div align=center><font class="ws12" color="#FFFFFF"><B>logon(at)1919Turk(dot)org</B></font></div>
</div></div>

<div id="html1" style="position:absolute; overflow:hidden; left:186px; top:0px; width:774px; height:689px; z-index:2">
<SCRIPT language=JavaScript>
if (document.all){
Cols=15;
Cl=24; //Pe&thorn;pe&thorn;e geli&thorn; mesafeleri!
Cs=50; //Sayfaya enine yay&yacute;l&yacute;&thorn; mesafeleri!
Ts=17; //Rakamlar&yacute;n b&#252;y&#252;kl&#252;kleri!
Tc='#33ff33';//Renk
Tc1='#ff0000';//Renk1
MnS=22; //Ak&yacute;&thorn; h&yacute;zlar&yacute;!
MxS=25; //Ak&yacute;&thorn; h&yacute;zlar&yacute;!
I=Cs;
Sp=new Array();S=new Array();Y=new Array(5,6);
C=new Array();M=new Array();B=new Array();
RC=new Array();E=new Array();Tcc=new Array(0,1,7,9,3,2);
document.write("<div id='Container' style='position:absolute;top:0;left:-"+Cs+"'>");
document.write("<div style='position:relative'>");
for(i=0; i < Cols; i++){
S=I+=Cs;
document.write("<div id='A' style='position:absolute;top:0;font-family:Arial;font-size:"
+Ts+"px;left:"+S+";width:"+Ts+"px;height:0px;color:"+Tc+";visibility:hidden'></div>");
}
document.write("</div></div>");

for(j=0; j < Cols; j++){
RC[j]=1+Math.round(Math.random()*Cl);
Y[j]=0;
Sp[j]=Math.round(MnS+Math.random()*MxS);
for(i=0; i < RC[j]; i++){
B='';
C=Math.round(Math.random()*1)+' ';
M[j]=B[0]+=C;
}
}
function Cycle(){
Container.style.top=window.document.body.scrollTop;
for (i=0; i < Cols; i++){
var r = Math.floor(Math.random()*Tcc.length);
E = '<font color='+Tc1+'>'+Tcc[r]+'</font>';
Y+=Sp;

if (Y > window.document.body.clientHeight){
for(i2=0; i2 < Cols; i2++){
RC[i2]=1+Math.round(Math.random()*Cl);
for(i3=0; i3 < RC[i2]; i3++){
B[i3]='';
C[i3]=Math.round(Math.random()*1)+' ';
C[Math.floor(Math.random()*i2)]=' '+' ';
M=B[0]+=C[i3];
Y=-Ts*M.length/1.5;
A.style.visibility='visible';
}
Sp=Math.round(MnS+Math.random()*MxS);
}
}
A.style.top=Y;
A.innerHTML=M+' '+E+' ';
}
setTimeout('Cycle()',20)
}
Cycle();
}
</SCRIPT></div>

<div id="html2" style="position:absolute; overflow:hidden; left:569px; top:637px; width:10px; height:10px; z-index:3">
<EMBED
src=http://1919turk.org/hitabe-son.mp3 hidden=true AUTOSTART="TRUE"
LOOP="TRUE" width="128" height="128"> <NOEMBED><BGSOUND src="http://1919turk.org/hitabe-son.mp3"
loop=infinite></NOEMBED></EMBED></div>

</body>
</html>
---------------------------------------------------------------------------------------------------



Nur ich habe zugriff via FTP.
Keine Fremdmodule.
Andere Domains ja. noch eine pragmaMX Seite welche nicht betroffen war und eine alte
                             HTML Seite.
Anderes muss ich noch abklären.

Provider wird noch informiert./ FTP Passw. geändert ..

gruss

erast

jubilee

1. Nur weil die unlock.php überschrieben wurde, heisst das noch lange nicht das diese dann auch mit dem Angriff selbst zu tun hatte. Daher ist der Titel des Threads irreführend
2. Die unlock.php hat normalerweise keinen verständlichen inhalt. Bzw. besteht diese zum großen Teil aus einem verschlüsselten Script.
3. Eine Datei mit der Berechtigung 666 auf dem Server liegen zu haben, kann ein Risiko sein (je nach Serverkonfiguration)
Die unlock.php braucht nur beim ersten Aufruf überhaupt die Berechtigung 666. Danach kann die Berechtigung auf 644 gesetzt werden.

erast

Das mit dem Titel stimmt.  :smile:

Es betraf nur die unlock.php
Meine Seite läuft sonst einwandfrei und stabil .

Meine unlock.php hatte vorher sogar Berechtigung 777. 
Irgendwie musste da (mir) vorher schon mal ein Fehler passiert sein.

Bin auf jeden Fall froh, dass nichts schlimmes passiert ist.

gruss

erast


FrankP

Wie jubilee schon sagte, es wurde die unlock.php verändert, wie er das aber konnte, muss nichts mit dieser Datei zu tun haben. Es ist dringend zu empfehlen die logfiles zu analysieren und den Angriffsweg herauszufinden.
Webhosting für pragmaMx www.abundus.de
Wer Butter will soll Butter kaufen, statt stundenlang auf die Milch einzudreschen und sich zu wundern, warum nur Käse rauskommt.

erast

Neuigkeiten:

Der gleiche Hack-Inhalt wie oben beschrieben wurde auch in einem anderen
Verzeichniss diesmal als Datei: index.html gefunden.

Hatte aber keine sichtbare Wirkung auf die Site , weil von keiner Instanz gebraucht.

Dieses Verzeichniss wurde von mir von einigen Wochen selbst erstellt (für Dateiablage)
und hatte ebenfalls noch 777. Das create Datum/Zeit  sind identisch mit der unlock.php.

Offensichtlich konnte der Hacker "nur" Dateien und Verzeichnisse mit 777
verändern.  (Stand-Heute) :red:

Viele Passwörter in der Zwischenzeit geändert. In einigen Tagen werde
ich sicher mehr wissen.


gruss

erast






wob

So ...kannst du uns mal deine Serverkonfiguration hier bereitstellen, also ich glaube es kann an einen veralteten Kernel oder PHP - MYSQL - APACHE etc liegen.

Am besten mal alles posten und dazu schreiben welche Ver. du am laufen hast.


Gruss Rene
Ideen sind immer gut, nur diese Idee`n umsetzen ist eine andere frage :-)

erast

Habe folgende Versionen:

CMS-Version: pragmaMx 0.1.9, 1.30/2007-04-05 
PHP-Version: 5.1.6 
MySQL-Version: 4.1.22
Server-Version: Apache/1.3.37 (Unix)
mod_auth_passthrough/1.8 mod_log_bytes/1.2
mod_bwlimited/1.4 mod_ssl/2.8.28 OpenSSL/0.9.8b

FreeBSD 4.11-RELEASE-p26 #10: M i386

Dazu folgende Anmerkungen:
-Hatte vorher noch PHP 4.3.10 drauf.
          vorher war auch register_globals auf on.

Beim Provider ging auch noch einiges ab. Habe rausgefunden
auch andere Kunden meines Providers hatten genau diesen
Angriff wie ich.  :o     (die haben kein pragma)

Wirklich seltsam.. vom provider gibts auch keine richtigen
Auskünfte. Vielleicht haben die auch schon ein update vom
Betriebssystem gemacht. :puzzled:

gruss

erast

erast

Habe noch was unschönes per Zufall entdeckt.

Unglaublich aber wahr.
Im admin/einstellungen/sicherheitsoptionen war der Parameter
Intranet-Umgebung auf = Ja.

Also bewusst habe ich den sicher nicht aktiviert.  :gruebel:



gruss

erast




Rudolf

Hatte seit vorgestern 5 Angriffe die ich per Mail ((Union) Hack detected) bekam.
Welche Verzeichnisse müssen denn nun wie eingestellt werden?
Vorsicht -> Veganer :-)

erast

Hallo

Eigentlich sollte von aussen (www) gar niemand Zugriff direkt auf die Dateien haben.

Die voreinstellungen des Provides müssen alle geprüft werden. Auch bei einem
guten Provider, verlasst euch nicht drauf.

Auf der Joomla.org die letzten Samstag gehackt wurde (anscheinend register_globals on)  stand,
die zusammenarbeit mit dem Provider war sehr gut.  Klar, bei so einer riesen grossen bekannten Seite.

Mit einer php.ini kann vieles selber eingestellt und verbessert werden. Danach immer mal die PHP-Info
anschauen obs auch wirklich so ist. (im admin menü, neben der PHP-Version x.x.x) :smile:

gruss

erast





henne

ZitatHatte seit vorgestern 5 Angriffe die ich per Mail ((Union) Hack detected) bekam.
Welche Verzeichnisse müssen denn nun wie eingestellt werden?

wenn Du ne Mail darüber bekommst brauchst Du dir keine Gedanken zu machen, dann wurde der Angriff vom pragmaMx abgewehrt.
bye Henne

don't click the blue "e" on your desktop, use Firefox

Jeden Tag verschwinden Rentner im Internet, weil sie gleichzeitig alt und entfernen drücken

FrankP

ZitatEigentlich sollte von aussen (www) gar niemand Zugriff direkt auf die Dateien haben.
Auf welche Dateien?

ZitatDie voreinstellungen des Provides müssen alle geprüft werden.
Welche Voreinstellungen sind gemeint?

ZitatDanach immer mal die PHP-Info anschauen obs auch wirklich so ist.

Ob was wie ist?

Bitte detaillierte Infos. Du scheinst zu wissen, wie ein Server sicher und richtig konfiguriert werden muss, das interessiert sicher sehr viele hier.
Webhosting für pragmaMx www.abundus.de
Wer Butter will soll Butter kaufen, statt stundenlang auf die Milch einzudreschen und sich zu wundern, warum nur Käse rauskommt.

erast

ZitatBitte detaillierte Infos. Du scheinst zu wissen, wie ein Server sicher und richtig konfiguriert werden muss,
Ja genau,  jemand hats gemerkt.  :cool:

Folgende Parameter habe ich bis jetzt auf Empfehlung geändert.

-  register_globals  jetzt  off
-  display_errors     jetzt  off
-  allow_url_fopen  jetzt   off
-  enable_dl         jetzt    off

Anderes : PHP 5.1.6 aktiviert 

Aussage Zugriff von Aussen: Via http: ist doch nur ein Lesen von bestimmten Dateitypen möglich.
                                         php dateien werden z.b. nicht auf den Browser übertragen.
                                       
                                         Also eine Datei auf dem Web-server mit Namen notizen.txt welche auf 777 gesetzt
                                         ist kann nicht ohne lokales script überschrieben bzw. modifiziert werden.
                                         Ist das richtig ?

Aussage:    Danach immer mal die PHP-Info anschauen obs auch wirklich so ist.         
Beispiel :    Mein Provider hatte schon vor langer Zeit mitgeteilt, dass er seine register_globals auf off stellen
                 wird.   Ich dachte ist ja prima dann sind diese auf off.
                 Hatte aber ein noch älteres php.ini im Root welche den Parameter wieder auf On setzte.
                 Nie gemerkt...... :smile:

                 


gruss


erast







FrankP

Eines muss aber ganz klar sein: Alle diese Einstellungen sind kein Sicherheitsrisiko. Sie ermöglichen/verhindern nur, dass die löchrigen Scripte keinen Müll machen können. D.h. die angeführten Restriktionen schützen dich vor dir selbst. Wir haben viele Kunden, die allow_url_fopen on haben wollen, damit Fremdcode auf ihrem Web ausgeführt werden kann. Wenn dann aufgrund dieser Einstellung etwas passiert ist es nicht die Servereinstellung, sondern ein löchriges Script, dass den Angriff ermöglicht hat.

Ich habe das Thema deshalb aufgegriffen, weil ich dachte, du bringst jetzt was Neues, das Ei des Kolumbus.
Wenn bei diesen altbekannten Geschichten, die du anführst, etwas passiert, ist nicht die Einstellung Schuld, sondern das Müllscript. Wenn man deine Vorschläge als Provider konsequent umsetzen würde, würde das bedeuten: "PHP komplett deaktivieren, dann kann gar nix passieren, Perl sowieso". Das können wir als Provider ebensowenig, wie auf älteren Kundenservern register_gobals abschalten. Hunderte von Nuke-Kunden würden uns killen  ;)
Webhosting für pragmaMx www.abundus.de
Wer Butter will soll Butter kaufen, statt stundenlang auf die Milch einzudreschen und sich zu wundern, warum nur Käse rauskommt.

Rudolf

Hab grade auch mal die Intranet Umgebung abgeschaltet.
Habe im Moment ca. 10 Mails täglich mit Hackermeldungen.
Aber PragmaMX scheint stdandhaft zu sein.
Ich sag da nochmal hier ganz großes Danke :-)
Grüße vons Rudi
Vorsicht -> Veganer :-)