首页 置换 选车 估价 问答 生活 经销商 车管所 汽车资讯 汽车销量 车牌查询 今日油价 天气预报
您的位置: 首页 > 生活 > 生活 > 端口扫描有什么用处(端口扫描方式有哪一些)
端口扫描有什么用处(端口扫描方式有哪一些)
更新时间:2024-07-02 17:37:02

这篇文章我们来了解端口扫描的相关内容,下文讲给大家介绍nmap探测端口、masscan探测端口、socket探测端口、telnet探测端口、nc探测端口这五种端口扫描方式。感兴趣的朋友就继续往下看吧!

事件原由

笔者在写一个小工具,针对渗透测试中需要搜集的信息,使用脚本自动化采集。而在这个模块中有个很难搞的部分就是端口banner 信息搜集,起初我尝试使用了python nmap 多线程扫描,扫描20 的ip,等的花都谢了。。。而笔者目标是扫描200 的ip。下面我就针对端口扫描的技术进行分析。

1、nmap探测端口

nmap在扫描多个主机的时候可以设置参数 --min-hostgroup ,设置这个参数可以并行扫描多个主机,将这些主机划分成组,然后一次扫描一个组。

举例:

--min-hostgroup 50 nmap 以50个主机为一组,在扫描完50个主机之前不会显示结果。

#coding=utf-8 import nmap from queue import Queue from threading import Thread def portscan(ip): portlist = [] nm = nmap.PortScannerYield() for r in nm.scan(ip,ports='1-10000',arguments='-sS --min-hostgroup'): m = r[1]['scan'][ip]['tcp'] for p in m: temp = str(p) "----" m[p]['state'] portlist.append(temp) print(portlist) class Consumer(Thread): def __init__(self, q): Thread.__init__(self) self.q = q def run(self): while not self.q.empty(): ip = self.q.get() try: portscan(ip) except Exception as e: print(e) continue def producer(ip_list): num = 10 threads = [] q = Queue() for i in ip_list: print(i) q.put(i) threads = [Consumer(q) for i in range(0,int(num))] for t in threads: t.start() for t in threads: t.join() ip_list =['120.78.207.76', '120.78.207.231', '120.78.207.18', '120.78.207.233', '120.78.207.165', '120.78.207.48', '120.78.207.112', '120.78.207.27', '120.78.207.51', '120.78.207.8'] producer(ip_list)

端口扫描有什么用处(端口扫描方式有哪一些)1

如图,运行10个ip需要318s。

2、masscan探测端口

(1)调用python masscan

默认情况下,masscan 发送的是syn数据包,如果目标主机返回ack syn,则说明端口开放。具体流程如下

A:192.168.70.142

B:192.168.0.143 开放端口3306

(1)A->B SYN

(2)B->A syn ack

(3)A->B RST

端口扫描有什么用处(端口扫描方式有哪一些)2

探测未开放的端口

A->B syn

B->A rst

端口扫描有什么用处(端口扫描方式有哪一些)3

举例:

def portscan(ip): mas = masscan.PortScanner() mas.scan(ip,ports='1-65535') print(mas.scan_result)

使用系统命令探测

使用方法

扫描扫描443端口的B类子网 Masscan 10.11.0.0/16 -p443 扫描80或443端口的B类子网 Masscan 10.11.0.0/16 -p80,443 扫描100个常见端口的B类子网,每秒100,000个数据包 Masscan 10.11.0.0/16 --top-ports 100 -rate 100000 结果输出 -oX filename:输出到filename的XML。 -oG filename:输出到filename在的grepable格式。 -oJ filename:输出到filename在JSON格式。

3、socket探测端口

socket 探测端口发送的不是完整的三次握手包如下,

A:192.168.70.142

B:192.168.0.143 开放端口3306

A接收到B返回的syn ack数据包后,A把数据丢弃。

端口扫描有什么用处(端口扫描方式有哪一些)4

探测不开放端口

A发送syn,B没有开放33端口,所以返回RST数据包。

端口扫描有什么用处(端口扫描方式有哪一些)5

def portscan(ip,port): try: s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.settimeout(0.2) status = s.connect_ex((ip,port)) if status == 0: temp_str = str(ip) "---" str(port) "---open" port_list.append(temp_str) else: pass except Exception as e: pass finally: s.close()

端口扫描有什么用处(端口扫描方式有哪一些)6

探测10个ip花费了26.3s差不多一个2.6s。

4、telnet探测端口

telnet 探测端口采用完整的三次握手连接,使用命令 telnet ip port ,发包流程如下

A:192.168.70.142

B:192.168.0.143 开放端口3306

telnet 192.168.0.143 3306

过程如下:

使用TCP三次握手建立连接: SYN -> SYN ACK ACK

端口扫描有什么用处(端口扫描方式有哪一些)7

探测不存在端口,发送SYN数据包,然后RST包丢弃。

端口扫描有什么用处(端口扫描方式有哪一些)8

如果有返回值,则说明端口开放,否则则端口关闭。

def portscan(ip,port): try: t = telnetlib.Telnet(ip,port=port,timeout=0.2) if t: temp_str = str(ip) '---' str(port) port_list.append(temp_str) except Exception as e: print(e) pass

端口扫描有什么用处(端口扫描方式有哪一些)9

探测10个ip花费了27.8s差不多一个2.7s。

5、nc探测端口

nc探测端口采用完整的三次握手连接,使用命令 nc -v -w 1 -z ip port,发包过程和telent 探测一样。

探测开放端口的数据包

端口扫描有什么用处(端口扫描方式有哪一些)10

探测未开放端口的数据包

端口扫描有什么用处(端口扫描方式有哪一些)11

端口开放,返回值为0,可以依此作为判断依据。

def portscan(ip,port): command = 'nc -v -w 1 -z {0} {1}'.format(ip,port) m = os.system(command) if m == 0: temp_str = str(ip) "---" str(port) port_list.append(temp_str) else: pass

端口扫描有什么用处(端口扫描方式有哪一些)12

备注:比如你想探测某个指定的端口开放情况,推荐使用nc。

总结

nmap 作为扫描端口的神器,扫描出的结果比其他几种方式要详细。如果追求效率的话,建议采用socket。相比于nmap,socket会存在漏报情况,笔者在测试某主机时,nmap扫出了8888端口,但是socket没有。

现在大家对于的几种常见方式应该都有所了解了,希望大家阅读完这篇文章能有所收获。最后,如果想要了解更多安全知识可以关注笔者。

文本转载自PHP中文网

,
相关推荐RECOMMEND
不会说话的人如何快速学会说话(真正会说话的人)
01你有没有想过,“情商”二字,拆开来看,就是“情”和“商”。从某种角度,可以这样理解,用情感来体现自己的智商,找到商业的机遇,创造商量的机会。常言道:“所谓情商高,就是会说话。”良好的沟通能力,可以...
情商高的聊天对话两个字(情商高的聊天语句)
情商高的人说话都有四个特点一、万事看透不说透,但能把事情做透生活中,有很多事情都是只能自己看明白就够了,如果把心里话说出来,两边都不讨好。毕竟你一个外来的人员的都看得清的事情,他们看不到吗?会不理解吗...
中考必考题型及技巧(中考前最后冲刺)
距离2018年中考已经没有几天了,在最后冲刺的这段时间里,如何安排复习才能充​​分的把这段时间利用起来,刷题复习易错题是一方面,还要注意这些!水能提神1.中考前最后这几天,要保持充分的良好状态,把握时...
电商的运营的几个步骤(电商行业中的3种运营)
电商的运营的几个步骤?随着电商的发展,电商行业的运营被越来越多的人所青睐,因为运营的门槛很低,一般只要有一台电脑,经过一段时间的培训,成为初级运营是相对比较简单的,运营是有套路的,今天小编就来聊一聊关...
办公监控网络规划(小型企业办公室无线监控网络一体化解决方案)
背景分析小型企业办公室一般集中在商业写字楼中,出入人口多且复杂,使用监控网络提升安全防范和管理尤为重要。而对于企业办公来说,高速、稳定、安全的网络覆盖必不可少,内网共享、行为管理、移动办公、即时演示等...
罗马战士加点(为个性化元素而战)
各位指挥官,让敌人拜倒在荣耀罗马军队面前吧!1.11.1版本更新后,四台VII级至X级的强大I系重坦加入了游戏。为了帮助您更快地熟悉这些全新坦克的玩法,我们为“标准模式”(包括“战役模式”)设计了特殊...