Windows
Olika sätt att överföra filer till och från Windows-system. I huvudsak hämtat från HTB Academy.
Överföring genom Base64-kodning
Det finns begränsningar för hur stora filer man kan göra detta med. CMD.exe har t.ex. en begränsning på 8 191 tecken. De övre kommandona i varje steg visar överföring från egen Linux-klient till fjärrklient (Windows) och nedre kommandona visar exfiltrering av fil till egen Linux-klient.
Steg 1 - Ta fram checksumma för filen
Steg 2 - Base64-koda filen
Steg 3 - Konvertera tillbaka filen
Steg 4 - Kontrollera att checksumman stämmer från steg 1
Powershell DownloadFile
Från en Powershell-prompt
Exempel 1:
Exempel 2:
PowerShell DownloadString - Fileless
Använder modulen Invoke-Expression. Invoke-Expression används för att tolka och exekvera en sträng som ett kommando. Den tar ett argument i formen av en sträng innehållandes PowerShell-kod och exekverar den som att den knappades in direkt i kommandotolken.
Exempel 1:
Exempel 2:
Laddar ner en fil och pipe:ar det till Invoke-Expression.
PowerShell Invoke-WebRequest
Fr.o.m PS 3.0 finns det även modulen Invoke-WebRequest. Tar dock längre tid att ladda ner filer än ovanstående. Det går även att använda följande alias istället för Invoke-WebRequest:
iwr
curl
wget
Exempel 1:
Felhantering
Om man stöter på problem med SSL/TLS secure channel (för att certifikatet inte är betrott) kan man ange följande kommando:
Om uppstartskonfigurationen inte är gjord för Internet Explorer så kan man behöva lägga till följande växel efter kommandot:
Resurser
harmj0y har gjort en utförlig lista över fler kommandon:
SMB (oautentiserat)
Steg 1 - Starta en SMB-server
Starta en SMB-server på egen klient med Impackets "smbserver.py".
Steg 2 - Kopiera över önskad fil
Använd kommandot "copy" för att föra över önskad fil till fjärrklient.
SMB (autentiserat)
Steg 1 - Starta SMB-server med inloggningsuppgifter
Om Windows-klienten inte tillåter oautentiserade överföringar så kan man istället starta SMB-servern med specificerade användare-uppgifter.
Steg 2 - Mount:a share på Windows-klienten
Steg 3 - Kopiera över önskad fil
FTP
Steg 1 - Installera pyftpdlib
Steg 2 - Starta FTP-server
Steg 3 - Överföra filer
PowerShell:
FTP-klient (inbyggd i Windows)
Först skapar vi en "kommando"-fil med kommandon vi vill exekvera. Sedan kör vi kommandona och hämtar specificerad fil.
-v = visa ej fjärr-serverns svar.
-n = ingen autologin vid anslutning.
-s: <textfil med kommandon> = specificerar en textfil som innehåller FTP-kommandon och som kommer köras efter att FTP startats.
PowerShell Web Uploads
PowerShell har ingen inbyggd funktion för att ladda upp filer. Man kan dock använda "Invoke-WebRequest" eller "Invoke-RestMethod" för att bygga en uppladdningsfunktion. Det behövs även en webbserver som kan ta emot uppladdningar, detta är dock inte standard i de flesta webbserver-verktyg.
Pythons HTTP.server-modul har en utökad modul som heter "uploadserver" och inkluderar en filuppladdnings-sida. Den sätter upp en webbserver på port 8000.
Steg 1 - Upprätta en webbserver med uppladdningsfunktionalitet
Steg 2 - PowerShell-skript för att ladda upp fil
PowerShell Base64 Web Upload
Man kan även använda "Invoke-WebRequest" och "Invoke-RestMethod" tillsammans med Netcat för att ladda upp filer. Man sätter då upp en Netcat-lyssnare och skickar filen (Base64-strängen) som en POST-request. Slutligen så kopierar man informationen i request:en och använder Base64-avkodning för att konvertera strängen till en fil.
Steg 1 - Sätt upp en Netcat-lyssnare
Steg 2 - Konvertera filen som ska skickas till Base64-sträng
Steg 3 - Skicka filen som en POST-request
Steg 4 - Konvertera tillbaka filen från Base64
SMB Uploads
Vanligtvis tillåter man inte SMB-trafik ut från det interna nätverket. För att komma runt detta kan man nyttja SMB över HTTP m.h.a WebDav. WebDav är en förlängning av HTTP-protokollet och tillåter en webbserver att agera som en filserver. Det stödjer även HTTPS.
Steg 1 - Installera Pythons WebDav-modul
Steg 2 - Starta WebDav-modulen
Steg 3 - Anslut till WebDav-share:en
Steg 4 - Ladda upp filer med SMB
FTP Uploads
Steg 1 - Starta FTP-servern med skriv-rättigheter
Steg 2 - Ladda upp filer
PowerShell
FTP-klient (inbyggd i Windows)
Filkryptering i Windows
Exempel 1:
PowerShell - Kryptering m.h.a "Invoke-AESEncryption.ps1".
Steg 1 - Hämta PowerShell-skriptet
Steg 2 - Överför skriptet med någon av ovanstående metoder
Steg 3 - Importera modulen med PowerShell
Steg 4 - Kryptera önskad fil
Last updated