Bootstrap

【计算机网络安全】信息收集&扫描

实验一    信息收集&扫描

实验人员:第五组全体成员

一、实验目的:

1:熟悉kali系统常用命令及基本配置。

2:掌握两种操作系统(Windows、kali)的信息收集方式。

3:熟悉whois和nmap命令的使用。

二、实验原理、设计(+拓扑):

1:实验原理

【1】端口扫描

端口扫描的原理可分为以下三种,分别是全连接扫描(connect)、半连接扫描(syn)、隐蔽扫描(fin)。

全连接扫描,端口开放时的连接建立过程,如下图所示。

全连接扫描,端口关闭时的连接建立过程,如下图所示。

半连接扫描,端口开放时的连接建立过程,如下图所示。

半连接扫描,端口关闭时的连接建立过程,如下图所示。

隐蔽扫描,端口开放时的连接建立过程,如下图所示。

隐蔽扫描,端口关闭时的连接建立过程,如下图所示。

【2】APT软件包管理工具

APT通过与软件源配合,可以直接从互联网上下载软件安装包并安装。

常用的操作包括:更新软件源、搜索软件包、安装软件包、升级软件包、删除软件包、安装编译环境等。

2:实验拓扑设计

本次实验的拓扑设计,如下图所示。4台PC通过网线连接到同一台2层交换机上。

三、实验步骤、内容、数据(现象):

内容1:网络配置

【1】打开终端

    通过快捷键ctrl + alt + t,打开终端。

【2】更换系统源

在终端输入sudo nano /etc/apt/sources.list,打开文件。

在文件中加入2行代码,deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib和deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib,使用快捷键ctrl + o,回车,快捷键ctrl + x进行保存。

    安装gedit文本编辑器,在终端输入sudo apt-get update,继续在终端输入sudo apt-get install gedit。

【3】开启root账户

在终端输入sudo passwd root,修改密码。

在终端输入su,输入password密码,登录root账户。

【4】开启ssh登录

在终端输入sudo gedit /etc/ssh/sshd_config,打开config文件。

注释掉PubkeyAuthentication yes(文本框内显示# PubkeyAuthentication yes),使用快捷

键ctrl + s保存。

关闭gedit,在终端输入sudo /etc/init.d/ssh restart,重启ssh。

【5】查看网络

在终端输入ifconfig,查找内网信息和外网信息,如下图所示。在本机中,eth0是内网网卡,eth1是外网网卡。

【6】设置网络

打开菜单 -> 设置 -> 设置管理器 -> 高级网络设置 -> 添加(+) -> 选择以太网(Ethernet)。

配置内网网卡设备,编辑网络名称,其他保持默认,保存。

进入IPv4设置,方法处选择手动,添加IP地址和子网掩码,其他保持默认,保存。

配置结果,如下图所示。在本机中,内网IP10.205.5.33,子网掩码为255.255.255.0,默认网关未配置。

【7】连接网线

连接4台PC和2层交换机之间的网线,连接完毕后使用ping命令进行网络连通性的测试。

内容2:基本信息收集

【1】通过whois命令,进行信息收集(kali系统)

    本机通过whois google命令,对谷歌公司进行信息收集。收集的各项信息,如下图所示。

whois命令总共收集到域名、组织、地址、联系人、域名服务器、创建和更改日期等信息。

在域名服务器信息中,列出了五个域名服务器(NS-TLD1至NS-TLD5),每个服务器都有一个IPv6地址和一个IPv4地址。

DS记录(ds-rdata)是一个数字签名,用于验证域名的所有权和DNSSEC配置。

Whois服务器是whois.nic.google,是用于查询此域名信息的Whois服务器。

本机通过whois baidu的命令,对百度公司进行信息收集的情况也类似,结果如下图所示。

在域名服务器信息中,列出了八个域名服务器。

【2】通过smartwhois,进行信息收集(windows系统)

首先,下载smartwhois的压缩包,解压后进入sw5的文件目录。

然后,运行setup可执行文件,根据提示安装smartwhois软件。

最后,运行桌面快捷方式,进入smartwhois的界面。

本机通过smartwhois软件,访问baidu.com,对百度公司进行信息收集。收集的各项信息,如下图所示。

网址为:百度一下,你就知道

IP地址为:110.242.68.66。

DNS服务器有5个,分别为ns1.baidu.com、ns7.baidu.com、ns2.baidu.com、ns4.baidu.com、ns3.baidu.com。

本机通过smartwhois软件,访问google.com,对谷歌公司进行信息收集的情况也类似,结果如下图所示。

【3】kali系统下,基于DNS查询的信息收集

1:DNSenum

DNSenum可进行域名信息收集。本机对baidu进行域名收集,结果如下图所示。

 综上,通过dnsenum baidu.com命令,可以获取到主机地址、域名服务器、邮箱服务器等内容。

2:fierce

fierce可进行对子域名的扫描和收集。本机对谷歌旗下的子域名进行收集,结果如下图所示。

3:swaks

Swaks可进行邮箱连通性的测试。本机对存在且可以正常收信的邮箱进行测试,结果如下图所示。

    可以观察到返回250 OK,说明连通性正常。

4:netdiscover

Netdiscover是一种主动/被动ARP侦察工具。

本机通过netdiscover -i eth1命令,扫描常见的LAN地址,结果如下图所示。

本机通过netdiscover -i eth1 -f命令,快速扫描常用局域网地址,且只搜索和自己主机在同一局域网的网关,结果如下图所示。

    可以发现,192.168.0.254是外网网卡的网关。


内容3:nmap三种连接

【1】全连接:nmap -sT [ip]

全连接需要完成三次握手,并且要求调用系统的connect()。

1:端口开启时,连接建立

Ip为10.205.5.22的主机通过全连接方式,扫描ip为10.205.5.33的主机,结果如下图所示。可以发现扫描到22端口的状态为open。

Wireshark的抓包结果,如下图所示。

筛选tcp.port == 22后,可以发现一共有4条抓包记录。

第一条为Ip为10.205.5.22的主机向Ip为10.205.5.33的主机,发送SYN包。表示客户端试图建立与服务器的连接。

第二条为Ip为10.205.5.33的主机向Ip为10.205.5.22的主机,发送SYN的ACK包。表示服务器接受了客户端的连接请求,并等待客户端的确认。

第三条为Ip为10.205.5.22的主机向Ip为10.205.5.33的主机,发送ACK包。表示客户端发送确认包,完成TCP三次握手。

第四条为Ip为10.205.5.22的主机向Ip为10.205.5.33的主机,发送RST包。表示客户端在三次握手完成后主动发送了重置包来终止连接。

2:端口关闭时,连接建立(开启防火墙模式)

Ip为10.205.5.22的主机通过全连接方式,扫描ip为10.205.5.33的主机,结果如下图所示。可以发现扫描到22端口的状态为closed。

Wireshark的抓包结果,如下图所示。

筛选tcp.port == 22后,可以发现一共有6条抓包记录。

第一条为Ip为10.205.5.22的主机向Ip为10.205.5.33的主机,发送SYN包。表示客户端试图建立与服务器的连接。

第二条为Ip为10.205.5.33的主机向Ip为10.205.5.22的主机,发送RST包。表示目标端口处于关闭状态,服务器通过发送重置包来终止连接。

第三条为Ip为10.205.5.22的主机向Ip为10.205.5.33的主机,再次发送SYN包。此后的过程是Ip为10.205.5.22的主机不断尝试连接端口22,Ip为10.205.5.33的主机不断终止连接。

【2】半连接:nmap -sS [ip]

    半连接不需要通过完整的握手。

1:端口开启时,连接建立

Ip为10.205.5.22的主机通过全连接方式,扫描ip为10.205.5.33的主机,结果如下图所示。可以发现扫描到22端口的状态为open。

Wireshark的抓包结果,如下图所示。

筛选tcp.port == 22后,可以发现一共有3条抓包记录。

第一条为Ip为10.205.5.22的主机向Ip为10.205.5.33的主机,发送SYN包。表示客户端试图建立与服务器的连接。

第二条为Ip为10.205.5.33的主机向Ip为10.205.5.22的主机,发送SYN的ACK包。表示服务器接受了客户端的连接请求,并等待客户端的确认。

第三条为Ip为10.205.5.22的主机向Ip为10.205.5.33的主机,发送RST包。表示客户端主动发送了重置包来终止连接。

2:端口关闭时,连接建立(开启防火墙模式)

Ip为10.205.5.22的主机通过全连接方式,扫描ip为10.205.5.33的主机,结果如下图所示。可以发现扫描到22端口的状态为closed。

Wireshark的抓包结果,如下图所示。

筛选tcp.port == 22后,可以发现一共有6条抓包记录。

第一条为Ip为10.205.5.22的主机向Ip为10.205.5.33的主机,发送SYN包。表示客户端试图建立与服务器的连接。

第二条为Ip为10.205.5.33的主机向Ip为10.205.5.22的主机,发送RST包。表示目标端口处于关闭状态,服务器通过发送重置包来终止连接。

第三条为Ip为10.205.5.22的主机向Ip为10.205.5.33的主机,再次发送SYN包。此后的过程是Ip为10.205.5.22的主机不断尝试连接端口22,Ip为10.205.5.33的主机不断终止连接。

【3】FIN连接:nmap -sF [ip]

1:端口开启时,连接建立

Ip为10.205.5.22的主机通过全连接方式,扫描ip为10.205.5.33的主机,结果如下图所示。可以发现扫描到22端口的状态为open。

Wireshark的抓包结果,如下图所示。

筛选tcp.port == 22后,可以发现一共有2条抓包记录。

第一条为Ip为10.205.5.22的主机向Ip为10.205.5.33的主机,发送FIN包。表示客户端发送探测包到目标端口。

第二条和第一条的原理相同。

综上,如果目标端口是开放的,则不会返回任何响应。

2:端口关闭时,连接建立(开启防火墙模式)

Ip为10.205.5.22的主机通过全连接方式,扫描ip为10.205.5.33的主机,结果如下图所示。可以发现扫描到22端口的状态为closed。

Wireshark的抓包结果,如下图所示。

筛选tcp.port == 22后,可以发现一共有6条抓包记录。

第一条为Ip为10.205.5.22的主机向Ip为10.205.5.33的主机,发送FIN包。表示客户端发送探测包到目标端口。

第二条为Ip为10.205.5.33的主机向Ip为10.205.5.22的主机,发送RST包。表示目标端口处于关闭状态,服务器通过发送重置包来终止连接。

第三条为Ip为10.205.5.22的主机向Ip为10.205.5.33的主机,再次发送FIN包。此后的过程是Ip为10.205.5.22的主机不断尝试连接端口22,Ip为10.205.5.33的主机不断终止连接。

综上,如果目标端口是关闭的,目标会返回一个RST包,表示连接被重置。

【4】扫描目标主机操作系统类型

1:尝试识别远程操作系统,使用nmap -O [ip]命令

本机通过nmap命令,查看Ip为10.205.5.22的主机的操作系统。查看的结果如下图所示。

可以发现Ip为10.205.5.22的主机的操作系统是Linux。

此外,还可以查看开启的端口、MAC地址、网络距离等信息。

2:同时打开操作系统指纹和版本检测,使用nmap -A [ip]命令

可以发现Ip为10.205.5.22的主机的操作系统是Linux。

此外,还可以查看开启的端口(包括ssh-hostkey)、MAC地址、网络距离(包括traceroute)等信息。

四、思考(问题小结,包括未解决)

1:网线连接问题。本组设备的网口是1、3、5、7,而不是1、2、3、4。连接到同一个交换机上时,可使用同一颜色网线进行区分。

2:网卡问题。配置内网和外网时,应该提前通过ifconfig命令查看2个网卡的具体信息,区分eth0和eth1所对应的网络。

3:端口开启问题。一般情况下,本机的电脑端口基本

处于关闭状态。如果需要开启端口进行测试,可以选择利用ssh开启22端口。首先执行systemctl start ssh命令,启动ssh服务。然后执行systemctl status ssh命令,查看 SSH 服务当前运行状态。绿色 "active (running)",表示 SSH 服务正在正常运行。红色 "inactive (dead)" 或 "failed",表示服务未运行或启动失败。

4:避免被收集的措施。给相关的端口开启防火墙,可以避免本机的一些信息被收集。

5:防火墙的设置与关闭问题。可以通过iptables -F命令清除已经设置的防火墙。也可以通过iptables命令设置具体端口的防火墙,例如下图是设置22端口的防火墙的过程。

;