- 博客(6)
- 资源 (23)
- 收藏
- 关注
原创 linux下端口扫描的实现(TCP connect、TCP SYN、TCP FIN、UDP四种方式)6 UDP扫描
一、原理给一个端口发送UDP报文,如果端口是开放的,则没有响应,如果端口是关闭的,对方会回复一个ICMP端口不可达报文(对应ICMP首部前两个字段:类型3 代码3)。这种方式扫描速度慢;不可靠(udp和icmp都是不可靠协议)。二、实现方式及遇到的问题每个扫描线程(udpIcmpScanPort)会建立一个线程池,对每个要扫描的端口都创建一个线程udpIcmpScanEach(线程
2013-12-27 15:58:44 3896 1
原创 linux下端口扫描的实现(TCP connect、TCP SYN、TCP FIN、UDP四种方式)5 TCP FIN方式
一、原理众所周知,当调用close()时要经历四次挥手的过程FIN-ACK-FIN-ACK.当我们发送FIN帧给一个非监听的端口时,会有RST应答,反之,发给一个正在监听的端口时,不会有任何回应。这种扫描方式速度快、隐蔽性好,但是不能用在windows系统中。二、实现方法及遇到的问题跟SYN扫描方式差不多,直接上代码吧。三、实现代码
2013-12-27 15:24:34 1956 3
原创 linux下端口扫描的实现(TCP connect、TCP SYN、TCP FIN、UDP四种方式)4 TCP SYN方式
1.原理众所周知,当调用connect()时要经历三次握手的过程SYN-SYN&ACK-ACK,而这种SYN扫描方式又叫半开放式扫描,即客户端只发送SYN帧,端口开放回应SYN&ACK帧,端口关闭回应RST帧,缺点就是不可靠,可能会丢包。2.实现方式及遇到的问题前面架构篇有讲过,每个扫描线程(tcpSynScanPort)会建立一个线程池,对每个要扫描的端口都创建一个线程tcpSynS
2013-12-25 19:09:59 4158 1
原创 linux下端口扫描的实现(TCP connect、TCP SYN、TCP FIN、UDP四种方式)3 TCP connect方式
1.原理前面原理篇有讲过,开放的TCP端口会等待客户端connect自己,所以我的客户端程序connect目标端口,根据返回值得不同判断对方是否开放了监听端口(connec()返回-1说明连接失败,则端口关闭;否则,成功,说明端口开放),扫面时间会比其他方式长,因为对于失败的端口不止connect一次。2.实现方式及遇到的的问题前面架构篇有讲过,每个扫描线程(tcpConScanPor
2013-12-25 15:24:52 2119 1
原创 linux下端口扫描的实现(TCP connect、TCP SYN、TCP FIN、UDP四种方式)2整体架构篇
一.概述该程序在linux下用c语言实现TCP的三种端口扫描方式(connect、SYN、FIN)和UDP端口扫描;我用一个函数数组存放四个实现函数,根据选择的端口扫描方式,在创建线程的时候选择不同的函数来执行,主线程挂起等待扫描线程结束,最后打印开放的端口。我用一个全局的队列来存放存在的指针,链表实现。除了connect方式,其它的方式需要知道源主机的ip,因此在创建扫描线程之前,先获得本机
2013-12-19 22:34:39 2744 7
原创 linux下端口扫描的实现(TCP connect、TCP SYN、TCP FIN、UDP四种方式)1 原理篇
常用的端口扫描方式有以下三种:1.connect扫描我们知道,常见的TCP的socket实现过程为更本质的连接和结束的过程是如下这个样子的:从上面两个图我们可以看出来目标主机的一个端口如果是监听状态(LISTENING或者LINSTEN),那么当我connect目标主机时就能成功,否则说明端口是关闭的。优点: 编程简单,是需要一个API connect(),比较可靠
2013-12-19 21:28:30 14469
人民银行招考资料(2021年最新版)
2020-10-09
python网络编程书籍和配套代码
2016-07-21
fences 2.1破解版
2016-06-26
PYTHON高分入门书合集
2015-09-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人