Archive for the ‘Tools’ Category

Der kleine Telnet-Client in Powershell

22 August 2015

Bei neueren Windowsversionen wird mittlerweile der Telnet-Client eingespart, man kann ihn zwar selbst unter Windows 10 nachinstallieren aber wer macht das schon, wenn es ein besseres Werkzeug gibt! Wer ihn braucht, kann diese Methode verwenden: https://newyear2006.wordpress.com/2011/10/01/telnet-auf-die-schnelle-aktiveren-bzw-deaktivieren/.

Telnet wird oft dazu verwendet, zu prüfen, ob eine Verbindung zu einem bestimmten Port möglich ist. Seit Windows 8 gibt es Test-NetConnection, welches weitaus mächtiger als Telnet ist, da es Ping und Tracert auch noch gleich eingebaut hat.

Ein guter Artikel der die Möglichkeiten von Test-NetConnection beschreibt ist dieser ab Abschnitt Testing Connectivity: http://blogs.technet.com/b/networking/archive/2013/07/31/new-networking-diagnostics-with-powershell-in-windows-server-r2.aspx.

Der wichtigste Punkte aus dem Artikel ist aber dieser:

3. When using TNC to test TCP connectivity, if the connection succeeds, you can access the TCP socket using the TCPClientSocket property. This provides the connected .NET socket for further scripting.

OK, dann gleich mal versucht dies umzusetzen. Zunächst testet man die Verbindung, dann reserviert man die für eine Antwort nötigen Bytes eines Puffers, dann ruft man die verfügbaren Bytes ab und gibt diese aus:

$c=tnc www.myserver.de -Port 21
[byte[]]$buffer= @(0) * $c.TcpClientSocket.Available
$c.TcpClientSocket.Receive($buffer, $c.TcpClientSocket.Available, [System.Net.Sockets.SocketFlags]::None)
[System.Text.Encoding]::UTF8.GetString($buffer)

Als Ergebnis erhält man:

220 Microsoft FTP Service

Genauso wie gegen einen FTP-Port kann man den Test auch gegen einen SMTP-Server laufen lassen, man muss nur Port 25 oder 587 angeben.

Man kann das Thema nun aber auch ausbauen und kann die gesamte Kommunikation skripten:

# Verbindung zu Web.de aufbauen
$c=tnc smtp.web.de -Port 587

# Antwort vom SMTP-Server holen und ausgeben
[byte[]]$buffer= @(0) * $c.TcpClientSocket.Available
$c.TcpClientSocket.Receive($buffer)
[System.Text.Encoding]::ASCII.GetString($buffer)

# Begrüßung durchführen
$buffer=[System.Text.Encoding]::ASCII.GetBytes("EHLO $Env:Computername`r`n")
$c.TcpClientSocket.Send($buffer)
Sleep -Seconds 1

# Antwort vom SMTP-Server holen
[byte[]]$buffer= @(0) * $c.TcpClientSocket.Available
$c.TcpClientSocket.Receive($buffer)
[System.Text.Encoding]::ASCII.GetString($buffer)

# STARTTLS-Anfrage starten
$buffer=[System.Text.Encoding]::ASCII.GetBytes("STARTTLS`r`n")
$c.TcpClientSocket.Send($buffer)
Sleep -Seconds 1

# Bei dieser Antwort sollte 220 rauskommen,
# sonst gibt es ein Problem
[byte[]]$buffer= @(0) * $c.TcpClientSocket.Available
$c.TcpClientSocket.Receive($buffer)
[System.Text.Encoding]::ASCII.GetString($buffer)

Jetzt wäre der TLS Handshake dran, den sparen wir uns für ein anderes Mal auf…

Hier noch das STARTTLS-RFC-Dokument: https://tools.ietf.org/html/rfc3207

Wer einen interaktiven Powershell-Telnet-Client benötigt, der wird hier fündig: http://uglygizmo.blogspot.de/2013/10/a-telnet-client-written-in-powershell.html.

Werbeanzeigen

Festplatten löschen (wipen) mit Windows Bordmitteln

23 Oktober 2014

Unglaublich was man manchmal für Entdeckungen macht und sich wundert, warum man davon noch nie gehört hat. Per Zufall bin ich heute über Cipher.EXE gestolpert. Hatte ich zuvor noch nie gehört. Wenn man die Hilfe von Cipher.EXE anschaut, dann wird schnell klar, dass es für die Verschlüsselung von Dateien und Verzeichnissen zuständig ist.

Aber dann taucht da auch der Parameter /W für Wipe auf:

    /W       

Entfernt Daten aus verfügbarem, nicht verwendetem Speicherplatz auf dem Volume. Alle anderen Optionen werden ignoriert, wenn diese Option ausgewählt wird. Das angegebene Verzeichnis kann sich an einer beliebigen Position auf dem lokalen Volume befinden. Wenn es sich um einen Bereitstellungspunkt oder einen Verweis auf ein Verzeichnis auf einem anderen Volume handelt, werden die Daten auf diesem Volume entfernt.

Es agiert also nicht wie Sdelete von Sysinternals und überschreibt bestehende Dateien, sondern überschreibt den freien Speicherbereich eines Volume.

Wenn man nun eine Festplatte mittels DISKPART Befehl CLEAN löscht, dann eine Partition darauf einrichtet, dann kann man mittels CIPHER /W die Festplatte komplett löschen.

Spannend wird die Sache in Verbindung mit WinPE. Schade das WinPE, WinRE und die Windows-Bootmedien keine direkte Unterstützung für CIPHER.EXE haben. Aber oft hat man ja sowieso irgendwo ein Windows bzw. auf der zu löschenden Platte ein vorhandenes Windows.

Man muss also einfach nur CIPHER.EXE von der lokalen Windows-Installation kopieren. Dabei ist allerdings zu beachten, ob die WinPE-Umgebung 32-Bit oder 64-Bit unterstützt. Je nachdem verwendet man dann C:\Windows\System32\cipher.exe oder C:\Windows\SysWOW64\cipher.exe. Wenn die Cipher.EXE von dem Laufwerk kommt, welches gelöscht werden soll, kopiert man es auf das RAM-Laufwerk X: und startet es von dort aus.

Ach noch was: Man könnte auch den CLEAN Befehl mit dem Parameter ALL bei DISKPART verwenden, dann würde auch alles mit 0x00 überschrieben. Warum sollte man dann CIPHER.EXE verwenden? CIPHER.EXE geht beim Überschreiben anders vor, es überschreibt in drei Durchgängen. Zuerst wird alles mit 0x00 dann mit 0xFF und am Schluss mit Zufallswerten überschrieben. Dies ist auch der Grund, warum CIPHER.EXE nachgesagt wird, es wäre langsam.

http://blogs.technet.com/b/chad/archive/2012/08/16/tip-53-wipe-your-hard-drive-without-any-extra-programs.aspx

Und noch was: Bei SSDs gibt es nicht die sichere Möglichkeit wirklich alles zu löschen. In diesem Fall sollte man schauen, ob die betreffende SSD eine interne AES-Verschlüsselung bietet und ob man dort den zugehörigen Key löschen kann.

Animierte GIF-Grafiken erstellen unter Windows und Mac OS X

20 Januar 2014

Um schnell jemand etwas verdeutlichen zu können, ist es oft hilfreich eine Animation oder ein Video zu erstellen. Wenn jemand die Abfolge sieht, ist es einfach leichter den Zusammenhang zu erkennen.

Nun gibt es jede Menge Tools für diese Zwecke, eines der kleinsten und einfachsten ist LICEcap: http://www-dev.cockos.com/licecap/. Es läuft unter Windows und Mac OS X, ist superklein und erlaubt sogar das Einblenden von Texten. Der Ausschnitt ist frei wählbar und sogar verschiebbar. Bei längeren Passagen kann man einfach die Aufnahme pausieren.

Am Ende erhält man eine animierte GIF-Datei, welche in jedem Desktop-Browser wie IE oder Chrome animiert dargestellt wird.