Gameserver crashen?

guten abend zusammen, ich habe mal ne frage, die mich schon eine ganze weile interessiert und vllt könnt ihr mir weiter helfen. ich weis zwar nicht ob ich hier richtig bin um sowas zu fragen aber ich glaube wenn es jemand weis, dann jemand von hier ;) es geht darum einen gameserver zu crashen bzw zum absturz zu bringen. zb bei shootern wie cs oder to. es passiert immer wieder, dass cheater auf unseren server kommen und wenn sie gebannt werden, geht ein paar sek später der server down. wie geht sowas in so kurzer zeit? nur mit einer ddos attacke? dann müssten diese ( kiddicheater ) ja ein eigenes botnet besitzen und das kann ich mir nicht vorstellen. danke schonmal im vorraus für die antworten
 
Bei vielen Gameservern ist es so, dass für jeden Benutzer schon vor der erfolgreichen Anmeldung einiges an Ressourcen geladen wird. Mit ein wenig Wissen über das Protokoll des Spiels ist es (vermutlich) keine Schwierigkeit, ein Programm zu schreiben, dass sich hunderte Male pro Sekunde auf dem Server einloggt, sodass der RAM voll läuft und sich der Server aufhängt, bzw. crashed.
Eine andere Möglichkeit ist, dass der Server 'nen Bug hat, sodass es reicht, ein unerwartetes Paket an den Server zu schicken, um ihn zum Absturz zu bringen. Da man über eine derartige Lücke oft auch Schadcode einscheusen kann, will ich das mal nicht hoffen.
Verhindern kann man das entweder über eine IP-Sperre, oder über eine sorgfältige Programmierung des Servers (Update verfügbar?).
Wo genau bei Counterstrike das Problem liegt, kann ich dir nicht sagen. Du könntest dir aber mal das Log des Servers anschauen, und die Auslastung (CPU/Memory) des Servers überprüfen, während der Angriff läuft. Vielleicht verrät dir das, wie genau der Absturz zustande kommt.
 
danke für die antwort. wenn tippe ich mal auf deine erste theorie, hört sich plausibel an. leider kann ich cpu speicher nicht überwachen bzw. keine ahnung wie, da der server nur gemietet ist und es im interface keine soclhe funktion gibt. der log an sich sagt mir auch nichts. der server geht einfach bin sekunden nach kick des " cheaters " down und startet dann auch wieder von selbst. erkennen kann man nichts. ich kann halt nur sagen, dass wenn bestimmte leute gebannt werden, der server sofort down geht, so schnell als ob er/sie nur was in ein programm eingibt und zack.. würde auch zu deiner theorie#1 passen oder? nur wie soll das gehen : /
 
Ich kopier mal, was ich schon vor einiger Zeit wo anders geposted habe:

Where the magic happens (swds.dll):
Code:
.text:01DAB4DF ; void __cdecl clc_cvarvalue2(client_t *client)
.text:01DAB4DF clc_cvarvalue2  proc near               ; DATA XREF: .data:01E665DCo
.text:01DAB4DF
.text:01DAB4DF cvar_stack      = byte ptr -100h
.text:01DAB4DF client          = dword ptr  8
.text:01DAB4DF
.text:01DAB4DF                 push    ebp
.text:01DAB4E0                 mov     ebp, esp
.text:01DAB4E2                 sub     esp, 100h
.text:01DAB4E8                 push    ebx
.text:01DAB4E9                 push    esi
.text:01DAB4EA                 push    edi
.text:01DAB4EB                 call    MSG_ReadLong
.text:01DAB4F0                 mov     esi, eax
.text:01DAB4F2                 call    MSG_ReadString
.text:01DAB4F7                 push    eax             ; src
.text:01DAB4F8                 lea     eax, [ebp+cvar_stack]
.text:01DAB4FE                 push    eax             ; dest
.text:01DAB4FF                 call    strcpy           ; [B]Here we can PWN the Stack![/B]
.text:01DAB504                 add     esp, 8
.text:01DAB507                 call    MSG_ReadString
.text:01DAB50C                 mov     ebx, [ebp+client]
.text:01DAB50F                 mov     edi, eax
.text:01DAB511                 mov     eax, dword_2124DD0
.text:01DAB516                 test    eax, eax
.text:01DAB518                 jz      short loc_1DAB52F
.text:01DAB51A                 mov     edx, [ebx+4B9Ch]
.text:01DAB520                 lea     ecx, [ebp+cvar_stack]
.text:01DAB526                 push    edi
.text:01DAB527                 push    ecx
.text:01DAB528                 push    esi
.text:01DAB529                 push    edx
.text:01DAB52A                 call    eax ; dword_2124DD0
.text:01DAB52C                 add     esp, 10h
.text:01DAB52F
.text:01DAB52F loc_1DAB52F:                            ; CODE XREF: clc_cvarvalue2+39j
.text:01DAB52F                 lea     eax, [ebp+cvar_stack]
.text:01DAB535                 push    edi
.text:01DAB536                 push    eax
.text:01DAB537                 add     ebx, 4D08h
.text:01DAB53D                 push    esi
.text:01DAB53E                 push    ebx             ; Args
.text:01DAB53F                 push    offset aCvarQueryRes_0 ; "Cvar query response: name:%s, request I"...
.text:01DAB544                 call    Con_DPrintf
.text:01DAB549                 add     esp, 14h
.text:01DAB54C                 pop     edi
.text:01DAB54D                 pop     esi
.text:01DAB54E                 pop     ebx
.text:01DAB54F                 mov     esp, ebp
.text:01DAB551                 pop     ebp
.text:01DAB552                 retn
.text:01DAB552 clc_cvarvalue2  endp
Create a Packet like this one:
4 Bytes - Packet Sequence (random Number)
4 Bytes - Chunk (random Number)
1 Byte - Msg Id (11)
4 Bytes - Req. Id (random Number)
> 256 Bytes - CVarName (String)

Requirements:
WinPcap installed
It must be a Windows Server to PWN (the Function is not implemented on Linux Servers - lol?)
You must be connected to the Server with a Client (otherwise the Packet will be dropped) or you create a Fake-Connection (not included in the Source-Code)
The Src-Ip & Src-Port must match the Ip & Port from Client (otherwise the Packet will be dropped).

Credits:
Emmanuel Herrera (RawPacket Class)
aluigi (HL1 Packet Encryption Routine)
DeepBlueSea & XEPT & xgx (Smalltalk)

Have a nice day,
Inliferty

Edit:
Also working on Linux Servers (got an old .so-File
sad.gif
)
The Stack is a little bit bigger (12 Bytes)

Original Post:
Tool HL1 Windows Server Crasher

Eydeet ich muss dir leider mitteilen, dass es auch möglich ist Schadcode über diese Lücke auszuführen (ScriptKiddies sollten aber Probleme mit ASLR und DEP bekommen)
Ps: Dieses Exploit existiert noch immer :/
 
Zuletzt bearbeitet:
Zurück
Oben