News:

Want to get involved in developing SMF, then why not lend a hand on our github!

Main Menu

Sicherheitssoftware: CTXtra

Started by Nordin, April 09, 2007, 11:43:54 AM

Previous topic - Next topic

Nordin

Hallo Leute,

ob man es braucht oder nicht könnt ihr ja selber entscheiden....

Ich baue grad an eine CTracker (http://www.cback.de/cback_software/standalonect.php) Version für SMF nennt sich dann smfCTrackerXtra ;)

Einen Vorgeschmack hab ich als attachment angehängt. Würde gern wissen was ihr davon haltet. Seit ihr daran interessiert? Braucht jemand sowas?

Ich hab heute erst angefangen mache aber rasant Vortschritte. Wenn es bei euch gut ankommt würde ich versuchen noch heute eine errste Beta online stellen *g* dann könnt ihr selber testen.

// EDIT
http://www.wupmedia.de/ctracker/

//EDIT (18.06.07)
Ich hab alles überarbeitet! der CTXtra wird nicht mehr direkt in das SMF integriert... er ist jetzt wieder ein "stand alone" und überall einsetzbar... Er schützt vor SQL-Injects, Wurmattacken, und vorallem gegen SPAM


//EDIT (13.08.07)
v1.5 ist online! www.ctxtra.de

LG Nordin
CTXtra v1.5
Schutz vor Exploits wie SQL Injections, Wurmattacken und SPAM
www.ctxtra.de

Mabba

Oh ja, habe sehr grosses Interesse daran.
Gruss
Mabba
SMF 2.0.9

Nordin

CTXtra v1.5
Schutz vor Exploits wie SQL Injections, Wurmattacken und SPAM
www.ctxtra.de

Mabba

Überhaupt nicht ironisch gemeint. Mir ist absolut ernst.
Gruss
Mabba
SMF 2.0.9

Nordin

Oh cool dachte nicht das es wirklich jemand haben will.

Ah sehe du hast TinyPortal... hab schon die erweiterung für TP mit drin.
CTXtra v1.5
Schutz vor Exploits wie SQL Injections, Wurmattacken und SPAM
www.ctxtra.de

Mabba

Super, kannst mich ja Testerin ansehen -  :D
Gruss
Mabba
SMF 2.0.9

Nordin

Gern! Nur einen kleinen Hacken hat das ganze noch... es wird sicher noch ewig daueren bis man es mit dem Packetmanager installieren kann.

Aber im großen und ganzen ist es in sag ich mal 15 Minuten installiert.
Ich bau noch schnell an ner Webseite zum Downloaden, dann kannst es ja mal ausprobieren.

Wird aber dann zügig updates geben da es ja ein sehr junges Projekt ist...
Das Updat ist dann aber in wenigen sekunden immer erledigt.
CTXtra v1.5
Schutz vor Exploits wie SQL Injections, Wurmattacken und SPAM
www.ctxtra.de

Mabba

Packetmanager geht sowieso noch nicht optimal also bin ich im manuellen einbau relativ gut geübt  ;)

Gruss
Mabba
SMF 2.0.9

mediman

Quote from: Mabba on April 09, 2007, 12:51:23 PM
Packetmanager geht sowieso noch nicht optimal also bin ich im manuellen einbau relativ gut geübt  ;)



So so, nicht optimal!
My Projects: http://ticker-oase.de 
Please do not PM me with support requests.

Nordin

Die Installation hat fünf Schritte (für TinyPortal sechs *g*) hab es eben auf ein "frisches" SMF getestet läuft super.

Hier geht es zum download:
http://www.wupmedia.de/ctracker

Und bitte ans feetback denken... Brauche Anregungen und Vorschläge!
CTXtra v1.5
Schutz vor Exploits wie SQL Injections, Wurmattacken und SPAM
www.ctxtra.de

Mabba

Sauber, vielen Dank, werde in heute oder morgen einbauen.
Melde mich auf alle Fälle wieder.
Gruss
Mabba
SMF 2.0.9

Mabba

Quote from: mediman on April 09, 2007, 02:48:55 PM
So so, nicht optimal!

Ist so, immer Parse Error. Aber stört nicht gross.  ;)
;D Es sei denn du hast mir die Ultimative Lösung? 
Gruss
Mabba
SMF 2.0.9

mediman

Quote from: Mabba on April 09, 2007, 04:03:01 PM
Quote from: mediman on April 09, 2007, 02:48:55 PM
So so, nicht optimal!

Ist so, immer Parse Error. Aber stört nicht gross.  ;)
;D Es sei denn du hast mir die Ultimative Lösung? 

Da müsste man den Parserror mal in voller Schönheit sehen.

@Nordin

Ich werde den Tracker mal checkern.

mediman

My Projects: http://ticker-oase.de 
Please do not PM me with support requests.

Nordin

@mediman

wenn dabei bist kannst mir mal bei der subNavi helfen ( Hauptseite | Angriff Simulieren ) ?
Ich bekomme es einfach nicht hin das die aktuelle Seite angezeigt wird... Weißt was ich mein?
CTXtra v1.5
Schutz vor Exploits wie SQL Injections, Wurmattacken und SPAM
www.ctxtra.de

mediman

Quote from: Nordin on April 10, 2007, 07:51:12 AM
@mediman

wenn dabei bist kannst mir mal bei der subNavi helfen ( Hauptseite | Angriff Simulieren ) ?
Ich bekomme es einfach nicht hin das die aktuelle Seite angezeigt wird... Weißt was ich mein?

Ja, ich weiss was du meinst.
Ist es richtig, dass die Seite momentan lediglich die query_string entschärft?
So wie ich es sehe ist kein Schutz vor directory_traversal gegeben.
Na, ich schau mal nach
My Projects: http://ticker-oase.de 
Please do not PM me with support requests.

Christian Land

#15
Niedlich aber nur bedingt nützlich...

Der Query-String wird 1:1 übernommen und untersucht... das kann reichen, muss es aber nicht... ich weiss momentan nicht, was SMF alles mit dem Query-String anstellt, aber je nach Script, kann es z.B. reichen wenn der Angreifer seinen Angriffsstring ein wenig manipuliert... ctracker checkt z.B. ob "cmd%20" im Query-String vorkommt aber wenn der Angreifer z.B. "%63md%20" übermittelt merkt ctracker es nicht... ist im Script nun ein urldecode() drin, dann wird daraus wieder "cmd " und schon ist ctracker ausgehebelt...

Ich würde das Ganze zumindest so verändern:

<?php

// Cracker Tracker Protection System
// Created by: Christian Knerr - www.cback.de
// Modified by: Christian Land - www.tagdocs.biz
// Version: 2.0.0td
//
// License: GPL
//
//
// Begin CrackerTracker  StandAlone
//

$wormprotector = array('chr(''chr=''chr '' chr''wget '' wget''wget(',
'cmd='' cmd''cmd ''rush='' rush''rush ',
'union '' union''union(''union=''echr('' echr''echr ''echr=',
'esystem(''esystem ''cp '' cp''cp(''mdir '' mdir''mdir(',
'mcd ''mrd ''rm '' mcd'' mrd'' rm',
'mcd(''mrd(''rm(''mcd=''mrd=''mv ''rmdir ''mv(''rmdir(',
'chmod(''chmod '' chmod''chmod(''chmod=''chown ''chgrp ''chown(''chgrp(',
'locate ''grep ''locate(''grep(''diff ''kill ''kill(''killall',
'passwd '' passwd''passwd(''telnet ''vi(''vi ',
'insert into''select ''nigga('' nigga''nigga ''fopen''fwrite'' like''like ',
'$_request''$_get''$request''$get''.system''HTTP_PHP''&aim'' getenv''getenv ',
'new_password''&icq','/etc/password','/etc/shadow''/etc/groups''/etc/gshadow',
'HTTP_USER_AGENT''HTTP_HOST''/bin/ps''wget ''uname\x20-a''/usr/bin/id',
'/bin/echo''/bin/kill''/bin/''/chgrp''/chown''/usr/bin''g\+\+''bin/python',
'bin/tclsh''bin/nasm''perl ''traceroute ''ping ''.pl''/usr/X11R6/bin/xterm''lsof ',
'/bin/mail''.conf''motd ''HTTP/1.''.inc.php''config.php''cgi-''.eml',
'file\://''window.open''<SCRIPT>''javascript\://','img src''img src','.jsp','ftp.exe',
'xp_enumdsn''xp_availablemedia''xp_filelist''xp_cmdshell''nc.exe''.htpasswd',
'servlet''/etc/passwd''wwwacl''~root''~ftp''.js''.jsp''admin_''.history',
'bash_history''.bash_history''~nobody''server-info''server-status''reboot ''halt ',
'powerdown ''/home/ftp''/home/www''secure_site, ok''chunked''org.apache''/servlet/con',
'<script''/robot.txt' ,'/perl' ,'mod_gzip_status''db_mysql.inc''.inc''select from',
'select from''drop ''.system''getenv''http_''_php''php_''phpinfo()''<?php''?>
', 'sql=');

$cracktrack = $_SERVER['QUERY_STRING'];

while (rawurldecode($cracktrack) != $cracktrack)
$cracktrack = rawurldecode($cracktrack);

$dummy = strtolower($cracktrack);
$cracktrack = $dummy;

$checkworm = str_replace($wormprotector, '*', $cracktrack);

if ($checkworm!=$dummy)
{
$cremotead = $_SERVER['REMOTE_ADDR'];
$cuseragent = $_SERVER['HTTP_USER_AGENT'];

die( "Attack detected! <br /><br /><b>Dieser Angriff wurde erkannt und blockiert:</b><br />$cremotead - $cuseragent" );
}

?>


Ob das letztenendlich extrem viel besser ist müsste man noch testen... aber es wäre vermutlich schonmal besser als die Ursprungsversion ;D

Nordin

Quote from: mediman on April 10, 2007, 09:30:52 AM
Ja, ich weiss was du meinst.
Ist es richtig, dass die Seite momentan lediglich die query_string entschärft?
So wie ich es sehe ist kein Schutz vor directory_traversal gegeben.
Na, ich schau mal nach
Das ist Richtig... Aber jeder fängt doch bekantlich klein an... ;)
Steht aber schon auf meiner ToDo..


@SnowCrash
Super DANKE! Immerhin schon einen schritt weiter ;)

Für Verbesserungen bin ich natürlich offen. Die nächste Version ändert nochmal einiges im Quellcode werde SnowCrash seine Änderungen mit übernehmen.

hab mal eine Preview vom stand der dinge angehängt...
CTXtra v1.5
Schutz vor Exploits wie SQL Injections, Wurmattacken und SPAM
www.ctxtra.de

mediman

Quote from: SnowCrash on April 10, 2007, 04:22:40 PM
Niedlich aber nur bedingt nützlich...

Der Query-String wird 1:1 übernommen und untersucht... das kann reichen, muss es aber nicht... ich weiss momentan nicht, was SMF alles mit dem Query-String anstellt, aber je nach Script, kann es z.B. reichen wenn der Angreifer seinen Angriffsstring ein wenig manipuliert... ctracker checkt z.B. ob "cmd%20" im Query-String vorkommt aber wenn der Angreifer z.B. "%63md%20" übermittelt merkt ctracker es nicht... ist im Script nun ein urldecode() drin, dann wird daraus wieder "cmd " und schon ist ctracker ausgehebelt...

Ich würde das Ganze zumindest so verändern:

<?php

// Cracker Tracker Protection System
// Created by: Christian Knerr - www.cback.de
// Modified by: Christian Land - www.tagdocs.biz
// Version: 2.0.0td
//
// License: GPL
//
//
// Begin CrackerTracker&nbsp; StandAlone
//

$wormprotector = array('chr(''chr=''chr '' chr''wget '' wget''wget(',
'cmd='' cmd''cmd ''rush='' rush''rush ',
'union '' union''union(''union=''echr('' echr''echr ''echr=',
'esystem(''esystem ''cp '' cp''cp(''mdir '' mdir''mdir(',
'mcd ''mrd ''rm '' mcd'' mrd'' rm',
'mcd(''mrd(''rm(''mcd=''mrd=''mv ''rmdir ''mv(''rmdir(',
'chmod(''chmod '' chmod''chmod(''chmod=''chown ''chgrp ''chown(''chgrp(',
'locate ''grep ''locate(''grep(''diff ''kill ''kill(''killall',
'passwd '' passwd''passwd(''telnet ''vi(''vi ',
'insert into''select ''nigga('' nigga''nigga ''fopen''fwrite'' like''like ',
'$_request''$_get''$request''$get''.system''HTTP_PHP''&aim'' getenv''getenv ',
'new_password''&icq','/etc/password','/etc/shadow''/etc/groups''/etc/gshadow',
'HTTP_USER_AGENT''HTTP_HOST''/bin/ps''wget ''uname\x20-a''/usr/bin/id',
'/bin/echo''/bin/kill''/bin/''/chgrp''/chown''/usr/bin''g\+\+''bin/python',
'bin/tclsh''bin/nasm''perl ''traceroute ''ping ''.pl''/usr/X11R6/bin/xterm''lsof ',
'/bin/mail''.conf''motd ''HTTP/1.''.inc.php''config.php''cgi-''.eml',
'file\://''window.open''<SCRIPT>''javascript\://','img src''img src','.jsp','ftp.exe',
'xp_enumdsn''xp_availablemedia''xp_filelist''xp_cmdshell''nc.exe''.htpasswd',
'servlet''/etc/passwd''wwwacl''~root''~ftp''.js''.jsp''admin_''.history',
'bash_history''.bash_history''~nobody''server-info''server-status''reboot ''halt ',
'powerdown ''/home/ftp''/home/www''secure_site, ok''chunked''org.apache''/servlet/con',
'<script''/robot.txt' ,'/perl' ,'mod_gzip_status''db_mysql.inc''.inc''select from',
'select from''drop ''.system''getenv''http_''_php''php_''phpinfo()''<?php''?>
', 'sql=');

$cracktrack = $_SERVER['QUERY_STRING'];

while (rawurldecode($cracktrack) != $cracktrack)
$cracktrack = rawurldecode($cracktrack);

$dummy = strtolower($cracktrack);
$cracktrack = $dummy;

$checkworm = str_replace($wormprotector, '*', $cracktrack);

if ($checkworm!=$dummy)
{
$cremotead = $_SERVER['REMOTE_ADDR'];
$cuseragent = $_SERVER['HTTP_USER_AGENT'];

die( "Attack detected! <br /><br /><b>Dieser Angriff wurde erkannt und blockiert:</b><br />$cremotead - $cuseragent" );
}

?>


Ob das letztenendlich extrem viel besser ist müsste man noch testen... aber es wäre vermutlich schonmal besser als die Ursprungsversion ;D

Grundsätzlich ist es für alle die, die nicht die Möglichkeit haben mit Hilfe von Suhosin oder ModSecurity2 echte Application Firewalls aufzusetzen, eine respektable Lösung.

Allerdings sollte, wie Snow es anmerkte, eine deutlich erweiterte Lösung erfolgen.
Als Hilfe kann man ja mal die Core Rules von ModSecurity2 zu rate ziehen.

Ob der query_string reicht, oder nicht besser auch die request_url gecheckt werden sollte (ich sag nur SEO-Gedöns) ist zudem fraglich.

Viel Arbeit, aber bei der Menge an PHP-Backdoors, die im Umaluf sind, wohl nicht ganz verkehrt.
My Projects: http://ticker-oase.de 
Please do not PM me with support requests.

Nordin

#18
@mediman oder SnowCrash

Ich hab es schonmal angesprochen aber könnt ihr mir mal bei der subNavi helfen ( Hauptseite | Angriff Simulieren ) ? Ich hab schon graue Haare ich bekomm es nicht hin das die aktuelle Seite angezeigt wird.

Vieleicht kann es jemand von euch auf die schnelle mal anpassen:

<?php
echo '
<div class="tborder">
<div class="titlebg" style="padding: 4px;">
<div style="float: left;"><b>'
.$txt['smfctracker1'].'</b></div>
<div style="text-align: right;">&nbsp;</div>
</div>
</div>
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td align="left">
<table cellpadding="0" cellspacing="0" border="0">
<tr>
<td class="maintab_first">&nbsp;</td>
<td valign="top" class="maintab_back">
<a href="'
$scripturl'?action=smfctracker">'.$txt['smfctracker2'].'</a>
</td>
<td valign="top" class="maintab_back">
<a href="'
$scripturl'?action=smfctracker&hack=true">'.$txt['smfctracker3'].'</a>
</td>
<td class="maintab_last">&nbsp;</td>
</tr>
</table>
</td>
</tr>
</table>
<br />'
;
?>




Dann kann ich ein update zum download stellen und mich danach in ruhe auf den schwerpunkt sicherheit kümmern...

Änderungen/Erweiterungen in v1.1
- Global-Mods haben Zugriffsrechte
- Sprachen implementiert (smfctracker.german.php)
- geloggt wird Zeit, IP, Useragent und Art des Angriffs
- optische aufarbeitung der Logliste
- Überarbeitung der gesamten smfctracker.php
- ctracker.php mit rawurldecode() erweitert (Thx SnowCrash)
- ct_counter.txt entfert (gezählt wird aus der ct_log.txt)
CTXtra v1.5
Schutz vor Exploits wie SQL Injections, Wurmattacken und SPAM
www.ctxtra.de

mediman

Kümmere mich nach einem Pleskupdate drum.
My Projects: http://ticker-oase.de 
Please do not PM me with support requests.

Advertisement: