您的位置:首页 > 理论基础 > 计算机网络

网络扫描与监听---网络与系统安全实验

2017-10-22 21:25 666 查看

网络扫描与监听

一、wireshark的使用

1、wireshark的简介

Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是截取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPcan作为接口,直接与网卡进行数据报文交换。

2、wireshark常见的用途

1). 网络管理员会使用wireshark来检查网络问题

2). 软件测试工程师使用wireshark抓包,来分析自己测试的软件

3). 从事socket编程的工程师会用wireshark来调试

4). 听说,华为,中兴的大部分工程师都会用到wireshark。

总之跟网络相关的东西,都可能会用到wireshark.

3、WinPcan简介

winpcap(windows packet capture)是windows平台下一个免费,公共的网络访问系统。开发winpcap这个项目的目的在于为win32应用程序提供访问网络底层的能力。它用于windows系统下的直接的网络编程。wireshark基于winpcap处理网络驱动层。winpcap是底层的,在window上wireshark是依赖于winpcap截包的

4、wireshark的基本界面



5、两种过滤器

过滤器有两种,
一种是显示过滤器,就是主界面上那个,用来在捕获的记录中找到所需要的记录
一种是捕获过滤器,用来过滤捕获的封包,以免捕获太多的记录。在Capture -> Capture Filters中设置



6、封包详细信息图解




7、三次握手

1)、tcp报文图解






2)tcp三次握手






捕获的三次握手过程






8、四次分手





9、wireshark捕获登陆过程的密码



这里我捕获的是网站http://2017xfd.teamlogs.com/login,一个协作多人共建工作日志的一个网站。



这里我捕获之后通过了初步筛选与IP:198.74.99.90之间的通信发现了其使用明文传送信息。

二、Nmap端口扫描

1、Nmap简介

   Nmap是一款网络扫描和主机检测的非常有用的工具。Nmap是不局限于仅仅收集信息和枚举,同时可以用来作为一个漏洞探测器或安全扫描器。可用于:检测活在网络上的主机(主机发现)检测主机上开放的端口(端口发现或枚举)检测到相应的端口(服务发现)的软件和版本检测操作系统,硬件地址,以及软件版本检测脆弱性的漏洞(Nmap的脚本)Nmap是一个非常普遍的工具,它有命令行界面和图形用户界面。

 

2、端口端口一般是有下面这几种状态的



3、扫描的基本思想



4、常用的一些指令

(1)扫描指定的端口

nmap -n --open -p 11211 X.X.X.X/24

(2)扫描指定网段的远程桌面连接端口

nmap -sT -p3389 218.206.112.0/24

(3)使用nmap来扫描端口UDP 

nmap -sU 202.96.128.86 -p 53 -Pn

(4)进行安全检测 

nmap -v -A 219.129.216.156

(5) 仅列出指定网络上的每台主机,不发送任何报文到目标主机:

nmap -sL192.168.1.0/24 

(6) 探测目标主机开放的端口,可以指定一个以逗号分隔的端口列表(如-PS22,23,25,80): 

 nmap -PS192.168.1.234 

(7)使用UDP ping探测主机: 

 nmap -PU192.168.1.0/24 

(8)使用频率最高的扫描选项:SYN扫描,又称为半开放扫描,它不打开一个完全的TCP连接,执行得很快: 

 nmap -sS192.168.1.0/24 

(9)当SYN扫描不能用时,TCP Connect()扫描就是默认的TCP扫描:

nmap -sT192.168.1.0/24 

(10)UDP扫描用-sU选项,UDP扫描发送空的(没有数据)UDP报头到每个目标端口: 

nmap -sU192.168.1.0/24 

(11)确定目标机支持哪些IP协议 (TCP,ICMP,IGMP等): 

 nmap -sO192.168.1.19 

(12)探测目标主机的操作系统: 

nmap -O192.168.1.19 
  nmap -A 192.168.1.19 

其他的常见命令

输出命令

-oN 文件名 输出普通文件

-oX 文件名 输出xml文件

错误调试:

--log-errors 输出错误日志

--packet-trace 获取从当前主机到目标主机的所有节点

5、常见的几种端口扫描

1)、TCP扫描(-sT)

这是一种最为普通的扫描方法,这种扫描方法的特点是:扫描的速度快,准确性高,对操作者没有权限上的要求,但是容易被防火墙和IDS(防入侵系统)发现

运行的原理:通过建立TCP的三次握手连接来进行信息的传递

① Client端发送SYN;

② Server端返回SYN/ACK,表明端口开放;

③ Client端返回ACK,表明连接已建立;
④ Client端主动断开连接。

 


2)、SYN扫描(-sS)

这是一种秘密的扫描方式之一,因为在SYN扫描中Client端和Server端没有形成3次握手,所以没有建立一个正常的TCP连接,因此不被防火墙和日志所记录,一般不会再目标主机上留下任何的痕迹,但是这种扫描是需要root权限(对于windows用户来说,是没有root权限这个概念的,root权限是linux的最高权限,对应windows的管理员权限)

运行的原理图如下:

 


3)、NULL扫描

NULL扫描是一种反向的扫描方法,通过发送一个没有任何标志位的数据包给服务器,然后等待服务器的返回内容。这种扫描的方法比前面提及的扫描方法要隐蔽很多,但是这种方法的准确度也是较低的,主要的用途是用来判断操作系统是否为windows,因为windows不遵守RFC 793标准,不论端口是开启还是关闭的都返回RST包



但是虽然NULL具有这样的一些用处,但是

1、NULL方法的精确度不高,端口的状态返回的不是很准确

2、要获取目标主机的运行系统,可以使用参数(-O),来获取对于一些操作系统无法准确判断的,可以加上参数(-osscan-guess)

3、NULL扫描易被过滤

 

4)、FIN扫描

FIN扫描的原理与NULL扫描的原理基本上是一样

 

5)、ACK扫描

ACK扫描的原理是发送一个ACK包给目标主机,不论目标主机的端口是否开启,都会返回相应的RST包,通过判断RST包中的TTL来判断端口是否开启

运行原理图:



TTL值小于64端口开启,大于64端口关闭

大致上主要的扫描方法就是这些,除了我们可以按照这样些参数去执行扫描外,还可以自己定义一个TCP扫描包

三、Nmap扫描,wireshark捕包分析

1、使用tcp扫描百度(www.baidu.com

得到的反馈是80和443端口开放

 


2、  使用wireshark捕包

可以看到大量的包被捕获,说明nmap扫描了多次。



3、  分析

可以看到大量的包是没有得到回应的,说明这些端口都是不开放的。而开放的端口80的来往记录是符合下面图示的过程




 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息