Zum Inhalt springen →

Kategorie: Allgemein

PicoCTF 2022 – Abschluß

Manchmal spielt das Leben ein anders Spiel als man es sich vorgenommen hat. Und so bin ich leider nicht mehr dazugekommen für jede Kategorie einen Blog Post zu schreiben. Gestern war der letzte Tag der Challenge, deswegen werde ich hier mal einen zusammenfassenden Post schreiben.
Ich habe 39 Flags gefunden, 5300 Punkte erzielt und damit Platz 1687 erreicht. Für meine erste CTF recht zufriedenstellend, auch wenn ich in jeder Kategorie nur die Aufgaben mit den niedrigen Punkten habe lösen können. Aber was wäre das für eine Herausforderung, wenn man als Anfänger sofort durchmarschieren würde.

Cryptography
10 gelöst
Mit dieser Kategorie habe ich, wie hier schon erwähnt, angefangen. Das lag mir, als kleiner Rätselfan, am besten. In Erinnerung ist mir das Rätsel mit dem Rail Fence Cypher geblieben. Auch weil ich das mehrfach manuell und auch mit einem Python Skript zu lösen versucht habe. Alles ohne Erfolg. Erst gestern habe ich dann ein Online Tool verwendet um alle Techniken darauf anzusetzen. Und dann mit dem Wissen, dass es ein Leetspeach Flag sein wird, die Lösung gefunden.

Forensics
10 gelöst
Vor Jahren ging es durch die Presse, dass in Esslingen a. N. der Studiengang IT Forensik aufgesetzt wird. Ich habe damals wirklich nachgedacht den Weg einzuschlagen. Verbrecherjagd mit IT Hilfsmittel. Und so war ich von dieser Kategorie auch sehr angetan. Ich habe viel gelernt. Tool wie StegSolve, ZSteg und Sleuthkit sind ab jetzt in meinem Toolset. Und Letzteres wird mir sicherlich auch in meinem Job irgendwann behilflich sein.

Reverse Engineering
9 gelöst
Da diese Kategorie am nähsten zur Programmierung steht, bin ich diese danach angegangen. Hier habe ich nur 9 gelöst, aber es war eine 300 Punkte Aufgabe dabei. Bei der nächsten 300 Punkte Aufgabe hätte ich sehr viel Zeit investieren müssen. Denn die Funktionsweisen der benötigten Tools GDB und Radare2 sind mir noch unbekannt. Ich denke bei der nächsten CTF bin ich sattelfester,

Binary Exploitation
4 gelöst
Diese Kategorie hat mich zum Wahnsinn gebracht. Alle Videos zu CTFs, die ich angeschaut habe, haben sich hauptsächlich um diese Kategorie und z.B. Buffer Overflows gedreht. Aber zu sehen wie es gemacht wird und dann mal selber machen sind echt Welten. Auch hier waren mein GDB Kenntnisse nicht ausreichend. Tja, da muss ich wohl noch ein paar Kohlen nachlegen.

Web Exploitation
5 gelöst
Diese Kategorie habe ich als letztes bearbeitet. Im Nachhinein war es nicht so klug, denn das ist die Kategorie, die meinem Job am nächsten kommt. OK OK. Ich bin DevOpsler, aber meine Abteilung entwickelt eine Web-basierte Anwendung. Und bei dieser Schwachstellen finden zu können, um sie besser zu machen, ist nicht ganz unwichtig. Doch auch hier bin ich nicht weitergekommen. Zum Einen, weil ich echt nicht viel Zeit für das Alles hatte. Und zum Anderen, weil ich an dieser komischen Cookie Challenge gescheitert bin. Ich bin echt gepannt, auf die Write-Ups die in den nächsten Tagen überall erscheinen werden. Denn eine Lösung habe ich nicht finden können. Auch nicht mit Hilfe von älteren Write-ups ähnlicher Challenges. Wobei eine 200 Punkte Challenge eigentlich nicht so schwer sein sollte.

Fazit
Wer genau aufgepasst hat und alle Lösungen zusammen gezählt hat, dem fällt auf, dass Eine fehlt. Ich finde das auch sehr merkwürdig. Aber die Summe wird von der Webseite angezeigt und ich habe die Kategorien mehrfach durchgezählt ohne einen Fehler zu finden.
Wie dem auch sei. Es hat viel Spaß gemacht und eine komplett neue Welt für mich geöffnet. Ich werde sicherlich bei weiteren CTFs mitmachen. Ich lerne viel und für meinen Job ist auch ein Benefit drin.

Schreibe einen Kommentar

PicoCTF 2022 – erste Schritte

Gestern und heute habe ich mich weiter mit den Kryptographie Challenges auseinander gesetzt. Manche konnte ich gut lösen, andere nerven. Bei einer Challenge bin ich nicht auf die Lösung gekommen, also habe ich sie einfach per Brute Force geknackt. Zum Glück sind die Lösungen oft in Leetspeech, dadurch leicht zu erkennen in einer Liste. Was aber natürlich nervig ist, denn ich hätte es gerne „richtig“ gemacht. Auf der anderen Seite, was ist schon „richtig“. Finde das Flag ist Aufgabe und das wurde erreicht.

Demnächst werde ich mal die nächste Kategorie angehen. Mal sehen wie ich mich dort schlage.

Schreibe einen Kommentar

PicoCTF 2022 – Start

Es ist gerade ruhig hier, da ich gerade echt eingespannt bin. Ich schaffe es auch nicht ins Training. Und weil das nicht gut ist, muss ich mich ein wenig fordern. Da kommt es gerade recht, dass heute die PicoCTF 2022 Competition gestartet. Schön viele Rätsel rund um IT Security. Also hinsetzen und los geht’s.
IT Security und alles Drumherum ist ja nicht ganz mein Metier, aber durch meinen DevOps Job und die Erlebnisse rund um Log4J während des Jahreswechsel wurde mir bewusst, dass ich das stärken sollte. Und ich als Praktiker bin für so eine Herausforderung gepaart mit Gamification voll zu haben.
Wobei das mit dem Hinsetzen und los, war nicht ganz der Fall. Die Rätsel wurden um 17 Uhr freigeschaltet und die Server waren überlastet. Aber da ich eh Anfänger bin und es, wie beim Advent of Code, unmöglich ist in den oberen Rängen mitzuspielen, habe ich etwas gewartet. Und als es dann ging, habe ich mich um warm zu werden auf die Kryptographie Rätsel gestürzt. Und so konnte ich 3 Rätsel lösen bevor das Abendessen rief.
Morgen geht es dann weiter. Die Competition läuft bis zum 29.03. Also ihr könnt noch mitmachen.

Ein Kommentar

Frohe Weihnachten!

Jeden Tag einen Post und dann war es plötzlich still hier. Was soll ich sagen, es ist log4shell / log4j passiert. Das war/ist ja in aller Munde, deswegen werde ich auch hier nicht weiter technisch eingehen. Ich zitiere jedoch mal eine Schlagzeile: „Das Internet brennt„. Und nicht nur das Internet, auch bei mir im Job ging es deswegen heiß her. Und so wurden die Tage vor meinem Urlaub echt stressig, die anderen Aufgaben haben ja auch nicht pausiert. Dafür habe ich eine Menge gelernt, kann jetzt auch den Angriff nachstellen und werde wohl mal mehr meine Fühler Richtung DevSecOps ausstrecken.
Meine Advent of Code Teilnahme hat auch darunter gelitten. Auch weil an ein paar Tagen Pathfinding, Recursion und 3D Vektor / Cubicles Berechnungen erforderlich waren. Dieses Wissen mir anzueignen konnte ich jedoch nicht, denn mein Kopf war mit dem oben genannten Thema ausgelastet. Und so habe ich an ein paar Tagen keine oder nur silberne Sterne. Heute zum Beispiel habe ich Teil 1 sogar nur „auf Papier“ gelöst, aber dazu mehr im dazugehörigen Post. Diese werde ich vermutlich jetzt nicht mehr in der „richtigen“ Reihenfolge veröffentlichen.
Und #Projekt55? Das ist komplett unter die Räder gekommen. Ich habe nach dem letzten Training weder die Zeit noch die Lust gehabt in den Kimono zu steigen. Und so hatte ich beschlossen, als das oben genannte Thema aufgetaucht ist, bis Januar zu pausieren um mir auch mental Freiraum zu schaffen und nicht immer ein schlechtes Gewissen zu haben.

Auch wenn ich gerade nicht so in Stimmung für Weihnachten bin, ich freue mich auf diese kommenden ruhigen Tage.

Euch wünsche ich ein frohes Fest und geniest die Ruhe in den kommenden Tagen.

Schreibe einen Kommentar

Advent of Code 2021 – Tag 8

„Wie Tag 8?“ werdet ihr euch fragen. Wir haben doch heute den 10. Dezember. Ja ich hänge mit den Blogposts hinterher. Die Woche hat es dann doch geschafft mich zeittechnisch in die Knie zu zwingen. Dazu kamen noch die Rätsel von Tag 8 und 9 die mich gefordert haben so dass ich keine Zeit mehr für die Posts hatte. Heute (Tag 10) war das Rätsel nicht allzu schwer. Während die Pasta auf dem Herd kocht, konnte ich das Rätsel lösen und jetzt noch zusätzlich den Post.

Tag 8 ging es um 7 Segment Anzeigen, die Geisel meiner Elektroniker Ausbildung. Sowohl als Schaltkreis wie auch als Ausgabe für unsere Z80 Programme. Man waren das Zeiten.
Teil 1 ging. Da ging es nur aus den Daten die Zahlen 1, 4, 7 und 8 herauszufinden. Das ist einfach, denn diese Zahlen haben eine eindeutige Anzahl angeschalteter Segmente.
Teil 2 war dann doch ein wenig anspruchsvoller. Da ist echt Zeit draufgegangen. Die Lösung kam mir dann erst als ich auf Papier rumgespielt habe.

Jetzt folgt ein Spoiler für die Lösung. Wer es selbst lösen will, der sollte jetzt aufhören zu lesen, alle Anderen einfach weiterscrollen.


























Und so sehen meine Gedanken aus. Nachdem ich so vieles versucht habe, bin ich auf die Idee gekommen einfach festgelegte Zahlen wegzulöschen und damit immer wieder Segmente zu finden die im „Rest“ einen einmalige Anzahl haben.

Und das immer wieder (also nur zwei Mal) bis die Decodier-Tabelle fertig war. Das war fordernd und hat echt Spaß gemacht.

Link zum Tagesrätsel
Mein Leaderboard ist hier Join-Code: 1204843-3e53d471
Meine Lösungen auf Github

Schreibe einen Kommentar

Advent of Code 2021 – Tag 7

Heute bin ich spät dran mit dem Bloggen. Das Rätsel habe ich wie gestern am Morgen erledigt. Ich bin selbst erstaunt wie es diese Jahr läuft und das ich die kurze Zeit morgens finde mich diesem Spaß zu widmen. Auch wenn ich am Anfang geschrieben habe, dass ich nicht regelmäßig teilnehmen kann. So ergeht es ja vielen. Wenn man die Statistiken anschaut, dann sind Goldstern Teilnehmer von 156.597 an Tag 1 auf 51.525 gefallen.
Das heutige Rätsel war einfacher, auch das kann man gut sehen. Ich habe meine erste Lösung nach 1:52 Stunden eingereicht und bin auf Platz 16539 gelandet. An Tag 5 war ich mit 3:12 Stunden auf Platz 13696. Und auch bei Teil 2. Heute 2:39 für Platz 18317 am Tag 5 4:18 für Platz 14409.
Trotzdem hat das Rätsel viel Spaß gemacht. Und auch wenn es eine echte Mathematische Funktion zur Lösung gibt (Weiszfeld Algorithmus), ich habe mal wieder in Python meine Listen prozessiert. Deswegen hat Teil 2 auch ein wenig gedauert, aber nicht ewig. Ich finde das Bild hier echt passend.

Link zum Tagesrätsel
Mein Leaderboard ist hier Join-Code: 1204843-3e53d471
Meine Lösungen auf Github

Schreibe einen Kommentar

Advent of Code 2021 – Tag 6

Nikolausi! Nein Osterhasi! Ok, der alte Gerhard Polt Sketch (wie es damals noch hieß) passt eher zu dem anderen Fest, aber man kann eh nicht davon genug bekommen. Ich schweife ab, also nochmal.

Zum Nikolausi bekommt man ja eigentlich etwas. Bei mir war es Ärger und Stress und ich hatte es eigentlich schon abgeschrieben einen Post zu schreiben. Das Rätsel hatte ich schon vor der Morgengassirunde gelöst und hatte eigentlich einen super Start in den Tag.
Und während meine Frau gerade bei „Wer wird Millionär“ mit rätselt, nutze ich die Zeit und schreiben doch diesen Post.

Das heutige AoC Rätsel ist wieder ein Memoryfresser. Ein typisches Rätsel, dass im Teil 1 einfach zu lösen ist, meistens durch eine Schleife und anwachsende Liste. Aber in Teil 2 werden die Parameter so erhöht, dass jeder normale PC die Flügel von sich streckt. Und ja, beim Hinweis „maybe exponentially quickly?“ hätten die Alarmglöcken läuten müssen. Und so ist meine Aussage von gerade das ich das Rätsel „vor“ der Morgengassirunde gelöst habe, nicht ganz richtig. Denn Teil 1 schon, und in der halben Stunde, in der ich unterwegs war, hat mein Laptop alles gegeben auch Teil 2 zu lösen, jedoch ohne Erfolg. Aber so eine Gassirunde ist das Beste um neue Gedanken zu fassen. Und so war es schnell umgeschrieben um zur Lösung zu kommen. Das habe ich auch dem AoC Training vom letzten Jahr zu verdanken.

Und warum erinnert mich dieses Laternenfische Wachstum nur an die Corona Situation aktuell? Und warum fallen wir immer auf exponentielle Funktionen rein?

Link zum Tagesrätsel
Mein Leaderboard ist hier Join-Code: 1204843-3e53d471
Meine Lösungen auf Github

Schreibe einen Kommentar

Advent of Code 2021 – Tag 5

Sonntag. Da hat man in der Regel ein wenig mehr Zeit und mich hat es früh aus dem Bett geholt. Also konnte ich, solange noch alle schlafen, schön mit dem Tagesrätsel anfangen. Koordinatensystem und Lienen auf diesem. Eine sehr nette Aufgabe. Die Lösung ist mir auch nicht allzu schwer gefallen. Tricky dabei war, dass Anfang und Ende der Linien in alle Richtungen möglich war. Interessant auch zu sehen wir ein Competitive Programmer auf den gleichen Fehler reingefallen ist und für die Lösungsfindung ähnlich lange gebraucht hat. Wobei das wohl das Einzige ist, bei dem wir die gleiche Geschwindigkeit haben. Interessant ist auch seine kleine Batchdatei mit der er das Inputfile automatisch downloaded.
Teil 2 mit Diagonalen Linien war ne Idee kniffliger. Wobei es viel hilft, dass es nur 45° Diagonalen sind. Ich habe jedoch in der Schnelligkeit den Code dupliziert anstatt mit einem Schalten zu arbeiten. Vielleicht mache ich es die Tage noch sauber.

Eine Sache wollte ich euch noch zeigen. Während ich die Rätsel nur löse, gibt es viele, die sich noch den Spaß machen diese zu visualisieren. Der Subreddit zum Advent of Code ist immer einen Besuch wert. Ich hänge mal ans Ende ein paar davon an.

Link zum Tagesrätsel
Mein Leaderboard ist hier Join-Code: 1204843-3e53d471
Meine Lösungen auf Github

Tag 3

Tag 4

Tag 5

Schreibe einen Kommentar

Advent of Code 2021 – Tag 4

Was für ein Rätsel. Es geht um Bingo. Teil 1 hat mich gefordert, jedoch habe ich eine Lösung gefunden. Aber Teil 2 hat mich zur Verzweiflung gebracht. Sogar bei meiner Mittags- und Abendgassirunde habe ich kein Podcast gehört weil sich meine Gedanken nur um das Rätsel gedreht haben. Ich habe den Code mehrfach umstrukturiert und Zwischenlisten erstellt. Ich habe mit Markern gearbeitet und auch knallhart Listen (eine Liste entspricht einer Bingokarte) gelöscht. Alles hat nicht funktioniert. Ein Problem ist, dass das Rätsel manuell zu checken schlichtweg nicht möglich ist. Oder besser gesagt, ich wollte mir die Arbeit nicht machen.

Und dann ist es mir aufgefallen. Nach zig Print Befehlen zum debuggen habe ich gesehen, dass ich nur 4 Spalten der Bingokarten checke. Das hatte in Teil 1 keine Relevanz, denn da ist eine Reihe auf der Gewinnerkarte auch mit nur 4 Zahlen für die Lösung verantwortlich. Und im Testdatensatz ist es die 3. Spalte, also auch irrelevant. Da muss ich immer daran denken wie Developer sich über Tester amüsieren weil sie „unrealistische“ Situationen testen.

Über meine Lösung bin ich mal wieder zufrieden. Ich habe einen netten Kniff gefunden anstatt die Listen ständig miteinander zu vergleichen. Keine Spoiler hier im Beitrag.

Und die Statistik? Na wie es aussieht habe nicht nur ich Schwierigkeiten.
Gestern haben 76.712 beide Rätsel gelöst, heute „nur“ 38.389. Und auch diejenigen die nur Teil 1 gemacht haben sind von 23.652 auf 3.857 gefallen.
Und ich? Tja, Teil 1 habe ich nach knapp über 6 Stunden eingereicht. Lösung für Teil zwei erst nach fast 14 Stunden. Und nein, dazwischen habe ich auch andere Dinge gemacht. Wie z.B. Boostern.

Part 1 Part 2
Day Time Rank Score Day Time Rank Score
4 06:19:55 22101 0 2 13:44:44 36289 0

Link zum Tagesrätsel
Mein Leaderboard ist hier Join-Code: 1204843-3e53d471
Meine Lösungen auf Github

Schreibe einen Kommentar

Advent of Code 2021 – Tag 3

Heute wurde das Rätsel angezogen. Mal wieder ging es in die Welt der Binären Zahlen. Ich kann mich noch gut an letztes Jahr erinnern. Als ich Monate später ein Video mit der Kotlin Lösung angeschaut habe, wurde mir gezeigt, wie man mit den Binärwerten einfach rechnen kann. Und ich habe heute das Gefühl, dass es auch der Fall ist und ich sehe es nicht. Deswegen ist meine Lösung wieder mit Schleifen und IF Abfragen und einer der Stärken von Python List Comprehension. Ich bin trotzdem ganz glücklich mit der Lösung.

Es gibt auch einen Seite die es sich zu besuchen lohnt. Ich habe gestern erwähnt, dass die Beteiligung nachlässt. Hier kann man schön sehen wie der aktuelle Stand ist.

https://adventofcode.com/2021/stats

Bei mir sieht es auch besser aus. Bin wieder um die 12 Stunden zu spät trotzdem bei Teil 2 schon unter 50.000 Teilnehmer. Kann aber auch daran liegen, dass es Teil 2 auch inne hat.

Part 1 Part 2
Day Time Rank Score Day Time Rank Score
3 11:21:19 67434 0 2 12:07:23 47017 0

Link zum Tagesrätsel
Mein Leaderboard ist hier Join-Code: 1204843-3e53d471
Meine Lösungen auf Github

Schreibe einen Kommentar