端口扫描 - Scapy - 隐蔽扫描

news/2024/5/17 16:46:10 标签: scapy, udp, tcp, kali, icmp

0x00:简介

端口扫描可分为三种,分别是隐蔽扫描、全链接扫描、僵尸扫描。

隐蔽扫描:像服务器发起的请求不会经历完整的三次握手,首先会向目标服务器进行第一次握手,发送一个 SYN 包,然后根据服务器返回的 flags 来判断目标端口是否开放,flags 如果返回了 SA(SYN/ACK)则代表端口开放,SA 这个是正常的第二次握手,如果返回的是 RA(RSTS/ACK),则代表端口不开放,RA 是目标服务器没有正常返回的意思。当自己收到第二次握手返回的信息后,就已经可以确认端口开放情况,所以就不再向目标发送第三次的确认包 ACK 了,因为不完整,缺少第三次的确认,所以称为隐蔽扫描。

0x01:scapy tcp 隐蔽扫描

因为隐蔽扫描需要建立握手,所以协议是 tcpscapy 命令如下:

请输入图片描述

53 是开放的,flags 返回的是 SA,54 是没有开放的,flags 返回的是 RA。

结合 python 批量发现脚本如下:

#!/usr/bin/python
import logging
logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
from scapy.all import *

if len(sys.argv)!=4:
    print "tip:./scapy-tcp.py 1.1.1.1 1 100"
    sys.exit()

ip=sys.argv[1]
start=int(sys.argv[2])
end=int(sys.argv[3])

for port in range(start,end):
    a=sr1(IP(dst=ip)/TCP(dport=port),timeout=1,verbose=0)
    if a == None:
        pass
    else:
        if int(a[TCP].flags)==18:
            print port
        else:
            pass

脚本三个参数,分别是目标 ip,其实端口和结束端口。然后遍历端口给到 scapy 进行检测,最后根据返回的 flags 信息来判断端口是否开放,脚本中是判断值是否为 18,18 带表的是 SA,如果不等于 18,则代表只要返回不是 SA 的,都没有开放。18 之所以等于 SA,首先看一下 tcp 包头返回 syn/ack 的 wireshark 抓包情况:

请输入图片描述

数据包里的 flags 从下网上数位数分别为 1,2,4,8,16,32,64……,16+2 为 18,也就是 syn 段和 acknowledgment 段,这两位的值都为 1 时,则代表 flags 为 SA。

再来看下 RA 的情况,如下图:

请输入图片描述

4 位 reset 段值为 1,16 位 acknowledgment 段值为 1,也就是 RA,16+4 为 20,不为 18。这就是脚本中为什么通过 flags==18 来判断端口是否开放。

最后来看下脚本的扫描结果:

请输入图片描述

0x02:拓展

先来看一个情况,用 scapy 发现单个端口,执行结果如下图:

请输入图片描述

tcp 包头里的 flags 为 SA, 通过 wireshark 抓包如下:

请输入图片描述

可以发现,wireshar 抓的包再收到 syn/ack 后有一个返回包 RST。这个包不是 scapy 产生的,而是系统内核回的。流程是这样的:scapy 向目标服务器发送了 SYN,目标服务器返回了 SYN/ACK,这时自己的机器平白无故的接收了个 SYN/ACK,很是郁闷,所以会直接返回 RSTS。

0x03:总结

到目前位置,scapy 记录了其通过修改包头类型来发送不同的协议,以此来实现一些发现端口发现主机的工作。二层用 arp,三层用 icmp,四层用 udptcp,端口 udp 根据返回信息端口不可达来判断,端口 tcp 根据 flags 返回信息 SA 和 RA 来判断。


                                                                           公众号推荐:aFa攻防实验室

                         分享关于信息搜集、Web安全、内网安全、代码审计、红蓝对抗、Java、Python等方面的东西。

                                                                             


http://www.niftyadmin.cn/n/1148044.html

相关文章

美军“黑客”部队初具作战规模

私营企业“扮主角” 负责制定此次演习预案的官员雷特顿透露说,今年的演习一定会让参演各方忙得“来不及喝水”,演习的紧张程度不逊于电视连续剧《反恐24小时》。雷特顿还透露,为让本次演习的预案更真实,来自政府和高科技信息公司…

(轉貼) 新竹夜市小吃平面圖 (美食)

Referencehttp://blog.bodhi.tw/article.asp?id197

端口扫描 - Nmap - 隐蔽扫描

0x00:简介 除了使用 scapy 的 tcp 包根据返回了 flags 来判断端口是否开放外,nmap 也可以去做端口扫描,隐蔽扫描主要用到的参数是 sS,如果不加 sS 参数,nmap 默认也会使用 tcp 去发 SYN 来根据返回的结果做判断。nmap…

自4月1日起阿里妈妈网络广告交易免费

昨日,阿里巴巴集团旗下子公司阿里妈妈宣布,自4月1日起,在阿里妈妈网站上产生的C2C包时长广告交易全部免费,阿里妈妈将取消此前8%的技术服务费,同时,用户将能够免费使用阿里妈妈的广告投放和效果评估系统。 …

[OTs]New Start @ CSIP

lets check out the routemap provided by google map servicevery cool , right:)

端口扫描 - hping3 - 隐蔽扫描

0x00:简介 hping3 通过 syn 包来进行端口扫描,设计的参数有:--scan 和 - S,scan 代表开始扫描模式,S 代表 syn 包检测。 0x01:hping3 syn hping3 端口书写格式和 nmap 几乎一样,首先是单个端…

.com/.net域名注册费10月提高 近增0.4美元

3月28日消息,本周四晚些时候,VeriSign宣布将从10月1日起提高.com和.net域名的注册费用。 据国外媒体报道称,VeriSign表示,.com域名的注册费用将由6.42美元增长到6.86美元,.net域名的注册费用将由3.85美元增长到4.23美…

端口扫描 - scapy - 全链接扫描

0x00:介绍 端口扫描分为隐蔽扫描、全链接扫描、僵尸扫描。 全链接扫描:隐蔽扫描是直接发的 syn 包,只进行第一次握手,通过返回的信息判断端口是否开放。全链接扫描顾名思义,像正常的请求一样去访问目标服务器&#x…