Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: sourceserver.info. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

DeaD_EyE

Administrator

  • »DeaD_EyE« ist der Autor dieses Themas

Beiträge: 3 980

Wohnort: Hagen

Beruf: Mechatroniker (didaktische Systeme)

Rootserver vorhanden: Nein

  • Nachricht senden

1

Sonntag, 28. August 2011, 15:58

Aufruf zum Test des "Protection-Mode"

Mittlerweile ist wieder die Diskussion über den ServerSideHack entfacht worden und es scheint auch Unschuldige getroffen zu haben.
Man nennt es auch Kollateralschäden...

Vielmehr interessiert es mich, was nun aus dem Protection Mode geworden ist. Gab es Verbesserungen? Wurden unsere Vorschläge umgesetzt.
Um erneut möglicherweise offene Lücken nachzuweisen benötigen wir eure Hilfe.

Folgende Voraussetzungen sollten erfüllt sein:
  • du hast einen "Protection-Mode"-Server
  • der Befehl plugin_load lässt sich im "Protection-Mode" ausführen (hlsw oder rcon plugin_load)
  • der Server kann in den normalen Modus umgeschaltet werden (FTP-Zugriff - schreibend)


Sollte der Befehl plugin_load nicht funktionieren, kann man davon ausgehen, dass Schutz sich nicht so ohne weiteres umgehen lässt. Es gibt zwar noch paar Möglichkeiten auch diesen Schutz auszuhebeln, wäre aber bei jedem Provider individuell.


Was benötigt wird:
  • MetaMod: Source
  • SourceMod
  • MoveFile-Plugin (ist ein SourceMod-Plugin)
  • plr.so [Player Limit Remover Linux 1.2.3 (Orangebox engine: TF2, CSS, DOD:S)]
  • oder das Komplettpaket (Minimalinstallation)


Umgebung vorbereiten:
Dazu den Server über das Webinterface des Anbieters in den normalen Modus hochfahren (kein Protection-Mode) und dann MetaMod: Source und SourceMod installieren.
Das Plugin plr.so (ist im Archiv) nach orangebox/cstrike/addons/ kopieren. Den Server einmal starten und sicherstellen, dass SourceMod geladen worden ist. Danach das SourceMod-Plugin movefile nach orangebox/cstrike/addons/sourcemod/plugins/ auf den Server hochladen.

Wenn das Komplettpaket verwendet wird, kann das Archiv entpackt werden und das Verzeichnis addons muss dann nach orangebox/cstrike/ hochgeladen werden.

Den Server einmal neustarten und nachsehen ob das SM-Plugin geladen worden ist.

Quellcode

1
sm plugins list

Es sollte folgende Ausgabe kommen:

Quellcode

1
2
[SM] Listing 1 plugin:
  01 "MoveFiles" (0.1) by DeaD_EyE


Der erste Test erfolgt dann mit folgendem Befehl

Quellcode

1
plugin_load /tmp/plr

Wenn das Kopieren erfolgreich gewesen ist, sollte diese Meldung kommen:

Quellcode

1
[PLR] PlayerLimitRemover loading...


Der Test ob irgendwelche Scripte des Providers die Dateien aus /tmp entfernen
Den Server wieder neustarten.
Nachdem der Server wieder erreichbar ist, nochmals versuchen das Plugin plr.so zu laden.

Quellcode

1
plugin_load /tmp/prl.so

Sollte das Plugin wieder geladen werden, löscht der Provider die Dateien in /tmp nicht nach dem Serverneustart.

Test im Protection-Mode
Den Server über das Webinterface auf den "Protection-Mode" umstellen, einmal neustarten (bei manchen geschieht das automatisch nach dem Wechsel) und kontrollieren welche Plugins geladen worden sind.

Quellcode

1
plugin_print

Bei einer Standard-Installation sollte dann zBlock und das eslplugin geladen sein.
Jetzt der abschließende Test mit dem nachladen von plr:

Quellcode

1
plugin_load /tmp/plr


Sollte das Plugin geladen werden, dann ist der Server für einen ServerSideHack anfällig und kann zum cheaten missbraucht werden.
Mein Beispiel basiert auf einem SourceMod-Plugin das ich in 10 Minuten geschrieben und ausprobiert habe. Bisher hab ich mich noch nie mit SourcePawn befasst. Ein Entwickler eines ServerSideHacks kann diese Funktion in seinem Plugin direkt integrieren. Genauso könnte er alle Verzeichnisse abgrasen und überprüfen, an welcher Stelle er sein Plugin kopieren kann. Es muss nicht immer unbedingt das Serververzeichnis oder /tmp sein. Es reicht ein Verzeichnis mit Schreibberechtigung für den Serverprozess aus, an das der Serverprovider nicht gedacht hat.

Hinweis für Provider
Deswegen ist es auch ratsam im "Protection Mode" den Befehl plugin_load zu überschreiben.
valve.rc

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
alias "plugin_load" "echo Dieser Befehl ist im Protection-Mode nicht zugelassen."
// load the base configuration
//exec default.cfg
r_decal_cullsize 1

// Setup custom controller
exec joystick.cfg

// run a user script file if present
exec autoexec.cfg

//
// stuff command line statements
//
stuffcmds


Die valve.rc sollte vor überschreiben oder löschen geschützt sein. Entweder mit den Datei-/Verzeichnisberechtigungen oder über FTP-Regeln.
Das sicherste ist aber den FTP-Zugriff komplett zu unterbinden. Ein Script, welches nach dem Serverneustart /tmp bereinigt, wäre sehr Empfehlenswert.
Das ist mit einem Befehl getan und geht recht schnell:

Quellcode

1
find /tmp -user kunde1337 -delete

Gleichzeitig werden noch die Crashdumps gelöscht, die sich manchmal dort ansammeln.

Meiner Meinung nach, kann man nicht alle Faktoren berücksichtigen, weswegen es sehr Ratsam wäre einen Protected-Server im Chroot laufen zu lassen, die Rechte innerhalb des Chroots massiv einzuschrönken und den Zugriff durch den Kunden komplett zu untersagen. In diesem Fall müsste der Provider dafür sorge Tragen, dass die Configs immer aktuell sind, der Kunde die Möglichkeit hat wenigstens das Passwort und den Servernamen zu ändern und alle Maps auf dem Server vorhanden sind, die in Ligen gespielt werden. Unter anderem sollte ein Provider dem Kunden auch die Möglichkeit geben VAC zu deaktivieren, eslplugin und zblock zu aktivieren/deaktivieren.

Lizenzrechtliches: MetaMod:Source und SourceMod sind nicht verändert worden. Beide Versionen liegen bei uns auf dem Server: sourcemod-1.3.8, mmsource-1.8.7. Der Quellcode von movefile kann hier heruntergeladen werden. Das Plugin plr unterliegt nicht der GPL.

Ähnliche Themen