端口扫描 - Scapy

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

0x00:简介

scapy 除了之前在二层三层四层做发现外,也可以用来扫描端口。

0x01:scapy udp 端口扫描

先说一下 scapy 根据 udp 来发现端口的原理,首先,要扫描端口的主机是在线的,可以通过之前各层的发现技术去发现目标主机是否在线。

发送 udp 包如果一个机器收到后,端口在没有开放的情况下会返回一个 icmp 包,提示端口不可达。如果端口开放的话,则没有任何返回信息,因为 udp 不像 tcpudp 是没有返回信息的。所以可以根据这个来判断端口是否开放。

scapy 使用 udp 检测端口开放和不开放的结果对比如下:

请输入图片描述

53 是开放的,54 是没有开放的,可以看到 53 没有返回任何信息,54 的 icmp 包里返回了 port-unreachable 端口不可达的信息。上面是单个端口的发现,可以借助 python 写一个脚本用来批量发现端口号。

#!/usr/bin/python
# -*- coding:UTF-8 -*-
import logging
logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
from scapy.all import *
import time
import sys

if len(sys.argv)!=4:
    print "使用示例:./scapy-udp.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)/UDP(dport=port),timeout=5,verbose=0)
    time.sleep(1)
    if a == None:
        print port
    else:
        pass

脚本首先需要接收 3 个参数,第一个是要检测的 ip 地址,第二个是开始的端口号,第三个是结束的端口号。然后通过 for 循环这些端口号给 scapy 进行发送 udp 包,最后根据返回的结果来判断目标端口是否在线。

time.sleep 的作用是停止 1 秒钟,怕脚本执行太快,造成结果不准确,缺点就是会慢一点。

执行结果如下:

请输入图片描述

通过 wireshark 抓包如下:

请输入图片描述

0x02:总结

scapy 因为可以构造很多的类型数据包,所以可以用来在二层、三层、四层去发现主机是否在线,也可以去发现目标的端口是否在线。


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

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

                                                                          


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

相关文章

Asp.Net MVC 学习心得 之 View

一、使用View Data 首先要在Controller里加代码&#xff1a; public class ProductController : Controller{//// GET: /Product/public ActionResult Index(){ViewData["Message"] "Hello World";return View();}} 然后在View里添加代码&#xff1a; <…

原HP中国总裁孙振耀出山 任扬智、海辉董事长?

去年辞去惠普中国总裁一职的孙振耀&#xff0c;简直成了IT业职场的“香饽饽”。 昨天&#xff0c;联发科旗下著名芯片设计企业扬智科技(下称“扬智”)发布公告说&#xff0c;董事长蔡明介因公务繁忙将辞去董事长一职&#xff0c;新任董事长将改由孙振耀担任。 也是挑战 孙振…

UDP 端口扫描 - Nmap

0x00&#xff1a;简介 nmap 在二层做主机发现时使用的参数是 sn&#xff08;ping 扫描&#xff0c;不做端口扫描&#xff09;。在三层做主机发现时也是使用的 sn 参数&#xff0c;这里二三层都用的 sn 参数&#xff0c;而具体使用的是二层协议 arp 还是三层协议 icmp&#xff…

李阳英语365句

1.Absolutely. (用于答话&#xff09;是这样;当然是;正是如此;绝对如此。 2.Absolutely impossible! 绝对不可能的&#xff01; 3.All I have to do is learn English. 我所要做的就是学英语。 4.Are you free tomorrow? 你明天有空吗? 5.Are you married? 你结婚了吗&#…

端口扫描 - Scapy - 隐蔽扫描

0x00&#xff1a;简介 端口扫描可分为三种&#xff0c;分别是隐蔽扫描、全链接扫描、僵尸扫描。 隐蔽扫描&#xff1a;像服务器发起的请求不会经历完整的三次握手&#xff0c;首先会向目标服务器进行第一次握手&#xff0c;发送一个 SYN 包&#xff0c;然后根据服务器返回的 …

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

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

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

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

端口扫描 - Nmap - 隐蔽扫描

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