![](https://hackernoon.com/emojis/heart.png)
![](https://hackernoon.com/emojis/heart.png)
![](https://hackernoon.com/emojis/heart.png)
![](https://hackernoon.com/emojis/heart.png)
![](https://hackernoon.com/emojis/heart.png)
![](https://hackernoon.com/emojis/light.png)
![](https://hackernoon.com/emojis/light.png)
![](https://hackernoon.com/emojis/light.png)
![](https://hackernoon.com/emojis/light.png)
![](https://hackernoon.com/emojis/light.png)
![](https://hackernoon.com/emojis/boat.png)
![](https://hackernoon.com/emojis/boat.png)
![](https://hackernoon.com/emojis/boat.png)
![](https://hackernoon.com/emojis/boat.png)
![](https://hackernoon.com/emojis/boat.png)
![](https://hackernoon.com/emojis/money.png)
![](https://hackernoon.com/emojis/money.png)
![](https://hackernoon.com/emojis/money.png)
![](https://hackernoon.com/emojis/money.png)
![](https://hackernoon.com/emojis/money.png)
![](https://hackernoon.com/hn-images/1*SvJB9BAf5EPiCTkVWWC73A.jpeg)
![](https://hackernoon.com/images/avatars/vSoRcyvb6dP2JiCy2a0lFEycpoa2.jpg)
@matteo.pisani.91Matteo Pisani
A játékokat ’91 óta szétszedő
![](https://hackernoon.com/social-icons/linkedin-new.png)
![](https://hackernoon.com/social-icons/twitter-new.png)
“Üt és rúg” a legszélesebb európai forgalmazó cég kötegelt applikációja.
PREFACE
Vitathatatlan, hogy az automaták kultikus tárgyak. A hackerek finom falatkái, mindig. Kezdetben csak érmékkel működtek offline, majd az NFC- kulcsos/kártyás modellek kezdtek elterjedni. Ha azt mondom “COGES” biztos vagyok benne, hogy valakinek jobb idők jutnak eszébe. De… Néhány év alatt a dolgok gyökeresen megváltoztak. Az ember elvonja a figyelmét, és egy pillanattal később azt látja, hogy a világot felváltják az internethez kapcsolódó dolgok…
TÖRTÉNET
Egy nap úgy döntöttem, hogy megszakítom a denevérbarlangban való fűszerezést, és egyenesen a szülővárosomba megyek napozni, így elmentem az egyetemre, hogy köszöntsek egy öreg professzort.
“Menj, igyál egy kávét!” – mondta- és elkezdtünk csevegni, miközben végigsétáltunk a főfolyosón.
Amikor megérkeztünk…
Én: “Hadd fizessek, van érmém!”.
Ő: “
![](https://hackernoon.com/hn-images/1*0IhRq3VZ_y6UEdXGsFTpWQ.jpeg)
BLE + NFC
Agy:
![](https://hackernoon.com/hn-images/1*QJ1uHDRH5vpAFUPGNZbslw.gif)
HOT-POT
Lélek: “Mmm… A virtuális pénztárcák király dolgok…”
Kiváló.
![](https://hackernoon.com/hn-images/1*QJ1uHDRH5vpAFUPGNZbslw.gif)
HOT-POT
Lélek: “Mersz belehackelni!”
![](https://hackernoon.com/hn-images/1*586-M4hn8bEBfjvuFKgNUg.png)
~$ Fehér kalapos belső hang: “csak vállveregetés, ha nincs bug bounty jutalom”.
~$ Szürke kalapos belső hang: “ok, ezt csak oktatási céllal csinálom”.
~$ Fekete kalapos belső hang: “gyerünk ember, csesszük meg azt a HEAP-ot, nagyszerű Jupiter!”.
Később aznap…
![](https://hackernoon.com/hn-images/1*Be-aPV23MfQLWmGE7AhryA.gif)
Pwnie expressz.
![](https://hackernoon.com/hn-images/1*wfvoRWP0NKRTZKy4UOIqow.jpeg)
ANALIZIS
Nem kell mondanom, hogy felkaptam a piszkos rootolt Android okostelefonomat (USB Debugging Enabled), telepítettem a célzott alkalmazást a Play Store-ból és kidobtam az eredeti *.apk-t a laptopomra az adb segítségével.
# adb pull /data/app/com.sitael.vending-1/base.apk ./Argenta.apk
A *.apk-t dekompiláltam az apktool
# apktool d ./Argenta.apk -o ./Argenta
és kinyertem a Java forrásokat a jadx
# jadx ./Argenta.apk
Először a *.apk hibakereshetővé az AndroidManifest.xml fájl szerkesztésével, a application <tag>
![](https://hackernoon.com/hn-images/1*JJUYIStIk9rVRHK8yPSbiw.png)
tulajdonság android:debuggable="true"
hozzáadásával a application <tag>
![](https://hackernoon.com/hn-images/1*JJUYIStIk9rVRHK8yPSbiw.png)
Ezután újraépítettem a *.apk
# apktool b ./Argenta
a keytool
# keytool -genkey -v -keystore Argenta.keystore -alias Argenta -keyalg RSA -keysize 2048 -validity 10000
val új kulcsot készítettem a *.apk-t a jarsignerrel a generált kulcs segítségével
# jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore Argenta.keystore Argenta.apk Argenta
végezetül zip-eltem, hogy futtatható legyen
# zipalign -v 4 Argenta.apk Argenta-signed.apk
és telepítettem a végleges *.apk
Futtattam az alkalmazást az okostelefonon, és a logcat segítségével elkezdtem megnézni a logokat a csomag neve alapján szűrve
# adb logcat --pid=`adb shell pidof -s com.sitael.vending`
![](https://hackernoon.com/hn-images/1*UzzfYiAahYkHd3OdQOxoJw.png)
Nem találtam semmi különöset, így elkezdtem átfésülni a forráskódokat szaftos információkat keresve.
A AndroidManifest.xml
fájlt jobban átnézve, találtam utalásokat a RushOrm-ra
![](https://hackernoon.com/hn-images/1*IGvWHhpKc45MTuNp2q_bhg.png)
Az első kulcsszavas keresés tehát db_name
![](https://hackernoon.com/hn-images/1*Y5SA6QJZyVVm4s5zn5TdgA.png)
Cool. Elindítottam a Root Explorert a telefonon keresve a argenta.db
![](https://hackernoon.com/hn-images/1*b57pAUQZPj4c1-2b4EqstQ.png)
Találtam. Így a laptopomra húztam adb
# adb pull /data/data/com.sitael.vending/databases/argenta.db ./
és megpróbáltam megnyitni a DB Browser for SQLite
![](https://hackernoon.com/hn-images/1*Ws7mD6YYW4CJuJcsHEGwnQ.png)
nyilvánvalóan, jelszóval védett volt
![](https://hackernoon.com/hn-images/1*JXzmAnMcLoa6jOB-TNFD8A.png)
REVERSE-ENGINEERING
visszaléptem a forráskódokhoz, megnéztem RushAndroidConfig.java
![](https://hackernoon.com/hn-images/1*bbEWAWDdaCo6FzOWYgGGQg.png)
ahol megtaláltam az adatbázis konfigurálásához használt módszereket.
A figyelmemet a this.encryptionKey = getDeviceId(context);
megkötöttem a definícióját, és…
![](https://hackernoon.com/hn-images/1*C3vQ4-ca8Ds1KtdL8CpDlQ.png)
megállapítottam, hogy a célzott alkalmazás a telefon IMEI-jét (*#06#)
használta az SQLite adatbázis titkosítási kulcsaként.
Abrakadabra.
![](https://hackernoon.com/hn-images/1*8feV_FTZ-xcYEDZZ6uyBVg.png)
Boom baby.
![](https://hackernoon.com/hn-images/1*Ss_BBhXPriPtB1t3igg7Xw.gif)
![](https://hackernoon.com/hn-images/1*md4LFjKE3O2vNVY-JWuHEQ.png)
Pár másodpercnyi vizsgálódás után, Megnyitottam a UserWallets
táblát
![](https://hackernoon.com/hn-images/1*xyeVDuV2jqH7BbuQmOT-CA.png)
és szerkesztettem a walletCredit
mezőt a változásokat írva
![](https://hackernoon.com/hn-images/1*EymI07rqG_uCa9aBP7ctpQ.png)
majd visszatoltam az adatbázist a pumpált hitelekkel a telefonra
# adb pull ./argenta.db /data/data/com.sitael.vending/databases/argenta.db
VERDICT
Eközben, miközben úgy éreztem magam, mint “Robin Hood” (nosztalgikus és kifejezett utalás az Age Of Empires cheat kódjára a +1000 aranyért), kifejlesztettem egy Android segédprogramot a célzott App adatbázisának gyors dumpolására/visszaállítására/meghamisítására menet közben.
![](https://hackernoon.com/hn-images/1*ttBa1pLhrky8dSy-SX4mCA.png)
ezután újra visszamentem az egyetememre, hogy végre teszteljem a Hack
Dear diary…
![](https://hackernoon.com/hn-images/1*tmWKTALK7y43ejTlv5lSbg.jpeg)
CONCLUSION
Nulla kredites számláról tudtam:
> Felfújni az alkalmazás hitelét.
> Vásárolni dolgokat.
> A megmaradt kreditet frissíteni.
> Visszamenni a nulla kredites állapotba.
> Újra felfújni a kreditet.
> Kezdd elölről.
Az összes fordított forrás makrovizsgálatával hatalmas adag tiszta kódot találtam – elhomályosítás nélkül -, ami azt jelentette, hogy egyáltalán nem fogadtak el nagy ellenintézkedéseket a felhasználói adatok védelme és az alkalmazás biztonságossá tétele érdekében.
Egy hónappal ezelőtt…
A fehér kalapos belső hangom felvette a telefont, és felhívta a szégyen mögött álló céget, hogy jelentse a sebezhetőséget. Finoman javasoltam nekik, hogy dobják el a jelenlegi architektúrát, és fejlesszenek ki egy jobbat és biztonságosabbat a semmiből.
Hókuszpókusz mumus.
![](https://hackernoon.com/hn-images/1*W9tswl9ixLY9TnORLe3dxA.png)
![](https://hackernoon.com/emojis/heart.png)
![](https://hackernoon.com/emojis/heart.png)
![](https://hackernoon.com/emojis/heart.png)
![](https://hackernoon.com/emojis/heart.png)
![](https://hackernoon.com/emojis/light.png)
![](https://hackernoon.com/emojis/light.png)
![](https://hackernoon.com/emojis/light.png)
![](https://hackernoon.com/emojis/light.png)
![](https://hackernoon.com/emojis/boat.png)
![](https://hackernoon.com/emojis/boat.png)
![](https://hackernoon.com/emojis/boat.png)
![](https://hackernoon.com/emojis/boat.png)
![](https://hackernoon.com/emojis/money.png)
![](https://hackernoon.com/emojis/money.png)
![](https://hackernoon.com/emojis/money.png)
![](https://hackernoon.com/emojis/money.png)
![](https://hackernoon.com/emojis/money.png)
Tagek
Létrehozd ingyenes fiókodat az egyéni olvasási élmény feloldásához.