Пример #1
0
def run_sdk_manager():
    """
    Runs the SDK manager
    """
    flag_no_ui = " --no-ui"
    android = common.getConfig('AndroidSDKPath') + "tools/android"
    # need to have execute permission on the android executable
    st = os.stat(android)
    os.chmod(android, st.st_mode | stat.S_IEXEC)
    # Android list sdk
    android_cmd1 = android + "list" + "sdk" + "-a"
    args1 = shlex.split(android_cmd1)
    p0 = Popen([android, 'list', 'sdk', '-a'],
               stdout=PIPE,
               stdin=PIPE,
               stderr=STDOUT)
    # regexpattern = re.compile(r'Android SDK Platform-tools|Android SDK Build-tools|SDK Platform Android 5.0.1|Android Support Repository|Android Support Library')
    regexpattern = re.compile(
        r'SDK Platform Android 5.0.1, API 21, revision 2|Android SDK Build-tools, revision 21.1.2|Android Support Repository|Android Support Library|Android SDK Platform-tools'
    )
    selected_filters_list = []
    for line in p0.stdout:
        if regexpattern.search(line):
            common.logger.debug(
                'Selected the following packages for installation:\r\n')
            common.logger.debug(str(line.rstrip()))
            selected_filters_list.append(line.rstrip().split('-')[0].strip())
            if len(selected_filters_list) == 5:
                # We have the basic filters needed to compile the exploit APL at this point.
                break
    # Android install build tools  with selected filters in headless mode
    selected_filters = myString = ",".join(selected_filters_list)
    print selected_filters
    p1 = Popen([
        android, 'update', 'sdk', '-a', '--filter', selected_filters, '--no-ui'
    ],
               stdout=PIPE,
               stdin=PIPE,
               stderr=STDOUT,
               bufsize=1)
    if not common.interactive_mode:
        p1.stdin.write(common.args.acceptterms)
    else:
        p1.stdin.write("y\n")
    for line in iter(p1.stdout.readline, b''):
        print line,
        if "Do you accept the license" in line:
            p1.stdin.flush()
            p1.stdin.write("y\n")
    output, err = p1.communicate("y\n")
    common.set_environment_variables()
Пример #2
0
def run_sdk_manager():
    """
    Runs the SDK manager
    """
    flag_no_ui = " --no-ui"
    android = common.getConfig("AndroidSDKPath") + "tools/android"
    # need to have execute permission on the android executable
    st = os.stat(android)
    os.chmod(android, st.st_mode | stat.S_IEXEC)
    # Android list sdk
    android_cmd1 = android + "list" + "sdk" + "-a"
    args1 = shlex.split(android_cmd1)
    p0 = Popen([android, "list", "sdk", "-a"], stdout=PIPE, stdin=PIPE, stderr=STDOUT)
    # regexpattern = re.compile(r'Android SDK Platform-tools|Android SDK Build-tools|SDK Platform Android 5.0.1|Android Support Repository|Android Support Library')
    regexpattern = re.compile(
        r"SDK Platform Android 5.0.1, API 21, revision 2|Android SDK Build-tools, revision 21.1.2|Android Support Repository|Android Support Library|Android SDK Platform-tools"
    )
    selected_filters_list = []
    for line in p0.stdout:
        if regexpattern.search(line):
            common.logger.debug("Selected the following packages for installation:\r\n")
            common.logger.debug(str(line.rstrip()))
            selected_filters_list.append(line.rstrip().split("-")[0].strip())
            if len(selected_filters_list) == 5:
                # We have the basic filters needed to compile the exploit APL at this point.
                break
    # Android install build tools  with selected filters in headless mode
    selected_filters = myString = ",".join(selected_filters_list)
    print selected_filters
    p1 = Popen(
        [android, "update", "sdk", "-a", "--filter", selected_filters, "--no-ui"],
        stdout=PIPE,
        stdin=PIPE,
        stderr=STDOUT,
        bufsize=1,
    )
    if not common.interactive_mode:
        p1.stdin.write(common.args.acceptterms)
    else:
        p1.stdin.write("y\n")
    for line in iter(p1.stdout.readline, b""):
        print line,
        if "Do you accept the license" in line:
            p1.stdin.flush()
            p1.stdin.write("y\n")
    output, err = p1.communicate("y\n")
    common.set_environment_variables()
Пример #3
0
		common.logger.setLevel(int(common.args.debuglevel))
	else:
		parser.error("Please provide a valid Debug level (10,20,30,40,50,60)")

exploit_choice = 1

if common.args.version:
	version()

if common.args.basesdk is not None:
	common.writeKey('AndroidSDKPath', str(common.args.basesdk).strip())

#######################################
#Reset any old report
report.reset()
common.set_environment_variables()
#Copy the exploit code into a separate temp directory
if not os.path.exists(common.getConfig("rootDir") + "/build"):
	shutil.copytree(common.getConfig("rootDir") + "/exploitAPKs", common.getConfig("rootDir") + "/build")

common.logger.info(common.config.get('qarkhelper', 'STARTUP'))

if not sdkManager.is_android_sdk_installed():
	sdkManager.get_android_sdk_manager()
else:
	common.logger.info( common.config.get('qarkhelper', 'SDK_INSTALLATION_IDENTIFIED'))

common.minSdkVersion=1

def read_files(filename,rex):
	things_to_inspect=[]
Пример #4
0
            common.logger.setLevel(int(common.args.debuglevel))
        else:
            parser.error("Please provide a valid Debug level (10,20,30,40,50,60)")

    exploit_choice = 1

    if common.args.version:
        version()

    if common.args.basesdk is not None:
        common.writeKey('AndroidSDKPath', str(common.args.basesdk).strip())

    #######################################
    #Reset any old report
    report.reset()
    common.set_environment_variables()
    #Copy the exploit code into a separate temp directory
    if not os.path.exists(common.getConfig("rootDir") + "/build"):
        shutil.copytree(common.getConfig("rootDir") + "/exploitAPKs", common.getConfig("rootDir") + "/build")

    common.logger.info(common.config.get('qarkhelper', 'STARTUP'))

    if not sdkManager.is_android_sdk_installed():
        sdkManager.get_android_sdk_manager()
    else:
        common.logger.info( common.config.get('qarkhelper', 'SDK_INSTALLATION_IDENTIFIED'))

    common.minSdkVersion=1

    #Begin
    common.logger.info('Initializing QARK\n')