本文目录一览:
vb制作最简单基本的ddos工具
处理数据包一般有两个步骤端口侦听和缓存处理,编程比较麻烦。这里有个调用api拦截处理数据包的,希望对你参考。
以下是在VB中截获WIN2000下TCP/IP包的源代码,在VB6.0,win2000下测试通过,需要注意的地方是,1.必须和本地的一块网卡,2.每次获取数据后必须有一段延时。3.数据取到之后放在Buff的数组中。4.把以下的代码放在一个模块中就可以了。
'代码开始
Declare Function bind Lib "ws2_32.dll " (ByVal s As Long, addr As SOCK_ADDR, ByVal namelen As Long) As Long
Declare Function closesocket Lib "ws2_32.dll " (ByVal s As Long) As Long
Declare Function connect Lib "ws2_32.dll " (ByVal s As Long, name As SOCK_ADDR, ByVal namelen As Integer) As Long
Declare Function inet_addr Lib "ws2_32.dll " (ByVal cp As String) As Long
Declare Function htons Lib "ws2_32.dll " (ByVal hostshort As Integer) As Integer
Declare Function recv Lib "ws2_32.dll " (ByVal s As Long, buffer As Any, ByVal length As Long, ByVal flags As Long) As Long
Declare Function send Lib "ws2_32.dll " (ByVal s As Long, buffer As Any, ByVal length As Long, ByVal flags As Long) As Long
Declare Function shutdown Lib "ws2_32.dll " (ByVal s As Long, ByVal how As Long) As Long
Declare Function ioctlsocket Lib "ws2_32.dll " (ByVal s As Long, ByVal v As Long, ut As Long) As Long
Declare Function socket Lib "ws2_32.dll " (ByVal af As Long, ByVal type_specification As Long, ByVal protocol As Long) As Long
Declare Function WSACancelBlockingCall Lib "ws2_32.dll " () As Long
Declare Function WSACleanup Lib "ws2_32.dll " () As Long
Declare Function WSAGetLastError Lib "ws2_32.dll " () As Long
Declare Function WSAStartup Lib "ws2_32.dll " (ByVal wVersionRequired As Integer, wsData As WSA_DATA) As Long
Declare Function WSASocketA Lib "ws2_32.dll " (ByVal af As Long, ByVal type1 As Long, ByVal protocol As Long, lpProtocolInfo As Long, g As Long, ByVal dwFlags As Long)
Declare Function WSAIoctl Lib "ws2_32.dll " (ByVal s As Long, ByVal dwIoControlCode As Long, lpvInBuffer As Long, ByVal cbInBuffer As Long, lpvOutBuffer As Long, ByVal cbOutBuffer As Long, lpcbBytesReturned As Long, lpOverlapped As Long, lpCompletionRoutine As Long) As Long
Declare Sub CopyMemory Lib "kernel32 " Alias "RtlMoveMemory " (Destination As Any, Source As Any, ByVal length As Long)
Public Declare Sub Sleep Lib "kernel32 " (ByVal dwMilliseconds As Long)
Public Const WSADESCRIPTION_LEN = 256
Public Const WSASYS_STATUS_LEN = 128
Type WSA_DATA
wVersion As Integer
wHighVersion As Integer
strDescription(WSADESCRIPTION_LEN + 1) As Byte
strSystemStatus(WSASYS_STATUS_LEN + 1) As Byte
iMaxSockets As Integer
iMaxUdpDg As Integer
lpVendorInfo As Long
End Type
Type IN_ADDR
S_addr As Long
End Type
Type SOCK_ADDR
sin_family As Integer
sin_port As Integer
sin_addr As IN_ADDR
sin_zero(0 To 7) As Byte
End Type
Type IPHeader
lenver As Byte
tos As Byte
len As Integer
ident As Integer
flags As Integer
ttl As Byte
proto As Byte
checksum As Integer
sourceIP As Long
destIP As Long
End Type
Const AF_INET = 2
Const SOCK_RAW = 3
Const IPPROTO_IP = 0
Const IPPROTO_TCP = 6
Const IPPROTO_UDP = 17
Const MAX_PACK_LEN = 65535
Const SOCKET_ERROR = -1** mwsaData As WSA_DATA
** m_hSocket As Long
** msaLocalAddr As SOCK_ADDR
** msaRemoteAddr As SOCK_ADDR
Sub Main()
Dim nResult As Long
nResult = WSAStartup(H202, mwsaData)
If nResult WSANOERROR Then
MsgBox "Error en WSAStartup "
Exit Sub
End If
m_hSocket = socket(AF_INET, SOCK_RAW, IPPROTO_IP)
If (m_hSocket = INVALID_SOCKET) Then
MsgBox "Error in socket "
Exit Sub
End If
msaLocalAddr.sin_family = AF_INET
msaLocalAddr.sin_port = 0
msaLocalAddr.sin_addr.S_addr = inet_addr( "192.168.1.125 ") '这里需要你自己的网卡的IP地址
nResult = bind(m_hSocket, msaLocalAddr, Len(msaLocalAddr))
If (nResult = SOCKET_ERROR) Then
MsgBox "Error in bind "
Exit Sub
End If
Dim InParamBufferAs Long
Dim BytesRetAs Long
BytesRet = 0
InParamBuffer = 1
nResult = WSAIoctl(m_hSocket, H98000001, InParamBuffer, Len(InParamBuffer), 0, 0, BytesRet, 0, 0)
If nResult 0 Then
MsgBox "ioctlsocket "
Exit Sub
End If
Dim strData As String
Dim nReceived As Long
'截获来的数据放在BUFF里面
Dim Buff(0 To MAX_PACK_LEN) As Byte
Dim IPH As IPHeader
Do Until False '这个例子里,一直获取
DoEvents
Call Sleep(300) '这里这条语句不能去掉,但可以调整一下范围,否则出现GPE错误。
nResult = recv(m_hSocket, Buff(0), MAX_PACK_LEN, 0)
If nResult = SOCKET_ERROR Then
MsgBox "Error in RecvData::recv "
Exit Do
End If
CopyMemory IPH, Buff(0), Len(IPH) '为了访问方便
Select Case IPH.proto
Case IPPROTO_TCP
'frmHookTcpip.Text1.SelText = HexIp2DotIp(IPH.sourceIP)
'frmHookTcpip.Text1.SelText = "----- "
'frmHookTcpip.Text1.SelText = HexIp2DotIp(IPH.destIP)
'frmHookTcpip.Text1.SelText = vbCrLf
Debug.Print HexIp2DotIp(IPH.sourceIP) "----- " HexIp2DotIp(IPH.destIP)
End Select
Loop
nResult = shutdown(m_hSocket, 2)
nResult = closesocket(m_hSocket)
nResult = WSACancelBlockingCall
nResult = WSACleanup
End Sub
Function HexIp2DotIp(ByVal ip As Long) As String
Dim s As String, p1 As String, p2 As String, p3 As String, p4 As String
s = Right( "00000000 " Hex(ip), 8)
p1 = Val( "h " Mid(s, 1, 2))
p2 = Val( "h " Mid(s, 3, 2))
p3 = Val( "h " Mid(s, 5, 2))
p4 = Val( "h " Mid(s, 7, 2))
HexIp2DotIp = p4 ". " p3 ". " p2 ". " p1
End Function
'代码结束
如何解决API安全问题?有什么好的建议吗?
与APP端开发人员约定特定的md5组合算法,然后两端比对一下,如果相同就allow,不相同就deny;但是,这也是不安全的,如果APP程序被反编译,这些约定的算法就会暴露,特别是在安卓APP中,有了算法,完全就可以模拟接口请求通过验证。
Plan2
会员登录的时候请求登录接口,然后服务器端返回给客户端一个token,该token生成的规则是 网站公钥 + 当前uid + 当前时间戳 + 一段随机数双重加密,根据需求决定是把该token放进cache等一段时间自动失效,还是放进数据库(如果要放进数据库的话,单独拎出一张表来,顺便记录用户的登录,登出时间),在用户登出登录的时候改变一下,确保该token只能在用户人为登出登录之间有用。
什么是DDoS攻击?面对DDOS攻击的处理方式
你好!
DDoS攻击是什么:
DDoS攻击全名为分布式拒绝服务攻击,是攻击者将多台受控制的计算机联合起来向目标计算机同时发起攻击,让目标主机系统资源耗尽,使其停止服务甚至崩溃。同时还可阻塞目标网络,使其无法为用户提供服务。
DDoS攻击常见处理办法:
1、预防:隐藏服务器或目标主机的真实IP地址,避免真实IP直接暴露在互联网,成为不法分子的攻击目标;
2、自建:架设专业防护DDoS攻击的网络安全设备,通过设置防护策略对发生的DDoS攻击进行处置,主要通过设置异常流量清洗阈值、源认证、攻击特征匹配、首包校验重传等方式实现安全防护;
3、购买服务:根据线网流量的情况,可以考虑选购国内某些运营商或云清洗供应商提供的抗DDoS服务,借助服务提供商既有的DDoS攻击防护能力,保护自身业务稳定可靠运行。
在防御DDoS攻击方面有没有厂商给出相应的解决方案?
F5公司是业界领先的L4/L7交换机厂商,在不断完善对各类服务器应用的负载均衡的同时,也逐步在内核中引入安全防御的概念,并且通过F5特有的开放系统(提供i-Controller 构架下的API/SDK开发标准),联合业界著名的操作系统厂商、防火墙厂商、防病毒厂商、IDS/IPS厂商 、应用服务软件厂商,构筑起围绕服务器为核心的动态攻击防御系统。
当大数据流DoS/DDoS攻击进入的时候,服务器可能由于在瞬间接受超过服务器吞吐能力的数据流而直接导致系统崩溃,甚至导致数据丢失或客户资料遗失。而采用F5的BIG-IP保护服务器,通过EAV/ECV精确探测服务器的处理能力,从而在服务器处理能力饱和之前自动屏蔽新建链接。超过服务器吞吐能力的链接将在F5上处于waiting状态,直至有服务器空闲或TCP timeout。
与此同时,为进一步防止服务器遭受攻击过载,F5利用“iControl”技术可以帮助服务器通知网络,“此时忙,暂停服务”,然后,网络将停止再向它转发客户请求,而将客户请求继续转发至其它服务器,继续对客户应用请求提供服务。并且,服务器会同时通知3DNS,这个中心可用服务器数量减少一台,应相应减少对这个中心的客户服务请求量。当这台服务器完成所有数据记录的备份后,服务器又会通知BIGIP和3DNS,此时它已恢复正常,可以提供服务。这时,系统又恢复原有的正常状态。
对于DoS/DDoS攻击,F5对于常用的几种攻击手段,从内核级就予以屏蔽,具体实施如下:
1.Synflood:
该攻击以多个随机的源主机地址向目的主机发送SYN包,而在收到目的主机的SYN ACK后并不回应,这样,目的主机就为这些源主机建立了大量的连接队列,而且由于没有收到ACK一直维护着这些队列,造成了资源的大量消耗而不能向正常请求提供服务。
F5 的策略:
F5 采用特有的SYN proxy功能,所有与虚拟服务器建立HTTP SYN的请求均由F5代替服务器响应,F5并不将SYN请求发送到服务器。只有当用于响应了F5的ACK,并真正发送HTTP GET请求时,F5才与服务器建立链接并发送HTTP GET请求。所以普通的Synflood只会和F5通讯,无法攻击到服务器。而F5 能够轻松支持高达2,000,000个会话的吞吐能力,能够应付绝大多数攻击。而如果攻击数量超过F5的能力,F5 的Reaper功能将自动启动保护系统自身.
2.Ping of Death
根据TCP/IP的规范,一个包的长度最大为65536字节。尽管一个包的长度不能超过65536字节,但是一个包分成的多个片段的叠加却能做到。当一个主机收到了长度大于65536字节的包时,就是受到了Ping of Death攻击,该攻击会造成主机的宕机。
F5 的策略:
在F5上可以将虚拟服务器的ARP屏蔽,ICMP包系统根本不响应。其次,虚拟服务器的ICMP响应是由F5的管理进程提供响应,当管理进程繁忙时,系统会自动降低虚拟服务器的ICMP响应的优先级甚至不响应,而管理进程与服务器负载均衡是两个完全不同的进程,在F5上其内存和CPU使用时间是严格分离的,所以Ping of Death丝毫不会影响服务器负载均衡,也就是不会影响真正对外的服务响应端口。
3.IP欺骗DoS攻击
这种攻击利用RST位来实现。假设现在有一个合法用户(1.1.1.1)已经同服务器建立了正常的连接,攻击者构造攻击的TCP数据,伪装自己的IP为1.1.1.1,并向服务器发送一个带有RST位的TCP数据段。服务器接收到这样的数据后,认为从1.1.1.1发送的连接有错误,就会清空缓冲区中建立好的连接。这时,如果合法用户1.1.1.1再发送合法数据,服务器就已经没有这样的连接了,该用户就必须从新开始建立连接。 攻击时,伪造大量的IP地址,向目标发送RST数据,使服务器不对合法用户服务。
F5 的策略:
F5特有的SYN proxy功能,将TCP的SYN/ACK/SYN ACK三段握手作为判断合法用户的依据,同时所有的SYN/ACK/SYN ACK均不通服务器链接,只有当用户发送HTTP GET请求时再与选定的服务器建立链接,所以RST只是拆除与F5建立额链接,并不影响合法用户访问服务器。
4.带宽DoS攻击
如果黑客的连接带宽足够大而服务器又不是很大,黑客可以通过发送大量请求,来消耗服务器的缓冲区消耗服务器的带宽。这种攻击就是人多力量大了,配合上SYN一起实施DoS,威力巨大。
F5 的策略:
这种攻击发生时,从站点的路由器、交换机、防火墙到服务器的带宽均有可能被占满。所以如果发生该种攻击,首要的任务是通过EAV/ECV保护服务器不要溢出或崩溃。其次,采用F5的i-Control技术配合IDS、防火墙、交换机、服务器、路由器形成整个系统的联动来予以抵御攻击.
BIG-IP采用动态安全控制架构(DSCA)来实施、加强和加速应用和Web服务的安全交付。它是第一款能够自动对不断变化的安全威胁做出响应、采取措施并加强防范的安全解决方案,筑起了一道协调统一的安全防线,同时还提高了网络中其它安全产品的性能。在基于F5 开放式平台iContol之上,结合F5在业界诸多地合作伙伴,使用F5的API/SDK开发工具,就可以实现L4/L7交换机与入侵检测IDS的互动。由IDS实时检测攻击,当发现有黑客攻击行为时,IDS通过调用iControl的API/SDK动态调整F5上的iRules策略,使得系统能够屏蔽攻击数据的同时还能让合法用户访问服务器。