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

    问题 回答
    这个作业属于哪个课程 https://edu.cnblogs.com/campus/besti/19attackdefense
    这个作业的要求在哪里 https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10518
    我在这个课程的目标是 学习教材第四章,掌握网络嗅探的原理和步骤
    这个作业在哪个具体方面帮助我实现目标 相关知识点和实践任务

    1. 实践内容

    1.1 网络嗅探

    • 网络嗅探技术的定义:网络嗅探 (Sniff) 是一种黑客常用的窃听技术, 与传统的电话窃听在电话线路上对特定号码的通话内容进行监听类似, 网络嗅探利用计算机的网络接口截获目的地为其他计 算机的数据报文,以监听数据流中所包含的用户账户密码或私密信息等。
    • 网络嗅探的作用:网络嗅探作为攻击者经常使用的内网渗透技术, 通常在攻击者获得内部网络中一台主机的访问权后实施, 能够被动地、 静默地嗅探网络中传输的数据,并从中窃取机密信息,包括各类用户名和口令、电子邮件正文及附件、网络打印的文档等,此外还可以用来嗅探 底层的网络协议信息,为发起进一步攻击收集信息。由于网络嗅探的被动性与非干扰性,使其具有很强的隐蔽性,往往让网络信息泄漏很难被发觉。

    1.1.1 网络嗅探的原理

    • 以太网工作原理:以太网通过使用CSMA/CD协议的共享通信信道进行消息传输。以太网中的数据以帧为单位,将上层的数据包装配上帧头和帧尾,通过MAC地址匹配数据包的目标。当网卡处于混杂模式下,能够接受一切通过它连接的以太网络的数据帧。
    • 共享式网络与交换式网络中的嗅探:在共享式网络中,当主机A向主机C发送数据包时,集线器先接收到数据,然后再把它所接收到的数据发送到所有接口,所以集线器上所有接口所连按 的主机上的网卡也能收到数据,如主机B网卡如果处于混杂模式,就可以嗅探到主机A到主机C的通信数据包。 而在交换式网络中,交换机可以检查每一个收到的数据帧,并对数据帧进行转发处理,在交换机内存中保存有 "MAC地址-端口映射表”,在转发数据帧时,只允许与目标MAC地址匹配成功的数据包通过交换机,并只发送到特定端口上。
    • 交换式网络的网络嗅探技术:MAC地址洪泛攻击、MAC欺骗、ARP欺骗
    • 类 UNIX 平台的网络嗅探技术实现:类 UNIX 平台的网络嗅探技术主要通过内核态的 BPF (Berkeley Packet Filter) 和用户态的 libpcap 抓包工具库实现,如图所示
      图片描述
    • Windows 平台的网络嗅探实现技术:Windows 橾作系统内核并不提供标准的网络嗅探与抓包接口,因此需要通过增加一个驱动程序或网络组件来访问内核网卡驱动中捕获的数据包,而目前最常用的是与类 UNIX 平台上的 BPF 模块兼容的 NPF (NetGroup Packet Filter)。
      图片描述
    • 网络嗅探软件:类Unix平台下的嗅探软件有libpcap、tcpdump、wireshark和dsniff、sniffit等等;windows平台下的嗅探软件有wireshark、snifferPro等等。

    1.1.2 网络嗅探技术的检测与防范

    • 网络嗅探的检测:网络嗅探是一种被动的攻击手段,较为难以检测。在同一主机上,可以通过检查网卡是否运行在混杂模式下,来发现正在进行监听的嗅探器。 此外,也可以基于混杂模式下操作系统和协议栈的不同特性,来检测出网络中其他主机上的嗅探器。
    • 网络嗅探的防范措施:
      1. 采用安全的网络拓扑, 尽量将共享式网络升级为交换式网络, 并通过在交换机上设置 VLAN 等技术手段, 对网络进行合理的分段, 从而尽散使得网络包只被转发到目的主机上。
      2. 用静态ARP或者MAC-端口映射表代替动态机制
      3. 重视网络数据传输的集中位甡点的安全防范
      4. 避免使用明文传输口令或敏感信息的网络协议, 而使用加密及安全增强的网络协 议进行替代。

    1.2 网络协议分析

    网络协议分析是网络嗅探器进一步解析与理解捕获数据包必需的技术手段。如前所述, 网络嗅探截获的是在通过封包过程组装的二进制格式原始报文内容, 为了获取其中包含的 信息,就需要根据 TCP/IP 协议栈的协议规范,重新还原出数据包在各个协议层士的协议格 式及其容, 以及在应用层传输的实际数据。

    1.2.1 网络协议分析技术

    • 网络协议分析技术原理:网络协议分析是指对网络上传输的二进制格式数据包进行解析,以恢复出各层网络协议信息以及传输内容的技术方法。
    • 网络协议技术分析步骤
    1. 首先网络嗅探得到的原始数据是在链路层传输的二进制数据包,大多数情况下是以太网数据帧
    2. 对以太网数据帧进行结构分析,定位出帧头各字段结构,根据帧头的Type字段确 定网络层协议类型,大多数情况下是 IP 协议 (0800), 并提取数据帧中包含的网络层数据内容
    3. 对IP数据包进行分析,如果设置了分片位,则进行IP分片重组,根据IP协议头中的Protocol字段,确定传输层协议类型,通常情况下是TCP(6)或者UDP(17), 并提取1P数据包中的传输层数据内容
    4. 继续根据TCP或UDP的目标端口确定具体的应用层协议,如http、ftp、telnet等协议数据包,并对TCP或者UDP数据包进行拼接重组,得到应用层特定协议的应用交互内容
    5. 依据相应的应用层协议对数据进行整合恢复,得到实际传输的数据
    • 网络协议分析技术实现:对TCP/IP协议栈中基本网络协议的分析技术实现比较简单,并且在开源的网络嗅探器软件如Tcpdump、W订eshark和Snort等都有相应的源码实现。

    2. 实践过程

    2.1 动手实践: tcpdump

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

    在terminal运行命令sudo tcpdump src 192.168.200.3 and tcp dst port 80(src表示源,dst表示目的)
    图片描述
    一共访问6个服务器,经过的服务器的ip地址有

    ip地址 位置
    221.182.218.238 海南省海口市
    221.182.218.229 海南省海口市
    221.182.218.244 韩国釜山
    221.182.218.151 海南省海口市
    183.203.69.14 山西省太原市
    117.18.237.29 澳大利亚
    72.21.202.25 美国弗吉尼亚阿什本 亚马逊云

    其中221.182.218.229是www.tianya.cn的ip地址
    图片描述

    2.2 动手实践: Wireshark

    任务: 使用 Wireshark 开源软件对在本机上以 telne·t 方式登录 BBS 进行嗅探与协议分析, 回答如下问题并给出操作过程:

    1. 你所登录的 BBS 服务器的 IP 地址与端口各是什么?
    2. telnet 协议是如何向服务器传送你输入的用户名及登录口令的?
    3. 如何利用Wireshark 分析嗅探的数据包, 并从中获取你的用户名及登录口令?

    我登陆的是水木社区,用telnet bbs.newsmth.net连接社区论坛,同时通过wireshark抓捕网络包
    图片描述
    在搜索框中搜索telnet即可从数据包中筛选出Protocol为TELNET的数据包。
    图片描述
    由图可知,服务器的ip地址为120.92.121.76

    由捕获的数据包的详细信息可知,可以看到用户名和登录口令是由本地一个字符一个字符的逐次明文传送到服务器,并由服务器返回确认信息。
    图片描述
    通过对捕获的数据包的数据流分析(分析—追踪流—TCP流),选定192.168.0.102 -> 120.92.212.16
    可以查看到我的用户名和登陆口令
    图片描述
    (话说这个居然是明文传输.....也太危险了吧)

    2.3 取证分析实践:解码网络扫描

    案例分析挑战内容: 这次案例分析挑战是完全为刚入门的安全分析师准备的,目标是分析由人为构造的到一台蜜罐主机的5次不同类型端口扫描。需要指出的是,这次案例分析中的端口扫描流量并不是从 “ 野外“ 捕获的,而是特意构造的,这次入门级的案例分析 挑战的目的完全是为了提供学习和训练的机会。
    网络入侵检测器-snort 捕获每次扫描的流噩并存入 tcpdump 格式二进制网络日志文件中。这次挑战的任务每组从这5次扫描的日志文件中随机选择两个,分析这两个文件,回答所列的问题,并撰写详细的实验分析报告。通过这次挑战,你能够学习到数据包抓取技术的使用方法,以及使用数据包解码工具 tcpdump 或 Wireshark 分析网络数据包的技能。
    问题:

    1. 攻击主机的 IP 地址是什么?
    2. 网络扫描的目标 IP 地址是什么?
    3. 本次案例中是使用了哪个扫描工具发起这些端口扫描?你是如何确定的?
    4. 你所分析的日志文件中,攻击者使用了哪种扫描方法,扫描的目标端口是什么,并描述其工作原理。
    5. 在蜜罐主机上发现哪些端口是开放的?
    6. 额外奖励问题: 攻击主机的操作系统是什么?

    下载老师在云班课上给出的文件listen.pcap,用wireshark打开待分析的二进制记录文件,使用菜单栏中统计下的Conversation,选择IPV4得到如下图:
    图片描述
    可以看到ip地址172.31.4.178172.31.4.188之间有大量的数据包交换,基本上可以确定这两个ip就是攻击机和靶机的ip地址
    又由双方交换的数据包的详细信息可知,172.31.4.178172.31.41.188发送带有SYN标志的消息,后者向前者返回带有SYN+ACK的数据包,前者又向后者返回带RST的数据包重置连接,这是一次TCP SYN扫描,并且目标主机端口开放,由此可知是172.31.4.178主动发起扫描,所以攻击主机的ip地址为172.31.4.178,目标主机的ip地址为172.31.41.188
    图片描述
    首先安装在kail上安装snort和websnort(安装方法见参考资料),执行sudo snort -A console -q -u snort -c /etc/snort/snort.conf -r ~/listen.pcap(console模式表示在屏幕上显示报警而不记录到文件;-q表示安静模式,不显示标志和状态报告;-u snort表示初始化后改变Snort的UID;-c表示使用配置文件snort.conf,这会使得snort进入IDS模式,并从snort.conf中读取运行的配置信息。),可以看到扫描主机通过nmap工具进行端口扫描
    图片描述
    当然也可以用websnort查看结果(看得更舒服一点),执行sudo websnort,浏览器打开localhost:8080
    图片描述
    我们已经知道攻击主机的ip地址以及它所采用的扫描工具,通过nmap每次扫描之前,会通过arp协议获取目标的mac地址,输入过滤字段arp,可以看到攻击机(172.31.4.178)一共发起了四次arp请求,所以进行了四次扫描(5,6;7,8;2071,2072;133220,133221)
    图片描述
    又由第一次扫描(5,6)与第二次扫描(7,8)之间没有发送数据,可以确定是第一次扫描仅仅是做了一次主机探测,所用参数-sP
    可以看到第二次扫描交换的数据包大概有2000多个,主要针对 ssh、 TCP 和 UDP 的 1 端口,并使用了大量构造的标志位,以触发不同的响应包,并尝试从响应包中识别目标主机的操作系统信息。这显然是攻击主机在进行对目标主机的操作系统的探测,因为主动探测方式就是从扫描主机向目标主机主动的发送一系列特殊定制的数据包,然后根据反馈数据包中的一些指纹信息识别目标主机操作系统类型,所以第二次扫描应该是攻击机主动探测目标主机的操作系统,所用参数为-O
    图片描述
    第三次扫描扫描的端口数将近有六万个,以3306端口为例,攻击方发起SYN请求包;如果端口开启,目标主机回应SYN ACK包,攻击方再发送RST包。因此可以知道这次扫描为半连接扫描,又因为nmap默认扫描端口数为1000,而此次扫描端口包括端口65535,所以猜测这次所用参数为-sS -p 1-65535,即对所有端口进行TCP SYN扫描
    图片描述
    图片描述
    第四次扫描,以23号端口为例,23号端口提供提供远程登陆(telnet)服务,而攻击机通过TCP三次握手与23号端口建立了连接,并交换了使用telnet协议的数据包,猜测是攻击机想要获得目标主机的端口上运行的服务以及版本,故此次扫描应该使用的参数为-sV
    图片描述

    使用tcp.flags.syn == 1 and tcp.flags.ack == 1可以过滤出SYN | ACK的数据包,即为目标主机反馈扫描机的端口活跃信息。可以确定21,22,23,25,53,80,139,445,3306,3632,5432,8009,8180这几个端口是活跃的。
    图片描述

    通过命令sudo p0f /home/wl/listen.pcap可以查看到攻击机的操作系统为linux 2.6.x
    图片描述

    2.4 攻防对抗实践

    攻击方用 nmap 扫描(达到特定目的), 防守方用 tcpdump 嗅探, 用Wireshark 分析,并分析出攻击方的扫描目的以及每次使用的 nmap 命令。 撰写实验报告。

    重点的分析过程参考上一个实验,这里只展现一些攻击过程
    攻击主机的ip为192.168.200.4,目标主机ip为192.168.200.3
    在目标主机上运行tcpdump -i eth0 -w listen.pcap进行监听,使用wireshark分析,攻击过程如下图
    图片描述
    将listen.pcap导入wireshark,如下图所示,使用arp过滤发现进行了四次扫描,由于四次攻击步骤与上一个实验类似,故不再赘述,只展示过程
    图片描述
    nmap -sP 192.168.200.3
    图片描述
    nmap -O 192.168.200.3
    图片描述
    nmap -sS 192.168.200.3
    图片描述
    nmap -sV 192.168.200.3
    图片描述

    3. 学习中遇到的问题

    • 问题1:安装snort遇到问题
    • 问题1解决方案:通过学习snort安装教程,以及询问娄豪同学安装成功了
    • 问题2:对日志文件的分析不明白
    • 问题2解决方案:通过学习网上的一些分析博客和资料,以及参考其它同学的博客最终完成了实验

    4. 实践总结

    本次实验学习了网络嗅探的原理和方法,使用了wireshark,tcpdump和snort三个网络嗅探工具,初步了解了两个工具的使用方法,并且通过对日志文件进行分析,学习了一些分析的技巧,但是由于对一些网络协议和知识不了解,所以对分析过程还不能完全明白,在日后的学习中要复习计算机网络的相关知识。

    参考资料

    网络攻防技术与实践
    nmap常用命令
    snort命令行参数
    snort原理,搭建与应用
    tcpdump用法详解
    网络嗅探与协议分析
    wireshark教程

  • 相关阅读:
    Win32的开发过程
    Win32的开发过程
    内存模式
    在DOS下生成一个可执行文件一般步骤
    内存模式
    内存模式
    静态链接
    在DOS下生成一个可执行文件一般步骤
    备忘录模式(存档模式)
    建造者模式
  • 原文地址:https://www.cnblogs.com/w-a-n-s-d-j/p/12561895.html
Copyright © 2011-2022 走看看