《网络攻防》第四周学习总结
教材内容总结
网络嗅探
- 网络嗅探的定义:网络嗅探是一种黑客的窃听技术,嗅探器通过捕获经过封包处理的二进制数据,再结合网络协议分析技术,恢复出相应信息。
- 在交换式网络中,实现嗅探的方式有:
- MAC地址洪泛攻击
- MAC欺骗
- ARP欺骗
- Linux平台的网络嗅探技术主要通过内核态的BPF和用户态的libpcap抓包工具库实现
- windows系统中网络嗅探技术的实现需要与BPF模块兼容的NPF。它可以过滤数据包,并将这些数据包原封不动的传给用户态模块。
- 类Unix系统中的网络嗅探器软件
- libpcap抓包开发库
- tcpdump嗅探器软件
- wireshark嗅探器软件
- 其他嗅探器软件
- 网络嗅探的检测与防范
- 采用安全的网络拓扑,尽量使用交换式网络,通过交换机上设置VLAN等技术手段,对网络进行合理的分段
- 用静态ARP或者MAC-端口映射表代替动态机制
- 重视网络数据传输的集中位置点的安全防范
- 避免使用明文传输口令或敏感信息的网络协议
网络协议分析
- 定义:网络协议分析,是指网络嗅探器进一步解析与理解捕获数据包必须的技术手段。通过对原始报文内容的还原,得出各个协议层上的协议格式及其内容,以及在应用层传输的实际数据
- 网络协议分析的几个步骤
- 从链路层获取二进制数据包,大多数情况下是以太网数据帧
- 根据帧头的Type字段确定网络层协议类型,并提取其中包含的网络层数据内容
- 进一步对IP数据包进行分析,确定传输层协议类型(TCP或UDP),并提取其中的传输层数据内容
- 根据TCP或UDP的目标端口确定具体的应用层协议,并对TCP或UDP数据包进行拼接重组,得到应用层特定协议的应用交互内容
- 根据相应的应用层协议对数据进行整合恢复,得到实际传输的数据。
- 网络协议分析的技术实现
- 解析以太网数据帧
- 解析IP数据包
- 解析TCP数据包
- 网络协议分析工具wireshark
- wireshark:wireshark是一款开源的网络数据包分析工具,其主要作用是捕获网络数据包,并对其进行协议分析。
kali视频学习(11——15)
openvas的使用
首先先确定靶机可以ping通,然后在openvas界面中添加一个新的目标,点击new target,如下
在name和manual里面输入目标主机的IP地址,其他保持默认即可。创建完成后会在target当中显示如下
创建好目标了,下一步就是新建扫描任务,点击Scan Management——New Task,随意起一个名字,然后IP地址是正确的即可,其他均默认
主界面显示ok
下面就是扫描的详细信息
扫描结束之后还可以生成报告,操作很简单。
kali中的其他扫描工具
Golismero
golismero含有多种插件,输入如下命令可以查看插件列表
使用scan命令扫描靶机,如下
Nikto.pl
Nikto是一款开源的网页服务扫描器,它可以对网页服务进行多种扫描。用如下命令可以扫描靶机
扫描出的漏洞信息如下
Lynis系统信息收集整理工具
这个工具是对Linux详细配置等信息进行枚举收集,生成易懂的报告文件,使用如下
为了避免交互,可以在末尾添加-Q,枚举出的系统信息如下
检查一些目录是否存在
查看一些服务和内核的信息
unix-privesc-check
这个工具是一个类似lynis的工具。使用如下命令查看安全设置
包括record hostname,uname,ip信息,是否存在/etc/password,一些可写的配置文件,/etc/shadow是否可读等等信息
web爬行
针对WEB网站的扫描,往往需要对网站路径,页面,账户等进行枚举,这就需要用到web安全中的爬行工具,kali中的web爬行工具如下
kali中的字典存放于/usr/share/wordlist中,便于调用
apache-users
这个工具是枚举apache存在着哪些账号。命令行中,-h加上目标主机的IP地址,-l是加一个用户名的字典,这里使用的是dirbuster中的apache-user-enum-2.0,-p指定端口号,-s看是否有ssl支持,0表示没有。-e表示返回的状态码,-t参数指定线程,比如10个进程
cutycapt
这个工具是用来截图的,使用方法如下
这会生成一个图片在当前目录下面
DIRB
一个强大的web目录扫描工具,命令行输入dirb可以得到下面的使用示例
dirbuster
这是kali下的图形化web目录扫描器,拥有直观的的扫描结果
vega
kali下的一个web漏洞扫描器
只需要点scan,输入ip地址即可扫描
webslayer
主要用于爆破攻击
这个工具在web中间代理的章节再做介绍
WEB漏洞扫描
cadaver
这个工具是一个用来浏览和修改WebDAV共享的Unix命令行程序。这种工具就是以一种客户端,命令行的格式链接webdav
DAVtest
测试对支持WebDAV的服务器上传文件等
语法:davtest -url http://222.28.136.226/dav/
deblaze
针对FLASH远程调用等的枚举,一般在xss或者较深入的web安全中可能会用到
Fimap
文件包含漏洞利用工具
Grabber
Grabber是一个WEB应用漏洞扫描器,可以指定扫描漏洞类型结合爬虫对网站进行安全扫描
joomscan
类似于Wpscan的扫描器,针对特定CMS
SkipFish
skipfish是谷歌出品的一款自动化的网络安全扫描工具,与Nikto,Nessus等工具有相似的功能。它的语法如下:
执行完之后开始发包扫描
扫描结束之后,打开之前创建的report123目录,在目录下找到index.html文件,用浏览器打开,就可以看到这个页面
uniscan
这个工具可以勾选一些选项,然后加上url,然后直接开始扫描就行了
W3AF
w3af是一个web应用程序攻击和检查框架,包括检查网站爬虫,SQL注入,跨站(XSS),本地文件包含(LFI),远程文件包含(RFI)等。该项目的目标是要建立一个框架,以寻找和开发web应用安全漏洞,所以很容易使用和扩展
wapiti
wapiti的工作方式与nikto类似,也采用黑盒的方式主动对被测web应用进行扫描,寻找其中潜在的安全缺陷。
它扫描的方式就是,python wapiti.py http://www.xxxxxx.com -v 2
webshag
一个综合性的调用框架,可以调用Nmap,UScan,信息收集,爬虫等功能,是扫描过程更简单
websploit
主要用于远程扫描和分析系统漏洞,使用它可以非常容易和快速发现系统中存在的问题,并用于深入分析
wireshark的使用
首先是wireshark的界面,在interface list 中选取etho这块网卡,点击Start,即可开始抓包。
从左向右,第一列是编号,第二列是抓包的时间。第三列是所抓报文的源,源地址若是二层报文,则显示的是MAC地址,如果是三层以上的报文,会显示一个IP地址。第四列是目标,同第三列相同,要么是目标MAC,要么是目标IP。第五列是报文的协议。最后一列是关于报文信息的描述。
我们随便点击一个,ARP请求报文,可以看到底部有如下图所示的详细信息。
可以看到,它的目标mac是全f,源mac是00:e0:4c:68:01:20,等等其他的信息
再下面就是报文中的原始字段,为16进制表示。点击就可以看到中间栏中对该字段的解释。
接下来就是wireshark的一个很强大的报文过滤功能。,例如需要按照协议来过滤,只需要在filter中输入协议名称即可
如果想按照目标地址进行过滤,就在filter中输入ip.dst==222.28.136.223,即可筛选出,如下图
需要按照源地址进行过滤,就用如下的操作命令
也可以根据端口号进行过滤,比如需要过滤80端口的数据,就这样输入
需要过滤二层报文,输入的条件需要为eth.addr==mac地址
三层报文的过滤是ip.addr
如果需要搜索更复杂的条件,就需要使用逻辑表达式来进行搜索,常用的逻辑表达式有三种,分别是与,或,非。
例如,我们想同时显示ARP报文或HTTP报文,则用or连接即可
例如,我们想过滤一个源ip是222.28.136.223,同时还是TCP协议的报文,只需使用and连接
例如,我们想显示除ip报文以外的所有报文,就要用到非。
这些表达式也可以组合运用,就不再演示了。
然后就是wireshark另一个很强大的功能——流分析
首先我们打开wireshark开始抓包,然后用telnet命令去查看靶机222.28.136.226,这时telnet的过程就被全部捕捉到了。我们用之前介绍的过滤功能来查看捕捉到的内容
这时,我们点击Analyze——Follow TCP Stream,弹出如下窗口
其中蓝色字段显示的是远程主机回显的数据,红色部分表示我们输入的部分,其中可以看到我们输入的密码等许多信息。
通过这个例子可以看出,telnet是一种明文的传输方式。不够安全。
wireshark可以根据我们产生的一个完整的流来做一些分析,甚至包括用户名密码等字段。