Was ist ein Shellcode?

ShellCode ist eine Abfolge von Maschinencode oder ausführbaren Anweisungen, die in den Speicher eines Computers injiziert werden, um die Kontrolle eines laufenden Programms zu übernehmen. Bei einem solchen Angriff besteht einer der Schritte darin, die Kontrolle über den Programmzähler zu erlangen, der den nächsten Anweisungen identifiziert. Der Programmfluss kann dann in den eingefügten Code umgeleitet werden. Der aufdringliche Maschinencode wird als Nutzlast des Angriffs bezeichnet und ist das Element, auf das der Begriff Shellcode üblicherweise bezeichnet wird. Diese Methode wurde häufig verwendet, um einen Angreiferzugriff zu gewähren, indem eine Operation System Command Shell geöffnet wird. Daher sind Code -Injektionsangriffe im Allgemeinen als Shellcode bekannt.

Die ausgenutzte Verwundbarkeit umfasst normalerweise, wie ein Programm Speicher zuweist, die Gültigkeit von Eingabedaten überprüft und Speicherfehler behandelt. Softwareentwickler können diese Bedrohung normalerweise vermeiden, indem sie strikt Eingabedaten definieren und unsachgemäße Werte ablehnen. Wenn Sie deaktiviert sind, benötigen Werte, die mehr Speicherplatz als das Speicher Allott benötigenEd für diesen Wert könnte akzeptiert werden. Dies führt zu einem Sicherheitsverschluss, der als Pufferüberlauf bezeichnet wird, wobei ein Teil der Daten an Speicherorten neben dem zugewiesenen Speicherplatz des Werts geschrieben wird. Wenn diese Anomalie sorgfältig manipuliert wird, kann sie in einem aufdringlichen Code eingeführt werden.

ShellCode ist normalerweise in einer Programmiersprache mit Systemzugriff auf niedriger Ebene wie Montage, C oder C ++ geschrieben. Abhängig von der gezielten Sicherheitsanfälligkeit kann jedoch das gleiche Ergebnis realisiert werden, indem Code für eine interpretierte Skriptsprache wie Perl oder Bytecode für eine virtuelle Maschine wie Java eingefügt wird. Der Code kann vor, während oder nach dem Entführungsschalter des Programmzählers implantiert werden. Somit kann der intrusive Code in einer Datei auf dem Zielgerät enthalten oder über eine Netzwerkverbindung in Echtzeit übertragen werden.

Lokale Shellcode -Exploits sind so konzipiertCh, er oder sie hat körperlichen Zugang. Ein Ziel in diesem Fall könnte darin bestehen, beispielsweise ein Konto mit Administratorberechtigungen zu erstellen. In ähnlicher Weise würde ein erfolgreicher Exploit einen laufenden Prozess über ein hohes Privilegien -Niveau aufweisen, ein erfolgreicher Exploit vorübergehend den gleichen Zugang zum Eindringling.

auf einem Remote -Computer ausgeführte Prozesse können mithilfe von Standard -Netzwerkprotokollen ausgenutzt werden, um mit dem Zielcomputer zu kommunizieren. Connect-Back Shellcode weist die Zielmaschine an, eine Verbindung zum Computer des Eindringlings zu initiieren. Wenn der Intruder die Verbindung initiiert, wird der Code als Bindshell bezeichnet, da er versucht, die Kontrolle über eine Netzwerkverbindung zu übernehmen, die als Port auf der Remote -Maschine bezeichnet wird. Die Verbindungs-Back-Methode wird weiter verwendet, da Firewalls ausgehende Verbindungen selten verbieten.

ANDERE SPRACHEN

War dieser Artikel hilfreich? Danke für die Rückmeldung Danke für die Rückmeldung

Wie können wir helfen? Wie können wir helfen?