CIPHER3/Tipps fürs nächste Mal...

Aus Labor für Echtzeitsysteme

(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
Version vom 10:26, 24. Jul. 2007 (bearbeiten)
Notdefine (Diskussion | Beiträge)
K
← Zum vorherigen Versionsunterschied
Version vom 10:43, 24. Jul. 2007 (bearbeiten) (rückgängig)
Notdefine (Diskussion | Beiträge)
K (revenge)
Zum nächsten Versionsunterschied →
Zeile 57: Zeile 57:
==== revenge ==== ==== revenge ====
 +
 +Reveng war ein dienst der mittels eines Startscriptes in /etc/init.d/ gestartet wurde.
 +Zu diesem gab es kein Quellcode so das man Ihn debuggen musste. Leider blieb dafür aber zu wenig Zeit, ich habe nur einen in den Security Anouncements veröffentlichten patch auf das Executable angewandt.
 +
 +[[Media:Reveng_patch1.bz2‎| Binarie des Dienstes Reveng]]

Version vom 10:43, 24. Jul. 2007

Inhaltsverzeichnis

Anmerkungen

  • Datenbank-Tabellen regelmässig backupen (leider sind beim CIPHER3 die Tabellen von einem Eindringling gelöscht/modifiziert worden; ohne Tabelle kein Dienst...)
  • Zugriff auf den SQL-Server nur für localhost

Anmerkungen von L. Weiler

  • Der eigene Rechner sollte beherrscht werden. Insbesondere Grundlagen wie „Wie stelle ich eine IP-Adresse ein?“ und „Wie arbeite ich mit dem Network-Daemon?“ (wenn einer installiert ist) sollten nicht noch während des Contests gefixt werden.
  • ssh und ssh-keys sollten beherrscht werden können.
  • Backups des /home-Verzeichnisses und der installierten Dienste anlegen, um später, bei einem Überschreiben von einer gegnerischen Gruppe, wieder zurückspielen zu können.
  • Regelmäßige Backups der Dienste nach wichtigen Änderungen, z.B. Fixes für Sicherheitslücken. Evtl. ein Version Control System aufsetzen (CVS, SVN, Git).
  • Den schwierigen Spagat zwischen Fixen des eigenen Dienstes und fetchen von gegnerischen Flags meistern. Wobei in Cipher3 nur ein Flag submittet werden konnte, wenn der eigene Dienst lief.
  • Statische Binaries von wichtigen Applikationen vorbereiten, wie beispielsweise vim (mit Syntax-Highlightning), mc, svn, etc. und auf der Box einspielen.

Anmerkungen von C. Kaczynski

  • Es sollte auf jeden Fall ein "Testlauf" stattfinden. Ein solcher ist z.B. mit den Images von Cipher 2,3 oder Op3nbox möglich. Somit können sich alle Teilnehmer, ein ungefähres Bild von dem machen, was am Contest-Tag zu tun ist.
  • Anhand solcher Testläufe ist evtl. eine Strategie zu entwickeln, die dann am beim tatsächlichen Contest Anwendung findet.
  • sowie die bereits oben genannten Tipps ;-)

Anmerkungen von T. Eimers

Ich persönlich hätte mir viel Zeit sparen können, wenn einige Sachen vorher bekannt gewesen wären, oder man sich diese mal wirklich klar gemacht hätte:

Grundlegenden Aufbau des VM-Servers

  • Es kann keine Software eingespielt werden, wenigstens nicht mit Bord mitteln (Bspl. aptitude).
  • Daraus folgt, wie Lars schon schrieb, das benötigte Software als Statisches Binaries vorliegen muss.
  • Außer den Diensten die zu fixen sind laufen eventuell noch weitere Dienste. Wie in diesem Fall ein Apache Server der schlecht Konfiguriert war, und z.B. Passwortdateien von Services auslieferte!
  • Es gab mittels dieses Apache eine Hauptseite, die auf die anderen Dienste/Ports verlinkte.

Grundlegender Aufbau der Services

  • Jeder Dienst/Service läuft als einzelner Benutzer.
  • Jeder Dienst/Service läuft auf einem anderen Port.
  • Man darf sich von den Sachen die die Dienste nebensächlich anbieten nicht irritieren lassen, es geht nur um Flags!
  • Jeder Service ist in einer eigenen/anderen Programmiersprache geschrieben, daher ist Aufgabenzuordnung wichtig.

Gemachte Fehler während des Ciphers

  • Das Passwort zum entschlüsseln des VM-Ware Images wird per eMail zugesandt. Dazu sollte eine eigene eMailadresse ohne Spamfilter eingerichtet werden! Das hat uns fast 15 Minuten in der Vorbereitungsstunde gekostet.
  • Der Public Key Login sollte vorher verteilt und getestet werden, im Cipher hat man keine Zeit sich darum zu kümmern.
  • Datenbank Backup und Dienst Backup. Da jeder dienst in einem anderen home Verzeichnis liegt ist das recht einfach.
  • Genaue Überprüfung der routing Einträge vor dem Cipher.
  • Fehler in der Verkabelung, leider habe ich am Switch bei der Trennung der VM vom VPN in der Vorbereitungsstunde eine Schleife gesteckt, und damit die angeschlossenen PC blockiert, und einem zum Reboot gezwungen.

Vorbereitungen / Verbesserungen

Hardware

Vorschlag für Netzstruktur
Vorschlag für Netzstruktur
  • Linksys Router als VPN hat sich als perfekte Lösung gezeigt.
  • Die Verkabelung war schlecht gewählt, es muss möglich sein die VM vom VPN zu trennen, ohne das die 5 Benutzer PC's von der VM getrennt werden. (Wichtig in der ersten Stunde)
  • Idealerweise ist derjenige der den Router eingerichtet hat auch vor Ort, da er fast der wichtigste Rechner ist.

Software

  • Auf dem VM Server sind nur standard Linux tools verfügbar, wie vim, cp, tar usw.
  • Da, wie schon erwähnt, keine Software nachinstalliert werden kann, kann man nicht mit eigenen Tools arbeiten. Für mich bedeutete dieses Speziell das ich nicht den MidnightCommander, und meinen vertrauten Editor verwenden konnte.
    • Entweder man übt sich in den vi ein, oder
    • man mounted die VM Server Verzeichnisstruktur in seinen Rechner, um mit den bekannten Werkzeugen zu arbeiten. (meine Empfehlung)

Dienste von Cipher 3

Abashe

revenge

Reveng war ein dienst der mittels eines Startscriptes in /etc/init.d/ gestartet wurde. Zu diesem gab es kein Quellcode so das man Ihn debuggen musste. Leider blieb dafür aber zu wenig Zeit, ich habe nur einen in den Security Anouncements veröffentlichten patch auf das Executable angewandt.

Binarie des Dienstes Reveng

Persönliche Werkzeuge