Search in sources :

Example 1 with Target

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);
    }
}
Also used : InputDialog(org.csploit.android.gui.dialogs.InputDialog) AboutDialog(org.csploit.android.gui.dialogs.AboutDialog) ErrorDialog(org.csploit.android.gui.dialogs.ErrorDialog) Intent(android.content.Intent) IOException(java.io.IOException) NoRouteToHostException(java.net.NoRouteToHostException) IOException(java.io.IOException) InputDialogListener(org.csploit.android.gui.dialogs.InputDialog.InputDialogListener) Target(org.csploit.android.net.Target) SpinnerDialog(org.csploit.android.gui.dialogs.SpinnerDialog) SpinnerDialogListener(org.csploit.android.gui.dialogs.SpinnerDialog.SpinnerDialogListener) FatalDialog(org.csploit.android.gui.dialogs.FatalDialog) ConfirmDialogListener(org.csploit.android.gui.dialogs.ConfirmDialog.ConfirmDialogListener) ConfirmDialog(org.csploit.android.gui.dialogs.ConfirmDialog)

Example 2 with Target

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);
    }
}
Also used : Target(org.csploit.android.net.Target) NoRouteToHostException(java.net.NoRouteToHostException) NameNotFoundException(android.content.pm.PackageManager.NameNotFoundException) SocketException(java.net.SocketException) IOException(java.io.IOException) UnknownHostException(java.net.UnknownHostException) Session(org.csploit.android.net.metasploit.Session)

Example 3 with Target

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();
}
Also used : Traceroute(org.csploit.android.plugins.Traceroute) LoginCracker(org.csploit.android.plugins.LoginCracker) NoRouteToHostException(java.net.NoRouteToHostException) Target(org.csploit.android.net.Target) ListView(android.widget.ListView) Inspector(org.csploit.android.plugins.Inspector) ExploitFinder(org.csploit.android.plugins.ExploitFinder) RouterPwn(org.csploit.android.plugins.RouterPwn) SharedPreferences(android.content.SharedPreferences) Sessions(org.csploit.android.plugins.Sessions) PacketForger(org.csploit.android.plugins.PacketForger) Intent(android.content.Intent) PortScanner(org.csploit.android.plugins.PortScanner) ImageView(android.widget.ImageView) View(android.view.View) AdapterView(android.widget.AdapterView) TextView(android.widget.TextView) ListView(android.widget.ListView) SuppressLint(android.annotation.SuppressLint) NoRouteToHostException(java.net.NoRouteToHostException) IOException(java.io.IOException) MITM(org.csploit.android.plugins.mitm.MITM)

Example 4 with Target

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();
}
Also used : Target(org.csploit.android.net.Target) ImageView(android.widget.ImageView) View(android.view.View) AdapterView(android.widget.AdapterView) TextView(android.widget.TextView) ListView(android.widget.ListView) OnItemLongClickListener(android.widget.AdapterView.OnItemLongClickListener) SuppressLint(android.annotation.SuppressLint)

Example 5 with Target

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();
                    }
                }
            });
        }
    });
}
Also used : Target(org.csploit.android.net.Target) FinishDialog(org.csploit.android.gui.dialogs.FinishDialog) ErrorDialog(org.csploit.android.gui.dialogs.ErrorDialog) Exploit(org.csploit.android.net.Target.Exploit) MsfExploit(org.csploit.android.net.metasploit.MsfExploit)

Aggregations

Target (org.csploit.android.net.Target)16 Intent (android.content.Intent)6 View (android.view.View)5 AdapterView (android.widget.AdapterView)5 ListView (android.widget.ListView)5 TextView (android.widget.TextView)5 IOException (java.io.IOException)5 NoRouteToHostException (java.net.NoRouteToHostException)5 SharedPreferences (android.content.SharedPreferences)4 ImageView (android.widget.ImageView)4 ConfirmDialog (org.csploit.android.gui.dialogs.ConfirmDialog)4 ErrorDialog (org.csploit.android.gui.dialogs.ErrorDialog)4 SuppressLint (android.annotation.SuppressLint)3 ConfirmDialogListener (org.csploit.android.gui.dialogs.ConfirmDialog.ConfirmDialogListener)3 NameNotFoundException (android.content.pm.PackageManager.NameNotFoundException)2 OnClickListener (android.view.View.OnClickListener)2 OnItemLongClickListener (android.widget.AdapterView.OnItemLongClickListener)2 SocketException (java.net.SocketException)2 UnknownHostException (java.net.UnknownHostException)2 AboutDialog (org.csploit.android.gui.dialogs.AboutDialog)2