IT-Sicherheit: Welche Programmiersprachen benutzen Hacker

Programmiersprachen werden in der IT-Sicherheit sehr häufig eingesetzt. Ethical Hacker nutzen sie, um kleine Skripte und Exploits zu schreiben. Administratoren um das System automatisiert zu überwachen. Es kann die Arbeit erheblich erleichtert  kleinere Vorgänge und Prozesse durch Skripte zu automatisieren. Außerdem kann die richtige Programmiersprache einem dabei helfen, ein tiefgreifendes Verständnis für Computer und das Ethical Hacking zu entwickeln.

Welche Programmiersprachen werden häufig von Hackern in der IT-Sicherheit verwendet ?. Häufig eingesetzten Programmiersprachen sind z.B. Interpretiertesprachen, Maschinensprachen, Websprachen und kompiliertesprachen wie:

  • C/C++
  • Python
  • BASH Script
  • Perl
  • PHP
  • JavaScript
  • Ruby
  • SQL
  • Assembler
  • HTML

Jede dieser Programmiersprachen hat ihr natürliches Einsatzgebiet, sowie Vor- und Nachteile. Ein umfassendes Wissen in allen diesen Programmiersprachen ist für den Ethical Hacker sehr nützlich, denn er kann sehr flexibel auf verschiedene Situationen reagieren und ist auf jede Art von Angriffsszenario vorbereitet.

Welche Einsatzgebiete haben die Programmiersprachen ?

Möchte der Ethical Hacker z.B. verstehen, wie eine Anwendung im Detail funktioniert, muss er sie reverse engineeren und die Maschineninstruktionen hinter dem Programm lesen können. In anderen Fällen verwendet er lieber Programmiersprachen wie Python oder Perl.

Die Einsatzgebieet von Programmiersprachen können sich außerdem sehr stark überschneiden, denn Ruby z.B. kann sowohl dort eingesetzt werden wo auch Python eingesetzt wird. Es ist oft davon abhängig, welche Sprache der Ethical Hacker oder Pentetration Tester persönlich bevorzugt.

Programmiersprachen um Exploits zu entwickeln

C wurde um 1970 entwickelt und gilt somit als eine der älteren Programmiersprachen. Oft wird diese als so genannte low-level Programmiersprache bezeichnet und für Systemnahe Programmierung eingesetzt. Grundlegende Programme aller Unix-Systeme, Gerätetreiber und Betriebssysteme wurden mit der Programmiersprache C entwickelt. Sie eignet sich deshalb gut, um Exploits oder andere Systemnahe Anwendungen zu entwickeln.

C++ ist die Erweiterung von C und wurde um 1979 entwickelt. C++ ermöglicht wie C eine systemnahe Programmierung und bietet dazu die Objektorieentierung an. Die Sprache wird oft für das programmieren größerer Anwendungen verwendet und kann bei richtiger Anwendung eine sehr mächtige Programmiersprache sein.

Programmiersprachen in der Websicherheit

In der Websicherheit werden Programmiersprachen wie HTML, PHP und JavaScript verwendet. Die genannten Programmiersprachen unterscheiden sich sehr stark im Einsatzzweck aber nützen z.B. für das Verständnis von Webapplikationen.

Hyper Text Markup Language (HTML) ist die grundlegende Sprache hinter Webseiten im World Wide Web. Es  ist wichtig HTML zu verstehen, denn ohne wird es sehr schwer Webseiten zu Analysieren oder hierfür Angriffe zu planen.

PHP ist eine serverseitige Skriptsprache zur dynamischen Erstellung von Webseiten und Web-Anwendungen. Viele Webseiten nutzen PHP z.B. für Gästebücher, Diskussionsforen oder Formularverarbeitung. Durch falsche Verwendung der Skriptsprache entstehen gefährliche Schwachstellen wie Buffer Overflows, XSS und Fehlerbehandlungsschwachstellen.

JavaScript ist eine Skriptsprache für dynamische Inhalte und wird clientseitig ausgeführt. Durch falsche Anwendung der Sprache können z.B. Cross Site Scripting (XSS) und Cross-Site Request Forgery (CSRF) Angriffe auf der Webseite ausgeführt werden.

Structured Query Language (SQL) ist eine Datenbank Sprache und wird zur Definition und Abfragen von relationalen Datenbanken verwendet. SQL kommt eher im Backend einer Webseite zum Einsatz.

Werden z.B. Benutzernamen von Foren Mitgliedern gespeichert, liegen diese in einer Datenbank. Bei falscher Anwendung von PHP und SQL entsteht die gefährliche Anfälligkeit für SQL Injections.

Programmiersprachen in der Netzwerksicherheit

In der Netzwerksicherheit kommen verschiedene Sprachen zum Einsatz. In der Netzwerksicherheit ist es eher wichtig, welche Programmiersprache am schnellsten Ergebnisse bringt. Es haben sich trotzdem einige Programmiersprachen als praktisch herauskristallisiert.

Python ist eine interpretierte Skriptsprache und bietet eine Vielzahl an nützlichen Modulen. Viele Security-Tools sind in Python programmiert und sehr gut dokumentiert. Es gibt sehr viele Bücher zum Thema “Hacking mit Python” und somit kann man schon fast sagen, dass mittlerweile jeder Hacker oder Penetration Tester irgendwie mal mit Python zu tun gehabt haben sollte. Python ist wie ein Allzweckwerkzeug, dass in der Hacker Toolbox nicht fehlen sollte.

Ruby ist eine weitere interpretierte Skriptsprache, welche auch verstärkt im Web eingesetzt wird. Mit Ruby werden auch Security-Tools programmiert wie z.B. das Metasploit Framework und Bettercap in Ruby programmiert wurden.

Obwohl Perl immer weniger wegen der Spracheigenheiten verwendet wird. Gibt es da draußen noch einige Security-Tools die in Perl programmiert wurden. In alten Hacking Tutorials findet man noch viele gute Hacks geschrieben in der Programmiersprache Perl.

Programmiersprache für das Reverseengineering

Um Assemblersprachen kommt man im Reverse Engineering nicht vorbei. Denn um interne Funktion von Anwendungen zu analysieren, muss man die Anwendung auf Maschinenebene mit einem Disassembler analysieren. Die Binärdatei wie z.B. eine .exe Datei, wird dann in eine für Menschen lesbare Assemblersprache verwandelt.

Jeder Debugger sollte so einen Disassembler besitzen und kann Assemblercode strukturiert anzeigen. Black-Hats nutzen dies z.B. um Anwendungen zu “Cracken” und die Eingabe des Lizenzschlüssels zu umgehen. Weshalb die richtige Bezeichnung für einen Black-Hat auch Cracker ist.

Programmiersprachen für das Betriebssystem Linux

Um schnell Programme auszuführen benutzen Hacker gerne das Terminal oder auch Kommandozeileninterpreter genannt. Denn Dateien mit der Maus lästig zu kopieren oder verschieben dauert meistens zu lange.

Vorgänge können automatisch ausgeführt werden mit dem Shell-Scripting und den Shell Kommandos des z.B. BASH Terminals. Ein Shell-Skript ist ein Computer Programm, welches von der Unix-Shell (Kommandozeileninterpreter) ausgeführt wird.

Welche Programmiersprache in der IT-Sicherheit zuerst ?

Am besten man beginnt mit einer der einfacheren Programmiersprachen wie Python oder Ruby. Allerdings gibt es viele Wege ins Ethical Hacking oder Penetration Testing und es kommt auch darauf an, was man gerne später machen möchte. HTML, CSS und PHP sind für das Web allgemein ein guter Einstieg. Möchte man sich im Gebiet der Exploit Entwicklung bewegen ist C/C++ und Assembler nicht schlecht. Wichtigste ist das man zuerst eine einzige Programmiersprache vollständig lernt und versteht.

Was muss man alles Programmieren können ?

Man könnte z.B. lernen wie man:

  • Portscanner,Pingscanner
  • Mini Proxyserver
  • Wireless Scanner
  • XSS und SQLi Schwachstellen ausnutzt

Es gibt eine Menge was man alles programmieren könnte. Das ist aber alles abhängig davon, worauf man sich als Penetration Tester oder Ethical Hacker konzentrieren möchte.

Sind Programmiersprachen für Hacker wichtig ?

Nein nicht unbedingt. Hacker können auch nach Konfigurationsfehlern suchen und so Schwachstellen finden. Ein Hacker benötigt nicht zwingend Programmierkenntnisse um ein zu schwaches Passwort oder falsch konfigurierten Router zu knacken. Für alle komplizierteren Aufgaben kommen dann Programmiersprachen ins Spiel.