20199326 2019-2020-2 《网络攻防实践》第4周作业
实践内容
网络嗅探
-
网络嗅探是一种黑客常用的窃听技术,与传统的电话窃听在电话线路上对特定号码的通话内容进行监听类似,网络嗅探利用计算机的网络接口截获目的地为其他计算机的数据报文,以监听数据流中所包含的用户账户密码或私密信息。
-
以太网与WI-FI是目前有线局域网(LAN)与无线局域网(WLAN)最流行的链路层协议,也是目前的网络嗅探器主要监听对象。
-
以太网是美国电气及电子工程学会制定的有线网络协议标准,即802.3协议。以太网与电话线路不同,以太网是共享通信信道的,然后采用了载波侦听/冲突检测技术避免共享链路上的通信冲突。在以太网的共享通信媒介中,网络上的站点使用在信道上的广播机制来发送自己的数据,这就意味着计算机能够接收到在共享媒介上发送给其他计算机的信息。
-
网卡的混杂模式:处于该模式下的网卡能够接收一切通过它连接共享通信媒介的数据帧,而不管该数据帧是否是传给它的,所以,为了嗅探以太网上的流量,就需要将网卡设置为混杂模式。
-
共享式网络主要使用集线器连接,其网络拓扑是基于总线方式,物理上是广播的。而交互式网络则主要使用交换机组建,所以数据帧都通过交换机进行数据转发。
-
类UNIX平台的网络嗅探技术主要通过内核态的BPF和用户态的libcap抓包工具库实现。BPF是类UNIX系统上数据链路层的一种原始接口,提供原始链路层封包的收发功能。Lipcap是类UNIX平台用户态下的抓包工具库,与内核态的BPF包嗅探与过滤机制向配合,为类UNIX平台上的应用程序提供标准的网络嗅探接口。
-
Windows操作系统内核并不提供标准的网络嗅探与抓包接口,因此需要通过增加一个驱动程序或网络组件来访问内核网卡驱动中捕获的数据包,而目前最常用的是与类UNIX平台上的BPF模块兼容的NPF。而在Windows用户态,也拥有一个与libpcap库相兼容的标准抓包接口WinPcap。
-
网络嗅探属于一种被动式非干扰性的攻击手段,具有很高的隐蔽性,因此对网络嗅探的检测比较困难,但仍然有一些技术方法能够对网络中的嗅探器进行检测。在同一主机上,可以通过检查网络是否运行在混杂模式下,来发现正在进行监听的嗅探器。
-
网络嗅探的防范措施:
- 采用安全的网络拓扑,尽量将共享式网络升级为交换式网络,并通过在交换机上设置VLAN等技术手段,对网络进行合理的分段,从而尽量使得网络包只被转发到目的主机上。
- 用静态ARP或者MAC-端口映射表代替动态机制,防止利用MAC地址欺骗,ARP欺骗等手段进行嗅探
- 重视网络数据传输的集中位置点的安全防范,如网关,路由器和交换机
- 避免使用明文传输口令或敏感信息的网络协议,而使用加密及安全增强的网络协议进行替代。
网络协议分析
- 网络协议分析是网络嗅探器进一步解析与理解捕获数据包必需的技术手段,网络嗅探截获的是在通过封包过程组装的二进制格式原始报文内容,为了获取其中包含的信息,就需要根据TCP/IP协议栈的协议规范,重新还原出数据包在各个协议层上的协议格式及其内容,以及在应用层传输的实际数据。
- Snort是1998年由Martin Roesch用C语言开发的开源网络入侵检测系统,基于网络嗅探开发库libcap,发展至今,Snort已经成为一个多平台的网络入侵检测/防御系统,而Snort也支持基本的网络数据嗅探与协议分析功能特性。
- Wireshark是一款开源的网络数据包分析工具,其主要作用是捕获网络数据包,对于数据包进行协议分析以尽可能地显示详细的情况,并以更容易理解的格式呈现给用户。它可以被用于解决网络故障,进行系统管理和安全管理,学习网络协议等多个方面。
实践过程
天涯网的嗅探
使用tcpdump对主机访问天涯网进行嗅探,回答问题:你在访问www.tianya.cn网站首页时,浏览器将访问多少个Web服务器?他们的IP地址都是什么?
我使用kali上的tcpdump进行嗅探,嗅探命令是sudo tcpdump src ip地址 and tcp dst port 80,嗅探结果如下,前几行那个inet的是谷歌浏览器固定访问的,主要是检测要访问的网址是否有毒。
浏览器访问了一个1个web服务器,ip地址是:58.216.90.60。
下边这张图是我使用nslookup的检测结果
BBS嗅探
使用Wireshark开源软件对在本机上以telnet方式登录BBS进行嗅探与协议分析,回答如下问题并给出操作过程:
- 你说登录的BBS服务器的IP地址和端口各是什么?
- telnet协议是如何向服务器传送你输入的用户名及登录口令的?
- 如何利用Wireshark分析嗅探的数据包,并从中获取你的用户名及登录口令?
首先回答第一个问题,我登录的是复旦大学的bbs论坛,网址是bbs.fudan.sh.cn,ip地址是61.129.42.9,端口是2323。
其次回答下第二个问题,通过wireshark的捕包,我发现telnet协议使用了tcp协议传输口令及密码。然后再给主机添加telnet服务的过程中,
我发现小字部分解释了telnet。Allow you to connect to other computers remotely.中文意思就是允许你远程连接其他电脑。
最后回答下第三个问题,只需要在wireshark的过滤器上控制ip地址是bbs.fudan.sh.cn的公网IP即可。
下面详述一下登录过程
1.win10首先打开程序与功能,然后点击启用和关闭windows功能,在里面找到telnet并点击。
2.cmd命令行里输入telnet,会进入telnet界面。输入?/help即可查看命令。
3.输入o bbs.fudan.sh.cn 2323与复旦bbs建立连接
4.此时会出现让你输入用户名密码的界面。我之前以及注册了一个账号。这会你要打开wireshark,并且在过滤器栏输入ip.dst==61.129.42.9。然后,再在论坛上输入用户名密码。回车登录成功。然后你可以看到wireshark捕获了很多包。
5.在这些包上点击右键,找到追踪流,然后点击tcp流。然后筛选下ip的dst为61.129.42.9。即可查看到数据。和我本人输入的账号密码完全一致。由此可见telnet很不安全。
取证分析实践:解码网络扫描
这个实践需要在kali上安卓snort以及p0f
sudo apt-get install snort
sudo apt-get install p0f
1-2:
机器 | ip地址 |
---|---|
攻击机ip | 172.31.4.178 |
靶机ip | 172.31.4.188 |
ip地址是通过wireshark上监听的报文分析得到了,根据tcp报文的三次握手即可知道攻击机和靶机。 | |
3:本次案例使用nmap来发起端口扫描。我通过snort工具对pcap文件进行分析,得到了分析工具名称。
snort -A console -q -u snort -c /etc/snort/snort.conf -r ./Desktop/listen.pcap
4.通过分析日志文件,我认为攻击者使用了如下命令
- -sS(半开扫描)
- -sV(版本检测)
- -sP(其实就是ping扫描,不过局域网内核网外方式不一样)
首先说一下判断第一个的sS的依据,刚打开这个pcap文件,发现报文太多,反正使用nmap就是扫描目标主机的端口开放的,所以先找一个端口分析分析。开头有个3306端口,我筛选后,对TCP报文的一些三次握手标志位分析,发现了如下结果,【SYN->ACK,SYN->RST】,这个操作是半开扫描的老把戏。所以半开扫描石锤了。
再来说一下-sV的依据,这个操作用来判断目标主机和端口上运行的软件的版本。仔细分析下图的报文,就可以发现他完成了三次握手,建立了tcp连接,然后出现了Mysql protocol。这是数据库。百度搜了3306端口,发现了这个是默认数据库端口。所以版本检测石锤了。
最后说一下-sP。刚打开pcap时,前几个报文是ARP报文。而且这个靶机和攻击机在同一个局域网内,再根据info内的信息,发送arp报文的目的就是局域网广播,问靶机在不在。所以ping石锤了。
5:既然攻击机使用半开扫描扫描靶机端口,只需要判断靶机发回来的报文ack,syn标志位是否为1。在wireshark中设定条件后得到下图结果。这些端口是开放的。
6:在kali上使用p0f工具对pcap文件进行分析,发现p0f判断靶机为linux。
攻防对抗实践
我使用的攻击机是kali,靶机是win2kserver。
首先我在kali上对eth0网卡接口进行嗅探并将嗅探结果记录到listen.pcap文件中。用到了下面的命令。
tcpdump -i eth0 -w listen.pcap
然后我又开了一个终端开始对靶机端口扫描。
接下来就是一些操作。我用了nmap的-sS和-sP。
然后是在wireshark里打开listen.pcap文件。可以看到arp对应的是-sP操作,TCP报文对应的是-sS操作。
学习感想和体会
本次学习过程自我感觉很有收获,有点黑客的味道了。可以通过wireshark监听目标主机,然后获取密码。这次是telnet,获取的是明文密码。不过据我了解,互联网上现在都是加密的密码口令。这次学习对nmap一些命令理解的更加深刻了。实践的时候遇到了很多的问题。参照同学博客最终也算是做下来了,很有收获。
学习中遇到的问题及解决
问题1:对telnet很陌生,第二个实践无从下手
通过参考同学的博客以及百度查询telnet。基本了解了telnet这个协议
问题2:复旦bbs论坛用默认23号端口登不进去
使用了2323即可解决