<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:series="http://unfoldingneurons.com/"
	>

<channel>
	<title>Bits, Bytes and my 5 cents &#187; Programmieren</title>
	<atom:link href="http://blog.encodingit.ch/category/programmieren/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.encodingit.ch</link>
	<description>Life is just a technical game</description>
	<lastBuildDate>Wed, 08 Feb 2012 07:57:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>LDAP Synchronisation Script</title>
		<link>http://blog.encodingit.ch/2012/02/ldap-synchronisation-script/</link>
		<comments>http://blog.encodingit.ch/2012/02/ldap-synchronisation-script/#comments</comments>
		<pubDate>Wed, 08 Feb 2012 07:40:45 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Active Directory]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[LDAP]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Planet]]></category>

		<guid isPermaLink="false">http://blog.encodingit.ch/?p=3159</guid>
		<description><![CDATA[Für einen Kunden wurde ich angefragt, ob ich ein Synchronisationsscript in PHP erstellen könne, welches die User samt Telefonnummer aus dem LDAP / AD ausliest und in eine MySQL-Tabelle umspeichert, so dass diese danach auf der Intranet-Seite angezeigt werden können. Leider wurde aus dem Auftrag nichts, da sich der User plötzlich nicht mehr gemeldet hatte, also dachte ich mir, veröffentlichen wir das Script halt, das es anderen vielleicht auch hilft.
Das könnte dich auch interessieren:<ol>
<li><a href='http://blog.encodingit.ch/2012/01/apache-mit-ldap-durch-xampp/' rel='bookmark' title='Apache mit LDAP durch XAMPP'>Apache mit LDAP durch XAMPP</a> <small>XAMPP ist ja eine ganz einfache Variante, wenn man schnell...</small></li>
</ol><img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></description>
			<content:encoded><![CDATA[<p>Für einen Kunden wurde ich angefragt, ob ich ein Synchronisationsscript in PHP erstellen könne, welches die User samt Telefonnummer aus dem LDAP / AD ausliest und in eine MySQL-Tabelle umspeichert, so dass diese danach auf der Intranet-Seite angezeigt werden können. Leider wurde aus dem Auftrag nichts, da sich der User plötzlich nicht mehr gemeldet hatte, also dachte ich mir, veröffentlichen wir das Script halt, das es anderen vielleicht auch hilft.<br />
Damit das ganze funktioniert, muss das LDAP-Modul in der PHP.ini einkommentiert und die passende SO-Datei vorhanden sein.<br />
Unter Ubuntu und Debian geht das ganz einfach:</p>
<pre class="brush: bash; title: ; notranslate">
apt-get install php5-ldap
</pre>
<p>Auch andere Distros sind nicht allzu wild, genaueres dazu findet man zum Beispiel <a href="http://www.mediawiki.org/wiki/Extension:LDAP_Authentication/AD_Configuration_Examples#General_Configuration"  target="_blank" class="broken_link" rel="nofollow">hier</a>.</p>
<p>Das Script selbst war dann auch ganz einfach geschrieben, geplant war es, dieses jeweils mittels Cronjob alle paar Stunden laufen zu lassen, da sich die Benutzerdatenbank ja nicht gerade alle Minuten ändert. Also durchaus angemessen so!</p>
<p>So und hier ist also das Script.<br />
<span id="more-3159"></span></p>
<pre class="brush: php; title: ; notranslate">
&lt;?php
	// Adresse des Domänencontrollers:
	$ldap_server = &quot;ldap://173.194.35.24&quot;;

	// Konto für den Zugriff:
	$auth_user = &quot;sync@domain.local&quot;;
	$auth_pass = 'password';

	//Login für MySQL:
	$server = &quot;localhost&quot;;
	$user = &quot;sync&quot;;
	$pass = &quot;password&quot;;
	$db = &quot;users&quot;;

	// Mit LDAP Server verbinden:
	if (!($connect=@ldap_connect($ldap_server))) {
		die(&quot;Keine Verbindung zum Verzeichnis-Server möglich.&quot;);
	}

	// Diese Parameter sind nötig für den Zugriff auf ein Active Directory:
	ldap_set_option($connect, LDAP_OPT_PROTOCOL_VERSION, 3);
	ldap_set_option($connect, LDAP_OPT_REFERRALS, 0);

	// An Server binden:
	if (!($bind=@ldap_bind($connect, $auth_user, $auth_pass))) {
		die(&quot;Bind fehlgeschlagen.&quot;);
	}

	// BaseDN festlegen:
	$base_dn = &quot;CN=Users,DC=DOMAIN,DC=local&quot;;

	// LDAP filter setzen: Nur Kontakt- und Benutzer-Objekte sollen zurückgegeben werden
	$filter = &quot;(|(objectClass=contact)(objectClass=user))&quot;;

	// Mit MySQL Server verbinden:
	mysql_connect($server,$user,$pass) or die (&quot;Keine Verbindung mit SQL Server möglich&quot;);
	mysql_select_db($db) or die (&quot;Die Datenbank existiert nicht.&quot;);

	// Suche starten:
	if (!($search=@ldap_search($connect,$base_dn,$filter))) {
		die(&quot;Durchsuchen des LDAP-Servers fehlgeschlagen.&quot;);
	}
	$anzahl = ldap_count_entries($connect,$search);

	// Ergebnis der Suche in der Variablen $info ablegen:
	$info = ldap_get_entries($connect, $search);

	// Nur die relevanten Teile des $info-Arrays in ein $ergebnis-Array übernehmen und Umlaute dekodieren:
	for ($i=0; $i		//$ergebnis[$i][&quot;displayname&quot;]    = utf8_decode($info[$i][&quot;displayname&quot;][0]);
		$ergebnis[$i][&quot;cn&quot;] = utf8_decode($info[$i][&quot;cn&quot;][0]);
		$ergebnis[$i][&quot;telephonenumber&quot;] = $info[$i][&quot;telephonenumber&quot;][0];
	}

	// Array alphabetisch sortieren anhand einer Vergleichsfunktion:
	usort($ergebnis, 'vergleich');

	// Datenbank leeren:
	$leeren = mysql_query(&quot;TRUNCATE TABLE users&quot;) or die(&quot;Datenbank konnte nicht geleert werden&quot;);

	// Array $ergebnis in einer Tabelle ausgeben:
	for ($i=0; $i
		//Leere Namen ausschliessen:
		if (!empty($ergebnis[$i][&quot;cn&quot;]))
		{
			//Variabeln aufbereiten:
			$name = $ergebnis[$i][&quot;cn&quot;];
			$phone = $ergebnis[$i][&quot;telephonenumber&quot;];

			// Daten in Datebank schreiben:
			$eintrag = &quot;INSERT INTO users (name, phone) VALUES ('$name', '$phone')&quot;;

			//Datensätze einfügen:
			$eintragen = mysql_query($eintrag) or die(&quot;Datensätze konnten nicht komplett eingefügt werden&quot;);
		}
	}

	//Abschliessende Meldung ausgeben:
	echo &quot;Synchronisation done!&quot;;

	function vergleich($wert_a, $wert_b)
	{
		// Sortierung nach dem surename
		$a = $wert_a[&quot;cn&quot;];
		$b = $wert_b[&quot;cn&quot;];
		if ($a == $b) {
			return 0;
		}
			return ($a &lt; $b) ? -1 : +1; 	}
?&gt;
</pre>
<p>Die Datenbank, in welche geschrieben wird, trägt den Namen &#8220;Users&#8221; und muss die beiden Spalten &#8220;name&#8221; und &#8220;phone&#8221; aufweisen.<br />
Ich hoffe, es hilft irgendwem!</p>
<br /><p>Das könnte dich auch interessieren:<ol>
<li><a href='http://blog.encodingit.ch/2012/01/apache-mit-ldap-durch-xampp/' rel='bookmark' title='Apache mit LDAP durch XAMPP'>Apache mit LDAP durch XAMPP</a> <small>XAMPP ist ja eine ganz einfache Variante, wenn man schnell...</small></li>
</ol></p><img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.encodingit.ch/2012/02/ldap-synchronisation-script/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Schlechter Code für Opensource</title>
		<link>http://blog.encodingit.ch/2010/12/schlechter-code-fur-opensource/</link>
		<comments>http://blog.encodingit.ch/2010/12/schlechter-code-fur-opensource/#comments</comments>
		<pubDate>Wed, 15 Dec 2010 18:03:30 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Coden]]></category>
		<category><![CDATA[FBI]]></category>
		<category><![CDATA[Hacker]]></category>
		<category><![CDATA[OpenBSD]]></category>

		<guid isPermaLink="false">http://blog.encodingit.ch/?p=1329</guid>
		<description><![CDATA[Das Prinzip von Opensource ist altbekannt. Der Code einer Software ist offen verfügbar, und jeder der will, kann Änderungen daran hinzufügen und wieder einchecken.

Und hier liegt das grösste Problem: Wenn nun jemand böse Absichten hat, so kann er seinen Schadcode gut getarnt dem Projektteam vorlegen und darauf hoffen, das dieser aufgenommen wird.
<img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></description>
			<content:encoded><![CDATA[<p>Das Prinzip von Opensource ist altbekannt. Der Code einer Software ist offen verfügbar, und jeder der will, kann Änderungen daran hinzufügen und wieder einchecken.</p>
<p>Und hier liegt das grösste Problem: Wenn nun jemand böse Absichten hat, so kann er seinen Schadcode gut getarnt dem Projektteam vorlegen und darauf hoffen, das dieser aufgenommen wird.<br />
Kommt der Schadcode durch, so hätte ein Angreifer jederzeit Zugriff auf Daten oder andere Informationen. In einem kleinen, unbekannten Projekt ist das zwar schrecklich, die Konsequenten sind aber nicht weiter verheerend.<br />
Doch was nun, wenn es anstelle von einer unbedeutenden Software ein verbreitetes Projekt wie WordPress, Ubuntu, Typo3 oder Nagios betroffen ist&#8230; Somit hätte ein Angreifer Zugriff zu tausenden und abertausenden Systeme, Server oder Webseiten und Webappliaktionen! Nicht auszumalen, wie verheerend die Konsequenten wären&#8230;</p>
<p>Und, man glaub es kaum, ganz so abwegig ist das ganze nicht! Heute wurde in der OpenBSD-Nachrichtenliste ein erschreckendes eMail veröffentlicht:</p>
<blockquote><p>Long time no talk.  If you will recall, a while back I was the CTO at<br />
NETSEC and arranged funding and donations for the OpenBSD Crypto<br />
Framework.  At that same time I also did some consulting for the FBI,<br />
for their GSA Technical Support Center, which was a cryptologic<br />
reverse engineering project aimed at backdooring and implementing key<br />
escrow mechanisms for smart card and other hardware-based computing<br />
technologies.</p>
<p>My NDA with the FBI has recently expired, and I wanted to make you<br />
aware of the fact that the FBI implemented a number of backdoors and<br />
side channel key leaking mechanisms into the OCF, for the express<br />
purpose of monitoring the site to site VPN encryption system<br />
implemented by EOUSA, the parent organization to the FBI.  Jason<br />
Wright and several other developers were responsible for those<br />
backdoors, and you would be well advised to review any and all code<br />
commits by Wright as well as the other developers he worked with<br />
originating from NETSEC.</p>
<p>This is also probably the reason why you lost your DARPA funding, they<br />
more than likely caught wind of the fact that those backdoors were<br />
present and didn&#8217;t want to create any derivative products based upon<br />
the same.</p>
<p>This is also why several inside FBI folks have been recently<br />
advocating the use of OpenBSD for VPN and firewalling implementations<br />
in virtualized environments, for example Scott Lowe is a well<br />
respected author in virtualization circles who also happens top be on<br />
the FBI payroll, and who has also recently published several tutorials<br />
for the use of OpenBSD VMs in enterprise VMware vSphere deployments.
</p></blockquote>
<p>Das eMail von Gregory Perry beschreibt sein Geständnis, wie er vor 10 Jahren Geld von der US-Regierung, genauer dem FBI angenommen hatte und dafür mehrere Backdoor in OpenBSD mit einprogrammiert hatte&#8230;</p>
<p>Glücklicherweise sind die Auswirkungen laut Gregory Perry nach 10 Jahren nicht mehr ganz so verheerend:</p>
<blockquote><p>Since we had the first IPSEC stack available for free, large parts of<br />
the code are now found in many other projects/products.  Over 10<br />
years, the IPSEC code has gone through many changes and fixes, so it<br />
is unclear what the true impact of these allegations are.</p></blockquote>
<p>Wenn die US-Regierung für OpenBSD Geld springen liess, in wie vielen anderen Opensource-Projekten haben die denn sonst noch mitgemischt?!</p>
<img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.encodingit.ch/2010/12/schlechter-code-fur-opensource/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>alea iacta est – Teil 3</title>
		<link>http://blog.encodingit.ch/2010/08/alea-iacta-est-%e2%80%93-teil-3/</link>
		<comments>http://blog.encodingit.ch/2010/08/alea-iacta-est-%e2%80%93-teil-3/#comments</comments>
		<pubDate>Thu, 19 Aug 2010 16:43:24 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Wettbewerb]]></category>
		<category><![CDATA[Linux Magazin]]></category>
		<category><![CDATA[Planet]]></category>

		<guid isPermaLink="false">http://blog.encodingit.ch/?p=999</guid>
		<description><![CDATA[Mein Bot ist fertig und hat bereits die ersten Testläufe absolviert. Begonnen habe ich auf dem offiziellen Server, doch dummerweise ist dieser mehr als nur langsam. So kann es da problemlos mal vorkommen, dass man 15 Minuten auf ein neues Spiel wartet.<img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></description>
			<content:encoded><![CDATA[<p>So nun geht es in die dritte Runde!<br />
Mein Bot ist fertig und hat bereits die ersten Testläufe absolviert. Begonnen habe ich auf dem offiziellen Server, doch dummerweise ist dieser mehr als nur langsam. So kann es da problemlos mal vorkommen, dass man 15 Minuten auf ein neues Spiel wartet.<br />
Doch glücklicherweise hat ein findiger Mitstreiter eine in Ruby implementierte Serverkopie geschrieben und veröffentlicht. Damit können problemlos 10 Spiele pro Minute gespielt werden und ist somit für Tests viel besser geeignet.<br />
Erreichbar ist dieser Server unter:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">telnet littleforumpeople.com <span style="color: #000000;">3333</span></pre></td></tr></table></div>

<p>Mein Bot selbst hat sich eine bereits eine nicht allzuschlechte Statistik erarbeitet:</p>
<blockquote><p>Gewonnen: 2258<br />
Verloren: 1542<br />
Spiele: 3800</p></blockquote>
<p>Daraus ergibt sich eine Erfolgsquote von ganzen 59.4%, wodurch er problemlos mit den Besten mithalten kann <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Der Bot selbst ist relativ einfach aufgebaut:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>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
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/bash</span>
<span style="color: #666666; font-style: italic;">#------------------------------------------------------------------------------</span>
<span style="color: #666666; font-style: italic;"># Author:	Patrick Schmid</span>
<span style="color: #666666; font-style: italic;"># Web:		http://blog.encodingit.ch</span>
<span style="color: #666666; font-style: italic;"># Version:	1.1</span>
<span style="color: #666666; font-style: italic;"># Changes:	- Grundversion (13.8.10)</span>
<span style="color: #666666; font-style: italic;">#		- Script umgestellt auf NC-Version (16.8.10)</span>
<span style="color: #666666; font-style: italic;">#------------------------------------------------------------------------------</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Umgebung festlegen</span>
<span style="color: #007800;">name</span>=<span style="color: #ff0000;">&quot;encodingit&quot;</span> <span style="color: #666666; font-style: italic;"># mein Name</span>
<span style="color: #007800;">active</span>=<span style="color: #000000;">0</span> <span style="color: #666666; font-style: italic;"># Nicht mein Zug</span>
<span style="color: #007800;">zaehler</span>=<span style="color: #000000;">0</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">function</span> play <span style="color: #7a0874; font-weight: bold;">&#123;</span> <span style="color: #666666; font-style: italic;"># Spielfunktion</span>
&nbsp;
	<span style="color: #666666; font-style: italic;"># Dies müsst ihr selbst machen ;)</span>
&nbsp;
<span style="color: #7a0874; font-weight: bold;">&#125;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">while</span> <span style="color: #c20cb9; font-weight: bold;">read</span> <span style="color: #7a0874; font-weight: bold;">command</span> a1 a2 a3
<span style="color: #000000; font-weight: bold;">do</span>
	<span style="color: #000000; font-weight: bold;">case</span> <span style="color: #007800;">$command</span> <span style="color: #000000; font-weight: bold;">in</span>
		HELO<span style="color: #7a0874; font-weight: bold;">&#41;</span>
			<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;AUTH <span style="color: #007800;">$name</span> Ich bin bereit!&quot;</span>
			<span style="color: #000000; font-weight: bold;">;;</span>
		TURN<span style="color: #7a0874; font-weight: bold;">&#41;</span>
			play <span style="color: #007800;">$a1</span> <span style="color: #007800;">$a2</span>
			<span style="color: #000000; font-weight: bold;">;;</span>
		THRW<span style="color: #7a0874; font-weight: bold;">&#41;</span>
			<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$active</span>&quot;</span> = <span style="color: #ff0000;">&quot;1&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span> 
			<span style="color: #000000; font-weight: bold;">then</span>
				<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$a1</span>&quot;</span> = <span style="color: #ff0000;">&quot;6&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>
				<span style="color: #000000; font-weight: bold;">then</span>
					<span style="color: #007800;">active</span>=<span style="color: #000000;">0</span>
				<span style="color: #000000; font-weight: bold;">fi</span>
			<span style="color: #000000; font-weight: bold;">else</span>
				<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$a1</span>&quot;</span> = <span style="color: #ff0000;">&quot;6&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>
				<span style="color: #000000; font-weight: bold;">then</span>
					<span style="color: #007800;">active</span>=<span style="color: #000000;">1</span>
				<span style="color: #000000; font-weight: bold;">fi</span>
			<span style="color: #000000; font-weight: bold;">fi</span>
			<span style="color: #000000; font-weight: bold;">;;</span>
		WIN<span style="color: #000000; font-weight: bold;">|</span>DEF<span style="color: #7a0874; font-weight: bold;">&#41;</span>
			<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$command</span>&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;&gt;</span> log
			<span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">0</span>
			<span style="color: #000000; font-weight: bold;">;;</span>
		<span style="color: #000000; font-weight: bold;">*</span><span style="color: #7a0874; font-weight: bold;">&#41;</span>
			<span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;AUTH <span style="color: #007800;">$name</span> Ich bin bereit!&quot;</span>
			<span style="color: #000000; font-weight: bold;">;;</span>
	<span style="color: #000000; font-weight: bold;">esac</span>
<span style="color: #000000; font-weight: bold;">done</span></pre></td></tr></table></div>

<p>Ich denke ihr werdet verstehen, dass ich die Play-Funktion erst nach dem Abgabetermin veröffentliche.<br />
Gestartet wird das Script via netcat oder ncat:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">sudo</span> ncat <span style="color: #660033;">-v</span> <span style="color: #660033;">-e</span> .<span style="color: #000000; font-weight: bold;">/</span>wettbewerb.sh littleforumpeople.com <span style="color: #000000;">3333</span></pre></td></tr></table></div>

<p>Ich wünsche euch viel Spass beim würfeln. <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.encodingit.ch/2010/08/alea-iacta-est-%e2%80%93-teil-3/feed/</wfw:commentRss>
		<slash:comments>30</slash:comments>
	
		<series:name><![CDATA[alea iacta est]]></series:name>
	</item>
		<item>
		<title>alea iacta est &#8211; Teil 2</title>
		<link>http://blog.encodingit.ch/2010/08/alea-iacta-est-teil-2/</link>
		<comments>http://blog.encodingit.ch/2010/08/alea-iacta-est-teil-2/#comments</comments>
		<pubDate>Tue, 17 Aug 2010 15:13:09 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Wettbewerb]]></category>
		<category><![CDATA[Linux Magazin]]></category>
		<category><![CDATA[Planet]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://blog.encodingit.ch/?p=987</guid>
		<description><![CDATA[Mein Bot ist nun soweit geschrieben und mit Intelligenz gefüllt. Was ihm nun noch fehlt, sind ein paar Tests, danach werde ich (zumindest Auszüge daraus) auch hier veröffentlichen.

Doch noch ein paar Worte zu meinem Vorgehen:
Eigentlich wollte ich die Kommunikation von Script zu Server via dem virtuellen Device /dev/tcp abwickeln. Schon relativ früh zeigte sicher aber; das ist so nicht lösbar!
Das Problem dabei ist, dass sobald irgendetwas auf den Device umgeleitet wird, wird die TCP-Verbindung neu aufgebaut und nach dem Senden auch gleich wieder getrennt. Geplant ist aber, dass die Verbindung nur einmal hergestellt und dann natürlich auch gehalten wird...<img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></description>
			<content:encoded><![CDATA[<p>Mein Bot ist nun soweit geschrieben und mit Intelligenz gefüllt. Was ihm nun noch fehlt, sind ein paar Tests, danach werde ich (zumindest Auszüge daraus) auch hier veröffentlichen.</p>
<p>Doch noch ein paar Worte zu meinem Vorgehen:<br />
Eigentlich wollte ich die Kommunikation von Script zu Server via dem virtuellen Device /dev/tcp abwickeln. Schon relativ früh zeigte sicher aber; das ist so nicht lösbar!<br />
Das Problem dabei ist, dass sobald irgendetwas auf den Device umgeleitet wird, wird die TCP-Verbindung neu aufgebaut und nach dem Senden auch gleich wieder getrennt. Geplant ist aber, dass die Verbindung nur einmal hergestellt und dann natürlich auch gehalten wird&#8230;</p>
<p>Somit musste ich kurzerhand umdisponieren und bin auf eine andere Möglichkeit mittels Netcat ausgewichen. Dabei wird, wie <a href="http://blog.encodingit.ch/2010/08/netcat-ist-nicht-gleich-netcat/" >hier</a> schon zu lesen war, mittels der Option -e nach dem Verbinden ein Script gestartet. Die Kommunikation verläuft dabei über die Standard-Ein- und -Ausgabe. Jegliche Teile der Verbindung werden von Netcat geregelt, wodurch ich mich voll und ganz auf die KI konzentrieren kann.</p>
<p>Doch nun zum Wichtigsten: <strong>Die Strategie!</strong><br />
Ich habe in ein paar kurzen, manuellen Spielen ein paar Taktiken ausprobiert. Zur Zeit umgesetzt sind:</p>
<blockquote>
<ol>
<li> Liege ich im Rückstand, muss ich risikofreudiger werden.</li>
<li> Liege ich weit vorne, kann ich sicherer spielen.</li>
<li> Speichert mein Gegner selten, kann ich sicherer spielen</li>
</ol>
</blockquote>
<p>Doch irgendwie reicht mir das noch nicht aus für meinen Bot.<br />
Wenn also jemand noch weitere Ideen hat, dann immer her damit <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Jeder Input ist willkommen!</p>
<img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.encodingit.ch/2010/08/alea-iacta-est-teil-2/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<series:name><![CDATA[alea iacta est]]></series:name>
	</item>
		<item>
		<title>alea iacta est</title>
		<link>http://blog.encodingit.ch/2010/08/alea-iacta-est/</link>
		<comments>http://blog.encodingit.ch/2010/08/alea-iacta-est/#comments</comments>
		<pubDate>Mon, 16 Aug 2010 06:36:09 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Wettbewerb]]></category>
		<category><![CDATA[Linux Magazin]]></category>
		<category><![CDATA[Planet]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://blog.encodingit.ch/?p=966</guid>
		<description><![CDATA[Auch dieses Jahr wieder macht das Linux-Magazin einen Programmierwettbewerb. Diesmal ist ein binärer Spieler gefordert, welcher sich in einem Würfelduell mit anderen Mitstreitern messen kann.<img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></description>
			<content:encoded><![CDATA[<p>Auch dieses Jahr wieder macht das <a target="_blank" href="http://www.linux-magazin.de/" >Linux-Magazin</a> einen <a target="_blank" href="http://www.linux-magazin.de/Heft-Abo/Ausgaben/2010/09/Reiz-des-Mitmachens" >Programmierwettbewerb</a>. Diesmal ist ein binärer Spieler gefordert, welcher sich in einem Würfelduell mit anderen Mitstreitern messen kann.</p>
<p>Die Vorgaben dabei sind ganz einfach; der Bot muss schlussendlich mit einem Make-File gestartet werden können und auf einem Ubuntu 10.04 Rechner laufen. Insofern kann die Programmiersprache also fast frei gewählt werden. Der Spielablauf wird dabei vom Server wettbewerb.linux-magazin.de über ein für menschen-lesbares TCP-Protokoll gesteuert.</p>
<p>Das ganze Spiel an sich ist relativ einfach gehalten. Ein Bot kann solange Würfeln, wie er keine 6 wirft oder das Spiel nicht speichert. Alle Punkte werden dabei immer zusammengezählt.<br />
Sobald jedoch eine 6 geworfen wird, so werden alle Punkte bis zum letzten Save wieder abgezogen, und der Spielzug ist beendet.<br />
Es gilt also, seinem Bot soviel Intelligenz einzuhauchen, damit dieser das optimale Mittelmass zwischen &#8220;Roll&#8221; (würfeln) und &#8220;Save&#8221; (speichern) findet.</p>
<p>Meinen Bot habe ich in Bash-Script begonnen und bin bislang damit ganz gut gefahren, da es sich über ein virtuelles Device ohne viel Programmieraufwand problemlos via TCP mit einem beliebigen Server kommunizieren lässt:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;alea iacta est&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;</span> <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>tcp<span style="color: #000000; font-weight: bold;">/</span><span style="color: #007800;">$server</span><span style="color: #000000; font-weight: bold;">/</span><span style="color: #007800;">$port</span></pre></td></tr></table></div>

<p>Wer es noch einfacher will, und sich überhaupt nicht um jegliche Kommunikation zwischen Server und Bot bemühen will, der kann sein Script via Netcat starten und alle Kommandos über die Standard-Ein- und Ausgabe verwalten:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="bash" style="font-family:monospace;">nc <span style="color: #660033;">-e</span> bot.sh wettbewerb.linux-magazin.de <span style="color: #000000;">3333</span></pre></td></tr></table></div>

<p>Auch wer auf etwas komplexeres Zurückgreifen will, der findet auf der <a target="_blank" href="http://wettbewerb.linux-magazin.de/index.php/Hauptseite" >offiziellen Webseite</a> bereits Beispiele in PHP und Ruby, welche man nur noch mit Intelligenz füllen muss.</p>
<p>Ein weiteres sehr gutes PHP-Beispiel gibt es auch auf <a target="_blank" href="http://blog.oncode.info/2010/08/10/ein-programmierwettbewerb-vom-linux-magazin/" >blog.oncode.info</a>, dank welcher Seite ich überhaupt auf den Wettbewerb aufmerksam geworden bin.</p>
<p>Noch bis zum 12. September ist das Spiel für jedermann und jedefrau geöffnet! Mögen die Würfel entscheiden <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.encodingit.ch/2010/08/alea-iacta-est/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
		<series:name><![CDATA[alea iacta est]]></series:name>
	</item>
		<item>
		<title>Google Code University&#8217;s Jarlsberg</title>
		<link>http://blog.encodingit.ch/2010/05/google-code-universitys-jarlsberg/</link>
		<comments>http://blog.encodingit.ch/2010/05/google-code-universitys-jarlsberg/#comments</comments>
		<pubDate>Fri, 07 May 2010 09:30:47 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Coding]]></category>
		<category><![CDATA[Hacker]]></category>
		<category><![CDATA[Planet]]></category>

		<guid isPermaLink="false">http://blog.encodingit.ch/?p=861</guid>
		<description><![CDATA[Jarlsberg ist eine Webapplikation von Google zum Thema Web Application Security. Basierend auf Python wird jedem Benutzer in einer eigenen Session eine Webseite präsentiert voll mit Sicherheitslücken von XSS über DOS bis hin zu XSRF und Path Traversal.<img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></description>
			<content:encoded><![CDATA[<p>Nein, Google versucht sich noch nicht als Käsehersteller! <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
Unter dem Codewort Jarlsberg führt die Google Code University ein Projekt zum Thema Schulung in Sicherheit für Webapplikationen.</p>
<blockquote><p>This codelab shows how web application vulnerabilities can be exploited and how to defend against these attacks. The best way to learn things is by doing, so you&#8217;ll get a chance to do some real penetration testing, actually exploiting a real application.</p></blockquote>
<p>Für alle die, welche dem Englisch nicht so mächtig sind: Jarlsberg ist eine Webapplikation von Google zum Thema Web Application Security. Basierend auf Python wird jedem Benutzer in einer eigenen Session eine Webseite präsentiert voll mit Sicherheitslücken von XSS über DOS bis hin zu XSRF und Path Traversal.</p>
<p>Neben dieser Webseite gibt es auch noch eine sehr ausführliche und gut erklärte Dokumentation zu jedem Exploit mit einer Erklärung wie man diesen auch beheben könnte (verfasst in Englisch).<br />
Nachdem ich die Dokumentation nun mal komplett durchgearbeitet habe, muss ich sagen, es lohnt sich wirklich die 5 Seiten komplett zu lesen!<br />
Jedoch muss ich auch sagen, in meinen Augen sind ein paar der vorgestellten Exploits ein wenig Realitätsfremd, da man z.B bei einem Pentest nur sehr wenig direkten Zugang zum Sourcecode hat.</p>
<p>Nichts desto trotz, wer es selbst mal ausprobieren will, und das kann ich wirklich jedem empfehlen, der klickt nun hier:</p>
<p><a target="_blank" href="http://jarlsberg.appspot.com/" ></a></p>
<img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.encodingit.ch/2010/05/google-code-universitys-jarlsberg/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Bundestrojaner goes GPL</title>
		<link>http://blog.encodingit.ch/2009/08/bundestrojaner-goes-gpl/</link>
		<comments>http://blog.encodingit.ch/2009/08/bundestrojaner-goes-gpl/#comments</comments>
		<pubDate>Mon, 31 Aug 2009 14:40:52 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Programmieren]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Big Brother]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Überwachung]]></category>

		<guid isPermaLink="false">http://compr00t.co.funpic.de/?p=446</guid>
		<description><![CDATA[Man hat ja schon lange mal darüber gehört, dass der Bundestrojaner für Deutschland in der Schweiz programmiert worden sei.

Doch nun gibt es handfeste Beweise! Der Programmierer Ruben Unteregger, ehemaliger Angestellter des Schweizer Unternehmen ERA IT Solutions, packt aus.<img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></description>
			<content:encoded><![CDATA[<p>Man hat ja schon lange mal darüber gesprochen, dass der Bundestrojaner für Deutschland in der Schweiz programmiert worden sei.</p>
<p>Doch nun gibt es handfeste Beweise! Der Programmierer Ruben Unteregger, ehemaliger Angestellter des Schweizer Unternehmen ERA IT Solutions, packt aus.</p>
<p>Für den Trojaner selbst und dessen Entwicklung gilt zwar Geheimhaltungspflicht, doch die Softwarerechte sind immer noch im Besitz von Ruben, weshalb er den Sourcecode auch teilweise unter der GPL veröffentlichen konnte.</p>
<p>Details zu Ruben und seiner Arbeit bei ERA IT Solutions findet man in einem <a href="http://www.megapanzer.com/2009/08/21/interview-on-gulli-com-about-the-skype-trojan-and-trojans-in-general/"  target="_blank">Interview</a> mit ihm, welches durch Gulli zustande kam.</p>
<p>Der Trojaner selbst gibt es in zwei Versionen: Mini- und Megapanzer.</p>
<p>Der <a href="http://www.megapanzer.com/source-code/"  target="_blank">Megapanzer </a>wurde nur Stückchenweise veröffentlicht, wogegen der <a href="http://www.megapanzer.com/source-code/"  target="_blank">Minipanzer</a>, die abgespeckte Version, voll und ganz verfügbar ist.</p>
<p>Da leider ein Geheimhaltungsvertrag zwischen Ruben und seinem Ex-Arbeitgeber besteht, gibt es nur Spekulationen über den Auftraggeber und leider keine eindeutigen Beweise, dass da wirklich die Regierung mit drinhängt!</p>
<p>Laut Ruben bietet der Trojaner noch keinen Support für Linux, erst für Windows XP. Doch wie lange das wohl noch so bleibt?</p>
<p>Ich finde das ganze sehr beunruhigend, sollte da tatsächlich die Regierung mitmischen! Gleichzeitig habe ich grossen Respekt vor Ruben und vor seiner Arbeit und dem Schritt, den Code öffentlich zu machen.</p>
<img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.encodingit.ch/2009/08/bundestrojaner-goes-gpl/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Schriften von überall</title>
		<link>http://blog.encodingit.ch/2009/04/schriften-von-uberall/</link>
		<comments>http://blog.encodingit.ch/2009/04/schriften-von-uberall/#comments</comments>
		<pubDate>Sun, 12 Apr 2009 23:07:10 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Internet]]></category>

		<guid isPermaLink="false">http://compr00t.co.funpic.de/?p=306</guid>
		<description><![CDATA[Dokumentation ist immer wichtig! Egal ob beim Programmieren, Security Audits, sonstigen Projekten oder was auch immer ist es wichtig, dass regelmässig und sauber Dokumentiert ist.

Da auch ich viel dokumentieren muss, war ich auf der Suche nach einem passenden Tool.<img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></description>
			<content:encoded><![CDATA[<p>Dokumentation ist immer wichtig! Egal ob beim Programmieren, Security Audits, sonstigen Projekten oder was auch immer ist es wichtig, dass regelmässig und sauber Dokumentiert ist.</p>
<p>Da auch ich viel dokumentieren muss, war ich auf der Suche nach einem passenden Tool.</p>
<ul>
<li>Da ich privat mit Linux und geschäftlich mit Windows arbeite, sollte das Tool auch platformübergreifend sein.</li>
<li>Weiter sollten die Dokumentationen leicht zugänglich von mehreren Computern sein.</li>
</ul>
<p>Die Suche nach einem Tool, welche meine Anforderungen erfüllt, war nicht schwierig. Schon nach kurzer Zeit bin ich auf <a href="http://dradisframework.org/"  target="_blank">Dradis</a> gestossen.</p>
<p>Dies ist nicht etwa das neuste Parfüm aus einem Frauenmagazin <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  sondern ein auf Ruby basierendes Webtool.</p>
<p>Es ist speziell auf Notizen und Dokumentationen ausgerichtet. Da es ein Webtool ist, können auch mehrere Personen mit mehreren Betriebssystemen auf einmal auf die Daten zugreifen.</p>
<p>Die Webapplikation an sich ist sehr simpel gehalten. Die Daten werden in einem Tree mit beliebig vielen Kategorien und Unterkategorien organisiert. Um Daten hinzuzufügen reicht ein simples Klicken, sowas wie Speichern gibt es nicht.</p>
<p><a href="http://blog.encodingit.ch/wp-content/uploads/2009/04/login1.png"  rel="lightbox[306]"></a> <a href="http://blog.encodingit.ch/wp-content/uploads/2009/04/categories1.png"  rel="lightbox[306]"></a> <a href="http://blog.encodingit.ch/wp-content/uploads/2009/04/notes1.png"  rel="lightbox[306]"></a> <a href="http://blog.encodingit.ch/wp-content/uploads/2009/04/dragndrop1.png"  rel="lightbox[306]"></a></p>
<p>Das ganze ist mehr oder weniger gut dokumentiert, ist aber auf jeden Fall einen <a href="http://dradisframework.org/videos/dradis2-01.html"  target="_blank">zweiten Blick</a> wert <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.encodingit.ch/2009/04/schriften-von-uberall/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Mobiles Büro: einfach und anspruchslos</title>
		<link>http://blog.encodingit.ch/2009/04/mobiles-buro-einfach-und-anspruchslos/</link>
		<comments>http://blog.encodingit.ch/2009/04/mobiles-buro-einfach-und-anspruchslos/#comments</comments>
		<pubDate>Tue, 07 Apr 2009 21:37:56 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Server]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[WWW]]></category>

		<guid isPermaLink="false">http://compr00t.co.funpic.de/?p=273</guid>
		<description><![CDATA[Seit längerem bin ich schon auf der Suche nach einem passenden Groupware-Tool. Diese sollte anspruchslos sein und auf einem simplen FTP-Server rennen!
Als Funktionen benötige ich die Möglichkeit Aufgaben zu planen, Notizen schreiben, gearbeitete Zeit aufzuzeichnen und in einer brauchbaren Form als Statistik auszugeben.<img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></description>
			<content:encoded><![CDATA[<p>Seit längerem bin ich schon auf der Suche nach einem passenden Groupware-Tool. Diese sollte anspruchslos sein und auf einem simplen FTP-Server rennen!<br />
Als Funktionen benötige ich die Möglichkeit Aufgaben zu planen, Notizen schreiben, gearbeitete Zeit aufzuzeichnen und in einer brauchbaren Form als Statistik auszugeben.</p>
<p>Als erstes bin ich auf <a href="http://www.phprojekt.com/"  target="_blank">PHProject</a> gestossen. Damit habe ich dann auch eine Zeit lang gearbeitet, doch leider haben mich kleine Fehler, das schlichte Design und die ein bisschen überfüllte und unübersichtliche Übersicht immer gestört.</p>
<p><a href="http://blog.encodingit.ch/wp-content/uploads/2009/04/php_login1.png"  rel="lightbox[273]"></a> <a href="http://blog.encodingit.ch/wp-content/uploads/2009/04/phproject1.png"  rel="lightbox[273]"></a></p>
<p>Mit der Zeit habe ich die Groupware immer weniger benutzt und das Projekt ist mehr oder weniger in Vergessenheit geraten.</p>
<p>Doch dann bin ich über ein <span class="removed_link" title="http://ubuntublog.ch/applikationen/phprojekt-und-opengoo-in-furtwangen">Artikel</span> im Planet gestolpert. Dabei wurden mehrere Groupwares angesprochen. Diese habe ich auch gleich ausprobiert.</p>
<p>Leider aber wollten die meisten der Groupwares nicht meinen ansprüchen genügen oder sich nicht mit PHP und MySQL begnügen. Bis auf eines: <a href="http://opengoo.org/"  target="_blank">OpenGoo</a>!</p>
<p>Obwohl es ein bisschen langsam ist und sehr sehr oft einen Error liefert (was aber auch am Server liegen kann) bin ich sehr zufrieden damit, da es sehr übersichtlich ist und meine geforderten Funktionen erfüllt.</p>
<p><a href="http://blog.encodingit.ch/wp-content/uploads/2009/04/login1.jpg"  rel="lightbox[273]"></a></p>
<p>Dadurch will ich es hier kurz vorstellen:</p>
<p>Die Anforderungen sind sehr simpel: PHP und MySQL.</p>
<p><a href="http://blog.encodingit.ch/wp-content/uploads/2009/04/overview1.jpg"  rel="lightbox[273]"></a></p>
<p>Die ganzen Aufgaben, Task, Notes etc sind in sogenannte Workspaces organisiert. So kann man z.B. eine Workspace für Privat und eine für die Arbeit erstellen. Wenn man eine Workspace anwählt, werden auch nur diese Aufgaben angezeigt. Weiter hat man auch die Möglichkeit einzelne User für Workspaces zu berechtigen.</p>
<p><a href="http://blog.encodingit.ch/wp-content/uploads/2009/04/kalender1.jpg"  rel="lightbox[273]"></a></p>
<p>Ein weiteres gutes Feature ist auch, dass man für Task einen Zeitbutton hat, welcher automatisch die gearbeitete Zeit misst.</p>
<p>Sehr nützlich ist auch die Versionskontrolle für hochgeladene Files. Man hat die Möglichkeit jedes Update eines Files mit einem Kommentar zu versehen, so dass man später genau nachvollziehen kann, wann was geändert wurde.</p>
<p>Alles in allem trifft es meine Vorstellungen sehr genau <img src='http://blog.encodingit.ch/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.encodingit.ch/2009/04/mobiles-buro-einfach-und-anspruchslos/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Pentest &#8211; Sicherheit im eigenen Netzwerk</title>
		<link>http://blog.encodingit.ch/2009/03/pentest-sicherheit-im-eigenen-netzwerk/</link>
		<comments>http://blog.encodingit.ch/2009/03/pentest-sicherheit-im-eigenen-netzwerk/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 10:45:53 +0000</pubDate>
		<dc:creator>Patrick</dc:creator>
				<category><![CDATA[8.10]]></category>
		<category><![CDATA[Netzwerk]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Pentest]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://compr00t.5x.to/?p=265</guid>
		<description><![CDATA[Pentest oder auch Penetration-Test sind Sicherheitstest, wo ein Hacker, mit dem Einverständnis des Opfers versucht in ein Firmennetzwerk einzudringen.

Einer Firma hilft ein solcher Test zum Bestätigen, dass das eigenen Netzwerk (fast) sicher ist oder um eben Sicherheitslücken aufzudecken.

Jedoch hat nicht jeder das Wissen oder das Geld um einen solchen Test durchzuführen, doch Sicherheit sollte jeder geniessen können. Um dieses Problem auszuhebeln gibt es fix fertige Scanner, welche ein komplettes Netzwerk auf die neusten Exploits prüfen.<img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></description>
			<content:encoded><![CDATA[<p>Pentest oder auch Penetration-Test sind Sicherheitstest, wo ein Hacker, mit dem Einverständnis des Opfers versucht in ein Firmennetzwerk einzudringen.</p>
<p>Einer Firma hilft ein solcher Test zum Bestätigen, dass das eigenen Netzwerk (fast) sicher ist oder um eben Sicherheitslücken aufzudecken.</p>
<p>Jedoch hat nicht jeder das Wissen oder das Geld um einen solchen Test durchzuführen, doch Sicherheit sollte jeder geniessen können. Um dieses Problem auszuhebeln gibt es fix fertige Scanner, welche ein komplettes Netzwerk auf die neusten Exploits prüfen.</p>
<h2>Welche Lücken gibt es?</h2>
<p>Einer der besten dieser Scanner ist Nessus. Dieser ist in einer gratis Version verfügbar. Der Scanner erhält nach einer Gratis-Registrierung alle 24 Stunden die neusten Exploits und Sicherheitslücken und kann diese bei einem neuen Scan auch gleich einsetzen.</p>
<p>Nessus gibt es als Server und als Client. Man hat somit auch die Möglichkeit Nessus auf einem Server zu installieren und sich dann mit dem Client darauf einzuloggen.</p>
<p>Für die Installation habe ich ein kleines Script erstellt, welches alle Vorgänge <span style="text-decoration: line-through;">beinahe</span> automatisch durchführt. Oder man führt die folgenden Schritte aus:</p>
<p>Zuerst müssen wir Nessus installieren:</p>
<pre><code>sudo apt-get install nessus nessusd</code></pre>
<p>Nun müssen wir einen User hinzufügen:</p>
<pre><code>sudo nessus-adduser</code></pre>
<p>Hier muss man einen Usernamen eingeben, mit welchem man sich auf dem Nessus-Server einloggt. Bei Authentication kann man einfach ENTER drücken. Nach der Eingabe des Passwortes werden die Regeln definiert. Hier kann man getrost die Standardeinstellungen stehen lassen und nach einer kurzen Wartezeit mit Strg + D die Konfiguration abschliessen.<br />
Damit man immer die aktuellen Exploits erhält, muss man sich gratis registrieren. Dies kann man hier machen: http://www.nessus.org/plugins/index.php?view=register</p>
<pre><code>nessus-fetch --register $code</code></pre>
<p>Nun kann man seine Plugins updaten:</p>
<pre><code>sudo nessus-update-plugins</code></pre>
<p>und schlussendlich den Server starten:</p>
<pre><code>sudo /etc/init.d/nessusd start</code></pre>
<p>Nun fügen wir noch einen Eintrag hinzu, damit der Server beim Starten des PC automatisch auch startet:</p>
<pre><code>sudo update-rc.d nessusd defaults</code></pre>
<p>Nun können wir Nessus starten. Das starten dauert ein bisschen, da neben dem laden aller Plugins auch noch die neusten runtergeladen werden:</p>
<pre><code>nessus</code></pre>
<p>Nun haben wir Nessus installiert. Doch nach einem Scan wissen wir erst, wo es eine Lücke gibt, nicht aber wie man sie ausnutzt.</p>
<p>Dazu haben wir das Metasploit Framework.</p>
<h2>Die Exploits</h2>
<p>Leider ist Metasploit nicht auf den Packetservern verfügbar. Deshalb muss man sich die Installation von <a href="http://www.metasploit.com/framework/download/"  target="_blank">hier</a> besorgen.</p>
<p>Zur Installation kann man wieder mein Script verwenden oder folgende Anleitung verwenden.</p>
<p>Zuerst brauchen wir das aktuelle Framework. Dieses ist gepackt in einem Archiv also müssen wir zuerst entpacken:</p>
<pre><code>tar -xzf framework-*</code></pre>
<p>Da Metasploit auf Ruby basiert, brauchen wir noch den passenden Ruby-Hintergrund:</p>
<pre><code>sudo apt-get install ruby libruby libgtk2-ruby libglade2-ruby libopenssl-ruby -y sqlite3*</code></pre>
<p>Nun erstellen wir einen Ordner:</p>
<pre><code>sudo mkdir /opt/metasploit</code></pre>
<p>Und verschieben unsere Daten in den Ordner:</p>
<pre><code>sudo mv framework-X.X/* /opt/metasploit/</code></pre>
<p>Das Framework selbst gibt es als GUI, Webservice oder Konsole. Aufgerufen werden diese mit folgenden Befehlen:</p>
<pre><code>/opt/metasploit/msfgui
/opt/metasploit/msfweb
sudo /opt/metasploit/msfconsole</code></pre>
<p>Der Server ist dann unter der URL http://localhost:55555 verfügbar. Es ist jedoch empfohlen, die Konsole zu verwenden, da nur da alle Funktionen verfügbar sind.</p>
<p>Wie es nun weiter geht, dass muss jeder selbst raus finden, da sogenannte &#8220;Hack-Anleitungen&#8221; (ob für gute oder schlechte Zwecke) illegal sind. Ich weiss nicht einmal, ob es erlaubt ist die folgenden zwei Links zu posten:</p>
<pre><code>Tutorial Part 1: <a href="http://www.ethicalhacker.net/content/view/227/24/"  target="_blank">http://www.ethicalhacker.net/content/view/227/24/</a>
Tutorial Part 2: <a href="http://www.ethicalhacker.net/content/view/238/24/"  target="_blank">http://www.ethicalhacker.net/content/view/238/24/</a></code></pre>
<img src="http://www.encodingit.ch/piwik/piwik.php?idsite=2&rec=1" style="border:0" alt="" />]]></content:encoded>
			<wfw:commentRss>http://blog.encodingit.ch/2009/03/pentest-sicherheit-im-eigenen-netzwerk/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

