20199315 2019-2020-2 《网络攻防实践》第4周作业

20199315 2019-2020-2 《网络攻防实践》第4周作业

前言

这个作业属于哪个课程:https://edu.cnblogs.com/campus/besti/19attackdefense

这个作业的要求在哪里:https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10518

我在这个课程的目标是:学习网络攻防相关知识,提升专业技能

这个作业在哪个具体方面帮助我实现目标:学习了解网络嗅探与协议分析

知识点梳理与总结————《网络攻防技术与实践》教材第四章

网络嗅探

网络嗅探(Sniff)是一种黑客常用的窃听技术,利用计算机的网络接口截获目的地为其他计算机的数据报文,以监听数据流中所包含的用户账户密码或私密信息等。

利用以太网在实际部署有线局域网时,根据其部署方式不同分为共享式网络与交换式网络两种。

共享式网络主要使用集线器(Hub)连接,其网络拓扑是基于总线方式,物理上是广播的。

在共享式网络中,当主机A向主机C发送数据包时,集线器先接收到数据,然后再把它所接收到的数据发送到所有接口,所以集线器上所有接口所连接的主机上的网卡也能收到数据,如主机B网卡如果处于混杂模式,就可以嗅探到主机A到主机C的通信数据包。集线器的这种工作模式决定了在同一集线器上连接的所有主机在发送数据包时,都会发往每一台主机,因此其中任一主机都能够嗅探整个集线器上的全部网络流量。

交互式网络则主要使用交换机组建,所以数据帧都通过交换机进行数据转发。

由于交换机是根据映射表与数据包的目标MAC地址进行转发的,因此可以有效地避免网络广播风暴,减少网络数据被嗅探的风险。

网络嗅探器软件

  • 类Unix平台网络嗅探器软件

    • libpcap抓包开发库
      libpcap是类UNIX平台上基于内核态BPF向应用程序提供的标准抓包开发库,使用libpcap构建网络嗅探工具或在应用程序中添加网络嗅探功能都非常简便

    • tcpdump
      tcpdump是最老的也是最通用的嗅探器程序。在最简单的模式下,它提供命令行模式,支持使用BFP语法的过滤条件进行网络上数据包的选择性嗅探,然后进行TCP/IP协议栈的协议分析,并以每行一个数据包捕获内容的方式呈现嗅探结果。tcpdump是类UNIX平台下捕获数据包的标准程序,也是目前维护得最好的开源嗅探器软件。

    • wireshark嗅探器软件

  • tcpdump嗅探器软件

tcpdump是通用的命令行网络嗅探与数据包分析程序,允许用户能够从主机所在网络上截取和显示特定的TCP/IP数据包。tcpdump 软件在大多数类UNIX平台都可以运行,利用libpcap 库捕获数据,并允许用户使用基于BPF的过滤规则来限制捕获数据包的数量与类型,使得在面对大流量的网络中进行数据包嗅探与输出变得可行。
善用BPF过滤器规则也是利用tcpdump进行深入的网络数据包嗅探与分析的关键所在。

Tcpdump常用命令行选项

命令 作用
-a 将网络地址和广播地址转变成容易识别的名字
-d 将已截获的数据包的代码以人容易理解的格式输出;
-dd 将已截获的数据包的代码以C程式的格式输出;
-ddd 将已截获的数据包的代码以十进制格式输出;
-e 输出数据链路层的头部信息;
-f 将internet地址以数字形式输出;
-l 将标准输出变为行缓冲方式;
-n 不将网络地址转换成易识别的主机名,只以数字形式列出主机地址(如IP地址),这样能够避免DNS查询;
-t 不输出时间戳;
-v 输出较周详的信息,例如IP包中的TTL和服务类型信息;
-vv 输出详尽的报文信息;
-c 在捕获指定个数的数据包后退出;
-F 从指定的文档中读取过滤规则,忽略命令行中指定的其他过滤规则;
-i 指定监听的网络接口;
-r 从指定的文档中读取数据包(该文档一般通过-w选项产生);
-w 将截获的数据包直接写入指定的文档中,不对其进行分析和输出;
-T 将截获的数据包直接解释为指定类型的报文,现在支持的类型有cnfp、rpc、rtp、snmp、vat和wb。

动手实践

tcpdump

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

kali打开网址www.tianya.cn

通过nslookup tianya.cn命令查看www.tianya.cn对应的IP地址

在终端输入sudo tcpdump src 192.168.200.2 and tcp dst port 80

wireshark

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

(1)你所登录的BBS服务器的IP地址与端口各是什么?

(2)telnet协议是如何向服务器传送你输入的用户名及登录口令的?

(3)如何利用Wireshark分析嗅探的数据包,并从中获取你的用户名及登录口令?

打开kali的wireshark,我选的端口是any

在终端输入luit -encoding gbk telnet bbs.fudan.edu.cn进入复旦大学bbs论坛。发现其IP地址为202.120.225.9。

wireshark找到,发现其端口为23。

Telnet协议在传输用户名和密码时采用的时明文传输。右键,follow TCP stream,追踪TCP流,可以看到我们的用户名guest。

进一步选择追踪方向发现密码为空:

解码网络扫描

目标是分析由人为构造的到一台蜜罐主机的5次不同类型端口扫描。需要指出的是,这次案例分析中的端口扫描流量并不是从“野外”捕获的,而是特意构造的,这次入门级的案例分析挑战的目的完全是为了提供学习和训练的机会。

网络入侵检测器-snort捕获每次扫描的流量并存入tcpdump格式二进制网络日志文件中。这次挑战的任务每组从这5次扫描的日志文件中随机选择两个,分析这两个文件,回答所列的问题,并撰写详细的实验分析报告。通过这次挑战,你能够学习到数据包抓取技术的使用方法,以及使用数据包解码工具tepdump或Wireshark分析网络数据包的技能。

1.攻击主机的IP地址是什么?

2.网络扫描的目标IP地址是什么?

3.本次案例中是使用了哪个扫描工具发起这些端口扫描?你是如何确定的?

4.你所分析的日志文件中,攻击者使用了哪种扫描方法,扫描的目标端口是什么,并描述其工作原理。

5.在蜜罐主机上发现哪些端口是开放的?

6.额外奖励问题:攻击主机的操作系统是什么?

攻击主机IP地址为172.31.4.178,网络扫描的目标IP地址是172.31.4.188

下载云班课上分享的listen.pcap文件,用wireshark打开

菜单栏中【Statistics(统计)】-【Conversation(会话)】,选择IPV4

只有172.31.4.178172.31.4.188之间有大量的双向网络数据包,因此可初步确定两者为攻击主机IP和目标主机IP。

三次握手成功后,客户端会发送RST|ACK消息给服务端

SYN连接请求序号标志,ACK确认序号的标志,可以确定172.31.4.178是攻击主机,172.31.4.188是被扫描的目标主机。

通过snort工具解析wireshark的pcap文件,可以得出通过nmap工具对端口进行了扫描

开启kali

sudo apt-get update  //可以只写下面那句试试,如果显示没成,再用这句
sudo apt-get install snort  //安装snort

sudo chmod 777 /etc/snort/snort.conf   //给予snort.conf可读可写可执行权限

把云班课上的listen.pcap文件粘贴到/home/kali里

sudo snort -A console -q -u snort -c /etc/snort/snort.conf -r ~/listen.pcap   //-A开启报警模式,-q不显示状态报告,-r从pcap格式的文件中读取数据包

可以看出是采用namp发起的扫描。

你所分析的日志文件中,攻击者使用了哪种扫描方法,扫描的目标端口是什么,并描述工作原理

在Wireshark中筛选ARP

nmap每次探测主机活跃是在广播域内广播arp request报文,而nmap每次扫描之前都会进行主机活跃探测。如果收到arp response报文即为活跃。并可以得到目标主机mac地址。

nmap在发起端口扫描之前总是先通过Ping扫描和针对80端口的探测确定目标主机是否活跃。

通过过滤器搜索icmp,可以定位ICMP协议对应的Ping扫描,实现了两次Ping扫描。

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

在蜜罐主机上发现那些端口是开放的

tcp.flags.syn == 1 and tcp.flags.ack == 1可以过滤出SYN | ACK的数据包,即为目标主机反馈扫描机的端口活跃信息。

得知21,22,23,25,53,80,139,445,3306,3632,5432,8009,8180这几个端口是活跃的

攻击主机的操作系统是什么

经查询发现不同操作系统的ttl是不一样的linux的ttl是64,点击telnet下面的详细信息可以看到ttl=64因此靶机使用的操作系统应该是linux。

攻防对抗实践

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

遇到的问题

  • 问题1:snort安装失败

  • 解决方法:

更新源列表

sudo apt-get update

这个命令,会访问源列表里的每个网址,并读取软件列表,然后保存在本地电脑。我们在新立得软件包管理器里看到的软件列表,都是通过update命令更新的。

  • 问题2:p0f安装失败

  • 解决方法:

    • 方案1:
sudo apt-get install p0f

不成功

  • 方案2:

查看软件源

vi /etc/apt/sources.list

添加两行内容

# deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
# deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib


再尝试运行

sudo apt-get install p0f

也未成功

  • 方案3:

最后决定利用ttl查询

感想感悟

本周实验所需的工具比较多,实验过程中不免有些乱_(:з」∠)_归根到底还是不够熟悉。通过这次学习也顺便温习了一下TCP/IP的握手过程。

实验过程中,选择BBS那里,本来准备尝试一下自己找找别的网站,试了丁香园,还有个经贸类的论坛,出现了连接失败等问题,于是从众选择了复旦大学。snort和p0f安装失败问题参考了不少同学的博客,感谢娄豪君帮忙解决了问题0.0

参考资料


此为本人网络攻防学习第四周的内容,如有不足,还请批评指正,不胜感激。

以上

原文地址:https://www.cnblogs.com/qianxiaoxu/p/12545833.html