Ruby

Schriften von überall

Posted in Linux, Ruby, Software, Windows on April 13th, 2009 by Patrick – 4 Comments

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.

  • Da ich privat mit Linux und geschäftlich mit Windows arbeite, sollte das Tool auch platformübergreifend sein.
  • Weiter sollten die Dokumentationen leicht zugänglich von mehreren Computern sein.

Die Suche nach einem Tool, welche meine Anforderungen erfüllt, war nicht schwierig. Schon nach kurzer Zeit bin ich auf Dradis gestossen.

Dies ist nicht etwa das neuste Parfüm aus einem Frauenmagazin :) sondern ein auf Ruby basierendes Webtool.

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.

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.

login categories notes dragndrop

Das ganze ist mehr oder weniger gut dokumentiert, ist aber auf jeden Fall einen zweiten Blick wert :)

Pentest – Sicherheit im eigenen Netzwerk

Posted in 8.10, Netzwerk, Ruby on März 25th, 2009 by Patrick – Kommentare deaktiviert

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.

Welche Lücken gibt es?

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.

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.

Für die Installation habe ich ein kleines Script erstellt, welches alle Vorgänge beinahe automatisch durchführt. Oder man führt die folgenden Schritte aus:

Zuerst müssen wir Nessus installieren:

sudo apt-get install nessus nessusd

Nun müssen wir einen User hinzufügen:

sudo nessus-adduser

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.
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

nessus-fetch --register $code

Nun kann man seine Plugins updaten:

sudo nessus-update-plugins

und schlussendlich den Server starten:

sudo /etc/init.d/nessusd start

Nun fügen wir noch einen Eintrag hinzu, damit der Server beim Starten des PC automatisch auch startet:

sudo update-rc.d nessusd defaults

Nun können wir Nessus starten. Das starten dauert ein bisschen, da neben dem laden aller Plugins auch noch die neusten runtergeladen werden:

nessus

Nun haben wir Nessus installiert. Doch nach einem Scan wissen wir erst, wo es eine Lücke gibt, nicht aber wie man sie ausnutzt.

Dazu haben wir das Metasploit Framework.

Die Exploits

Leider ist Metasploit nicht auf den Packetservern verfügbar. Deshalb muss man sich die Installation von hier besorgen.

Zur Installation kann man wieder mein Script verwenden oder folgende Anleitung verwenden.

Zuerst brauchen wir das aktuelle Framework. Dieses ist gepackt in einem Archiv also müssen wir zuerst entpacken:

tar -xzf framework-*

Da Metasploit auf Ruby basiert, brauchen wir noch den passenden Ruby-Hintergrund:

sudo apt-get install ruby libruby libgtk2-ruby libglade2-ruby libopenssl-ruby -y sqlite3*

Nun erstellen wir einen Ordner:

sudo mkdir /opt/metasploit

Und verschieben unsere Daten in den Ordner:

sudo mv framework-X.X/* /opt/metasploit/

Das Framework selbst gibt es als GUI, Webservice oder Konsole. Aufgerufen werden diese mit folgenden Befehlen:

/opt/metasploit/msfgui
/opt/metasploit/msfweb
sudo /opt/metasploit/msfconsole

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.

Wie es nun weiter geht, dass muss jeder selbst raus finden, da sogenannte “Hack-Anleitungen” (ob für gute oder schlechte Zwecke) illegal sind. Ich weiss nicht einmal, ob es erlaubt ist die folgenden zwei Links zu posten:

Tutorial Part 1: http://www.ethicalhacker.net/content/view/227/24/
Tutorial Part 2: http://www.ethicalhacker.net/content/view/238/24/

Sicheres Ruby-on-Rails coden unter Ubuntu

Posted in Ruby, Ubuntu on November 6th, 2008 by Patrick – 4 Comments

Seit neustem gibt es ein neues eBook zum Thema Sicherheit in Ruby-on-Rails von der Security-Consultant Heiko Webers.

Für alle die nicht wissen, was Ruby-on-Rails ist, kann ich nur sagen: Unbedingt mal anschauen! Ist eine, entschuldigt die Ausdrucksweise. arschgeile Sprache:

Ruby on Rails, kurz Rails oder RoR, ist ein von David Heinemeier Hansson in der Programmiersprache Ruby geschriebenes und quelloffenes Web Application Framework. Es wurde im Juli 2004 zum ersten Mal der Öffentlichkeit vorgestellt.

Es basiert auf den Prinzipien „Don’t Repeat Yourself“ (DRY) und „Convention over Configuration“, d.h. statt einer variablen Konfiguration sind Konventionen für die Namensgebung von Objekten einzuhalten, woraus deren Zusammenspiel sich automatisch ergibt. Diese Funktionen ermöglichen eine rasche Umsetzung von Anforderungen und damit agile Softwareentwicklung.

powered by wikipedia

Dieses englischsprachige, 48 seitige Handbuch behandelt wichtige Themen, wie Injenctions auf SQL, HTTP-Headers und Cross-Site-Scripting. Alles Themen, die einem (Web-)Programmierer geläufige Begriffe sein sollten. Es werden aber auch rubyspezifische Themen wie Mass-Assignment angesprochen, welche immer wieder ein grosses Sicherheitsrisiko in Ruby-on-Rails darstellen.Die Themen sind dabei gespickt mit Auszügen von Ruby-Code.

Das Werk ist im PDF-Format direkt von der Website downloadbar und nur zu empfehlen. Veröffentlicht wurde es unter der Attribution-Noncommercial-ShareAlike-Lizenz.

Und das beste: Ruby-on-Rails gibt es auch für Ubuntu. Hier findet man eine gute Anleitung, wie man dies zum laufen bringt.

Über den Vater von Ruby-on-Rails, einfach Ruby genannt, tauchten auch im uu.de-Forum und im Wiki schon diverse Beträge und Anleitungen auf.

Ruby ist in 8.10 schon in der Grundinstallation enthalten. Was aber noch installiert werden muss ist die interaktive Ruby-Konsole IRB:

sudo apt-get install irb

Nun kann man mit einem beliebigen Editor eine Datei hallowelt.rb erstellen. Zum Hello World ausgeben schreiben wir folgende Zeile rein:

puts ‘Hallo Welt’

Zum ausführen benutzt man folgenden Befehl:

ruby hallowelt.rb

Über die interaktive Konsole, welche es für Windows mit GUI und für Linux auf der Konsole gibt, kann man direkt interaktiv seine Ruby-Befehle ausführen.

Ich kann jedem nur empfehlen, diese Sprache mal anzuschauen. Ich selbst programmiere Ruby schon seit über einem Jahr. Mit Ruby-on-Rails habe ich erst vor kurzem angefagen.