Skip to content

Commit de07e3f

Browse files
committed
Allow to select a target from the Simple Sniff module.
When using the Simple sniff module to see which hosts are sending traffic, allow to select them as target by clicking on on them.
1 parent c93c08f commit de07e3f

2 files changed

Lines changed: 55 additions & 13 deletions

File tree

cSploit/src/org/csploit/android/core/System.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,7 @@
2121
import android.app.Activity;
2222
import android.app.ActivityManager;
2323
import android.app.ActivityManager.RunningServiceInfo;
24-
import android.app.AlertDialog;
2524
import android.content.Context;
26-
import android.content.DialogInterface;
2725
import android.content.Intent;
2826
import android.content.SharedPreferences;
2927
import android.content.pm.PackageInfo;
@@ -32,7 +30,6 @@
3230
import android.net.wifi.WifiManager;
3331
import android.net.wifi.WifiManager.WifiLock;
3432
import android.os.Build;
35-
import android.os.Bundle;
3633
import android.os.Environment;
3734
import android.os.PowerManager;
3835
import android.os.PowerManager.WakeLock;
@@ -1032,6 +1029,10 @@ public static Target getTarget(int index){
10321029
return mTargets.get(index);
10331030
}
10341031

1032+
public static int getTargetPosition (Target t) {
1033+
return mTargets.indexOf(t);
1034+
}
1035+
10351036
public static boolean hasTarget(Target target){
10361037
return mTargets.contains(target);
10371038
}

cSploit/src/org/csploit/android/plugins/mitm/Sniffer.java

Lines changed: 51 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@
1919
package org.csploit.android.plugins.mitm;
2020

2121
import android.content.Context;
22+
import android.content.Intent;
2223
import android.content.SharedPreferences;
2324
import android.os.Bundle;
2425
import android.support.v7.app.AppCompatActivity;
2526
import android.text.Html;
2627
import android.view.LayoutInflater;
2728
import android.view.MenuItem;
2829
import android.view.View;
29-
import android.view.View.OnClickListener;
3030
import android.view.ViewGroup;
3131
import android.widget.AdapterView;
3232
import android.widget.AdapterView.OnItemSelectedListener;
@@ -38,12 +38,12 @@
3838
import android.widget.Toast;
3939
import android.widget.ToggleButton;
4040

41+
import org.csploit.android.ActionActivity;
4142
import org.csploit.android.R;
4243
import org.csploit.android.core.Child;
4344
import org.csploit.android.core.ChildManager;
4445
import org.csploit.android.core.System;
4546
import org.csploit.android.gui.dialogs.ConfirmDialog;
46-
import org.csploit.android.gui.dialogs.ConfirmDialog.ConfirmDialogListener;
4747
import org.csploit.android.gui.dialogs.ErrorDialog;
4848
import org.csploit.android.net.Target;
4949
import org.csploit.android.plugins.mitm.SpoofSession.OnSessionReadyListener;
@@ -307,7 +307,43 @@ public void onNothingSelected(AdapterView<?> arg0){
307307

308308
mListView.setAdapter(mAdapter);
309309

310-
mSniffToggleButton.setOnClickListener(new OnClickListener(){
310+
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
311+
@Override
312+
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
313+
final Target t = System.getTargetByAddress(mAdapter.getByPosition(position).mAddress);
314+
315+
new ConfirmDialog("Select target", "Select " + t.getAddress().getHostAddress() + "?", Sniffer.this, new ConfirmDialog.ConfirmDialogListener() {
316+
@Override
317+
public void onConfirm() {
318+
new Thread(new Runnable() {
319+
@Override
320+
public void run() {
321+
setStoppedState();
322+
323+
startActivity(new Intent(Sniffer.this,
324+
ActionActivity.class));
325+
326+
overridePendingTransition(R.anim.slide_in_left,
327+
R.anim.slide_out_left);
328+
}
329+
}).start();
330+
331+
System.setCurrentTarget(System.getTargetPosition(t));
332+
Toast.makeText(Sniffer.this,
333+
getString(R.string.selected_) + System.getCurrentTarget(),
334+
Toast.LENGTH_SHORT).show();
335+
}
336+
337+
@Override
338+
public void onCancel() {
339+
}
340+
}).show();
341+
342+
343+
}
344+
});
345+
346+
mSniffToggleButton.setOnClickListener(new View.OnClickListener(){
311347
@Override
312348
public void onClick(View v){
313349
if(mRunning){
@@ -319,7 +355,7 @@ public void onClick(View v){
319355
}
320356
);
321357

322-
new ConfirmDialog( getString(R.string.file_output), getString(R.string.question_save_to_pcap), this, new ConfirmDialogListener(){
358+
new ConfirmDialog( getString(R.string.file_output), getString(R.string.question_save_to_pcap), this, new ConfirmDialog.ConfirmDialogListener(){
323359
@Override
324360
public void onConfirm(){
325361
mDumpToFile = true;
@@ -357,15 +393,20 @@ private void setStoppedState(){
357393
mTcpdumpProcess.kill();
358394
mTcpdumpProcess = null;
359395
}
360-
mSpoofSession.stop();
396+
Sniffer.this.runOnUiThread(new Runnable() {
397+
@Override
398+
public void run() {
399+
mSpoofSession.stop();
361400

362-
mSniffProgress.setVisibility(View.INVISIBLE);
401+
mSniffProgress.setVisibility(View.INVISIBLE);
363402

364-
mRunning = false;
365-
mSniffToggleButton.setChecked(false);
366-
}
403+
mRunning = false;
404+
mSniffToggleButton.setChecked(false);
405+
}
406+
});
407+
}
367408

368-
private void setSpoofErrorState(final String error){
409+
private void setSpoofErrorState(final String error){
369410
Sniffer.this.runOnUiThread(new Runnable(){
370411
@Override
371412
public void run(){

0 commit comments

Comments
 (0)