BotNetzProvider.de Ein Security Blog über Honig-Töpfe (honeypots) und Bots

25Feb/090

Fail2Ban ein sexy ssh blocker

.:: Einleitung ::.

Fail2Ban durchsucht Logdateien wie /var/log/pwdfail oder /var/log/apache/error_log und blockt IP-Adressen, die zu viele fehlgeschlagene Loginversuche haben. Es aktualisiert Firewallregeln, um diese IP-Adressen zu sperren. Fail2Ban kann mehrere Logfiles lesen - beispielsweise die von sshd oder apache. Die IP-Adressen werden nach einer vorher festgelegten Zeitspanne wieder aktiviert.

Benötigt wird:

IPTABLES

python >= 2..

Desweiteren sichert Fail2Ban nicht nur Port 22 (SSH) ab, sondern noch weit aus mehr. (sshd, apache, qmail, proftpd, sasl, etc)

.: Installation :.

Da ich ein Debian System benutze ist die Installation sehr einfach über den Paketmanager zu erledigen:

$ sudo apt-get install fail2ban

Damit ist es im wesentlichen schon getan. Nun läußt Fail2Ban auf dem System.
Wichtig ist nun noch die Feinjustierung am Fail2Ban.

Die Fail2Ban Konfiguration ist relativ einfach. Es gibt nur ein Konfigurationsfile in dem Fail2Ban insgesamt konfiguriert wird. Die Datei befindet sich unter /etc/fail2ban.conf

Sie können jeden beliebigen Texteditor verwenden um die Datei zu bearbeiten: vim, emacs, joe, ae...

Die Datei muss als root editiert werden.

.: URL Sammlung :.

http://www.fail2ban.org/wiki/index.php/FAQ_german

http://blog.256bit.org/archives/383-fail2ban-und-der-Kampf-gegen-Trackback-Spam.html


24Feb/090

Konsole = Irssi / GUI = Quassel | IRC Clients

Irssi ist ein freier IRC-Client auf Kommandozeilenbasis. Neben dem IRC-Protokoll wird mit Hilfe von Plugins auch SILC, ICB sowie ICQ und Jabber/XMPP unterstützt. Irssi ist unter der GPL lizenziert und läuft auf Unix und unixoiden Systemen, unter Microsoft Windows und auf Mac OS X.

So weit Wikipedia unter http://de.wikipedia.org/wiki/Irssi

Ich nutze es gerne als permanente IRC Verbindung, anstatt eines Bouncers. Da ich generess fast alles via Konsole mache bietet sich IRSSI förmlich an. Könnte ich diesen Blog via Konsole verwalten würde ich es warscheinlich machen.

Für alle die nicht so viel mit Konsolenbasierte IRC Clients am Hut haben, empfehle ich euch an anderes Tool.

Ein guter Freund von mir und seine Kollegen basteln gerade an einem Plattform unabhängigen IRC Client. (GUI :) )

Eine Installationsanleitung bekommt ihr später.

Mehr Infos dazu findet ihr unter: Quassel-IRC

Kurzinfo zu Quassel-IRC:

"Quassel IRC (kurz: Quassel) ist ein grafischer, verteilter IRC-Client. Er wird unter der GPL für Linux und andere Unix-Derivate, Microsoft Windows sowie Mac OS X veröffentlicht."

24Feb/090

vServer Mangel

Wenn man sich eingehender mit den Honeypots (Honig-Töpfen) beschäftigt, kommt man zwangsläufig zu dem Schluss ich brauche mehr Server bzw IPs.
Doch da dies auch weitere Kosten nach sich zieht sehe ich mich gezwungen, mit meinen begrenzten Ressourcen  sparsamer umzugehen. Ich habe zur Zeit 3 Honeypots Honig-Töpfe laufen, wobei einer davon noch nicht richtig konfiguriert ist. Es handelt sich dabei um einen "honeyd" Server.
Ich muss mal beobachten in wie weit dieser Blog überhaupt angenommen wird :) da ich es auch nicht wirklich schaffe jeden Tag etwas neues zu schreiben. Wenn ich sehe, dass der Blog angenommen wird, versuche ich mal ein wenig Werbung zu schalten. Dann dürft ihr alle kräftig auf die Links klicken, aber bitte ohne eure BOTS :) könnte ärger mit Google geben.
Anderweitig könnt ihr mich auch kontaktieren. wenn ihr auch eigene Honig-Töpfe habt via "info()botnetzprovider.de" () = @.
Für alle die keine Lust haben auf die Werbung zu klicken hier die einfache Variante via Paypal.

22Feb/091

IRC BOT geschrieben in Perl

#!/usr/local/bin/perl -w
# irc.pl
# A simple IRC robot.
# Usage: perl irc.pl

use strict;

# We will use a raw socket to connect to the IRC server.
use IO::Socket;

# The server to connect to and our details.
my $server = "irc.freenode.net";
my $nick = "simple_bot";
my $login = "simple_bot";

# The channel which the bot will join.
my $channel = "#irchacks";

# Connect to the IRC server.
my $sock = new IO::Socket::INET(PeerAddr => $server,
PeerPort => 6667,
Proto => 'tcp') or
die "Can't connect\n";

# Log on to the server.
print $sock "NICK $nick\r\n";
print $sock "USER $login 8 * :P erl IRC Hacks Robot\r\n";

# Read lines from the server until it tells us we have connected.
while (my $input = <$sock>) {
# Check the numerical responses from the server.
if ($input =~ /004/) {
# We are now logged in.
last;
}
elsif ($input =~ /433/) {
die "Nickname is already in use.";
}
}

# Join the channel.
print $sock "JOIN $channel\r\n";

# Keep reading lines from the server.
while (my $input = <$sock>) {
chop $input;
if ($input =~ /^PING(.*)$/i) {
# We must respond to PINGs to avoid being disconnected.
print $sock "PONG $1\r\n";
}
else {
# Print the raw line received by the bot.
print "$input\n";
}
}
(c) by http://oreilly.com/pub/h/1964

22Feb/090

DShield Web Honeypot Project

Honeypot der II.:

Ich habe einen neuen vServer bekommen und werde dort auch wieder einen neuen Honig-Topf
installieren. Hier werde ich euch kurz beschreiben wie ich das ganze gemacht habe.

Es handelt sich um ein neues Projekt mit dem Namen: DShield Web Honeypot Project

Ich selber habe noch keine Erfahrungen mit dem Honeypot gemacht.
Auf meinem vServer ist Debian 5.0 minimal installiert die 32bit Version.

.: Installation :.

Vor der Installation des Honig-Topfes

$ apt-get update && apt-get upgrade
$ apt-get install build-essential
$
apt-get install apache2 libapache2-mod-php5 php5-cli php5-common php5-cgi php5-curl
$ a2dismod php5

Für den eigentlichen Honeypot gibt es ein vorgefertigtes .deb Paket. Welches man hier downloaden kann.
Habe vorher noch "lynx" installiert, da ich probleme mit dem "wget" hatte, dasss Packet zu ziehen. Wir installieren das Paket nun wie folgt:

$ dpkg -i whp-0.0.20090219-r81.deb

Nun installiert er sich hierher  /opt/webhoneypot:

Wie wir es vom Apache2 gewohnt sind, legt er die virtuellen Hosteinstellungen wie folgt ab:


/etc/apache2/sites-available/whp
mit automatischem Symlink auf /etc/apache2/sites-enabled/001-whp.

Der automatische Updater liegt unter  /etc/cron.daily. Ein kleines Script mit dem

update-whp.sh

Nun sollte man sich ein Account bei https://secure.dshield.org zulegen. Wenn man das gemacht hat muss man nur noch die Accountdaten in der /etc/webhoneypot/config.local eintragen.
Hier ein Beispiel dafür:


config.local example
[config]
userid=IHR-Benutzer_ID
password=IHR-PASSWORT

Als letztes starten man den Honig-Topf mit folgendem Befehl:


$ cd /opt/webhoneypot/lib
$ php5 config.php

Man beantwortet die Fragen und schon läuft der Honig-Topf an :)

Übersicht der Ordnerstrukturen:

Ordner Inhalt Beschreibung
html index.php This directory is the DOCUMENT_ROOT
logs logfiles This Directory may be linked e.g. to /var/log/webhoneypot
etc config.local This Directory may be linked to /etc/webhoneypot
templates template files and directories
lib install.php
common_functions.php
updates update files

Rechtevergabe:


Besitzer:Gruppe
Rechte
all directories
all files
Exceptions:
logs/*
html/*
root:root
root:root

www:www
www:www

755
644

640
440

22Feb/090

Warum das Ganze?

Ich will hier kurz erklären, warum ich das Ganze hier mache.
Zunächst einmal mein Name ist Mike, ich arbeite für einen großen ISP.
Wir haben täglich mit Hackern, Spammern und Botnetzen zu tun, daher habe ich mich auch in meiner
Freizeit diesem Thema gewidmet.
Hier werdet ihr einiges über aktuelle

Honeypots (Honig-Topf)
Botnetze
Aufbau von Bots und Botnetzen
Echte Beispielbots

finden.

Durch die Verwendung von Honig-Töpfen ist man in der Lage, neue Attacken und deren Muster frühzeitig
zu erkennen und Maßnahmen dagegen einzuleiten.

Ich möchte mich schon mal vorab bei allen Lesern entschuldigen, ich habe, glaube ich, den grafisch "hässlichsten" Blog von allen. Leider kann ich in das Design nicht wirklich viel Zeit investieren. Vielleicht hat ja jemand einen Tipp, was ich für ein Template nehmen soll. :)

Viel Spass

.: M!ke :.

22Feb/090

Dshield.org – Web Application Honeypot

Wie mir in einem Newsletter mitgeteilt wurde,
entwickelt dshield.org einen php-basierten "Web Application Honeypot".
Ihr könnt Euch auf Google-Code ein Bild vom Fortschritt der Entwicklung machen.
Ihr solltet Euch, wenn Ihr helfen möchtet, zunächst auf secure.dshield.org registrieren.
Dort könnt Ihr dann das tarball herunterladen.
Im Grunde besteht es nur aus einer index.php und templates,
die unterhalb des www-Pfades liegen.
Es lassen sich einfach neue templates hinzufügen,
deren Aufruf man in einer Konfigurationsdatei per RegEx steuern kann.

Mehr dazu später, ich werde euch noch beschreiben wie man so einen Honeypot (honig-Topf) aufsetzt.

21Feb/091

Botnetz-Aufbau

Allgemeiner Aufbau:

Ein Bot (meist ein IRC-Bot) hat die Fähigkeit mit seinem Benutzer zu kommunizieren. Dieser sollte, in der Regel, einen Channel im IRC verwalten. Doch wenn man nun einen Bot mit einem anderen verbindet erhält man ein kleines Botnetz.
Der Besitzer kann nun mit beiden Bots kommunizieren und Befehle schicken. Heutige Bots können sich auch untereinander verständigen, so dass der Besitzer nur noch einen Bot ansprechen muss, welcher dann die Informationen, an die übrigen Bots weiter gibt.

Hier eine kleine Skizze des Kommunikationsweges:

Besitzer ! <-------"Befehl"--------> Bot 1

Besitzer ! < ------"Antwort"------< Bot 1

Wie oben beschrieben, gibt es auch Bots die mit Ihresgleichen auch Kommunizieren können und die Befehle weiterleiten können.

Besitzer ! >---------"Befehl"--------> Bot1 >--------"Befehl" ------> Bot 2

Dieser Vorteil liegt auf der Hand, man muss nicht mehr alle Bots nacheinander ansprechen, sondern ein Bot übernimmt die Aufgabe und meldet dann das Resultat.
Je nach Befehl, kann es auch sein, dass alle Bots an den Besitzer eine Antwort liefern müssen.
Dieses System wird bei den heutigen Botnetzen am meisten verwendet.

---to be continued ---
ich mache an dieser Stelle später weiter

Ein Beispiel für ein Botnet

Ein Beispiel für ein Botnet

Ein Beispiel für ein Botnet


/* google like button API */