zoukankan      html  css  js  c++  java
  • 20199108 2019-2020-2 《网络攻防实践》第4周作业

    1.实践内容

    一、网络嗅探技术与工具分类:
    1、按照监听的数据链路层网络进行分类:以太网和WiFi是目前网络嗅探器的主要监听对象。
    2、按照实现的形式:软件与硬件。硬件速度快,但费用高。软件慢,免费
    二、网络嗅探技术原理与实现。
    以太网:即802.3协议,以太网采用了再拨侦听/冲突检测技术,避免共享链路上的通信冲突。
    在数据链路层数据传播的单位是帧,网卡拥有一个48位的mac地址,帧头包括发送源的mac地址、目标的mac地址
    混乱模式:网卡能够接受通过它连接共享通信媒介的数据帧,无论是否传给它。因此要设置为混乱模式。
    共享式网络主要使用集线器(hub)连接,网络拓扑为总线方式物理上是广播的。交互式主要是使用交换机组件。

    共享式与交互式原理

    通过技术手段进行嗅探:
    mac地址洪泛攻击:使得交换机进入失效模式。也就是开始类似集线器工作方式。
    mac欺骗:将源mac地址伪造成目标地址的源mac地址,将数据包通过交换机发送出去,使用交换机不断更新mac地址-端口映射表,让交换机相信攻击者的mac地址就是目标主机的mac地址。
    ARP欺骗:利用ip地址和mac地址转换的协议漏洞。

    网络嗅探软件:
    类UNIX平台软件:libpcap、tcpump、wireshark
    windows平台软件:tcpump、wireshark

    tcpdump 用法
    tcpdump OPTION EXPRESSION
    选项:
        -i INTERFACE	指定网络接口
        -w /FILE	将捕捉的数据报文信息保存于文件
        -r /FILE		从指定文件读取抓取的数据包,常用于分析
        -c #	指定抓取数据包数量
        -n:将地址显示为数字格式,-nn表示地址、端口显示为数字格式
        -v:显示详细信息,-vv表示更详细的信息
    
    表达式:
        表达式根据划分依据不同又分为三类:type、dir、proto
        type:
        	host HOSTNAME	根据主机名过滤
        	net NETWORK	根据网络地址过滤
        	port PORT	根据端口
        	portrange RANGE	根据端口范围
        dir:根据数据流向
        	src IP	依据源地址
        	dst IP	根据目标地址
        proto:根据协议
        	ether
        	wlan
        	ip
        	arp
        	rarp
        	tcp
        	udp
        注:tcpdump支持组合条件,可使用and、or、not逻辑关键字组合
    
    例 1:
    # tcpdump -i eth0 host 192.168.1.210 and 192.168.1.101
        抓取192.168.1.210与192.168.1.101之间的通信数据包
    
    例2:
    # tcpdump -i eth0 host 192.168.1.210 or 192.168.1.101 port 8080 or 80
        抓取192.168.1.210或192.168.1.101与其他主机且与8080或80端口相关的通信数据包
    
    

    三、网络协议分析;
    网络协议分析过程的步骤

    网络协议分析工具:wireshark

    2.实践过程

        使用tcpdump开源软件对在本机上访问www.tianya.cn网站过程进行嗅探,回答问题:你在访问www.tianya.cn网站首页时,浏览器将访问多少个Web服务器?他们的IP地    
        址都是什么?
    

    使用命令 sudo tcpdump src 192.168.92.2 and tcp dst port 80

    可以看到系统访问了6个web服务器,ip地址分别为

    221.182.218.238 
    120.223.244.245
    203.208.40.56
    221.182.218.229
    221.182.218.220
    221.182.218.244
    

    通过nslookup tianya.cn命令查看www.tianya.cn对应的IP地址,验证我们tcpdump的正确性。

    使用Wireshark开源软件对在本机上以TELNET方式登录BBS进行嗅探与协议分析,回答如下问题并给出操作过程:
    你所登录的BBS服务器的IP地址与端口各是什么?
    TELNET协议是如何向服务器传送你输入的用户名及登录口令?
    如何利用Wireshark分析嗅探的数据包,并从中获取你的用户名及登录口令?
    
    Telnet是位于OSI模型的第7层--应用层上的一种协议,是一个通过创建虚拟终端提供连接到远程主机终端仿真的TCP/IP协议。这一协议需要通过用户名和口令进行认证,是 
    Internet远程登陆服务的标准协议。
    Telnet是一个明文传送协议,它将用户的所有内容,包括用户名和密码都明文在互联网上传送,具有一定的安全隐患,所以我们才能利用网络协议分析得到用户名、口令等私密 
    信息。
    首先打开在”启动或关闭Windows功能“中打开telnet。
    


    如下,使用windows进行telnet登录清华大学水木年华BBS论坛,win+R打开运行,输入cmd,启动控制台,输入:telnet bbs.fudan.edu.cn

    打开WireShark,筛选协议为telnet,开始抓包,然后注册再重新登录,通过查看wireshark里面可知其端口号为23


    进入之后注册用户名与密码,然后登录即可,我们可以看到已经进入bbs论坛

    然后选择分析TCP跟踪流,选择发送方和接收方,可以得到我用的用户名和登录口令

    我们可以看到telnet是明文传输,是十分不安全的。
    那么,telnet是如何传送用户名与密码的呢,我们可以看下telnet的登录过程。
    使用Telnet协议进行远程登陆时需要满足以下条件:在本的计算机上必须装有包含Telnet协议的客户程序;必须知道远程主机的Ip地址或域名;必须知道登录标识与口令。
      Telnet远程登录服务分为以下4个过程:
      1)本地与远程主机建立连接。该过程实际上是建立一个TCP连接,用户必须知道远程主机的Ip地址或域名;
      2)将本地终端上输入的用户名和口令及以后输入的任何命令或字符以NVT(Net Virtual Terminal)格式 传送到远程主机。该过程实际上是从本地主机向远程主机发送一个IP数据包;
      3)将远程主机输出的NVT格式的数据转化为本地所接受的格式送回本地终端,包括输入命令回显和命令执行结果;
      4)最后,本地终端对远程主机进行撤消连接。该过程是撤销一个TCP连接。

    取证分析实践:解码网络扫描
    下载老师提供的 pcap 包,使用 Wireshark 打开,依次打开 统计 - Conversations

    可知,攻击机 IP:172.31.4.178,网络扫描的目标 IP:172.31.4.188
    打开 kali 实验环境,安装 snort 工具,对上述 pcap 包进行入侵检测:
    sudo apt-get install snort

    给予所有权限:
    sudo chmod 777 /etc/snort/snort.conf
    进入 pcap 包所在目录后,执行:
    sudo snort -A console -q -u snort -c /etc/snort/snort.conf -r listen.pcap

    由此可见,攻击机使用 nmap 扫描目标网络。

    以下对扫描过程进行分析:
    首先筛选 ARP 数据包,下图中第5、6、7、8号数据包之间没有额外的其他数据包,所以可以知道这是采用 namp -sP 探测活跃主机。

    接下来筛选 tcp.port == 57738 and tcp.flags.syn == 1 and tcp.flags.ack == 0 ,表示tcp 端口 57738 发送 tcp 请求但无回应。此次扫描基本囊括了靶机上的所有协议和服务,所以猜测是进行了 namp -O扫描靶机上安装的操作系统。

    如下图,第三次扫描大致的往返包是 12W,大致扫描了 6W 个端口。由于 nmap 默认只能扫描 1000 个端口,因此可以猜测第三次扫描应该是用命令 nmap -sS 人为指定端口数量。

    筛选 tcp.port == 23(23 为 telnet 端口)过滤文件数据。发现攻击机对靶机进行 4 次扫描过程。不难看出在第一、二、三次扫描都只是建立了连接就结束了,但在第四次扫描的时候出现了 telnet 连接;如果使用命令 tcp.port == 22(22 为 ssh 端口)同样可知第一、二、三次都是建立连接,第四次出现了 ssh 连接,所以猜测第四次 nmap 扫描使用了命令 nmap -sV 探测靶机上开放的网络服务。

    确定端口:筛选 tcp.flags.syn == 1 and tcp.flags.ack == 1 ,可以得到:

    端口有:21、22、23、25、53、80、139、445、3306、5432、8009、8180
    确定操作系统:
    首先安装 p0f:

    sudo apt-get install p0f
    使用以下命令探测:

    sudo p0f -r listen.pcap

    由上图可知,系统为 Linux 2.6.x

    攻防对抗实践
    kali 攻击机 IP:192.168.92.2
    靶机 IP:192.168.92.125
    靶机监控:sudo tcpdump -i eth0 -w dump.pcap
    攻击机攻击:sudo nmap -sP 192.168.92.2
    靶机查看日志:sudo tcpdump -r dump.pcap

    3.学习中遇到的问题及解决

    • 问题1:安装snort出现下面问题

    • 问题1解决方案:sudo apt-get update
      sudo apt-get upgrade更新一下就好了

    4.实践总结

    这周的作业利用了大量的计算机网络知识,一边查询资料,一边学习吧。

    参考资料

  • 相关阅读:
    Linux 笔记:文件名
    Linux 一些有用的能力
    理解Linux内核注释
    Linux 的三种软件安装包介绍
    idea 2019 激活
    wget免登陆下载jdk 8u221
    PowerDesigner每点击一次就会提示打印错误对话框
    FormData使用方法详解
    springboot:配置多个数据源
    CSS3绘制不规则图形,代码收集
  • 原文地址:https://www.cnblogs.com/tqlzpg/p/12534846.html
Copyright © 2011-2022 走看看