goodbytes
Goto Top

Überwachung aktiver Remotedesktop-Verbindungen

Hallo,
wie kann ich (möglichst per vbs-Script) in eine Logdatei schreiben, wann eine eingehende Remotedesktop auf meinen XP-Rechner beginnt und dann wieder endet? Dabei egal ob mit Abmeldung oder per Concurrent Session. Es geht dabei nur um die Dokumentation auf dem Zielrechner.

Torsten

Content-Key: 85290

Url: https://administrator.de/contentid/85290

Printed on: April 16, 2024 at 16:04 o'clock

Member: Paragon
Paragon Apr 11, 2008 at 22:09:42 (UTC)
Goto Top
Probier’s mal mit der evtl. etwas abstrakten aber denke dennoch wirkungsvolle Methode eines Key Loggers wie z.B. aktive Key Logger https://www.regnow.com/softsell/nph-softsell.cgi?styleid=26269&item= ...
(die Seite ist Clean!) Den Report kannst du dir per email in HTML oder Textformat zusenden lassen...
Is vielleicht nicht was du gesucht hast, erfüllt aber trotzdem seinen Zweck.
Member: goodbytes
goodbytes Apr 12, 2008 at 19:09:18 (UTC)
Goto Top
Hi Paragon,
naja, in diese Richtung möchte ich eigentlich nicht gehen.
Nachgedacht habe ich auch schon über eine Auswertung (Übergabe über Pipe) mittels "netstat" in einer Batch (bzw. dann Nutzung in einer vbs).
Allerdings denke ich, dass ich da nur den allgemeinen Status bekomme, aber nicht eine momentan aktive eingehende Verbindung abfragen kann.
Oder sehe ich da was falsch?

Torsten
Member: goodbytes
goodbytes Apr 12, 2008 at 20:27:14 (UTC)
Goto Top
So, hab erstmal einen Test-Ansatz mittels Batch gemacht:

* Anfang *

Set "UHRZEIT = %TIME%"
for /F "tokens=1-3 delims=:," %%i in ("%TIME%") do Set "UHRZEIT=%%i:%%j"

netstat -p TCP | find /i "HERGESTELLT"

IF NOT %ERRORLEVEL% == 0 GOTO ENDE

ECHO %DATE% %UHRZEIT% Remotedesktop-Verbindung zu diesem Rechner "%COMPUTERNAME%" hergestellt !!!

:ENDE
SET UHRZEIT=

* Ende *

Nun habe ich nur noch das Problem, dass ich zwar nach der Zeichenfolge "HERGESTELLT" suche, aber eigentlich noch den Ziel-Port (3389 - zumindestens als Standard) auswerten muss.

Hat da jemand eine Lösung ???

Torsten
Member: proton100
proton100 Apr 14, 2008 at 08:29:46 (UTC)
Goto Top
Versuche doch mit dem Linux Grep befehl. den gibt es auch für windows

zu finden unter:
http://gnuwin32.sourceforge.net/packages/grep.htm

Windowsa bietet dir aber auch die möglichkeit per query session alle rdp sitzungen azuzeigen

query session -> Zeigt dir die Session ID an
query user --> Zeigt die Angemeldeten User mit anmeldezeit an
mit query /?
oder query session/? kannste die Hilfe ausgeben.

hoffe dir bringt die Info weiter.
Mit dem Grep befehl kannste dir die Info noch verfeinern.

lg
proton100
Member: n.o.b.o.d.y
n.o.b.o.d.y Apr 14, 2008 at 09:16:14 (UTC)
Goto Top
Hallo,

ich bin mir gerade nicht 100%ig sicher ob das bei XP auch so ist, aber das steht doch im Eventlog.

Ralf
Member: goodbytes
goodbytes Apr 19, 2008 at 20:17:20 (UTC)
Goto Top
Hallo,
nein, im Eventlog steht`s meiner Meinung nicht.

Torsten
Member: goodbytes
goodbytes Apr 19, 2008 at 20:21:18 (UTC)
Goto Top
Hallo,
ich hab mir erstmal meine "Batch-Krücke" so erweitert, dass ich einfach den Standard-Port danach mit abfrage:

Set "UHRZEIT = %TIME%"
for /F "tokens=1-3 delims=:," %%i in ("%TIME%") do Set "UHRZEIT=%%i:%%j"

netstat -p TCP | find /i "HERGESTELLT"
IF NOT %ERRORLEVEL% == 0 GOTO ENDE
netstat -p TCP | find /i "3389"
IF NOT %ERRORLEVEL% == 0 GOTO ENDE

ECHO %DATE% %UHRZEIT% Remotedesktop-Verbindung zu Rechner "%COMPUTERNAME%" hergestellt !!! >> Remote-Desktop.log

Ist nicht schön, geht aber erstmal.
Mit "query" werde ich aber doch mal versuchen was zusammenzubasteln, wenn ich mal ein bissl mehr Zeit habe. Werde meine Lösung dann natürlich auch gleich posten.

Vielen Dank erstmal für die Hilfe !!!

Torsten
Member: goodbytes
goodbytes Apr 19, 2008 at 20:59:25 (UTC)
Goto Top
Hallo,
ja, stimmt, mittels "query session" geht`s ja ganz gut. Wenn ich so auch auf den Usernamen filter klappt es ja.

Hier zumindest die Variante als Batch (mit dem Benutzer "User"):

Set "UHRZEIT = %TIME%"
for /F "tokens=1-3 delims=:," %%i in ("%TIME%") do Set "UHRZEIT=%%i:%%j"

:ANFANG
query session rdp-tcp User | find /i "Aktiv"
IF %ERRORLEVEL% == 0 GOTO AKTIV
SET UHRZEIT=
EXIT

:AKTIV
ECHO %DATE% %UHRZEIT% >> RDP.log
query session rdp-tcp User >> RDP.log
SET UHRZEIT=
EXIT

Kann man ja dann mittels geplantem Task alle paar Minuten aufrufen.
Oder kennt da Jemand eine Lösung per vbs, die dann auch permanent im Hintergrund läuft und auch nur den Beginn und das Ende dieser Session in die Log schreibt? Das wäre die elegantere Lösung.

Torsten
Member: n.o.b.o.d.y
n.o.b.o.d.y Apr 21, 2008 at 10:20:46 (UTC)
Goto Top
Hallo,

könntest Du per Gruppenrichtlinie als Login- und Logout-Skript hinterlegen.

Ralf
Member: proton100
proton100 Apr 21, 2008 at 10:22:05 (UTC)
Goto Top
Also ich lasse es bei meiner TS Farm Protokollieren. wann welcher user sich an und ab meldet.

Dies mache ich aber über Gruppenrichtlinien.

Start --> Ausführen --> MMC

Dort Snap In hinzufügen
Gruppenrichtlinien auswählen
dort unter:

Computerrichtlinien --> Windows Einstellungen --> Start/Herunterfahren

Dort kannste Scripte hinterlegen.

Habe da halt nen Batch geproggt

mit folgendem inhalt
echo %username%;%computername%;%time%;%date% >> c:\logs\%date%_start.log

und beim beednen
echo %username%;%computername%;%time%;%date% >> c:\logs\%date%_ende.log

Vielliecht hilft dir das weiter. Bei mir funktioniert dies tadellos mit 5 Terminal Server im Verbund.

lg
proton100