zoukankan      html  css  js  c++  java
  • 网络攻防第四周作业

    教材内容学习 网络嗅探与协议分析

    一、网络嗅探

    1.网络嗅探概述

    网络嗅探利用计算机的网络接口截获目的地为其他计算机的数据报文,以监听数据流中所包含的用户账户密码或私密信息等。实现网络嗅探技术的工具称为网络嗅探器(Sniffer),嗅 探器捕获的数据报文是经过封包处理之后的二进制数据,因此通常会结合网络数据协议分析技术来解析嗅探到的网络数据,这样才能恢复出TCP/IP协议栈上各层网络协议的内容以及实际发送的应用层信息。

    网络嗅探作为攻击者经常用的内网渗透技术,通常在攻击者获得内部网络中一台主机的访问权后实施,能够被动地、静默地嗅探网络上传输的数据,并从中窃取机密信息(各类用户名和口令、电子邮件正文及附件、网络打印的文档),和底层的网络协议信息(使用的DNS服务器IP地址、网关IP地址、TCP连接序号),通过网络嗅探获得的数据还可以为攻击者进行中间人攻击提供帮助。网络嗅探具有被动性与非干扰性,很强大的隐蔽性,往往难以被人发觉。

    以太网与wifi是目前有线局域网与无线局域网最流行的链路层协议。也是目前嗅探器主要监听对象。

    网络嗅探技术可以按所监听的链路层网络进行分类。分为无限嗅探器和有限嗅探器。无限嗅探器可以读取和分析符合如IEEE 802.11等无线传输协议的数据包。

    网络嗅探技术可以按实现形式进行分类。分为软件嗅探器和硬件嗅探器。硬件嗅探器通过专用硬件对网络数据进行捕获和分析,通常也成为协议分析仪。速度快,往往被放置在网络的关键位置。但是成本高。软件嗅探器一般实现为不同类型操作系统上的应用软件,通过对网卡编程实现,价格相对便宜。易于使用,但是速度慢,效果不佳。

    2.嗅探技术原理与实现。

    处于混杂模式下的网卡能够接受一切通过它连接共享通信媒介的数据帧。为了嗅探以太网上的流量,需要将网卡设置为混杂模式。

    利用以太网在实际部署有限局域网时根据部署方式不同分为共享式网络和交换式网络两种。共享式网络主要使用集线器连接,其网络拓扑结构是基于总线,同一集线器上连接的所有主机在发送数据包时,都会发往每一台主机,任一主机都能嗅探整个集线器上的全部网络流量;而交互式网络则主要使用交换机,所以数据帧都通过交换机转发,交换机通过映射表与数据包的目标MAC地址进行转发,可以有效的避免网络广播风暴,减少网络数据被嗅探的风险。

    网络嗅探的技术手段:

    (1)MAC地址洪泛攻击:向交换机发送大量含有虚构MAC地址和IP地址的数据包。致使交换机的“MAC地址-端口映射表”溢出无法处理,使得交换机进入“打开失效”模式,此模式类似于集线器的工作方式
    
    (2)MAC欺骗:假冒要监听的主机网卡,攻击者通过源MAC地址伪造成目标地址的源MAC地址,并将这样的数据包通过交换机发送出去。使得交换机不断地更新他的映射表,从而让交换机相信攻击者主机的MAC地址就是目标主机的MAC地址。
    
    (3)ARP欺骗:利用IP地址与MAC地址之间进行转换时的协议漏洞,达到MAC地址欺骗。(最常用的一种嗅探技术手段)
    

    类unix平台的网络嗅探技术主要通过内核态的BPF和用户态的libpcap抓包工具库实现。其嗅探捕获的数据包将保存在pcap记录文件中。

    windows平台不提供标准的网络嗅探和抓包接口,因此需要增加一个驱动程序或网络组件来访问内核网卡驱动中捕获的数据包,常用于类UNIX平台上的BPF兼容的NPF,和与libpcap兼容的标准抓包接口WinPcap(主要包含packet.dll和wpcap.dll两个模块)。

    3.网络嗅探器软件

    (1)类UNIX平台网络嗅探器软件

    a.libpcap抓包开发库

    b.tcpdump:最老、最通用,维护最好http://www.tcpdump.org/

    c.wireshark:以前名叫ethereal。基于图形界面的嗅探器软件。http://www.wireshark.org/

    (2)Windows平台网络嗅探器软件

    对应UNIX里的BPF/libpcap/tcpdump

    Windows里有NPF/winpcap/windump,还有wireshark的Windows版本,还有商业的具有友好界面及很强统计分析能力的SniffPro软件,还有Buttsniffer、NetMon、Network Associates Sniff等。

    4.网络嗅探的捡测与防范

    检测

    • 同一主机上可以通过检查网卡是否运行到混杂模式下,来发现正在监听的嗅探器
    • 基于混杂模式下操作系统和协议栈的不同特性,来检测处网络中其他主机上的嗅探器
    • antisniff

    防范

    • 采用安全的网络拓扑,尽量采用交换式网络系统
    • 用静态ARP或者MAC端口映射表代替动态机制:针对渗透嗅探
    • 重视网络数据传输的集中位置点的安全防范,如网关、路由器和交换机等。
    • 避免使用明文传输口令或敏感信息的网络协议,使用加密及安全增强的网络协议进行替代

    二、网络协议分析

    网络嗅探截获在通过封包过程组装的二进制格式原始报文内容,为了获取其中包含的信息,需要根据TCP/IP协议站的协议规范,重新还原处数据包在各个协议层上的协议格式及其内容,以及在应用层传输的实际数据。
    

    1.网络协议分析技术

    原理

    对网络传输的二进制格式数据包进行解析,以恢复出各层网络协议信息(包括网络层、传输层、链路层撒协议类型及所有包头字段信息)以及传输的内容。

    技术实践

    Snort 开源网络入侵检测系统,基于网络嗅探开发库libpcap,Snort有三种工作模式:嗅探器、数据包记录器、网络入侵检测系统。嗅探器模式仅仅是从网络上读取数据包并作为连续不断的流显示在终端上。数据包记录器模式把数据包记录到硬盘上。网络入侵检测模式是最复杂的,而且是可配置的。我们可以让snort分析网络数据流以匹配用户定义的一些规则,并根据检测结果采取一定的动作。

    snort工作过程

    2.网络协议分析工具Wireshark

    之前称为ethereal,开源的网络协议分析工具,可以用来解决网络故障,进行系统管理和安全管理,学习网络协议。a 可用于网络嗅探方面,支持对多种类型网络接口,包括以太网、802.11无线网络,并支持从网络中截获数据包及从离线的记录文件中读取网络数据包。b 在网络协议分析方面,通过网络协议解析框架支持开源社区提交网络协议的解析插件。

    Wireshark 是当今世界上被应用最广泛的网络协议分析工具。用户通常使用Wireshark来学习网络协议,分析网络问题,检测攻击和木马等。

    为了安全考虑,wireshark只能查看封包,而不能修改封包的内容,或者发送封包。

    wireshark能获取HTTP,也能获取HTTPS,但是不能解密HTTPS,所以wireshark看不懂HTTPS中的内容

    处理HTTP,HTTPS用Fiddler,其他协议比如TCP,UDP就用wireshark

    视频内容学习

    漏洞评估系统openvas的安装

    OpenVAS是一款免费的开放式风险评估工具,可以检测远程系统和应用程序中的安全问题。最初作为Nessus一个子工具,被称为 GNessUs。其特点就是允许继续免费开发。最早是由Portcullis Computer security公司的渗透测试人员发布的,之后由Slashdot网站的Tim Brown发布。

    http://www.openvas.org/

    包括一个中央服务器和一个图形化前端。用这个服务器运行不同的网络漏洞测试(采用的是Nessus攻击脚本语言)而且会经常性更新。

    kali和BackTrack默认已经安装好了OpenVAS,也可通过

     $ sudo apt-get install openvas
    

    进行安装,kali没有对openvas进行完整配置,所以为了很好的运行openvas,必须手动配置。

    openvas-manager:负责与客户端Greebone程序通信,完成扫描任务、检测报告的提交等工作,默认端口为9390  
    
    openvas-scanner:实际执行扫描的主服务,默认端口为9391  
    
    gsad:负责提供Web访问界面,默认监听地址为127.0.0.1,端口为9392 
    
    openvas-administrator   :负责与openvas-manager、gsad通信,完成用户和配置管理等操作,默认监听地址为127.0.0.1,端口为9393。
    

    先进行一下检查

    我得到的检查结果我觉得很是乐观,看到kali视频十讲的,从step1就出现了error,但是第一次进行openvas-check-step,只是在第七步出现了error,如下图,除下图之外,还有ERROR:openvas scanner is not running.之后我打开了openvas scanner,再进行openvas-check-step就得到下图.

    下一步就是解决的问题

    下面就是进行尝试解决这个问题。

    没有效果

    查阅资料,再尝试

    $ openvasmd --database=/usr/local/var/lib/openvas/mgr/tasks.db --slisten=192.168.129.1 --sport=9391 --listen=0.0.0.0 --port=9390

    再尝试。。为OpenVAS manager创建一个客户端证书

     $ openvas-mkcert-client -n om -i
    

    现在需要利用最新更新的NVTs重新创建一下数据库,这一步要是不做之后很有可能会出错的。。

     $ openvas-nvt-sync --wget
    

    更新数据库需要很长时间,晚上的网真是让人捉急,等啊等,等等等等。。。。

    下面两幅图是在没网的情况下更新数据库的“杰作”,我真是对自己无语了,走过的错误的路也要记下来。。记下来。。

    再一次openvas-check-step

    openvas manager成功

    再来解决如下问题

    service greenbone-security-assistant start

    再一次openvas-check-step

    Greenbone Security Assistant配置成功

    再来解决如下问题。

    openvasad -start

    启动OpenVAS administrator:administraor配置是安装过程中的大工程。。要先创建一个管理员用户,当然这个可以在图形界面配置,命令行配置方式如下:

    openvasad –c wyq –n openvasadmin –r Admin

    (-n 为名字 -r为角色)

    再一次openvas-check-step

    kali提示:It seems like your OpenVAS-6 installation is OK.

    暂时看起来好像是弄好了。

    ** 启动OpenVAS服务 **

    通常情况下,更新完插件后,OpenVAS服务对应的几个程序都会启动。所以,用户在启动服务之前,可以使用netstat命令查看该服务是否已经启动。默认,OpenVAS服务将会监听9390、9391和9392三个端口。所以,用户可以执行如下命令:

    root@localhost:~# netstat -antp | grep 939*

    可以看到939开头的三个端口都已经被监听,而且监听的主机地址为127.0.0.1。这说明OpenVAS服务已启动,并且仅允许本地回环地址127.0.0.1访问。如果没有看到以上信息输出,则表示该服务没启动。此时,用户可以使用openvas-start命令启动该服务,如下所示:

    root@localhost:~# openvas-start

    看到以上信息,则表示OpenVAS服务成功启动。如果OpenVAS服务已经启动的话,执行以上命令时将会出现错误。如下所示

    可是我自己运行这个的时候出现的是以下

    ** 停止OpenVAS服务 **

    当用户修改一些配置时,往往需要重新启动服务,使配置生效。所以,在重新启动服务之前,首先要停止该服务,才可以重新启动。停止OpenVAS服务,执行命令如下所示:

    root@localhost:~# openvas-stop

    从输出信息中,可以看到OpenVAS相关服务都已停止。然后执行openvas-start命令,重新启动OpenVAS服务。

    使用openvas-stop或openvas-start命令,将同时停止或启动OpenVAS服务中的三个程序,即Greenbone Security Assistant、OpenVAS Scanner和OpenVAS Manager。如果            用户想要启动或停止单个服务时,可以使用service命令实现。语法格式如下所示:
    
    service [服务名] start|stop
    
    以上三个程序分别对应的服务名是greenbone-security-assistant、openvas-scanner和openvas-manager。
    

    kali漏洞分析工具

    1.Golismero 新兴开源web扫描器

    扫描结果过于杂乱,扫描界面不够友好,报告生成不够规范

    2.Nikto.pl 开源网页服务器扫描器

    root@localhost:~# nikto -h <目标ip>
    

    3.Lynis 系统信息收集工具

    对Linux操作系统详细配置等信息进行枚举,生成易懂的报告文件

    root@localhost:~#  lynix --check-all -Q
    

    即开始自动枚举一些信息

    4.unix-privesc-check 信息收集工具

      root@localhost:~# unix-privesc-check standard
    

    漏洞分析之web爬行

    对网站的路径、页面、账户等进行枚举,需要“字典”的帮助。kali内置字典存放在、文件系统/主文件夹/usr/share/wordlists里,之后的操作如果用到字典,根据这个路径进行调用,,即用到了爬行

    1.Apache-users 用户枚举脚本

     root@localhost:~# apache-users -h <ip地址> -l <字典路径>
    
    root@localhost:~# apache-users -h 192.168.129.150 -l /usr/share/wordlists/dirbuster/
    

    2.CutyCapt 网站截图工具

    kali中打开

    root@localhost:~# cutcapt --url=http://www.baidu.com/ --out=baidu.png
    

    3.DIRB 强大的目录扫描工具(1)

     root@localhost:~# dirb http://192.168.129.150(目标网站地址)
    

    4.Dirbuster 图形化目录扫描工具(2),拥有直观地扫描效果

    界面简单,输入目标网站地址,选定字典,配置参数,操作简单

    5.vega kali下的WVS,开源漏洞扫描工具

    创建一个扫描地址,归类整理危险档信息

    6.WebSlayer

    主要用于爆破攻击

    漏洞分析之web漏洞扫描

    与爬行密切相关,对url进行测试

    1.cadaver 类似shell的一个界面,需要主机名和路径,用来浏览和修改Unix命令行程序。

    root@localhost:~# cadaver --help
    

    ssh远程连接管理

    2.DAVTest 测试对支持WebDAV的服务器上自动上传应用、随机目录文件等

    root@localhost:~# davtest --url <扫描地址>
    

    3.Deblaze 针对FLASH远程调用等的枚举

    4.Fimap 远程和本地文件包含工具和漏洞利用工具

    5.Grabber是一个WEB应用漏洞扫描器,可以制定扫描漏洞类型结合爬虫对网站进行安全扫描,可针对性进行测试。

    6.joomscan,针对一个CMS进行扫描,-u 《ip地址》

    7.skipfish ——google的一款自动化的网络安全扫描工具,通过http协议处理,占有较少CPU资源,运行速度很快

    root@localhost:~# skipfish -o <目标存放地址> <扫描网站>(-o为output)
    

    ctrl+c结束会自动生成一个报告。

    8.Uniscan -gui 有图形界面,输入URL,勾选图形工具

    9.W3AF web应用程序工具和检查框架,建立一个框架,以寻求安全漏洞。

    root@localhost:~# w3af_gui  (打开)
    

    10.Wapiti 和nikto类似,用黑客方式主动对被测WEB进行扫描,寻找其中的漏洞,也可以导出一些html报告。

    root@localhost:~# wapiti <扫描地址>
    

    11.webshag :集成调用框架,调用Nmap、UScan、信息收集、爬虫等功能,使扫描过程更容易。

    输入ip地址,开始爬虫

    12.websploit 主要用于远程扫描和分析系统漏洞。

    本周学习内容如上,openvas很是让人焦灼,本来装好了,但是出了一些问题,打不开,放置了两天之后,OPENVAS manner is not running。。

    调了很久没有成果。之后有时间会继续试着调一下。

  • 相关阅读:
    003-2021 java.sql.SQLSyntaxErrorException: Unknown column 'Kitty' in 'where clause'
    002-2021 SpringMVC文件跨服务器上传异常之 409 : 目录不存在
    001-2021 SpringMVC文件跨服务器上传异常之405 : UniformInterfaceException : PUT http://localhost:9090/uploads/xxx returned a response status of 405 Method Not Allowed
    JUnit错误 : java.lang.NoSuchMethodError: org.junit.runner.Description.createSuiteDescription
    char[]
    Sql语句执行与书写顺序
    Java深拷贝和浅拷贝区别
    C++析构函数详解
    浅谈c/c++中register关键字
    C++异常之栈解旋
  • 原文地址:https://www.cnblogs.com/wangyaqiong/p/6596442.html
Copyright © 2011-2022 走看看