EXE via Bilddatei ausführen

10/21/2009 01:43 r0bz0r#1
Ist es möglich das ich wenn ich eine Bilddatei öffne sich eine exe oder batch datei ausführt?
Zum beispiel Person A schickt Person B ein Bild, Person B öffnet das Bild und der PC fährt runter da sie mit einer Shutdown.bat verknüpft war.
10/21/2009 01:45 lol702#2
Das mit dem shutdown geht :D das andere ka^^
10/21/2009 02:56 Ende!#3
Nope, geht nicht. Du kannst aber eine exe machen und als Icon das Standard Symbol für .jpg's nehmen. Die exe könnte dann sogar noch ein Bild anzeigen xD Achja, shutdowns sind langweilig, schlecht und billig.
10/21/2009 04:34 Gianotti#4
Quote:
Originally Posted by IceFire32 View Post
Nope, geht nicht. Du kannst aber eine exe machen und als Icon das Standard Symbol für .jpg's nehmen. Die exe könnte dann sogar noch ein Bild anzeigen xD Achja, shutdowns sind langweilig, schlecht und billig.
theoretisch könnte man die windows bildanzeige imitieren ;), dann fällt nichts mehr auf ( nicht vergessen den fenster titel zu ändern ;D ( cmd.exe standard )
10/21/2009 13:02 Akorn#5
Quote:
Originally Posted by r0bz0r View Post
Ist es möglich das ich wenn ich eine Bilddatei öffne sich eine exe oder batch datei ausführt?
Zum beispiel Person A schickt Person B ein Bild, Person B öffnet das Bild und der PC fährt runter da sie mit einer Shutdown.bat verknüpft war.
Indirekt. Sollte das Bildanzeige programm eine unsichere funktion benutzen kann es möglich sein selbstgeschriebenen shellcode der in der Bilddatei enthalten ist auszuführen. Und von daher kann man damit dan auch den PC herunterfahren allerdings ist dies nicht allzu einfach.
10/21/2009 13:42 Ende!#6
Quote:
Originally Posted by Akorn View Post
Indirekt. Sollte das Bildanzeige programm eine unsichere funktion benutzen kann es möglich sein selbstgeschriebenen shellcode der in der Bilddatei enthalten ist auszuführen. Und von daher kann man damit dan auch den PC herunterfahren allerdings ist dies nicht allzu einfach.
Das mit dem Shellcode der aus Bildern heraus ausgeführt wird hab ich noch nie verstanden -.- Warum führt das Programm den Code überhaupt aus?
10/21/2009 14:15 MoepMeep#7
Quote:
Originally Posted by IceFire32 View Post
Das mit dem Shellcode der aus Bildern heraus ausgeführt wird hab ich noch nie verstanden -.- Warum führt das Programm den Code überhaupt aus?
Weils ne sicherheitslücke hat :P
10/21/2009 14:27 Ende!#8
Quote:
Originally Posted by MoepMeep View Post
Weils ne sicherheitslücke hat :P
Das ist mir auch klar, aber wiso führt die Sicherheitslücke Code aus? Kennt da zufällig jemand ein Tut zu? xD
10/21/2009 14:52 r0bz0r#9
Ich hab halt ein Script mit dem ich eine Rar datei in ein Bild "verstecken" kann.
Code:
@echo off
color 0c
cd C:\
if exist FUSION goto FUSIONTRUE
mkdir C:\FUSION
:FUSIONTRUE
cd C:\FUSION
cls
echo JPG/PNG/GIF + RAR Fusion script
echo.
echo.
echo PUT 2 FILES TO BE FUSED IN "C:\FUSION"
pause
cls
if exist *.rar goto RAR
cls
echo ERROR: RAR NOT FOUND
pause
exit
:RAR
if exist *.jpg goto JPG
if exist *.png goto PNG
if exist *.gif goto GIF
cls
echo ERROR: IMAGE NOT FOUND
pause
exit
:JPG
copy /b *.jpg + *.rar FUSED.jpg
cls
echo JPG/RAR FUSION COMPLETE
pause
exit
:PNG
copy /b *.png + *.rar FUSED.png
cls
echo PNG/RAR FUSION COMPLETE
pause
exit
:GIF
copy /b *.gif + *.rar FUSED.gif
cls
echo GIF/RAR FUSION COMPLETE
pause
exit
Und so dachte ich mir das es vielleicht möglich ist eine Exe beim öffnen des Bilds ausführen zu lassen. Sei es eine Shutdown.exe oder ein Trojaner :D

Wie man das mit dem Shellcode macht wüsst ich aber auch gerne :P

Edit: Gut also das Script kann man einfach ändern und somit jeden Dateityp in ein bild verstecken, aber könnte man diese versteckte Datei auch ausführen lassen?
10/21/2009 18:48 Akorn#10
Quote:
Originally Posted by IceFire32 View Post
Das ist mir auch klar, aber wiso führt die Sicherheitslücke Code aus? Kennt da zufällig jemand ein Tut zu? xD
Ja ich habe irgendwo auf meinem rechner noch einiges zu diesem thema.

Um das zu verstehen braucht man aber schon einiges an wissen und es ist auch schwer das in ein paar sätzen zu erklären.

Einfachgesagt der shellcode wird über eine funktion(z.b. scanf oder memcpy) in eine Variable geschrieben.Und diese funktionen sind die eigentliche sicherheitslücke den sie überprüfen nicht ob das was in die variable reingeschrieben wird überhaupt von der größe her in die variable reinpasst (diese funktionen nennt man auch "Unsichere Funktionen").
Das bedeutet man kann mehr in eine variable reinschreiben als speicherbereich für sie deklariert wurde (Buffer Overflow). Nun muss man wissen das variablen am ende ihres speicherbereichs eine sogenannte "Rücksprung Addresse" haben diese enthalt das Offset von dem Programmcode der nach dem lesen der Variable ausgeführt werden soll.
Da man aber jetzt mit einer dieser unsicheren funktionen über den eigentlichen speicherbereich hinausschreiben kann kann man das Offset an der Rücksprung Addresse mit einem anderen überschreiben.

Und wen man diese sicherheitslücke ausnutzen will dan lässt man 2dinge über die unsichere funktion einlesen. Als erstes den shellcode der so groß ist das gerade der Speicher/variable nicht überläuft und als 2tes das neue offset(Das ist das offset wo sich der Shellcode befindet also meistens die eigenen variable(wobei drauf zu achten ist das das offset dynamisch ist allerdings ist das offset trotzdem so zu 80% immer gleich) wobei dan der speicher überleuft und Die Rücksprung Addresse mit der neuen überschrieben wird.
Und wen dan die Variable gelesen wird bzw danach springt dan der computer
zu dem shellcode und führt diesen aus.

So und wie ihr gesehen habt ist soetwas ziemlich schei?e zu erklären:p
10/21/2009 19:17 ms​#11
Du kannst auch die Endung der Datei von .exe in .scr umändern. Dann wird als Dateityp "Screen Saver" angezeigt, aber die Datei wird trotzdem ganz normal ausgeführt (was einige nicht wissen).

Ansonsten gibt es noch die Möglichkeit, die Endung beliebig zu verändern und eine Verknüpfung mit in den Ordner zu packen, die die Datei dann als eine Executable ausführt.
10/21/2009 19:52 Ende!#12
Quote:
Originally Posted by Akorn View Post
Ja ich habe irgendwo auf meinem rechner noch einiges zu diesem thema.

Um das zu verstehen braucht man aber schon einiges an wissen und es ist auch schwer das in ein paar sätzen zu erklären.

Einfachgesagt der shellcode wird über eine funktion(z.b. scanf oder memcpy) in eine Variable geschrieben.Und diese funktionen sind die eigentliche sicherheitslücke den sie überprüfen nicht ob das was in die variable reingeschrieben wird überhaupt von der größe her in die variable reinpasst (diese funktionen nennt man auch "Unsichere Funktionen").
Das bedeutet man kann mehr in eine variable reinschreiben als speicherbereich für sie deklariert wurde (Buffer Overflow). Nun muss man wissen das variablen am ende ihres speicherbereichs eine sogenannte "Rücksprung Addresse" haben diese enthalt das Offset von dem Programmcode der nach dem lesen der Variable ausgeführt werden soll.
Da man aber jetzt mit einer dieser unsicheren funktionen über den eigentlichen speicherbereich hinausschreiben kann kann man das Offset an der Rücksprung Addresse mit einem anderen überschreiben.

Und wen man diese sicherheitslücke ausnutzen will dan lässt man 2dinge über die unsichere funktion einlesen. Als erstes den shellcode der so groß ist das gerade der Speicher/variable nicht überläuft und als 2tes das neue offset(Das ist das offset wo sich der Shellcode befindet also meistens die eigenen variable(wobei drauf zu achten ist das das offset dynamisch ist allerdings ist das offset trotzdem so zu 80% immer gleich) wobei dan der speicher überleuft und Die Rücksprung Addresse mit der neuen überschrieben wird.
Und wen dan die Variable gelesen wird bzw danach springt dan der computer
zu dem shellcode und führt diesen aus.

So und wie ihr gesehen habt ist soetwas ziemlich schei?e zu erklären:p
Achso :) Hatte mir wie schon sowas gedacht, aber ich wusste nicht, dass immer die Rücksprungadresse am Ende der Variable steht.

Hast mir damit echt geholfen :)

Jetzt weiß ich, dass ich dämnächst lieber sprintf_s usw. nehme, hab da voher nie den Sinn drin gesehen ;)
10/21/2009 19:56 r0bz0r#13
gut aber datei in einem Bild verstecken, welche sich beim öffnen vom Bild ausführt ist also unmöglich?
10/22/2009 06:57 Ghost#14
Geht afaik seit SP2 NICHT mehr.
10/22/2009 13:53 r0bz0r#15
Okay, danke.
Dann is das ja geklärt.