Category Archives: Allgemein

Guild Wars 2, Powershell und die API

In Guild Wars 2 hat man die M√∂glichkeit auf API-Calls. Die Antwort eines solchen Calls kann man f√ľr seine Zwecke nutzen. So hat man z.B. die M√∂glichkeit auf einen Event-Listener. Im Grunde ist das nichts anderes als „Ich schicke Anfragen an den API-Server, schau mir das Resultat an und wenn da was dabei ist, was ich suche, informiere ich mich.“

Das macht folgendes Powershell-Script:

Ich checke gerne die Events die eine Daily-Truhe abwerfen. Wenn ein solches Event startet, wird ein Sound abgespielt und ein Fenster √∂ffnet sich.¬†Wenn das Event einmal aktiv war, wird es aus der Liste der zu pr√ľfenden Events gel√∂scht. Das macht das Script so lang, bis kein Event mehr vorhanden ist.

Anzupassen gibt es da eigentlich nur die $world_id. Diese ist aktuell auf Millersund gesetzt.

Die mächtige Powershell

Ich stand k√ľrzlich vor der Herausforderung meinen Windows-Server gegen die nervigen RDP Brute-Force-Attacken abzusichern. Hier sind im Sekundentakt die Anfragen aus aller Welt reingekommen. Nervig war aber nicht der Umstand das es versucht wurde. Nervig war viel mehr die eklige CPU-Last die die verursacht haben.

Sicher gibt es da schon 2 universelle Heilmittel die √ľberall gro√ü und breit vorgeschlagen werden.
Zum einen kann man ein VPN einrichten, zum anderen einfach den RDP-Port ab√§ndern.¬†VPN einrichten war ich zu faul. RPD-Port ab√§ndern, wenn man keinen physischen Zugriff auf die Maschine hat, kommt mir nicht in die T√ľte.

So machte ich mich auf die Suche nach einer Software die mir IP XYZ blocked wenn zu viele Fehlgeschlagene Logins¬†per Remote Desktop (Audit Error) auftauchen. Software war schnell zu finden. F√ľr um die 80‚ā¨ oder so ūüôā

Zum Vergleich: Unter Linux hat man wirklich gute Programme die sowas könnten und nichts kosten.

Da viel mir die Windows Powershell ein. Powershell bietet die M√∂glichkeit die Events auszulesen, zu parsen und mit dem Ergebnis etwas zu machen. Warum also nicht ein Script schreiben, welches mir die Audit-Errors ausliest, die IP rausholt und jene der Firewall hinzuf√ľgt?

7 Zeilen Code, vollkommen kostenlos, hocheffektiv und was noch viel besser ist: Keine Zusatzsoftware die Ressourcen frisst ūüėÄ

Alles was man tun muss:
Firewallregel mit dem Namen BruteStop anlegen.
Das Script per Task starten lassen.
Entweder alle X-Minuten oder bei Event 4625 (Audit-Failure)

Das Script holt sich alle IP’s der letzten 12 Stunden die 15 Audit-Errors produziert haben und f√ľgt die IP der Firewall-Regel hinzu. Damit die Banliste nicht irgendwann √ľberquillt, stehen auch wirklich nur die IP’s der letzten 12 Stunden in der Firewallregel. Alle anderen fallen aus der Liste, k√∂nnten aber bei einem neuem Angriff wieder schnell in der Liste auftauchen ūüėČ