From 0c5abbdb80ab3573d0f69e27cec8a0314e7ab052 Mon Sep 17 00:00:00 2001 From: fattire Date: Mon, 17 Dec 2018 15:48:09 -0800 Subject: [PATCH 1/3] Misc small bugfixes, layout tweaks, & lint suggestions --- cSploit/src/main/AndroidManifest.xml | 6 +- .../java/org/csploit/android/net/Target.java | 2 +- .../android/net/http/proxy/ProxyThread.java | 2 +- .../android/net/metasploit/RPCClient.java | 1 - .../android/net/metasploit/Session.java | 1 - .../csploit/android/plugins/PortScanner.java | 13 +- .../csploit/android/plugins/mitm/MITM.java | 2 +- .../android/services/NetworkRadar.java | 1 - cSploit/src/main/res/layout/about_dialog.xml | 140 +++++++++--------- .../main/res/layout/plugin_exploit_finder.xml | 1 - .../src/main/res/layout/target_list_item.xml | 6 +- cSploit/src/main/res/layout/wifi_scanner.xml | 3 - 12 files changed, 85 insertions(+), 93 deletions(-) diff --git a/cSploit/src/main/AndroidManifest.xml b/cSploit/src/main/AndroidManifest.xml index e835cfaa72..80bef4c0d3 100644 --- a/cSploit/src/main/AndroidManifest.xml +++ b/cSploit/src/main/AndroidManifest.xml @@ -19,11 +19,13 @@ + android:resizeableActivity="true" + tools:ignore="GoogleAppIndexingWarning"> mSessions = new ArrayList(); public static Target getFromString(String string){ - final Pattern PARSE_PATTERN = Pattern.compile("^(([a-z]+)://)?([0-9a-z\\-\\.]+)(:([\\d]+))?[0-9a-z\\-\\./]*$", Pattern.CASE_INSENSITIVE); + final Pattern PARSE_PATTERN = Pattern.compile("^(([a-z]+)://)?([0-9a-z\\-.]+)(:([\\d]+))?[0-9a-z\\-./]*$", Pattern.CASE_INSENSITIVE); final Pattern IP_PATTERN = Pattern.compile("^[\\d]{1,3}\\.[\\d]{1,3}\\.[\\d]{1,3}\\.[\\d]{1,3}$"); Matcher matcher; diff --git a/cSploit/src/main/java/org/csploit/android/net/http/proxy/ProxyThread.java b/cSploit/src/main/java/org/csploit/android/net/http/proxy/ProxyThread.java index 3819307fd6..a6dc1c18d0 100644 --- a/cSploit/src/main/java/org/csploit/android/net/http/proxy/ProxyThread.java +++ b/cSploit/src/main/java/org/csploit/android/net/http/proxy/ProxyThread.java @@ -44,7 +44,7 @@ public class ProxyThread extends Thread private final static int MAX_REQUEST_SIZE = 8192; private final static int HTTP_SERVER_PORT = 80; private final static int HTTPS_SERVER_PORT = 443; - private final static Pattern LINK_PATTERN = Pattern.compile("(https://[\\w\\d:#@%/;$()~_?\\+-=\\\\\\.&]*)", Pattern.CASE_INSENSITIVE); + private final static Pattern LINK_PATTERN = Pattern.compile("(https://[\\w\\d:#@%/;$()~_?+-=\\\\.&]*)", Pattern.CASE_INSENSITIVE); private Socket mSocket = null; private BufferedOutputStream mWriter = null; diff --git a/cSploit/src/main/java/org/csploit/android/net/metasploit/RPCClient.java b/cSploit/src/main/java/org/csploit/android/net/metasploit/RPCClient.java index 0e3fc6dacf..c1652a273a 100644 --- a/cSploit/src/main/java/org/csploit/android/net/metasploit/RPCClient.java +++ b/cSploit/src/main/java/org/csploit/android/net/metasploit/RPCClient.java @@ -3,7 +3,6 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; -import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.net.UnknownHostException; diff --git a/cSploit/src/main/java/org/csploit/android/net/metasploit/Session.java b/cSploit/src/main/java/org/csploit/android/net/metasploit/Session.java index 86f1d5a292..3ee593dd7e 100644 --- a/cSploit/src/main/java/org/csploit/android/net/metasploit/Session.java +++ b/cSploit/src/main/java/org/csploit/android/net/metasploit/Session.java @@ -1,7 +1,6 @@ package org.csploit.android.net.metasploit; import java.io.IOException; -import java.net.InetAddress; import java.net.UnknownHostException; import java.util.Map; import java.util.regex.Pattern; diff --git a/cSploit/src/main/java/org/csploit/android/plugins/PortScanner.java b/cSploit/src/main/java/org/csploit/android/plugins/PortScanner.java index 6a789e9b9d..170dc5881f 100644 --- a/cSploit/src/main/java/org/csploit/android/plugins/PortScanner.java +++ b/cSploit/src/main/java/org/csploit/android/plugins/PortScanner.java @@ -23,8 +23,7 @@ import android.content.SharedPreferences; import android.net.Uri; import android.os.Bundle; -import com.google.android.material.floatingactionbutton.FloatingActionButton; -import androidx.core.content.ContextCompat; +import android.util.SparseArray; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; @@ -39,6 +38,10 @@ import android.widget.TextView; import android.widget.Toast; +import androidx.core.content.ContextCompat; + +import com.google.android.material.floatingactionbutton.FloatingActionButton; + import org.csploit.android.R; import org.csploit.android.core.ChildManager; import org.csploit.android.core.Logger; @@ -55,8 +58,6 @@ import org.csploit.android.tools.NMap; import java.util.ArrayList; -import java.util.HashMap; -import java.util.Map; public class PortScanner extends Plugin { private TextView mTextDoc = null; @@ -72,7 +73,7 @@ public class PortScanner extends Plugin { private static final String CUSTOM_PARAMETERS = "PortScanner.Prefs.CustomParameters"; private static final String CUSTOM_PARAMETERS_TEXT = "PortScanner.Prefs.CustomParameters.Text"; private SharedPreferences mPreferences = null; - private Map urlFormats = new HashMap<>(); + private SparseArray urlFormats = new SparseArray<>(); private boolean mShowCustomParameters = false; public PortScanner() { @@ -228,7 +229,7 @@ public boolean onItemLongClick(AdapterView parent, View view, int position, long id) { int portNumber = target.getOpenPorts().get(position).getNumber(); - if(!urlFormats.containsKey(portNumber)) { + if(urlFormats.get(portNumber) != null) { portNumber = 0; } diff --git a/cSploit/src/main/java/org/csploit/android/plugins/mitm/MITM.java b/cSploit/src/main/java/org/csploit/android/plugins/mitm/MITM.java index 5381b35959..da4cde1c37 100644 --- a/cSploit/src/main/java/org/csploit/android/plugins/mitm/MITM.java +++ b/cSploit/src/main/java/org/csploit/android/plugins/mitm/MITM.java @@ -232,7 +232,7 @@ public String onDataReceived(String headers, String data){ // handle css background declarations data = data.replaceAll ( - "(?i)background\\s*(:|-)\\s*url\\s*[\\(|:][^\\);]+\\)?.*", + "(?i)background\\s*(:|-)\\s*url\\s*[(|:][^\\);]+\\)?.*", "background: url(" + resource + ")" ); diff --git a/cSploit/src/main/java/org/csploit/android/services/NetworkRadar.java b/cSploit/src/main/java/org/csploit/android/services/NetworkRadar.java index 9a81cd5a08..902c92e629 100644 --- a/cSploit/src/main/java/org/csploit/android/services/NetworkRadar.java +++ b/cSploit/src/main/java/org/csploit/android/services/NetworkRadar.java @@ -2,7 +2,6 @@ import android.app.Activity; import android.content.Context; -import android.content.SharedPreferences; import android.view.MenuItem; import org.csploit.android.R; diff --git a/cSploit/src/main/res/layout/about_dialog.xml b/cSploit/src/main/res/layout/about_dialog.xml index 99a119a226..8a09df294d 100644 --- a/cSploit/src/main/res/layout/about_dialog.xml +++ b/cSploit/src/main/res/layout/about_dialog.xml @@ -1,104 +1,104 @@ + android:id="@+id/ScrollView01" + android:layout_width="fill_parent" + android:layout_height="fill_parent"> - + + android:id="@+id/textView1" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_alignParentLeft="true" + android:layout_alignParentTop="true" + android:layout_alignParentRight="true" + android:text="@string/csploit_catchphrase" + android:textAppearance="?android:attr/textAppearanceMedium" /> + android:id="@+id/textView2" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_below="@+id/textView1" + android:layout_alignLeft="@+id/textView1" + android:layout_alignRight="@+id/textView1" + android:text="@string/csploit_copyleft" + android:textAppearance="?android:attr/textAppearanceSmall" /> + android:id="@+id/textView3" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_below="@+id/textView2" + android:layout_alignLeft="@+id/textView2" + android:layout_alignRight="@+id/textView2" + android:autoLink="web" + android:linksClickable="true" + android:text="@string/csploit_url" + android:textAppearance="?android:attr/textAppearanceSmall" + android:textStyle="bold" /> + android:id="@+id/textView5" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_below="@+id/textView3" + android:layout_alignLeft="@+id/textView3" + android:text="@string/disclaimer" + android:textAppearance="?android:attr/textAppearanceMedium" /> + android:id="@+id/textView6" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_below="@+id/textView5" + android:layout_alignLeft="@+id/textView5" + android:text="@string/csploit_disclaimer" + android:textAppearance="?android:attr/textAppearanceSmall" /> + android:id="@+id/textView7" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_below="@+id/textView6" + android:layout_alignLeft="@+id/textView6" + android:text="@string/license" + android:textAppearance="?android:attr/textAppearanceMedium" /> + android:id="@+id/textView8" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_below="@+id/textView7" + android:layout_alignLeft="@+id/textView7" + android:layout_alignParentRight="true" + android:text="@string/gpl_license" + android:textAppearance="?android:attr/textAppearanceSmall" /> + android:textAppearance="?android:attr/textAppearanceMedium" /> + android:layout_alignParentBottom="true" + android:textAppearance="?android:attr/textAppearanceSmall" /> \ No newline at end of file diff --git a/cSploit/src/main/res/layout/plugin_exploit_finder.xml b/cSploit/src/main/res/layout/plugin_exploit_finder.xml index c1ac9b7e11..7ac9823c46 100644 --- a/cSploit/src/main/res/layout/plugin_exploit_finder.xml +++ b/cSploit/src/main/res/layout/plugin_exploit_finder.xml @@ -14,7 +14,6 @@ android:layout_margin="20dp" /> Date: Tue, 6 Aug 2019 11:26:41 -0700 Subject: [PATCH 2/3] Update libraries, build tooks, and gradle. target API 29 --- build.gradle | 2 +- cSploit/build.gradle | 16 ++++++++-------- gradle/wrapper/gradle-wrapper.properties | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/build.gradle b/build.gradle index e97f625189..25e535242d 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.3.0-alpha12' + classpath 'com.android.tools.build:gradle:3.6.0-alpha05' } } diff --git a/cSploit/build.gradle b/cSploit/build.gradle index 41ac0b3288..cfcbe39fbc 100644 --- a/cSploit/build.gradle +++ b/cSploit/build.gradle @@ -4,7 +4,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.3.0-alpha12' + classpath 'com.android.tools.build:gradle:3.6.0-alpha05' } } @@ -18,9 +18,9 @@ apply plugin: 'com.android.application' dependencies { implementation 'androidx.legacy:legacy-support-v4:1.0.0' - implementation 'androidx.appcompat:appcompat:1.0.0' + implementation 'androidx.appcompat:appcompat:1.0.2' implementation 'androidx.preference:preference:1.0.0' - implementation 'androidx.multidex:multidex:2.0.0' + implementation 'androidx.multidex:multidex:2.0.1' implementation 'com.google.android.material:material:1.0.0' implementation 'org.apache.commons:commons-compress:1.18' implementation 'commons-net:commons-net:3.6' @@ -29,14 +29,14 @@ dependencies { implementation 'org.msgpack:msgpack:0.6.12' implementation 'com.googlecode.juniversalchardet:juniversalchardet:1.0.3' implementation 'org.tukaani:xz:1.8' - implementation 'ch.acra:acra-http:5.2.0' - implementation 'ch.acra:acra-notification:5.2.0' + implementation 'ch.acra:acra-http:5.4.0' + implementation 'ch.acra:acra-notification:5.4.0' testImplementation 'junit:junit:4.12' } android { - compileSdkVersion 28 - buildToolsVersion '28.0.3' + compileSdkVersion 29 + buildToolsVersion '29.0.1' compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 @@ -50,7 +50,7 @@ android { defaultConfig { minSdkVersion 14 - targetSdkVersion 28 + targetSdkVersion 29 versionCode 4 versionName "1.7.0-unstable" if(System.getenv("NIGHTLY_BUILD")) { diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index e55a7e35d7..57623d6c1a 100755 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.6-rc-1-all.zip From 4c384505de19a67a63b0bebdc28b2972d58ebba7 Mon Sep 17 00:00:00 2001 From: fattire Date: Tue, 8 Oct 2019 15:12:22 -0700 Subject: [PATCH 3/3] Update libraries and plugins and gradle to latest. --- build.gradle | 2 +- cSploit/build.gradle | 10 +++++----- gradle/wrapper/gradle-wrapper.properties | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/build.gradle b/build.gradle index 25e535242d..3008053707 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.6.0-alpha05' + classpath 'com.android.tools.build:gradle:3.6.0-alpha12' } } diff --git a/cSploit/build.gradle b/cSploit/build.gradle index cfcbe39fbc..9a41054b5d 100644 --- a/cSploit/build.gradle +++ b/cSploit/build.gradle @@ -4,7 +4,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:3.6.0-alpha05' + classpath 'com.android.tools.build:gradle:3.6.0-alpha12' } } @@ -18,11 +18,11 @@ apply plugin: 'com.android.application' dependencies { implementation 'androidx.legacy:legacy-support-v4:1.0.0' - implementation 'androidx.appcompat:appcompat:1.0.2' - implementation 'androidx.preference:preference:1.0.0' + implementation 'androidx.appcompat:appcompat:1.1.0' + implementation 'androidx.preference:preference:1.1.0' implementation 'androidx.multidex:multidex:2.0.1' implementation 'com.google.android.material:material:1.0.0' - implementation 'org.apache.commons:commons-compress:1.18' + implementation 'org.apache.commons:commons-compress:1.19' implementation 'commons-net:commons-net:3.6' implementation 'com.github.zafarkhaja:java-semver:0.9.0' implementation 'org.unbescape:unbescape:1.1.6.RELEASE' @@ -36,7 +36,7 @@ dependencies { android { compileSdkVersion 29 - buildToolsVersion '29.0.1' + buildToolsVersion '29.0.2' compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 57623d6c1a..e0fc41f24a 100755 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.6-rc-1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip