def configure_proxy(self, project):
     """HTTPS Proxy."""
     self.install_mobsf_ca('install')
     proxy_port = settings.PROXY_PORT
     logger.info('Starting HTTPs Proxy on %s', proxy_port)
     stop_httptools(proxy_port)
     start_proxy(proxy_port, project)
def download_data(request):
    """Download Application Data from Device."""
    logger.info('Downloading app data')
    data = {}
    try:
        env = Environment()
        package = request.POST['package']
        md5_hash = request.POST['hash']
        if is_attack_pattern(package) or not is_md5(md5_hash):
            return invalid_params()
        apk_dir = os.path.join(settings.UPLD_DIR, md5_hash + '/')
        stop_httptools(settings.PROXY_PORT)
        files_loc = '/data/local/'
        logger.info('Archiving files created by app')
        env.adb_command([
            'tar', '-cvf', files_loc + package + '.tar',
            '/data/data/' + package + '/'
        ], True)
        logger.info('Downloading Archive')
        env.adb_command(
            ['pull', files_loc + package + '.tar', apk_dir + package + '.tar'])
        logger.info('Stopping ADB server')
        env.adb_command(['kill-server'])
        data = {'status': 'ok'}
    except Exception as exp:
        logger.exception('Downloading application data')
        data = {'status': 'failed', 'message': str(exp)}
    return json_response(data)
def httptools_start(request):
    """Start httprools UI."""
    logger.info('Starting httptools Web UI')
    try:
        stop_httptools(settings.PROXY_PORT)
        start_httptools_ui(settings.PROXY_PORT)
        time.sleep(3)
        logger.info('httptools UI started')
        if request.GET['project']:
            project = request.GET['project']
        else:
            project = ''
        url = ('http://localhost:{}'
               '/dashboard/{}'.format(str(settings.PROXY_PORT), project))
        return HttpResponseRedirect(url)
    except Exception:
        logger.exception('Starting httptools Web UI')
        err = 'Error Starting httptools UI'
        return print_n_send_error_response(request, err)