use of org.csploit.android.net.Target in project android by cSploit.
the class MainFragment method onOptionsItemSelected.
@Override
public boolean onOptionsItemSelected(final MenuItem item) {
switch(item.getItemId()) {
case R.id.add:
new InputDialog(getString(R.string.add_custom_target), getString(R.string.enter_url), getActivity(), new InputDialogListener() {
@Override
public void onInputEntered(String input) {
final Target target = Target.getFromString(input);
if (target != null) {
ThreadHelper.getSharedExecutor().execute(new Runnable() {
@Override
public void run() {
System.addOrderedTarget(target);
}
});
} else
new ErrorDialog(getString(R.string.error), getString(R.string.invalid_target), getActivity()).show();
}
}).show();
return true;
case R.id.scan:
startNetworkRadar();
return true;
case R.id.wifi_ifaces:
displayNetworkInterfaces(true);
return true;
case R.id.wifi_scan:
stopNetworkRadar();
mRadarReceiver.unregister();
mUpdateReceiver.unregister();
startActivityForResult(new Intent(getActivity(), WifiScannerActivity.class), WIFI_CONNECTION_REQUEST);
getActivity().overridePendingTransition(R.anim.fadeout, R.anim.fadein);
return true;
case R.id.new_session:
new ConfirmDialog(getString(R.string.warning), getString(R.string.warning_new_session), getActivity(), new ConfirmDialogListener() {
@Override
public void onConfirm() {
try {
System.reset();
Toast.makeText(getActivity(), getString(R.string.new_session_started), Toast.LENGTH_SHORT).show();
} catch (Exception e) {
new FatalDialog(getString(R.string.error), e.toString(), getActivity()).show();
}
}
@Override
public void onCancel() {
}
}).show();
return true;
case R.id.save_session:
new InputDialog(getString(R.string.save_session), getString(R.string.enter_session_name), System.getSessionName(), true, false, getActivity(), new InputDialogListener() {
@Override
public void onInputEntered(String input) {
String name = input.trim().replace("/", "").replace("..", "");
if (!name.isEmpty()) {
try {
String filename = System.saveSession(name);
Toast.makeText(getActivity(), getString(R.string.session_saved_to) + filename + " .", Toast.LENGTH_SHORT).show();
} catch (IOException e) {
new ErrorDialog(getString(R.string.error), e.toString(), getActivity()).show();
}
} else
new ErrorDialog(getString(R.string.error), getString(R.string.invalid_session), getActivity()).show();
}
}).show();
return true;
case R.id.restore_session:
final ArrayList<String> sessions = System.getAvailableSessionFiles();
if (sessions != null && sessions.size() > 0) {
new SpinnerDialog(getString(R.string.select_session), getString(R.string.select_session_file), sessions.toArray(new String[sessions.size()]), getActivity(), new SpinnerDialogListener() {
@Override
public void onItemSelected(int index) {
String session = sessions.get(index);
try {
System.loadSession(session);
} catch (Exception e) {
e.printStackTrace();
new ErrorDialog(getString(R.string.error), e.getMessage(), getActivity()).show();
}
}
}).show();
} else
new ErrorDialog(getString(R.string.error), getString(R.string.no_session_found), getActivity()).show();
return true;
case R.id.settings:
startActivity(new Intent(getActivity(), SettingsActivity.class));
getActivity().overridePendingTransition(R.anim.fadeout, R.anim.fadein);
return true;
case R.id.ss_monitor:
new Thread(new Runnable() {
@Override
public void run() {
Services.getNetworkRadar().onMenuClick(getActivity(), item);
}
}).start();
return true;
case R.id.ss_msfrpcd:
new Thread(new Runnable() {
@Override
public void run() {
Services.getMsfRpcdService().onMenuClick(getActivity(), item);
}
}).start();
return true;
case R.id.submit_issue:
String uri = getString(R.string.github_new_issue_url);
Intent browser = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
startActivity(browser);
// String.format(getString(R.string.issue_message), getString(R.string.github_issues_url), getString(R.string.github_new_issue_url));
return true;
case R.id.about:
new AboutDialog(getActivity()).show();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
use of org.csploit.android.net.Target in project android by cSploit.
the class System method clean.
public static void clean(boolean releaseLocks) {
setForwarding(false);
try {
if (releaseLocks) {
Logger.debug("Releasing locks.");
if (mWifiLock != null && mWifiLock.isHeld())
mWifiLock.release();
if (mWakeLock != null && mWakeLock.isHeld())
mWakeLock.release();
}
RemoteReader.terminateAll();
GitHubParser.resetAll();
synchronized (mTargets) {
for (Target t : mTargets) for (Session s : t.getSessions()) s.stopSession();
mTargets.clear();
}
Client.Disconnect();
mCoreInitialized = false;
Services.getNetworkRadar().onAutoScanChanged();
} catch (Exception e) {
errorLogging(e);
}
}
use of org.csploit.android.net.Target in project android by cSploit.
the class MainActivity method onCreate.
@Override
public void onCreate(Bundle savedInstanceState) {
SharedPreferences themePrefs = getSharedPreferences("THEME", 0);
Boolean isDark = themePrefs.getBoolean("isDark", false);
boolean connectivityAvailable;
if (isDark)
setTheme(R.style.DarkTheme);
else
setTheme(R.style.AppTheme);
super.onCreate(savedInstanceState);
setContentView(R.layout.target_layout);
lv = (ListView) findViewById(R.id.android_list);
lv.setOnItemClickListener(new ListView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (mActionMode != null) {
((TargetAdapter) lv.getAdapter()).toggleSelection(position);
return;
}
Target target = (Target) mTargetAdapter.getItem(position);
System.setCurrentTarget(target);
new Thread(new Runnable() {
@Override
public void run() {
startActivityForResult(new Intent(MainActivity.this, ActionActivity.class), WIFI_CONNECTION_REQUEST);
overridePendingTransition(R.anim.fadeout, R.anim.fadein);
}
}).start();
Toast.makeText(MainActivity.this, getString(R.string.selected_) + System.getCurrentTarget(), Toast.LENGTH_SHORT).show();
}
});
isWifiAvailable = Network.isWifiConnected(this);
connectivityAvailable = isWifiAvailable || Network.isConnectivityAvailable(this);
// startup
if (!System.isInitialized()) {
// :(
if (isWifiAvailable) {
// retry
try {
System.init(MainActivity.this.getApplicationContext());
System.registerPlugin(new RouterPwn());
System.registerPlugin(new Traceroute());
System.registerPlugin(new PortScanner());
System.registerPlugin(new Inspector());
System.registerPlugin(new ExploitFinder());
System.registerPlugin(new LoginCracker());
System.registerPlugin(new Sessions());
System.registerPlugin(new MITM());
System.registerPlugin(new PacketForger());
} catch (Exception e) {
if (!(e instanceof NoRouteToHostException))
System.errorLogging(e);
onInitializationError(System.getLastError());
return;
}
}
} else {
System.reloadNetworkMapping();
}
boolean coreInstalled = System.isCoreInstalled();
boolean coreBeating = System.isCoreInitialized();
if (coreInstalled && !coreBeating) {
coreBeating = startCore();
if (coreBeating) {
onCoreBeating();
} else if (isRootMissing) {
return;
}
}
if (!connectivityAvailable) {
if (!coreInstalled) {
onInitializationError(getString(R.string.no_core_no_connectivity));
return;
} else if (!coreBeating) {
onInitializationError(getString(R.string.heart_attack));
return;
}
}
if (!coreInstalled) {
UPDATE_MESSAGE = getString(R.string.missing_core_update);
} else if (!coreBeating) {
UPDATE_MESSAGE = getString(R.string.heart_attack_update);
} else if (!isWifiAvailable) {
UPDATE_MESSAGE = getString(R.string.no_wifi_available);
}
if (connectivityAvailable)
startUpdateChecker();
if (coreBeating && isWifiAvailable)
startNetworkRadar();
createLayout();
}
use of org.csploit.android.net.Target in project android by cSploit.
the class MainActivity method createOnlineLayout.
public void createOnlineLayout() {
findViewById(R.id.textView).setVisibility(View.VISIBLE);
lv.setVisibility(View.VISIBLE);
if (mUpdateStatus != null)
mUpdateStatus.setVisibility(View.GONE);
if (mTargetAdapter != null) {
mTargetAdapter.notifyDataSetChanged();
return;
}
mTargetAdapter = new TargetAdapter();
lv.setAdapter(mTargetAdapter);
lv.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
Target t = (Target) mTargetAdapter.getItem(position);
if (t.getType() == Target.Type.NETWORK) {
if (mActionMode == null)
targetAliasPrompt(t);
return true;
}
if (mActionMode == null) {
mTargetAdapter.clearSelection();
mActionMode = startSupportActionMode(mActionModeCallback);
}
mTargetAdapter.toggleSelection(position);
return true;
}
});
mRadarReceiver.register(MainActivity.this);
mUpdateReceiver.register(MainActivity.this);
mWipeReceiver.register(MainActivity.this);
mMsfReceiver.register(MainActivity.this);
System.setTargetListObserver(mTargetAdapter);
StartRPCServer();
// if called for the second time after wifi connection
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
invalidateOptionsMenu();
}
use of org.csploit.android.net.Target in project android by cSploit.
the class ExploitFinder method setStartedState.
private void setStartedState() {
mSearchProgress.setVisibility(View.VISIBLE);
final Target target = System.getCurrentTarget();
job = Search.searchExploitForServices(target, new Search.Receiver<Exploit>() {
private boolean somethingFound = false;
@Override
public void onItemFound(final Exploit exploit) {
somethingFound = true;
ExploitFinder.this.runOnUiThread(new Runnable() {
@Override
public void run() {
target.addExploit(exploit);
mAdapter.notifyDataSetChanged();
}
});
}
@Override
public void onFoundItemChanged(Exploit exploit) {
ExploitFinder.this.runOnUiThread(new Runnable() {
@Override
public void run() {
mAdapter.notifyDataSetChanged();
}
});
}
@Override
public void onEnd() {
ExploitFinder.this.runOnUiThread(new Runnable() {
@Override
public void run() {
mSearchProgress.setVisibility(View.GONE);
mSearchFloatingActionButton.setImageDrawable(ContextCompat.getDrawable(getBaseContext(), R.drawable.ic_stop_24dp));
buttonPlayed = true;
if (System.getCurrentExploits().size() == 0) {
new FinishDialog(getString(R.string.warning), getString(R.string.no_exploits_found), ExploitFinder.this).show();
} else if (!somethingFound) {
new ErrorDialog(getString(R.string.warning), getString(R.string.no_exploits_found), ExploitFinder.this).show();
}
}
});
}
});
}
Aggregations