Example #1
0
def pickProvidersToClip():
	providers = ProviderInfo.getProviders()
	pIndexes = []
	providersToClip = []
	print "[+] Available CAPTCHA Providers =>"
	i = 0
	for provider in providers:
		print "\t" + str(i) + ": \t" + provider.name
		i = i+1
	indexes = raw_input("[?] Choose CAPTCHA Providers by typing space separated indexes below or press enter to clip all : ")
	indexes = indexes.split()
	for i in indexes:
		try:
			idx = int(i)
			if(idx > len(providers) - 1 or idx < 0):
				print "[-] Indexes must represent a valid CAPTCHA provider. Exiting!"
				sys.exit()
			pIndexes.append(idx)
		except ValueError:
			print "[-] Indexes must be integers. Exiting!"
			sys.exit()
	pIndexes = list(set(pIndexes))
	pIndexes.sort()
	for i in pIndexes:
		providersToClip.append(providers[i])
	if(len(providersToClip) == 0):
		return providers

	return providersToClip
Example #2
0
def pickProvidersToClip():
    providers = ProviderInfo.getProviders()
    pIndexes = []
    providersToClip = []
    print "[+] Available CAPTCHA Providers =>"
    i = 0
    for provider in providers:
        print "\t" + str(i) + ": \t" + provider.name
        i = i + 1
    indexes = raw_input(
        "[?] Choose CAPTCHA Providers by typing space separated indexes below or press enter to clip all : "
    )
    indexes = indexes.split()
    for i in indexes:
        try:
            idx = int(i)
            if (idx > len(providers) - 1 or idx < 0):
                print "[-] Indexes must represent a valid CAPTCHA provider. Exiting!"
                sys.exit()
            pIndexes.append(idx)
        except ValueError:
            print "[-] Indexes must be integers. Exiting!"
            sys.exit()
    pIndexes = list(set(pIndexes))
    pIndexes.sort()
    for i in pIndexes:
        providersToClip.append(providers[i])
    if (len(providersToClip) == 0):
        return providers

    return providersToClip
Example #3
0
def parseOptions(argv):
	modes 	 = 0
	logFile	  = 'clipcaptcha.log'
	logLevel = logging.WARNING
	listenPort   = 7777
	killSessions = False
	operationMode = Mode.MONITOR
	providersToClip = []
	runningMode = ""
	

	secretString 		= None	
	listProviders 		= False
	configFile		= "config.xml"

	
	try:				
		#Parse the arguments and store the options in opts. args basically gets ignored.
		# the ':' indicates that the option expects an argument to be passed.
		opts, args = getopt.getopt(argv, "s:amdrf:p:lhc:", ["secret=", "monitor", "avalanche", "dos", "random", "file=", "port=", "list", "help", "config="])

		# go over each option, store individual options in opt and arg. Then go through the ifelse structure and initialize various options.
		for opt, arg in opts:
			if opt in ("-h", "--help"):
				usage()
				sys.exit()
			elif opt in ("-m", "--monitor"):
				operationMode = Mode.MONITOR
				runningMode = "Monitor"
				modes = modes + 1
			elif opt in ("-a", "--avalanche"):
				operationMode = Mode.AVALANCHE
				runningMode = "Avalanche"
				modes = modes + 1
			elif opt in ("-s", "--stealth"):
				secretString = arg
				operationMode = Mode.STEALTH
				runningMode = "Stealth"
				modes = modes + 1
			elif opt in ("-d", "--dos"):
				operationMode = Mode.DOS
				runningMode = "DoS"
				modes = modes + 1
			elif opt in ("-r", "--random"):
				operationMode = Mode.RANDOM
				runningMode = "Random"
				modes = modes + 1
			elif opt in ("-c", "--config"):
				configFile = arg
			elif opt in ("-f", "--file"):
				logFile = arg
			elif opt in ("-p", "--port"):
				listenPort = arg
			elif opt in ("-l", "--list"):
				listProviders = True				
#			elif opt in ("-p", "--post"):
#				logLevel = logging.WARNING
#			elif opt in ("-s", "--ssl"):
#				logLevel = logging.INFO
#			elif opt in ("-a", "--all"):
#				logLevel = logging.DEBUG
#			elif opt in ("-k", "--killsessions"):
#				killSessions = True

		if(modes > 1):
			print "[-] Choose only one mode."
			print ""
			usage()
			sys.exit()

		if(modes < 1):
			print "[+] No mode selected. Defaulting to Monitor mode "
			runningMode = "Monitor"

		ProviderInfo.initProviders(configFile)

		if(listProviders == True):
			providers = ProviderInfo.getProviders()
			print "Available CAPTCHA Providers:"
			i = 0
			for provider in providers:
				print "\n\n######################################################################"
				print "\t" + str(i) + ": \t" + provider.name
				#print provider.hostname
				#print provider.path
				#print "============================ success =="
				#print provider.sCode
				#print provider.sCodeStr
				#print provider.sHeaders
				#print provider.sBody
				#print "============================ failure =="
				#print provider.fCode
				#print provider.fCodeStr
				#print provider.fHeaders
				#print provider.fBody
				i = i+1
			sys.exit()

		providersToClip = pickProvidersToClip()


		clippedNames = []
		for p in providersToClip:
			clippedNames.append(p.name)
		clipped = ", ".join(clippedNames)
		print "[+] Cool, I am clipping these CAPTHA providers => "+ clipped 
		print "[+] Running in " + runningMode + " mode"

		#return all options
		return (logFile, logLevel, listenPort, killSessions, secretString, operationMode, providersToClip)
	
	#Catch the exception, show usage and exit
	except getopt.GetoptError:		   
		usage()						  
		sys.exit(2)						 
Example #4
0
def parseOptions(argv):
    modes = 0
    logFile = 'clipcaptcha.log'
    logLevel = logging.WARNING
    listenPort = 7777
    killSessions = False
    operationMode = Mode.MONITOR
    providersToClip = []
    runningMode = ""

    secretString = None
    listProviders = False
    configFile = "config.xml"

    try:
        #Parse the arguments and store the options in opts. args basically gets ignored.
        # the ':' indicates that the option expects an argument to be passed.
        opts, args = getopt.getopt(argv, "s:amdrf:p:lhc:", [
            "secret=", "monitor", "avalanche", "dos", "random", "file=",
            "port=", "list", "help", "config="
        ])

        # go over each option, store individual options in opt and arg. Then go through the ifelse structure and initialize various options.
        for opt, arg in opts:
            if opt in ("-h", "--help"):
                usage()
                sys.exit()
            elif opt in ("-m", "--monitor"):
                operationMode = Mode.MONITOR
                runningMode = "Monitor"
                modes = modes + 1
            elif opt in ("-a", "--avalanche"):
                operationMode = Mode.AVALANCHE
                runningMode = "Avalanche"
                modes = modes + 1
            elif opt in ("-s", "--stealth"):
                secretString = arg
                operationMode = Mode.STEALTH
                runningMode = "Stealth"
                modes = modes + 1
            elif opt in ("-d", "--dos"):
                operationMode = Mode.DOS
                runningMode = "DoS"
                modes = modes + 1
            elif opt in ("-r", "--random"):
                operationMode = Mode.RANDOM
                runningMode = "Random"
                modes = modes + 1
            elif opt in ("-c", "--config"):
                configFile = arg
            elif opt in ("-f", "--file"):
                logFile = arg
            elif opt in ("-p", "--port"):
                listenPort = arg
            elif opt in ("-l", "--list"):
                listProviders = True


#			elif opt in ("-p", "--post"):
#				logLevel = logging.WARNING
#			elif opt in ("-s", "--ssl"):
#				logLevel = logging.INFO
#			elif opt in ("-a", "--all"):
#				logLevel = logging.DEBUG
#			elif opt in ("-k", "--killsessions"):
#				killSessions = True

        if (modes > 1):
            print "[-] Choose only one mode."
            print ""
            usage()
            sys.exit()

        if (modes < 1):
            print "[+] No mode selected. Defaulting to Monitor mode "
            runningMode = "Monitor"

        ProviderInfo.initProviders(configFile)

        if (listProviders == True):
            providers = ProviderInfo.getProviders()
            print "Available CAPTCHA Providers:"
            i = 0
            for provider in providers:
                print "\n\n######################################################################"
                print "\t" + str(i) + ": \t" + provider.name
                #print provider.hostname
                #print provider.path
                #print "============================ success =="
                #print provider.sCode
                #print provider.sCodeStr
                #print provider.sHeaders
                #print provider.sBody
                #print "============================ failure =="
                #print provider.fCode
                #print provider.fCodeStr
                #print provider.fHeaders
                #print provider.fBody
                i = i + 1
            sys.exit()

        providersToClip = pickProvidersToClip()

        clippedNames = []
        for p in providersToClip:
            clippedNames.append(p.name)
        clipped = ", ".join(clippedNames)
        print "[+] Cool, I am clipping these CAPTHA providers => " + clipped
        print "[+] Running in " + runningMode + " mode"

        #return all options
        return (logFile, logLevel, listenPort, killSessions, secretString,
                operationMode, providersToClip)

    #Catch the exception, show usage and exit
    except getopt.GetoptError:
        usage()
        sys.exit(2)