TCP三次握手包

在进行实验前,先梳理一遍TCP三次握手的过程,这个图是我本科学网络时画过不少于十遍的图,我觉得非常有纪念意义。

稍作解释,第一次握手,客户端发起请求连接,发送一个标志位为SYN的ip数据包,其中序列号随机;服务器端接收到客户端的连接请求,如果允许(一般都会允许),就会返回给客户端一个标志位为SYN和ACK的ip数据包,seq序列随机,ack为客户端发来序列号的下一个数字,即加1,这就是第二次握手;第三次握手,客户端接收到服务器端确认连接的数据包,然后再返回给服务器端一个确认数据包,标志位为ACK,值为接收的服务器端数据包seq序列加1。至此握手完毕,开始进行通信,即数据传输。其实第三次握手客户端就可以携带信息,在这里这个信息不重要。
本次实验,我是选用抓取和百度建立TCP连接的数据包:

1.首先设置过滤器为只查看HTTP协议,开始抓取数据包;在浏览器中输入百度的域名,回车后立即停止抓取:


如上图,抓取的前三个包即为三次握手的包。

2.紧接着分析这三个包:


转到封包详细信息的TCP属性栏,可以看到这是第一次握手,seq为0,该包的标志位为SYN。

这是第二次握手,它的标志位为SYN和ACK,ack为1(0+1),seq为0。

第三次握手,标志位为ACK,seq为1,ack为1(0+1)。

登录包

我所选的测试网站是www.onlylady.com,注册一个账号,然后退出,打开wireshark,开始抓包,进入网站输入登录名和密码,登录成功停止抓包。

这里的过滤规则为ip.src==192.168.245.128&&http。选择post提交包必然为登录过程所产生的包,因为登录得把用户名的密码post到网站服务器。

打开这个包的详细信息,很可惜它是直接明文传送。其实找了很多网站都没有加密传送的,我觉得有这样安全意识的网络管理员应该都改用https协议了。

Nmap扫描

这个实验我是自己搭建了一个IIS服务器,目的ip为192.168.245.131:

开放扫描:

这种扫描方式是使用connect()系统调用打开目标机上相关端口的连接,并完成三次TCP握手

半开扫描

半开扫描的原理是Nmap发送SYN包到远程主机,但是它不会产生任何会话,不需要通过完整的握手获得远程主机的信息,因此不会在目标主机上产生任何日志记录。

秘密扫描

秘密扫描的原理是向目标主机发送一个标志位为FIN的数据包,如果目标主机某端口返回一个RST数据包,则说明端口关闭,否则,端口开启。这种扫描方式对windows操作系统无效。由于我的靶机是windows2003,所以这个并不能测试。

UDP端口扫描

这种扫描技术用来寻找目标主机打开的UDP端口.它不需要发送任何的SYN包,因为这种技术是针对UDP端口的。UDP扫描发送UDP数据包到目标主机,并等待响应,如果返回ICMP不可达的错误消息,说明端口是关闭的,如果得到正确的适当的回应,说明端口是开放的。

总结

对于wireshark和nmap我是一个新手,还需要学的东西有很多。但是有一个疑问,那就是安全手段不断提高,wireshark会不会淘汰?试想目前大家都从http协议转https协议,而wireshark并不能识别https协议包中的详细信息,所以很大程度上限制了wireshark的功能。

【网络与系统安全】20179209 wireshark和nmap实验的更多相关文章

  1. wireshark和nmap

    原创博客,转载请注出处! 关于Wireshark和Nmap实验报告 Wireshark部分 一.捕获三次握手报并分析 如上图所示,简述三次握手流程: Step1.客户端由56780号端口向服务器443 ...

  2. 开源网络准入系统(open source Network Access Control system)

    开源网络准入系统(open source Network Access Control system) http://blog.csdn.net/achejq/article/details/5108 ...

  3. P2P网络借贷系统-核心功能-用户投标-业务解说

    用户投标是P2P网络借贷系统的核心功能.相对照较复杂,为了更好地梳理业务和技术实现思路,特地具体总结分析下. 输入:用户id-uid.标的id-lid.投标金额-amount 1.依据lid,获得贷款 ...

  4. P2P网络借贷系统简要解读

    P2P网络借贷系统的核心功能其实很简单,就是若干投资者(借款人)集体把钱贷给贷款人,到期后,贷款人把利息和本金按时还给借款人.平台的主要作用是"撮合",收取一定的服务费和管理费. ...

  5. P2P网络借贷系统-核心功能-用户投标-业务讲解

    用户投标是P2P网络借贷系统的核心功能,相对比较复杂,为了更好地梳理业务和技术实现思路,特地详细总结分析下. 输入:用户id-uid,标的id-lid,投标金额-amount 1.根据lid,获得贷款 ...

  6. IT增值服务-客户案例(三):合肥薪火科技,Java和P2P网络借贷系统开发指导

    客户整体情况: 合肥薪火科技,是安徽合肥一家主营微信开发和运营的中小企业,http://weimarket.cn/. 这家公司筹备.创立.曲折创业的经历,我一直有关注.因为2个老板,都是我的同学校友, ...

  7. Linux常用命令入门文件、网络、系统及其他操作命令

    Linux常用命令入门文件.网络.系统及其他操作命令.压缩 归档 文件系统 系统管理 用户管理  网络管理 finger 相关命令 netstat ping rsh telnet wget 进程管理等 ...

  8. 微软引入了两种新的网络过滤系统,WFP和NDISfilter

    Windows 8是微软公司推出的最新的客户端OS,内部名称Windows NT 80.相对于Windows NT 5.x,其网络结构变化非常大,原有的TDI,NDIS系统挂接方法不再适用.在Wind ...

  9. java网络考试系统的设计与实现 jsp 源码

    开发环境: Windows操作系统开发工具:MyEclipse/Eclipse + JDK+ Tomcat + MySQL 数据库 项目简介: 网络考试系统主要用于实现高校在线考试,基本功能包括:自动 ...

随机推荐

  1. 软件测试技术---Web应用软件测试

    从测试的角度看,Web应用软件的以下特点会导致Web应用软件的测试有别于其他软件的测试 1.基于无连接协议 2.内容驱动 3.开发周期短 4.演化频繁 5.安全性要求较高 6.美观性要求较高 Web应 ...

  2. 精通Hibernate——域对象之间的关系

    在域模型中.类之间存在四种关系 1.关联(Association) 类之间的引用关系,能够有一对一.一对多和多对多,比如customer与order之间就是一对多 public class Order ...

  3. vscode - 安装离线插件

    打开网站(示例): https://marketplace.visualstudio.com/items?itemName=oderwat.indent-rainbow 下载扩展 vscode 安装离 ...

  4. BZOJ 4216 Pig 分块乱搞

    题意:id=4216">链接 方法:分块以节约空间. 解析: 这题坑的地方就是他仅仅有3M的内存限制,假设我们开longlong前缀和是必死的. 所以考虑缩小这个long long数组 ...

  5. C# : 资源文件(多用于处理国际化)

    1.建立Resource文件夹,添加资源文件 处理国际化的问题,我们可以添加多个资源文件,如下就是添加一个中文的,一个英文的. 2.向其中添加键值对. 3.取值 CultureInfo uiCultu ...

  6. Linux系统防CC攻击自动拉黑IP增强版Shell脚本 《Linux系统防CC攻击自动拉黑IP增强版Shell脚本》来自张戈博客

    前天没事写了一个防CC攻击的Shell脚本,没想到这么快就要用上了,原因是因为360网站卫士的缓存黑名单突然无法过滤后台,导致WordPress无法登录!虽然,可以通过修改本地hosts文件来解决这个 ...

  7. jquery的push()

    JavaScript push() 方法 JavaScript Array 对象 定义和用法 push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度. 语法 arrayObject.pus ...

  8. lua学习笔记(十)

      模块与包  使用require加载模块     一个规范的模块应该返回一个table作为这个模块所有导出功能的集合     lua里没通过任何强制性语法规则要求创建模块时反回一个table     ...

  9. hbase和mapreduce开发 WordCount

    代码: /** * hello world by world 测试数据 * @author a * */ public class DefinedMapper extends Mapper<Lo ...

  10. 给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢? 输出需要删除的字符个数。

    // ConsoleApplication1.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> ...