Kali学习笔记10:端口扫描详解(下)
上一篇先是介绍了UDP的端口扫描,又谈了TCP的不完全连接端口扫描
https://www.cnblogs.com/xuyiqing/p/9389276.html
接下来我们看看TCP的全连接端口扫描:
SYN扫描在网络环境非常复杂的情况下,无法正常工作,于是我们可以使用全连接扫描
即完整地建立三次握手
由于全连接,那么扫描结果相当准确,但是隐蔽性最低,容易被发现
具体的实现和上文介绍的不完全连接类似:
这里直接放脚本:
tcp_scan1.py:
这里简化下脚本,我明确知道要扫描的IP和端口:
#!/usr/bin/python
import logging logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
from scapy.all import * response = sr1(IP(dst="192.168.22.129") / TCP(dport=80, flags="S"))
reply = sr1(IP(dst="192.168.22.129") / TCP(dport=80, flags="A", ack=(response[TCP].seq + 1)))
写好之后直接执行即可:

我们可以抓包来看:

这里前两个包正常发送接收,第三个RST包是Linux内核自动发送的RST,要中断连接
第四个包:强行发送ACK建立连接,最后一个包直接回RST因为要拒绝"莫名其妙"的连接
于是我们可以发现:这里并不是正确的一个三次握手的过程,因为操作系统内核的自动中断连
接下来,修改得到一个相对完善的脚本:
tcp_scan2.py:
#!/usr/bin/python
import logging logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
from scapy.all import * SYN = sr1(IP(dst="192.168.22.129") / TCP(dport=80, flags="S")) print("- -SENT- -")
SYN.display() print("\n\n- -RECEIVE- -")
response = sr1(SYN, timeout=1, verbose=0)
response.display() if int(response[TCP].flags) == 18:
print("\n\n- -SENT- -")
A = sr1(IP(dst="192.168.22.129") / TCP(dport=80, flags="A", ack=(response[TCP].seq + 1)))
A.display()
print("\n\n- -RECEIVE- -")
response2 = sr1(A, timeout=1, verbose=0)
response2.display()
else:
print("SYN-ACK NOT RETURNED")
至于这里的flags==18在上文中已经说过
如果脚本是从windows移过来的:
vi tcp_scan2.py
:set fileformat=unix
:wq
chmod u+x tcp_scan2.py
./tcp_scan2.py
运行抓包发现还是存在着上边提到的问题而无法建立连接:
Linux操作系统内核自动回复的RST包中断连接
那么有没有方法能解决呢?
有的,直接配置IPTABLES:对于特点IP禁用出口RST

这时候执行发现建立了三次握手
我们发现拐了这么多弯才能够实现一个全连接扫描
有没有简单点的方式呢?有的,使用强大的Nmap:
-sT参数
直接输入ip效果是扫描1000个默认端口

指定范围端口也可以:

可以发现,速度是非常的快的,结果也比较完善
除了强大的Nmap,还有一些其他的工具,比如:

这个工具只能实现一些功能,相比于Nmap,优劣显而易见
还有一个小工具,也可以了解下:

还有一种奇妙的方式:僵尸扫描,不过很复杂,在下一篇专门介绍
端口扫描就介绍到这里,扫描完端口,接下来就是针对端口的服务扫描,将在后边介绍
Kali学习笔记10:端口扫描详解(下)的更多相关文章
- IP2——IP地址和子网划分学习笔记之《子网掩码详解》
2018-05-04 16:21:21 在学习掌握了前面的<进制计数><IP地址详解>这两部分知识后,要学习子网划分,首先就要必须知道子网掩码,只有掌握了子网掩码这部分内容 ...
- Kali学习笔记9:端口扫描详解(上)
UDP端口扫描: 原理:回应ICMP不可达,代表端口关闭:没有回应,端口开启 建议了解应用层的UDP包头结构,构建对应的UDP数据包用来提高准确度 另外:所有的扫描都存在误判情况 我们用Scapy写个 ...
- [读书笔记]C#学习笔记三: C#类型详解..
前言 这次分享的主要内容有五个, 分别是值类型和引用类型, 装箱与拆箱,常量与变量,运算符重载,static字段和static构造函数. 后期的分享会针对于C#2.0 3.0 4.0 等新特性进行. ...
- CDN学习笔记二(技术详解)
一本好的入门书是带你进入陌生领域的明灯,<CDN技术详解>绝对是带你进入CDN行业的那盏最亮的明灯.因此,虽然只是纯粹的重点抄录,我也要把<CDN技术详解>的精华放上网.公诸同 ...
- C#学习笔记二: C#类型详解
前言 这次分享的主要内容有五个, 分别是值类型和引用类型, 装箱与拆箱,常量与变量,运算符重载,static字段和static构造函数. 后期的分享会针对于C#2.0 3.0 4.0 等新特性进行. ...
- 【Java学习笔记之三十三】详解Java中try,catch,finally的用法及分析
这一篇我们将会介绍java中try,catch,finally的用法 以下先给出try,catch用法: try { //需要被检测的异常代码 } catch(Exception e) { //异常处 ...
- jQuery学习笔记之Ajax用法详解
这篇文章主要介绍了jQuery学习笔记之Ajax用法,结合实例形式较为详细的分析总结了jQuery中ajax的相关使用技巧,包括ajax请求.载入.处理.传递等,需要的朋友可以参考下 本文实例讲述了j ...
- MyBatis学习笔记2--配置环境详解
1.MyBatis-config.xml详解 一个完整的配置文件如下所示 <configuration> <!-- <properties resource="jdb ...
- [Spring学习笔记 5 ] Spring AOP 详解1
知识点回顾:一.IOC容器---DI依赖注入:setter注入(属性注入)/构造子注入/字段注入(注解 )/接口注入 out Spring IOC容器的使用: A.完全使用XML文件来配置容器所要管理 ...
随机推荐
- Element transfer 两边数据(左右)的显示问题?
本仙今天遇到这个穿梭框的问题 这个是我前几天刚换的(原来用的是iview的,换成了element ) 别问我为什么,用过iview的都知道 转入正题 问题:从后台获取的数据全部都显示在了我的左边框中 ...
- JavaScript初见
警告alert() 确认confirm() 提问prompt() 空格 JavaScript-打开新窗口(window.open) open() 方法可以查找一个已经存在或者新建的浏览器窗口. 语法: ...
- BCode解码练习
在学习BT协议中的一个小练习 参考了 https://github.com/airtrack/bitwave 具体B编码解释 可以自行搜索或者参考 这篇文章 bittorrent 学习(一) 种子文件 ...
- PAT A1010.Radix 二分法
PAT A1010.Radix 链接: https://pintia.cn/problem-sets/994805342720868352/problems/994805507225665536 算法 ...
- list对象中根据两个参数过滤数据
list对象中根据两个参数过滤数据 List<demo> list = new List<demo>() { ,b=,c=,d= }, ,b=,c=,d= }, ,b=,c=, ...
- ----constructor 与 object----
CONSTRUCTOR constructor是一种特殊的object,同样是用来创建和声明一个类 语法规则: constructor([arguments]) { ... } 注意: 1.在类中,只 ...
- linux下maven的安装
上传安装包到相应路径 进行解压 tar -zxvf apache-maven-3.0.5-bin.tar.gz -C /export/servers/ 修改环境变量 vim /etc/profile ...
- 利用canvas实现刮刮乐效果
最近做了个情人节表白的项目,表白内容时被遮盖的,刮开后才能显示,并且刮开一定比例后清空所有遮罩. function guaguale(obj,w,h){//obj时canvas元素 var canva ...
- java -version显示版本和JAvA_HOME配置不一样
当你需要安装多个版本的jdk时,可能会遇到更改了JAVA_HOME后java -version不变的情况. 一般情况下,将你的JAVA_HOME改为你要用的jdk的安装路径,然后你使用的就是这个版本的 ...
- affiliate的使用方式
什么是affiliate https://www.zhihu.com/question/24262490 通俗的理解就是,我们寻找合作伙伴,让合作伙伴帮忙做宣传,我们会根据他们的宣传力度发放相关的奖励 ...