Ich arbeite an einem Forschungsprojekt, das das Remoting von Linux über NetCat auf einen Windows-Computer umfasst. Der Befehl zum Öffnen eines Listeners lautet
nc.exe -Ldp PORT -e cmd.exe
Und der Befehl zum Herstellen einer Verbindung unter Linux lautet
nc -v IP PORT
Bei der Ausgabe des zweiten Befehls unter Linux werde ich in ein Cmd-Shell-Verzeichnis abgelegt, in dem sich NetCat befindet. Von hier aus kann ich DOS-Befehle ohne weiteres ausführen.
Leider kann ich NetCat keinen DOS-Befehl geben, der von meinem Linux-Computer ausgeführt werden soll. Es wäre wirklich cool, wenn ich nur meine DOS-Befehle in den Befehl leiten könnte, um eine Verbindung zum NetCat-Listener herzustellen. Dann muss ich mir keine Gedanken mehr über die Verbindung über Linux machen, darauf warten, in eine CMD-Shell zu fallen und dann meinen DOS-Befehl absetzen. Ich könnte sie einfach alle aneinander reihen.
Wie kann ich DOS-Befehle in NetCat unter Linux so umleiten, dass eine Verbindung zum Windows-Computer hergestellt und meine Befehle ausgeführt werden?
printf 'whoami\r\n' | nc -v <ip> <port>
funktionieren-C
oder eine--crlf
Option. Hat deine das und hilft das?Antworten:
Lösung war es zu benutzen
cat
und auf stdin warten zu lassen.cat <( printf 'whoami\r\n' ) - | nc -v <host> <port>
quelle