20199107 2019-2020-2 《网络攻防实践》第4周作业
这个作业属于哪个课程 | 《网络攻防实践》 |
这个作业的要求在哪里 | 《网络攻防实践》第4次作业 |
我在这个课程的目标是 | 学习新知识、考试拿高分 |
这个作业在哪个具体方面帮助我实现目标 | 学习网络嗅探与协议分析 |
作业正文 | 见下文 |
其他参考文献 | 见文末 |
1.实践内容
这次的实践内容感觉主要可以分成理论和操作两个部分。
理论部分:
网络嗅探即攻击者成功进入内网后悄悄地分析整个内网往来的数据。
现在的网络嗅探技术主要针对以太网(有线)和WIFI(无线)。
按照实现形式可分为硬件嗅探器(快,全,贵),软件嗅探器(慢,可能会缺包,胜在方便便宜)。
网卡有两种模式,正常模式只会接受属于自己的帧和广播帧,混杂模式会接受所有数据包
共享式网络:集线器连接,广播数据帧,任意一台机器都能收到整个网的数据帧。
交换式网络:交换机连接,通过交换机转发数据帧,因此一台终端一般不能收到整个网的帧,要收就要通过技术手段。
现在交换机一般都是自学习MAC地址,MAC地址和端口的映射表一直动态地更新,利用这点,通过以下手段,可以获取整个内网的帧
(1)MAC泛洪攻击,发送大量虚构MAC地址和IP地址的数据包,让端口映射表短时间内失效,只能开始广播
(2)MAC欺骗,冒充要监听的网卡,虚构大量假数据包,让端口映射表学到假知识
(3)ARP欺骗,ARP是转换IP和MAC的协议,欺骗靶机使其错以为攻击者更改后的MAC地址是网关的MAC
嗅探软件的原理其实就是根据各个协议的格式,把数据包拆开来,每一部分对上
操作部分:主要是学会用各种工具tcpdump、wireshark
2.实践过程
实践1
使用tcpdump开源软件对在本机上访问www.tianya.cn网站过程进行嗅探,回答问题:你在访问www.tianya.cn网站首页时,浏览器将访问多少个Web服务器?他们的IP地址都是什么?
tcpdump src 192.168.200.2 and tcp dst port 80
即抓取原地址为本机地址(192.168.200.2)端口为80(80为http常用端口号)的数据包
找到的ip一共有四个,分别是124.225.65.154,218.77.130.200,124.225.135.230,124.225.214.206,查了一下都在海南省
用nslookup确认一下,确实是
实践2
使用Wireshark开源软件对在本机上以TELNET方式登录BBS进行嗅探与协议分析,回答如下问题并给出操作过程:
- (1)你所登录的BBS服务器的IP地址与端口各是什么?
- (2)TELNET协议是如何向服务器传送你输入的用户名及登录口令?
- (3)如何利用Wireshark分析嗅探的数据包,并从中获取你的用户名及登录口令?
kali是自带wireshark的,点击左上角图标,09 sniffing & spoofing(嗅探和欺骗),就看到wireshark了
开始抓包后,luit -encoding gbk telnet bbs.fudan.edu.cn
登录复旦的BBS(跟着大佬做的,感谢大佬的贡献),一顿操作后退出,停止抓包
在筛选框框输入telnet,随便选个筛出来的telnet包,非常容易能看得IP和端口为202.120.225.9:23
用户名和口令是一个字一个字的输入,如下图
右键点击选follow追踪TCP流,左下角可以选择从本机到服务器方向的流,是明文传输的,可以看到用户名guest,而密码为空
实践3
一开始还很疑惑要分析个什么要到哪里找,后来才看到课代表已经把分析目标listen.pcap上传蓝墨云了,感谢课代
- 1.攻击主机的IP地址是什么?
- 2.网络扫描的目标IP地址是什么?
- 3.本次案例中是使用了哪个扫描工具发起这些端口扫描?你是如何确定的?
- 4.你所分析的日志文件中,攻击者使用了那种扫描方法,扫描的目标端口是什么,并描述其工作原理。
- 5.在蜜罐主机上哪些端口被发现是开放的?
- 6.攻击主机的操作系统是什么?
下载后放到kali中,并用mv命令放到合适的目录中,在kali中提权后使用命令apt-get install snort
安装snort
用snort -A console -q -u snort -c /etc/snort/snort.conf -r ./listen.pcap
分析一下
从弹出的警告易发现,攻击机IP为172.31.4.178,靶机IP为172.31.4.188,可能的攻击行为有nmap扫描、DDoS攻击、Telnet远程连接等,问题1,2,3的答案有了
然后用wireshark打开listen.pcap,选择 统计-Conversations,观察可见172.31.4.178发送了大量目标为172.31.4.188的数据包,也表明其攻击行为
因为nmap每次扫描前都会用ARP测试靶机是否活跃以及确定MAC地址,因此先用wireshark筛选ARP,可以看到,有四次攻击机请求靶机MAC的广播包,可猜测攻击机进行了四次nmap扫描
且可发现,第一次和第二次间没有其他数据包,可猜测第一次为-sP
进行活跃主机扫描
第二次扫描时,攻击机发送了大量TCP请求包到靶机的多个端口,且在最后构造了多个标志位,可能是在获取靶机的多种响应包,可猜测是用-O
进行操作系统扫描
在第三次扫描期间,约有13万数据包,且基本都是到靶机的各个端口的TCP[SYN]请求包,可猜测是在用-sS
进行半开扫描,扫描开放端口
观察第四次扫描期间的包,发现这次攻击机不仅光是发送了请求,也建立了连接,可猜测是在用-sV
扫描服务版本,问题4到此也有了
用wireshark过滤tcp.flags.syn == 1 && tcp.flags.ack == 1 && ip.src==172.31.4.188
筛选出靶机的响应包
可发现打开的端口有21,22,23,25,53,80,139,445,3306,5432,8009,8180,问题5也有了
为了识别攻击机操作系统,来装个p0f(一个被动式的操作系统探测工具,通过捕获主机发出的数据包来对主机上的操作系统进行鉴别)
apt-get update
apt-get install p0f 安装p0f
p0f -r listen.pcap 用p0f分析一下
是linux 2.6.x,问题6也有了
实践4
攻击方用nmap扫描,防守方用tcpdump嗅探,用wireshark分析,并分析出攻击方的扫描目的以及每次使用的nmap命令
攻击机用kali(192.168.200.2),靶机用metasploitable2linux(192.168.200.125)
kali一边执行tcpdump -i eth0 -w my_sniff.pcap
一边依次执行
nmap -sP 192.168.200.0/25
nmap -O 192.168.200.125
nmap -sV 192.168.200.125
扫描结果出来Ctrl+c停止tcpdump,用wireshark my_sniff.pcap
打开结果
筛选ARP,看到一系列有序广播包,表明是在对整个网段进行活动主机发现,找到3次作为开始标志的ARP广播,下图依次为第123次扫描开始标志,第一次为-sP
可以找到扫描操作系统特意构造的一系列包,第2次为-O
ip.src==192.168.200.2
筛选一下攻击机发出的包,第三次为-sV
3.学习中遇到的问题及解决
- 问题1:我的英语水平不足以让我看懂tcpdump的帮助手册,好点的地方也就能懂个大概,很多地方都看不太懂
- 问题1解决方案:百度找中文资料,还是中文好啊
- 问题2:对于连接BBS那里觉得非常疑惑,一开始感觉这题目不明所以,啥BBS啊也不指定指定
- 问题2解决方案:跟着其他同学的博客做了,大佬们太强了
4.实践总结
感觉自从开始上网络攻防课,我的计算机网络知识掌握度突飞猛进。除此之外还学会了很多tcpdump,nmap的用法和原理。
感谢大佬的博客,这次又让我避过了不少坑,例如其实我一开始以为那个操作系统扫描是端口扫描来的,毕竟那么多SYN请求包,后来觉得不对,总不会连续两次一样的扫描吧。
5.其他参考文献
- 《网络攻防技术与实践》(诸葛建伟著)
- tcpdump命令详解
- linux tcpdump命令详解
- Nmap中文手册