GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Kann Windows-Malware einen Linux-Computer beschädigen, wenn sie mit Wine ausgeführt wird?

Sie haben Recht mit dem Zugriff auf das Dateisystem und das Internet, insbesondere weil der Home-Ordner standardmäßig mit Schreibrechten zugeordnet ist. Dies impliziert, dass es Ihre Dokumente durcheinander bringen kann auch, zum Beispiel das Hinzufügen von Makros zu Open Office-Dokumenten, das Löschen Ihrer MP3-Dateien oder das Versenden interessanter Dateien an jemanden im Internet.

Und ja, es kann in Ihr Firefox-Profil schreiben und ein Add-on installieren .

Eine Verbindung zum Internet bedeutet, dass es Befehle von einem C&C-Server abrufen kann um Ihren Computer in eine Drohne zu verwandeln.

Ich vermute, einige Malware wird diese Speicherorte außerhalb der Standard-Windows-Ordner nicht finden. Aber andere werden nur alle Laufwerke scannen für interessante Orte.


Theoretisch ja.

Zunächst ein wenig Hintergrundwissen zu Wine. Wine bietet einen ausführbaren Lader zum Ausführen von ausführbaren Windows-Dateien. Ebenfalls installiert oder optional verwendet wird ein hier beschriebener binfmt-Handler, aus dem der Linux-Kernel ableitet, welcher Loader ausgeführt werden soll - zum Beispiel ist irgendwo in den Kernel ein binfmt-Handler für ELF-Dateien für Linux eingebaut. Funktionsaufrufe von diesen ausführbaren Dateien werden dann von der Wine-Laufzeitumgebung in ihre entsprechenden Linux-Systemaufrufe übersetzt. Die Wine FAQ befasst sich mit der Frage, ob Wine ein Emulator ist.

Also zurück zu Ihrer Frage – könnte Windows-Malware eine Linux-Box infizieren? Ich sagte theoretisch ja – hier sind die verschiedenen Bedrohungen, denen Sie gegenüberstehen:

  • Fehler in den Format-Handlern. Wenn eine speziell gestaltete ausführbare Datei dazu führt, dass Wine die PE-Datei falsch lädt, können Sie sie möglicherweise ausnutzen.
  • Fehler in der Funktionsübersetzung von Wine. Das ist dasselbe wie "Fehler in der Windows-API", wenn Sie so wollen - wenn bestimmte in Wine übersetzte Funktionen anfällig für Pufferüberläufe usw. sind, dann können sie ausgenutzt werden.
  • Die Tatsache, dass Funktionsaufrufe übersetzt werden. Allein diese Tatsache bedeutet, dass böswillige Aktivitäten stattfinden können.
  • Das Setup und die Einschränkungen der Wine-Installation. Welche Dateisysteme hast du gemappt? Kann die ausführbare Datei diesem "chroot" entkommen?

Hier gibt es eine wichtige Bedingung – sich bewusst zu sein oder zu planen, Wine zu infizieren. Wenn Malware mit der Erwartung geschrieben wird, dass sie auf Wine ausgeführt werden kann, kann sie anfangen, Wine-spezifische Exploits zu verwenden, möglicherweise erkennen, dass Z:auf / abgebildet ist, und entsprechende Aktionen ausführen. Die früheren Punkte in meiner obigen Liste sind am unwahrscheinlichsten, aber auch am schädlichsten, wenn sie auftreten.

Die meiste Malware wurde jedoch nicht für Wine geschrieben. Sie können sich Wine fast als separates Build-Ziel vorstellen, da die Implementierung der Windows-API anders ist als die Implementierung der API durch Windows. Die meiste Malware zielt direkt auf Windows ab, daher würde ich erwarten, dass der Schaden nur bei der „Windows“-Installation auftritt. In der Tat wird manche Malware möglicherweise nicht ausgeführt, wenn die Wine-Entwickler davon ausgegangen sind, dass eine API-Funktion strikt verwendet wird und Windows etwas anderes zulässt.

Um es kurz zu machen, Wine vergrößert Ihre Angriffsfläche um einen beträchtlichen Betrag, indem es Ihnen erlaubt, beliebige Windows-Programme auszuführen. Für Wine gelten die gleichen allgemeinen Regeln wie für jede Software:

  • Brauchen Sie es? Wenn nicht, installieren Sie es nicht.
  • Ist es aktuell? Wenn nicht, aktualisieren Sie es.
  • Seien Sie vorsichtig, was Sie damit fahren. Es ist kein Ersatz dafür, sorgfältig darauf zu achten, was Sie herunterladen, darauf zugreifen und was Sie ausführen.

Es ist lange her, dass ich C-strukturierte Ausnahmen gemacht habe (MS-spezifisch, aber auf Wine emuliert), aber die Syntax kommt dieser nahe. Jemand, der dies verwendet, könnte viel Spaß haben, auch wenn Z nicht zugeordnet ist.

bool isLinux = 0;
__try {
    asm {
        mov AL, 172
        int 80h
    }
    isLinux = 1;
} __except {}
if (isLinux)
   asm {
      /* Linux shellcode here */
   }

Linux
  1. So stellen Sie einen Single-Core-Computer mit Linux wieder her

  2. Einfaches Ausführen von Windows-Software unter Linux mit Bottles

  3. Linux-Tools zum Untersuchen von Windows-DLLs

  4. Wie kann ich Dateien mit xargs unter Linux verschieben?

  5. Wie registriere ich einen Linux-Server beim Windows-DNS-Server?

GSConnect Integrieren Sie ein Android-Telefon in einen Linux-Computer

Möglichkeiten zur Entwicklung von Windows-Apps unter Linux

So führen Sie Windows-Software unter Linux mit Flaschen aus

Installieren Sie Windows 10 unter Linux mit VirtualBox

Kann man wirklich mit Linux GUI Apps unter Windows 10 mit WSLg entwickeln? Wie wäre es mit PyCharm?

Können Windows-Container unter Linux gehostet werden?