VBS: Dateien auf einen FTP hochladen mit VBS (FTPUpload)

Ich brauchte ein Skript um eine Datei auf einen FTP hochzuladen ohne zusätzliche Software - nur mit Boardmitteln.
Daraus ist folgendes VBS entstanden, dass genau das macht - FTPUpload:

'Objekte definieren
Set oShell = CreateObject("Shell.Application")
Set objFSO = CreateObject("Scripting.FileSystemObject")

'Datei für Upload festlegen
path = "C:\lang.txt"

FTPUpload(path) 'Datei hochladen

'Subroutine für FTPUpload
Sub FTPUpload(path)

On Error Resume Next

Const copyType = 16

'FTP Wartezeit in ms, damit sichergestellt wird, dass Upload erfolgreich
'Abhängig von der größe der übertragenen Datei - bei mir waren es nur ein paar kB!
waitTime = 80000

FTPUser = "ftpuser"  		'FTP-Benutzername
FTPPass = "ftppassword"		'FTP-Passwort
FTPHost = "ftp.keineahnung.de"	'FTP-Hostnmae oder IP
FTPDir = "/"			'FTP-Verzeichnis - mit / abschließen (z.B. "/test/")

'String für Verbindung bauen und an Shell übergeben
strFTP = "ftp://" & FTPUser & ":" & FTPPass & "@" & FTPHost & FTPDir
Set objFTP = oShell.NameSpace(strFTP)

'Upload der Datei     
If objFSO.FileExists(path) Then

	Set objFile = objFSO.getFile(path)
	strParent = objFile.ParentFolder
	Set objFolder = oShell.NameSpace(strParent)

	Set objItem = objFolder.ParseName(objFile.Name)

	Wscript.Echo "Upload der Datei " & objItem.Name & " nach " & strFTP
 	objFTP.CopyHere objItem, copyType

End If

'Fehlerroutine, falls gewünscht - kann auch auskommentiert werden
If Err.Number <> 0 Then
Wscript.Echo "Error: " & Err.Description
End If

'Warten bis Upload fertiggestellt
Wscript.Sleep waitTime

Msgbox "FTP-Upload durchgeführt"

End Sub

Netzwerk: Umstellung der IP-Range in einem ActiveDirectory-Netzwerk

Ich musste die IP-Range eines Standortes komplett ändern, da dieser an unser Netzwerk gekoppelt werden sollte und hier die gleichen IP-Ranges vorlagen. Somit wäre ein Routing zwischen den Standorten nicht möglich gewesen.
Die nachfolgende Liste zeigt meine Gedanken und Vorgehensweisen bzw. Lösungen und ist wahrscheinlich nicht vollständig?!

Vorbereitung für IP-Bereichs-Änderung
- Reverse-Lookup-Zone für neuen Bereich im DNS anlegen
- Replikation der neuen Zone auf DNS-Server prüfen
- DCDIAG erstellt und gespeichert
- DC-Replikation geprüft
- Statische DNS-Einträge dokumentieren
- Eventuelle Skripte oder Dienste auf statische IP-Einträge prüfen (Backups, Netlogon, SMTP etc.)
- Wenn möglich statische IP-Einträge gegen DNS-Einträge tauschen und testen
- Geräte mit festen IPs dokumentieren (z.B. Drucker, Terminals etc.) -> manuelle Anpassung nötig
- DHCP-Optionen dokumentieren
- DHCP-Reservierungen dokumentieren
- Liste mit allen aktiven IP-Adressen und dazugehörigen Geräten erstellen
- Firewall-Regeln dokumentieren
- Routing in der Firewall dokumentieren
- Virenscanner oder anderen Dienste dokumentieren, die IP-Adressen zur Standort-Erkennung verwenden

Umstellung am ersten DC mit FSMO-Rollen
- Neue IP, Subnet und Gateway eintragen
- WINS und DNS sich selbst eintragen
- WINS- und DNS-Dienste starten um Dienstbindung durchzuführen
- ipconfig /flushdns (löscht DNS Cache)
- nbtstat –RR (löschte WINS Cache)
- ipconfig /registerdns (DNS neu registrieren)
- dcdiag /fix (Fixt Probleme im DC und schreibt einige Einträge neu)
- DNS-SRV-Einträge im DNS prüfen ggf. alte löschen (Wichtig sind _GC)
- Restart netlogon

Umstellung der anderen Domain Controller
- Neue IP, Subnet und Gateway eintragen
- WINS und DNS korrekt eintragen (sich selbst als 2. Server eintragen)
- WINS- und DNS-Dienste starten um Dienstbindung durchzuführen
- ipconfig /flushdns (löscht DNS Cache)
- nbtstat –RR (löschte WINS Cache)
- ipconfig /registerdns (DNS neu registrieren)
- dcdiag /fix (Fixt Probleme im DC und schreibt einige Einträge neu)
- DNS-SRV-Einträge im DNS prüfen ggf. alte löschen (Wichtig sind _GC)
- Restart netlogon
- Replikation der DCs testen über "AD Standort und Dienste"
- dcdiag ausführen und speichern
- Ereignisanzeige prüfen

Umstellung DHCP-Server
- Alten DHCP-Scope löschen
- Neuen DHCP-Scope eintragen und Optionen festlegen
- Vorherige DHCP-Reservierungen wiederherstellen
TIPP: Zum Umzug des DHCP-Servers habe ich eine gute Anleitung geschrieben, in der man auch die IP-Range anpassen kann:
DHCP: Einfacher Umzug DHCP-Dienst auf neuen Server mit Anpassung Scope, allen bestehenden Leases und Reservierungen

Umstellung der Memberserver, Clients und sonstiger Geräte
- Neue IP, Subnet und Gateway eintragen
- WINS und DNS korrekt eintragen
- ipconfig /flushdns (falls möglich)
- nbtstat –RR (falls möglich)
- ipconfig /registerdns (Falls möglich/nötig)
- Prüfen der DNS-Einträge auf den DNS-Servern
- eventuellen Restart der Maschinen, Dienste oder Geräten

Sonstige Anpassungen
- Statische DNS-Einträge auf neue IPs ändern
- Dienste und Geräte ggf. anpassen, die nicht auf DNS-Einträge geändert werden konnten
- Firewall-Regeln anpassen
- Routing in Firewall und Netzwerk anpassen
- Virenscanner und andere Dienste anpassen für Standort-Erkennung

Abschlusstests Active Directory
- DCDIAG prüfen
- Eventlogs prüfen
- Alle wichtigen Dienste prüfen (Mail, Fileshares, Datenbanken etc.)
- externe Zugriffe (z.B. VPN) prüfen
- Backup prüfen
- Wichtige Geräte prüfen auf Erreichbarkeit (USV, Switche etc.)

Hier einige Quellen, die mir bei der Lösung geholfen haben:
Microsoft: Change the static IP address of a domain controller
Yusuf: Die IP – Adresse eines Domänencontrollers ändern
ACE FEKAY: So you want to change your IP range?

Wireshark : Netzwerkanalyse - Capture Remote Host (Windows)

Man möchte von einem Windows System aus den Netzwerkverkehr auf einem Router der unter Linux läuft analysieren.
Hier hab ich ja beschrieben wie das unter Linux geht, nun hier auch die Version für Windows ;-)
Erstmal muss Wireshark installiert werden, wichtig ist das hier SSHDump mit installiert wird, das ermöglich den Weg den ich hier beschreibe. Das kann während der Installation im Bereich Tools aktiviert werden.

SSHDump Wireshark
Dann starten wir Wireshark und wählen SSH remote capture nachdem wir die Einstellungen vorgenommen haben wird mitgeschnitten.

Wireshark SSH remote capture
Wireshark SSH remote capture configuration
Natürlich muss auch hier tcpdump auf dem Remote System vorhanden sein.

Wireshark : Netzwerkanalyse - Capture Remote Host (*Ubuntu)

Ich habe hier einen kleinen Server am laufen der mir als Gateway dient. Dieser läuft ohne GUI und ein tcpdump ist nicht so schön zu lesen wie der Output von Wireshark. Da ich aber keine GUI installieren wollte der Weg über remote Wireshark ;-)

Wenn noch nicht passiert installieren wir erstmal Wireshark
sudo apt install wireshark
jetzt erstellen wir eine PIPE auf der Kiste auf der Wireshark läuft
mkfifo /tmp/remote-wire
dann können wir auch schon Wireshark starten
wireshark -k -i /tmp/remote-wire
# Erklärung Parameter
# -k starte sofort das capturing
# -i definiert das interface hier ist es die PIPE
jetzt noch eine ssh Verbindung aufbauen und alles in die PIPE leiten
ssh root@GATEWAY-IP "tcpdump -s 0 -U -n -w - -i ens9 not port 22" > /tmp/remote-wire
ens9 ist bei mir die Netzwerkkarte ins Internet.

Auf dem Remote System muss natürlich tcpdump installiert sein.
apt install tcpdump
In meinem Beispiel muss root der ssh Zugang erlaubt werden. Das kann in der Datei /etc/ssh/sshd_config erledigt werden. Dort den Parameter PermitRootLogin auf yes setzen.
PermitRootLogin yes
Der Parameter PermitRootLogin yes sollte nur auf Testsystemen aktiviert sein für einen produktiven Einsatz sollte das NICHT gesetzt werden

ntop : Eigene Anwendung zu Port zuordnen

Erstmal was ist ntop eigentlich.
ntop (network top) ist eine quelloffene und freie Software, mit der Netzwerkverkehr mitgeschnitten und analysiert werden kann.
Quelle : https://de.wikipedia.org/wiki/Ntop

Diese Software kann schön genutzt werden um z.B. auf einem Gateway oder einer Firewall zu monitoren wo der Traffic so hin läuft. Es werden schon ein ganzer Pack Plugins mitgeliefert aber eigene Anwendungen werden nicht erkannt. Ich habe hier eine kleine Anwendung geschrieben die über udp Port 5404 Daten versendet. Jetzt möchte ich natürlich das auch in meinem Gateway angezeigt bekommen um zu beurteilen wieviel Traffic darüber läuft. Das kann man relativ einfach realisieren jedoch hat es mir auch etwas Arbeit gekostet diesen einfachen Weg zu finden ;-)

Erstellt eine Datei in der später die Protokolle hinzugefügt werden.
touch /usr/share/ntopng/httpdocs/protocol-app.txt
Jetzt füge ich meine Anwendung hinzu, das diese auch im Webfrontend nicht mehr unter UNKNOWN läuft.
echo "udp:5404 @MyApp" > /usr/share/ntopng/httpdocs/protocol-app.txt 
dann müssen wir noch dafür sorgen das diese Datei auch beim Start von ntopng gelesen wird dazu editieren wir das configfile unter /etc/ntopng mit dem Befehl.
echo "-p /usr/share/ntopng/httpdocs/protocol-app.txt" >> /etc/ntopng/ntopng.conf
Dann starten wir den Server neu mit dem Befehl
service ntopng restart
Wenn dann bei den Protokollen MyApp steht wurde alles richtig gemacht ;-) ntop beispiel

Mehr Infos :
http://www.ntop.org/ndpi/configuring-ndpi-for-custom-protocol-detection/
“Sicher ist, dass nichts sicher ist. Selbst das nicht.”
Joachim Ringelnatz