it-swarm.com.de

Dieses Programm kann nicht im DOS-Modus ausgeführt werden

Ich mache einen Pentest auf einer Windows XP Box) und habe eine Shell mit geringen Berechtigungen erhalten. Daher versuche ich, meine Berechtigungen zu eskalieren. Jede EXE-Datei, die ich ausführen möchte, ist jedoch Geben Sie mir "Dieses Programm kann nicht im DOS-Modus ausgeführt werden". Gibt es irgendeine Konfiguration, die ich an der Box ändern muss, oder gibt es eine andere Strategie für die Eskalation von Berechtigungen in einer Umgebung wie dieser? "

7

Hintergrund

Diese Nachricht stammt aus dem Basisheader, über den jede ausführbare Windows-Datei (PE-Format) verfügt. Die Nachricht (und der Code, der sie anzeigt) kann technisch bearbeitet werden, aber alle Compiler scheinen nur Code auszugeben, der dieselbe Zeichenfolge anzeigt und dann beendet wird. Es handelt sich um ausführbaren 16-Bit-Code (wie eine DOS-Datei .COM), Der angezeigt werden soll, wenn Sie versuchen, das Programm unter MS-DOS oder ähnlichen Vor-Windows-Systemen auszuführen. Der Programmlader von Windows überspringt ihn normalerweise.

Erläuterung

Es gibt jedoch einen Fall, in dem Windows diese Meldung möglicherweise anzeigt: Wenn Sie versuchen, ein PE auszuführen, das für eine erweiterte Windows-Version als die von Ihnen verwendete kompiliert wurde, insbesondere wenn der Hauptprogrammcode für eine andere CPU-Architektur bestimmt ist als das Betriebssystem unterstützen kann. (Dies ähnelt beispielsweise dem Versuch, Win32-Code unter 16-Bit-DOS auszuführen.) Über eine GUI wird ein Popup-Fehler angezeigt, aber in der Befehlszeile wird möglicherweise nur diese Meldung angezeigt.

Der offensichtliche Kandidat hier ist, dass Sie versuchen, Code unter (schrecklich veraltetem) Windows XP auszuführen, und Sie sagen, Sie verwenden "i686 -w64 - mingw32-gcc". Wenn Sie 64-Bit-Binärdateien für Windows XP kompilieren, funktionieren sie höchstwahrscheinlich nicht. Obwohl es technisch gesehen einen 64-Bit-Build von XP gibt (es handelt sich tatsächlich um eine andere Kernel-Version, 5.2 vs. 5.1, aber als XP bezeichnet), wurde er nie weit verbreitet verwendet. Die überwiegende Mehrheit der XP Boxen ist nur 32-Bit. Wenn Sie in der Befehlszeile schnell nach 32-Bit- und 64-Bit-Dateien suchen möchten, überprüfen Sie, ob ein \Windows\SysWOW64 - Verzeichnis vorhanden ist (das 32-Bit-Systembinärdateien auf 64-Bit-Computern enthält). Wenn es nicht vorhanden ist, verwenden Sie ein 32-Bit-Betriebssystem.

Empfehlung

  • Verwenden Sie nur 32-Bit-Nutzdaten, es sei denn, Sie A) benötigen 64-Bit für etwas und B) wissen, dass Ihr Ziel 64-Bit ist.
  • Stellen Sie sicher, dass Ihr Code und Ihr Compiler auf XP abzielen (Vista und höher haben eine Menge neuer APIs hinzugefügt, die verhindern, dass ein Programm, das sie verwendet, unter XP ausgeführt wird).
  • Ziehen Sie in Betracht, ein XP VM hochzufahren, um zu testen, ob Ihre Nutzdaten lokal ausgeführt werden, bevor Sie sie auf dem Zielcomputer testen.
10
CBHacking

Stellen Sie sicher, dass Sie die Nutzdaten korrekt geliefert haben. Ich hatte ein ähnliches Problem beim Übertragen von accesschk.exe über FTP. FTP ermöglicht die Übertragung im ASCII- und Binärmodus. Wenn Sie es im Binärmodus übertragen, sollte es funktionieren.

Der Binärmodus überträgt die Dateien Stück für Stück, so wie sie sich auf dem FTP-Server befinden. Im Ascii-Modus wird der Text jedoch direkt heruntergeladen. Sie können ASCII oder Binär eingeben, um zwischen den Typen zu wechseln.

Stellen Sie dazu eine Verbindung zum FTP-Dienst her und geben Sie "binär" ein. Sie sollten die Antwort "200 Typ auf I gesetzt" erhalten.

legen Sie die Datei erneut ab und führen Sie die ausführbare Datei aus.

8
John Rogers