• 20199327 2019-2020-2 《网络攻防实践》第四周作业


    1.理论学习

    • 1、网络嗅探概述

    网络嗅探技术是一种常用的窃听技术,利用计算机的网络接口截获目的地为其他计算机的数据报文,以监听数据流中所包含的隐私信息。

    被动攻击技术;为中间人攻击提供帮助,为入侵检测系统提供底层数据来源。

    嗅探器捕获的报文是经过封包处理后的二进制数据

    嗅探器按照链路可以分为:有线局域网(以太网、Wi-Fi)和无线局域网嗅探器;区别是无线嗅探器可以读取和分析符合如IEEE 802.11等无线传输协议的数据包。

    按照实现方式分为:软件嗅探器和硬件嗅探器(协议分析仪)。

    • 2、网络嗅探的原理与实现

    以太网工作原理:
    以太网共享通信信道,采用广播机制,使用CSMA/CD(载波监听/冲突检测)技术避免通信冲突。以太网中的数据以帧为单位,将上层封装的TCP/IP数据包在链路层装配上帧头和帧尾,发送至共享通信介质上。网卡驱动程序在正常模式下,只会接受目标MAC地址与自身MAC地址相匹配的数据帧。但网卡的混杂模式将会接收一切通过它连接共享通信媒介的数据帧。

    共享式网络和交换式网络:
    通过集线器进行连接的网络称为共享式网络,其网络拓扑基于总线方式,物理上是广播的。这种连接方式导致同一集线器上连接的所有主机在发送数据包时,会发往每一台主机,任一主机都能嗅探整个集线器上的网络流量。

    通过交换机组建的网络称为交换式网络,在交换机中存在“MAC地址-端口映射表”,从而将数据包将发送到特定的网卡。

    交换式网络中的网络嗅探技术:
    MAC地址洪泛攻击:向交换机发送大量含有虚构MAC地址和IP地址的数据包,使映射表溢出无法处理,交换机进入类似集线器的工作方式。

    MAC欺骗:假冒所要监听的主机网卡,是交换机更新映射表。

    ARP欺骗(最常用):利用IP地址与MAC地址之间进行转换时的协议漏洞,达到MAC欺骗。

    • 3、网络嗅探:嗅探器软件

    类UNIX平台下:
    通常使用的网络嗅探器软件一般基于标准接口BPF和libpcap,最常用包括libcap抓包开发库、tcpdump、wireshark嗅探器软件,另外还有sniff、sniffit等。

    libpcap抓包开发库:libpcap开发的基本步骤是打开网络设备、设置过滤规则、捕获数据、关闭网络设备。

    tcpdump:提供命令行模式,支持使用BFP语法的过滤条件进行数据包的选择性嗅探,然后进行TCP/IP协议栈的协议分析。

    tcpdump是通用的命令行网络嗅探器与数据包分析协议。通过src 192.168.200.200 and tcp dst port 80可以查看源主机向外连接的HTTP网络流量的情况。

    通过tcpdump将监视第一个网络接口上所有流过的数据包。

    windows平台下的嗅探软件:wireshark、SnifferPro等。

    • 4、网络嗅探的检测与防范

    网络嗅探的检测:网络嗅探是一种被动攻击手段,检测困难。可以通过探测网卡是否处于混杂模式来进行检测;可通过构建MAC地址不合法但是IP地址有效的ICMP Echo请求进行测试网卡是否处于混杂状态。Windows平台,mac地址前8位是否为0xff。

    网络嗅探的防范措施:使用安全的网络拓扑;用静态ARP和“MAC-端口映射表”;重视网络安全中集中位置点的安全防范;避免使用明文传输口令或敏感信息的网络协议。

    • 5、网络协议分析技术

    网络协议分析技术原理:对网络上传输的二进制格式数据包进行解析,以恢复出各层网络协议信息以及传输内容的技术方法。

    网络协议分析的典型过程包括以下几个步骤:

    1. 网络嗅探得到的原始数据是在链路层传输的二进制数据包。大多为以太网数据帧。

    2. 对数据帧进行结构分析,定位帧头各字段结构,根据帧头Type字段确定网络层的协议类型(大多是IP协议0800),并提取包含的网络层数据内容。

    3. 进一步对IP数据包进行分析,根据IP协议头的Protocol字段,确定传输层协议类型(通常是TCP:6或UDP:17),并提取传输层数据内容。

    4. 继续根据TCP或UDP目标端口确定确定具体的应用层协议(如http:80、ftp:21、telnet:23等),并对数据包进行拼接重组,得到应用层特定协议的应用交互内容。

    5. 依据相应应用层协议对数据进行整合恢复,得到实际传输数据;

    2.理论实践

    任务一 tcpdump
    使用tcpdump开源软件对在本机上访问www.tianya.cn网站过程进行嗅探,回答问题:你在访问www.tianya.cn网站首页时,浏览器将访问多少个Web服务器?他们的IP地址都是什么?
    在kali虚拟机上终端输入tcpdump src 192.168.200.3 and tcp dst port 80,浏览器访问www.tianya.cn,tcpdump嗅探到的数据包如下:

    因为多种原因,执行了数次才找到tianyan.cn 的地址124.255.65.154,根据上图可得浏览器访问了以下服务器:
    124.225.135.230 中国 海南 海口 电信
    104.18.11.39 CLOUDFLARE.COM cloudflare.com 这个到不知道是啥。。。

    任务二 wireshark
    使用Wireshark开源软件对在本机上以TELNET方式登录BBS进行嗅探与协议分析,回答如下问题并给出操作过程:
    (1)你所登录的BBS服务器的IP地址与端口各是什么?
    (2)TELNET协议是如何向服务器传送你输入的用户名及登录口令?
    (3)如何利用Wireshark分析嗅探的数据包,并从中获取你的用户名及登录口令?
    打开wireshark进行捕包,在命令行输入telnet bbs.fudan.edu.cn,注册登录,查看捕包结果。



    上图中o后面的.是多输的,后面发现的忘了重新的截图

    (1)由下图可以看出登录的BBS服务器的IP地址为:202.120.255.9

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

    (3)选中一个telnet数据包,右键选择-->Follow TCP Stream,,如下图所示,可以看到用户名和密码:



    第一次的密码输入错误,第二次的才正确,从报文中可以看到,都被监听到了


    最后发现其中的ip地址就是本机的IP地址,与其显示一致

    任务三 取证分析实践,解码网络扫描器
    (1)攻击主机的IP地址是什么?
    (2)网络扫描的目标IP地址是什么?
    (3)本次案例中是使用了哪个扫描工具发起这些端口扫描?
    (4)你所分析的日志文件中,攻击者使用了那种扫描方法,扫描的目标端口是什么,并描述其工作原理。
    (5)在蜜罐主机上哪些端口被发现是开放的?
    (6)攻击主机的操作系统是什么?
    用wireshark打开从云班课上下载listen.pcap,使用菜单栏中统计一栏下的Conversation,选择IPV4可以看出,172.31.4.178和172.31.4.188之间发送了大量的数据包,可以确定攻击发生在在这两个ip之间。

    从捕获的tcp数据包可以看出172.31.4.188基本发送的都是ack确认包,可以推测出此ip为目标主机,即网络扫描的目标IP地址是172.31.4.188,故另一个IP地址172.31.4.178为攻击主机的ip;

    通过nmap工具对端口进行了扫描。
    以arp为条件进行过滤,攻击机在广播域内广播arp request报文,如果收到arp response报文即为活跃,可以得到目标主机mac地址。

    nmap在发起端口扫描之前总是先通过 Ping扫描和针对80端口进行探测,确定目标主机是否活跃,通过过滤器搜索icmp,可以定位ICMP协议对应的Ping扫描。

    可以看到在数据包中存在大量SYN请求包,这是攻击机57738端口向目标主机进行的TCP SYN扫描,目的是用于扫描目标主机的端口是否活跃,如果活跃则目标主机会反馈一个SYN|ACK包,攻击机端口会立刻发送一个RST包关闭这个链接,目标端口不活跃则会反馈RST|ACK包。

    在蜜罐主机上发现开放端口:输入过滤条件:tcp.flags.syn == 1 and tcp.flags.ack == 1,可以过滤出SYN|ACK的数据包,即反馈所有的开放端口。查
    看可以确定以下端口开放:
    3306(mysql),139(ssn),23(telnet),80(http),25(smtp),22(ssh),53(domain),21(ftp),445(microsoft-ds),5432(postgresql),8009(AJP),8180(nternet 信息服务)这几个端口是活跃的。

    TTL(Time to live) 字段值可以帮助我们识别操作系统类型,根据TTL==64,推测攻击机的操作系统为linux。

    任务四 攻防对抗实践
    攻击方用nmap扫描,防守方用tcpdump嗅探,用wireshark分析,并分析出攻击方的扫描目的以及每次使用的nmap命令。
    使用WinXP作为攻击机(192.168.200.3),进行nmap扫描;kali(192.168.200.8)作为防守方,输入tcpdump -i eth0 -w tcp.pcap进行监听并且保存文件为tcp.pcap。再利用wireshark打开tcp.pcap进行分析。

    nmap扫描结果如下:

    wireshark捕包结果:

    3.学习中遇到的问题及解决
    Linux环境kali中进行安装问题:
    原计划在kali中安装snort 和 p0f,遇到E:Unable to locate package ***问题,于是搜索解决问题的方法:
    先是通过sudo apt-get update,没有解决问题,又通过sudo apt-get upgrade,结果解决了一半,p0f可以了但snort还不行


    任务二没有思绪是参考别人做的。

    4.总结
    通过本次学习,了解了tcpdump进行网络嗅探的使用,回顾了nmap的原理,通过攻防对抗实践对相关原理和操作更加的熟悉,在Linux虚拟机中遇到了一些问题,还没有解决完,但也复习和学习了很多Linux操作知识。

  • 相关阅读:
    第一个springboot程序,初识springboot
    创建一个简单的springBoot项目的两种方式
    vue过程中遇到的Uncaught (in promise) TypeError: Cannot read property '$message' of undefined
    springboot redis的db动态切换没有作用
    docker redis chown: changing ownership of '.': Permission denied
    axios url携带参数问题(params与data的区别)
    docker安装mysql8.0并挂载到主机
    android与服务器的登录验证与安全设计
    团队冲刺10 5.11
    构建之法01
  • 原文地址:https://www.cnblogs.com/waxxx/p/12572413.html
Copyright © 2020-2023  润新知