网络攻防小学期(一)网络侦查与取证分析

网络踩点、网络扫描、网络嗅探与协议分析

网络踩点

  • 查询IP地址的注册信息 whois 166.111.4.100
  • 通过域名查找IP地址 nslookup www.baidu.com
  • 通过域名查找注册信息 whois baidu.com
  • 根据IP地址查询地理位置 www.maxmind.com

网络扫描

Nmap

发现活跃主机

活跃主机指连接在网络上、处于运行状态且网络功能正常的计算机主机。如果对一台主机 进行扫描,只需要指定相应的 IP 地址或域名。如果同时扫描多台主机,可以用逗号分隔开各 主机的 IP 地址。如果 IP 地址是连续的,可以使用连字符号“-”,例如 192.168.1.1-100,或者 使用无类别域间路由(Classless Inter-Domain Routing, CIDR)地址块的方式来表示,例如 192.168.1.0/24(表示 IP 地址的前 24 位是固定的,即 IP 地址范围为 192.168.1.0~192.168.1.255)。 如果只是想在一个内部网络中发现活跃主机,可以使用-sn 选项。这个选项会使用 ICMP (Internet 控制报文协议)的 ping 来扫描网络中的主机,但不会进一步探测端口信息。如果是 在 Internet 环境中,可以使用-PU 选项对开放的 UDP 端口进行探测来发现活跃主机。例如,仅 探测 IP 地址范围为 166.111.69.50-166.111.69.70 的网络中的活跃主机,使用命令:

1
nmap -PU -sn 166.111.69.50-70

识别操作系统

1
nmap -O  166.111.69.60

扫描端口与识别服务

Nmap默认会对主机的TCP端口进行扫描,例如命令

1
nmap 166.111.69.66

Nmap的端口扫描功能很强大,可以通过选项来指定探测端口状态的方法

  • -sT:使用TCPconnect进行扫描,这是最基本的通过TCP连接来进行扫描的方式,很 容易被目标主机检测到并写入日志中。
  • -sS:使用 TCP SYN 进行扫描,这是默认且最受欢迎的方式,速度快且不容易被目标 主机检测到。
  • -sA:使用 TCP ACK 进行扫描,这种方式并不能探测出端口的开放状态,主要用于探 测防火墙对哪些端口进行了保护。
  • -sF/-sX/-sN:这几种扫描都会发送一些特殊的标志位以避开防火墙或包过滤软件的限 制。
  • -sU:扫描目标主机的UDP端口。

Nmap返回的端口扫描结果有6种可能的状态:

  • open:端口开放,有应用程序正在此端口上进行监听,接收TCP连接或UDP报文。
  • closed:该端口对Nmap探测作出了响应,但是没有应用程序监听此端口。
  • filtered:不能确认端口是否开放,Nmap的探测可能被防火墙或路由规则过滤。
  • unfiltered:当使用ACK扫描时,如果Nmap无法确定端口是否开放,就会把端口状态 归为 unfiltered。这时可以使用其它类型的扫描来确认端口的信息。
  • open|filtered:Nmap无法分辨端口处于open状态还是filtered状态,这种状态只会出现 在 open 端口对报文不做回应的扫描类型中。
  • closed|filtered:Nmap无法分辨端口处于closed状态还是filtered状态。

在 Nmap 中使用-sV 选项可以进一步识别端口的服务与版本。由于一些特定版本的服务通 常只会运行在特定的操作系统上,辨认服务与版本也会有助于更加准确地得到操作系统的类型。

网络嗅探与协议分析

Tcpdump

Tcpdump 是运行在 Linux 操作系统上的网络嗅探与数据包分析程序(在 Windows 操作系 统下有类似的 WinDUMP)。Tcpdump 有若干可选的命令行选项,其中主要的选项有:

  • -c 数量:抓取的数据包达到指定数量后自动退出。
  • -r 文件名:从文件中而不是网络中抓取数据包。
  • -w 文件名:将网络数据包保存到文件中。
  • -C 文件大小:设置保存文件时每个文件的大小(单位为百万字节)。
  • -i 网络接口:指定抓取数据的网络接口。如果不指定的话,则自动搜索系统已配置好 的编号最小的接口。
  • -s 数据包长度:设置抓取的数据包长度(单位为字节)。长度越大,Tcpdump 处理数 据包所花的时间越长,缓存的数据包数量越少,越容易引起丢包。建议设置为刚好容 纳所关注的协议数据包即可。

通常会为 Tcpdump 设置一个表达式来过滤数据包,只有满足表达式的数据包才被输出。 表达式可由一个或多个原子表达式组成,原子表达式的核心参数是一个名称或一个数字,在名 称或数字前可以有一个或多个修饰符。共有三类修饰符:

  • 类别修饰符:指明原子表达式核心参数的意义,可以是 host(主机)、net(网络)、 port(端口)和 portrange(端口范围),默认为 host。
  • 方向修饰符:指明数据包的传输方向,可以是 src(传输源)、dst(传输目标)、src or dst(传输源或传输目标)、src and dst(既是传输源也是传输目标),默认为 src or dst。此外,还有一些方向修饰符专用于 IEEE 802.11 无线网,或者其他链路层协议。
  • 协议修饰符:指明数据包所属协议,可以是 ether(以太网)、tcp、udp、ip、ip6 等等。

Wireshark

没什么好说的。