Blog

!SpamAndHex at the 24th DEFCON CTF Finals!SpamAndHex at the 24th DEFCON CTF Finals

Yes, we did it again. We played against the best teams in the world at the 24th DEFCON CTF Finals in Las Vegas. However, it was not as easy as it seems to be.

This year was fairly different from any other years before. For the first time in human history, teams had to play against the DARPA Cyber Grand Challenge (CGC from now on) winner machine Mayhem from ForAllSecure. Before we go into the details of the DEFCON CTF, let’s check what happened in the finals of the CGC machines.

One day before the 24th DEFCON CTF Finals took place, 7 selected machines fought against each other to win the CGC and play with human teams. The competition was launched in the morning on August 4, but only the last couple of hours were open to the public. The very first thing that caught our eyes is the huge effort that DARPA invested into the event.

Competitor machines stood on a stage in an air-gapped setup. Their tasks were three-fold:

  1. find vulnerabilities in CGC binaries
  2. generate a Proof of Vulnerability (PoV a.k.a exploit)
  3. patch the vulnerability with a maximum of 5% performance lost. This was a strict and essential condition of the game.

The gaming hours were divided into 96 rounds under which 82 challenges were selected for the machines. Long story short, Mayhem turned to be the winner and ForAllSecure won 2 million USDs. Congratulations!


Next day, the DEFCON CTF finals started with a few hours of delay due to some initial issues that Legitimate Business Syndicate (the DEFCON CTF organizer team) had to solve. The game was designed to operate with 5-minute rounds so as to accumulate the points for each team after each round. So 14 human teams and a machine, Mayhem. Similarly to previous years, the challenges were released gradually, however, the teams could not attack each other directly. They created patches and PoVs for vulnerable CGC services, and submitted them on a central site. This year, the tooling and the strategy of a team played crucial roles in the competition. Simply, you could not do anything without understanding the CGC platform. The most important thing of all was, however, the patching strategy. After patching a service it was stopped for the next round, so it was not available. As I mentioned above, performance played a key role in the competition: the more vulnerabilities you patch at once the more points you will have. One more important thing: a PoV could only slow down other teams, but you did not get points for them directly. If a team did not play this strategy, he could not perform well. Unfortunately, we put much more emphasis on PoVs than on a good patching strategy. At the beginning of day 3, we were the 11th team out of 15, then the scoreboard was hidden away for the last 4 hours. For the final results we have to wait a couple of weeks.

On one hand, we see that a better strategy could have brought us better results. On the other hand, however, we are really happy to get into the Finals for the second time in a row. Similarly to last year, we could not have realized our goal of participating in the DEFCON CTF Finals without the generous support of our sponsors. Huge thanks to them once again! We hope that next year we can play once again with the best teams in the world.

Here are some photos about us:

!SpamAndHex at DEFCON24 T-shirt front:

!SpamAndHex at DEFCON24 T-shirt back:

And finally the team:

Without our sponsors, it would be impossible to participate, huge thanks to them:

DEFCON CTF 2015 - ÖsszefoglalóDEFCON CTF 2015 - Összefoglaló

Az idén huszonharmadjára megtartott DEFCON konferencia hacker-versenyén 11. helyezést ért el a BME CrySyS Lab csapata. A Las Vegasban megrendezett DEFCON, az egyik legrégebbi és legjelentősebb hacker konferencia, ahol minden évben több ezren gyűlnek össze, hogy megismerkedjenek az IT biztonság legfrissebb és legjelentősebb eredményeivel. A konferencia egyik fő látványossága a CTF verseny, ami a szakma egyik legrangosabb és legnehezebb megmérettetése.

Idén kb. 4000 csapat indult a selejtezőn, ahol a !SpamAndHex az előkelő 7. helyen végzett, így az első magyar csapat lett, ami bejutott a DEFCON CTF döntőjébe. A helyszínen a tizenöt legjobb csapat mérhette össze tudását, a világ különböző országaiból (USA, Oroszország, Taiwan, Ausztrália, Dél-Korea, Kína, Dánia, Lengyelorszás és egyéb nemzetközi csapatok).

A verseny során a csapatok egy-egy számítógéphez kaptak hozzáférést, amin különböző hibás szolgáltatások futottak. A versenyzők a sérülékenységek kijavításával, illetve azok kihasználásával és egymás támadásával tudtak pontot szerezni.
A CTF összesen három napig tartott, a csapatok napközben folyamatosan támadhatták egymást, míg éjszaka a feladatok megoldásán lehetett dolgozni, melyek változatosak voltak, különböző architektúrákra (x86, MIPS, ARM) és különböző operációs rendszerekre szóltak (Linux, Windows 10 IoT, Android).

A helyszínen a nézelődőket hangos zene és látványos vizualizációk sokasága fogadta, amik élőben mutatták, hogy a csapatok éppen hogyan támadják egymást. Emellett a játékosok asztalán elhelyezett ledsorok egy-egy támadás vagy védekezés sikerességének függvényében változtatták színüket. Ezalatt a versenyzők feszült figyelemmel dolgoztak a programok visszafejtésén, a hálózati forgalom figyelésén, a különböző törések írásán és a biztonsági rések befoltozásán. A versenyt végül egy dél-koreai csapat nyerte, a második helyezett amerikai csapat lett, míg a !SpamAndHex a 11. helyen végzett.

A !SpamAndHex tagjai, mind a selejtezőre, mind a döntőre hónapokig készültek, hetente egyszer találkozva és többször hétvégéket feláldozva. A készülés a BME CrySyS labja által létrehozott önképző kör, a CrySyS Student Core részeként történt.

A szponzoraink nélkül nem tudtunk volna részt venni a versenyen, ezért óriási köszönet illeti őket:

További közreműködő:

Íme a csapat!

Megérkezett a csapat póló a DEFCON-ra!

A csapat egy része itthoról segít majd (ez teljesen szabályos), közülük a legtöbben nincsenek rajta a képen.

A póló első felén csapatunk szponzorai láthatóak, míg a hátoldal mindenki számára egyénileg készült.

A hátoldal ehhez hasonlóan néz ki, mindenkinek a saját nickjével:

Póló hátoldal minta

A szponzoraink:

CrySyS - Ukatemi - Tresorit - Microsec - MRG Effitas - Balabit - EvoPro - ESET/Sicontact - Search-Lab - BME Faculty of Electrical Engineering and Informatics - Z - Carinex

Szabad az út Las Vegas-ba!

A defcon döntőbe jutott csapatunknak a szponzoraink segítségével sikerült megvásárolni a repülőjegyeket! A csapat augusztus 5-én indul az amerikai döntőbe.

A csapat szponzorai:

CrySyS - Ukatemi - Tresorit - Microsec - MRG Effitas - Balabit - EvoPro - ESET/Sicontact - Search-Lab - BME Faculty of Electrical Engineering and Informatics - Z - Carinex

Köszönjük a segítséget!

További részletek itt.

Hacker szótár

Sokszor, csalódottan látjuk, hogy egyesek a szakmánk szakszavait tévesen vagy rosszul használják, ezért is írtuk ezt a kis összefoglalót a mostanában hallható kifejezésekről.

Hacker határozó

Egy kis előszó ehhez a részleghez: A hack szó mai jelentése valószínűleg az amerikai MIT egyetemen elkövetett diákcsínyekből ered. Egy 'hacker' nem feltétlenül számítógépeket 'hack'-el - léteznek hardware hackerek, phone hackerek (phracker), illetve egyes programozók magukat is hackernek titulálják. A szóhoz sajnos elég negatív jelentéstartalom is hozzáragadt, ezt a stigmát a mai napig probálják lemosni.

Mi szerintünk a 'hack' szó találékony, nem feltétlen a célnak megfelelő felhasználást, a 'hacker' pedig találékony, kreatív, problémamegoldásban kíváló embert jelent. Az IT biztonsági szakmában pár kategóriát megkülönböztetünk:

  • White hat: A 'jófiúk', biztonsággal foglalkozó szakemberek és lelkes biztonsági kutatók (amatőr és egyetemi).
  • Black hat: A 'rosszfiúk', szintúgy biztonsággal foglalkozó emberek, akik nem feltétlenül jóra használják fel a 'kutatási eredményeiket' - vagy eladják a legtöbbet fizető ajánlattevőnek, vagy kihasználják a hibát a saját céljaikra.
  • Grey hat: A kettő keveréke, néha a 'jófiúk', néha a 'rosszfiúk' oldalán állnak. Az etikai álláspontjuk a szakmához valahol a jóindulat és a rosszindulat között van. Nem a károkozás a célja, de engedély nélkül betör rendszerekbe. Régebben, a bug bounty programok megjelenése előtt a hibákat 'megfelelő összegért' elárulta az érintetteknek, vagy éppenséggel ki is javította.
  • Script kiddie: Olyan illető, akinek szakmai tudása kifejezetten kicsi (vagy nincs), csak kész eszközökre, létező exploitokra támaszkodva felhasználva black hat tevékenységet folytat.

Általános kifejezések

  • asm, Assembly: Nagyon alacsony szintű programozási nyelv, utasításokat tartalmaz, melyet az assembler ír át gépi kódra. Az assembler nem rak be plusz utasításokat, 1:1 fordítás történik.
  • Bináris: Futtatható fájl
  • Cryptography: Titkosítás, rejtjelezés.
  • Decompiling: Assembly visszafejtése magasabb szintű programnyelvre (pl: C), vagy egyes nyelvek esetén (pl: Java, Python, C#) egyenesen a forráskódra való visszafejtés.
  • Dissassembly: Bináris visszafejtése assembly nyelvre.
  • Exploit: Sérülékenységet, vulnerability-t kihasználó program, programkód, általában a célja, hogy információt szivárogtasson, a payload-ot lefuttassa, vagy a célpontot megbénítsa.
  • Payload: Az exploit része, a hacker által futtatni kívánt programkódot tartalmazza.
  • Pwn: Ige, valaminek a megtörése, exploit sikeres futtatása egy célpont ellen.
  • Root: A rendszergazdai felhasználó *nix alapú operációs rendszereken.
  • Shell: Parancssor, konzol, mely hozzáférést ad az operációs rendszerhez egy szöveges kezelőfelületen keresztül.
  • Shellcode: Olyan payload, melynek a célja, hogy egy shell-t adjon a hackernek a célponton.
  • SQL injection: Saját SQL parancs/lekérés beillesztése, vagy létező ellenőrzések átlépése az SQL lekérdezésben.
  • Vulnerability: Sérülékenység, sebezhetőség programban, webes szolgáltatásban, operációs rendszerben
  • *nix: A Unix nevű operációs rendszerből leszármazó, a POSIX szabványnak megfelelő operációs rendszerek. Pl: GNU/Linux, Mac OS X, BSD alapú rendszerek.

CTF-ek nyelvezete

  • CTF: Capture the Flag verseny, a cél az, hogy különböző feladatok megoldásával, például reversing, forensics, stegano, crypto, web, pwn, hozzájussanak a feladat által 'védett' flag-hez.
  • crypto: Olyan feladatok, melyben vagy ismert kriptográfiai (titkosítás) módszerek hibás felhasználásából, vagy egyéni kriptográfia használatából fakadóan vissza lehet nyerni a kulcsot, vagy ki lehet titkosítani a titkosítani szöveget a kulcs nélkül.
  • Flag: Egy karaktersorozat, általában vagy véletlenszerű karakterekből áll, vagy egy humoros kijelentést tartalmaz. Gyakori a leetspeak használata.
  • Leetspeak: Leetspeak, vagy 1337speak, a neve a '1337' (leet - fonetikus kiejtés) számsorozatból jön. Hasonló rövidítéseket, karaktercseréket használ, mint az SMS illetve tweet-ek nyelvezete. Kizárólag ironikus módon használva.
  • pwn: Hálózaton keresztül elérhető szolgáltatások pwn-olása, a cél általában shell megszerzése vagy fájlból illetve memóriából való olvasás.
  • reversing: A kategória binárisok visszafejtésére van kiélezve.
  • stegano: A kulcsot elrejtik valamilyen szteganografikus módszerrel, és azt meg kell találni. Ez lehet ismert vagy ismeretlen módszer is.
  • web: Webes szolgáltatások (webappok, weboldalak) feltörésével lehet hozzájutni a flag-hez. Jellemzően vagy webes nyelvekben írt kód illetve keretrendszerekben rejlő hibák kihasználása, vagy SQL injection.

Biztonsági hibák kihasználása

  • Privilege escalation: A hacker extra jogosultságokhoz juthat. Általában GNU/Linux-ot futtató gépeken root, Windows-os gépeken pedig SYSTEM (tehát rendszer) jogosultság.
  • Remote code execution: A hiba kihasználásával a hacker tetszőleges kódot futtathat a célgépen.

Further posts:

További posztok:


Bejutottunk a DEFCON döntőjébe, irány Vegas!

A CrySyS Lab diákjai nyerték meg a világ leghíresebb egyetemi hackerversenyét

Az adatrejtés művészete

Mi (nem) véd meg ha sebezhető a programom? (Stack buffer- & Heap overflow)

A format string sérülékenység

Android alkalmazások visszafejtése

Egy halálos injekció, az SQL injection

Binárisok visszafejtése és elemzése

A hárombetűs webszörny - az XSS

Titkosítunk vagy mégsem? Az egyik legegyszerűbb titkosító - a XOR cipher

Ezoterikus programozási nyelvek

A megjósolható véletlenség