Live-CD mit unglaublichen Mengen an Tools
Laut Wikipedia ist scheinbar einer der Autoren Teilhaber der „Finfisher“-Firma (wäre stimmig mit der Aussage von Heise, FinFisher würde auf Backtrack beruhen)... you have been warned ;-)
Metasploit - das „Schweizer Taschenmesser“ des Pentestings
BeEF - warum XSS-Lücken immer schlimm sind
subterfuge - Man-in-the-Middle Point-and-Click
...
Spätestens hier: Vorsicht, nicht direkt ans Netz hängen :-)
Klassiker: Metasploitable
Vorteil: Hierfür gibt es reichlich Dokumentation und Tutorials
...oder eine alte Windows-CD
(ok, das ist dann wie kleine Kinder schlagen)
(ist aber trotzdem lustig)
Kaum jemand hat drei Rechner „übrig“: Virtuelle Maschinen
VMs sollen sich gegenseitig sehen, aber nicht das Internet erreichen
Umfassendes Pentesting und Exploit Tool
Ursprungsidee: Exploits werden aus Komponenten kombiniert:
...das ganze modular und einfach erweiterbar.
Gewachsen zu einem umfassenden Pentesting-Tool:
Webanwendung: Liefert „Hook“ und Management-Konsole aus
Hook auf fremde Seite „einbauen“ (XSS, modifizierte Webseite, etc.)
Modular aufgebaut, einfach erweiterbar
Skriptbar über REST-API
Weboberfläche für diverse SSL-MitM-Tools
Unter der Haube: „Alte Bekannte“ wie SSLStrip, etc.
Wieder Metasploit-Integrationsmöglichkeit ;-)
Spielend lernen durch Programmierspiele :-)
Idee: Motivation durch konkretes Projekt, Wettstreit mit anderen
Klassiker: Core Wars (beschrieben im Scientific American 1984), eigener Assembler-Dialekt
Heute: In verschiedenen Hoch- und Skriptsprachen
Plattformen: JVM, .net
Ziel: Gegnerische Roboter ausschalten
Modi: 1:1, Gruppenkampf, etc. - es gibt laufende Ligen
Roboter = Radar + Fahrwerk + Kanone
Aktionen:
Spielfeld nicht diskret, Limitierungen durch Spielphysik
Viel Doku im Robo-Wiki
Für nicht-Java-Sprachen: Entsprechende Libraries zum Classpath von Robowars hinzufügen
Compile-Ergebnis: Directory unter Options/Preferences/Development Options aufnehmen
public class MyFirstRobot extends Robot {
@Override
public void run() {
setAdjustRadarForGunTurn(false);
while (true) {
turnGunLeft(10.0);
}
}
@Override
public void onScannedRobot(ScannedRobotEvent event) {
fire(1.0);
}
}
Speziell zum Erlernen von Scala
Vorteil: „All in one“, keine separate IDE nötig
Ziel: Möglichst viel Energie sammeln
Bots und Mini-Bots: Steuerbare Entitäten
Fluppets und Snorgs: Gute und böse Tiere (bewegen sich, erhöhen/reduzieren Energie)
Zugars und Toxifera: Gute und böse Pflanzen
Spielfeld diskret, begrenzte Sichtweite der Bots/Minibots
Kommunikation mit Textprotokoll:
Command(key=value,...)|Command(...)|...
Kommandos:
Infos:
Wieviele Programmierer braucht man, um eine Glühbirne zu wechseln?
Ein Programmierer würde nie etwas anfassen, das mit Hardware zu tun hat.
Open-Source-Hardware- und Software-Plattform für Physical Computing
ATmega-CPU, typisch 32 kB Flash, 2 kb RAM
Verschiedenste Versionen und Nachbauten
Boot Loader zum Flashen von Software via USB
„Robuste“ Bauteile verzeihen Fehler und Ungenauigkeiten
Rapid Prototyping für alle möglichen Ideen in Hardware
Arduino-Variationen und ähnliche Plattformen:
Stecken von Kabeln und Bauteilen
Breadboard erzeugt Kontakte
Ermöglicht schnelles und einfaches Ausprobieren
Aufstecken auf Arduino-Board
Für Software: Meist zugehörige Library
Großes Ökosystem an Anbietern
Noch weniger Hardwarekontakt!
Meldet sich als USB-Tastatur.
Arduino-basiert, kann programmiert werden.
Arduino-IDE vereinfacht Cross-Kompilierung und Upload
Alternative Eclipse-IDE
...oder auf die Kommandozeilen-Tools zugreifen (gcc)
Statt main(int,char**)
: setup()
und loop()
int ledPin1 = 13;
void setup() {
// Initialisierung
pinMode(ledPin1, OUTPUT);
}
void loop() {
// Ausführung in Endlosschleife
digitalWrite(ledPin1, HIGH);
delay(500);
digitalWrite(ledPin1, LOW);
delay(500);
}