zoukankan      html  css  js  c++  java
  • 2018-2019-2 20189206 《网络攻防实践》 第三周作业

    2018-2019-2 20189206 《网络攻防实践》 第三周作业


    网络信息收集技术

    对于攻击者而言,在对某个目标进行入侵前,从目标的名称和域名入手,了解攻击目标的具体信息。包括网络世界中的通信地址——IP地址、注册信息、DNS服务器位置、电话号段、网络安全管理员及联系方式、外部网络拓扑结构等,随后,攻击者进一步探测目标网络中的活跃的主机、操作系统类型、开放的端口及端口后面所运行的网络服务类型,是否存在已公开的安全漏洞;最后,对攻击目标服务实施信息探查,以获得更详细的信息。

    构成目标信息系统的三大核心元素——人、网络与主机系统

    对防御者而言,信息收集的内容包括追查入侵者身份、网络位置、所攻击的目标、采用的攻击方法等。

    网络信息收集的方法

    • 网络踩点

      • web搜索与挖掘
      • DNS和IP查询

      域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。

      • 网络拓扑侦查
    • 网络扫描

      • 主机扫描
      • 端口扫描
      • 系统类型探查
      • 漏洞扫描
    • 网络查点

      • 旗标抓取
      • 网络服务查点

    网络踩点

    web信息搜索与挖掘 ———— Google Hacking

    • 基本搜索与挖掘技巧
      • 仔细研究目标组织的web主页通常是网络踩点的一个很好的出发点,往往这些页面会向攻击者提供大量有用信息

      • 例如在HTML ASP/ASPX 或者 PHP等源代码及注释语句会隐藏一些有用信息。攻击者会将网站网页全部下载到本地,通过各种文本处理命令grep等查找内容。

        • 镜像web站点的工具有类UNIX平台下的wegt和Windows平台下的Teleport Pro、
      • 高级搜索与挖掘技巧——Google的高级搜索

        • 查询词:allinurl:-php -html -htm -asp -aspx -ppt -pdf -swf -doc -xls site:puk.end.cn使用site查询域名范围为pek.edu.cn排除掉尽可能多地非首页网址,从而在限定查询页面获得二级网站首页

        • 查询词:allinurl:tsweb/default.htm site:cn即可找出开放远程桌面web连接的服务器。

          在浏览器上输入http://服务器域名(地址)/tsweb/ 然后回车,就会看到远程桌面web连接出现在浏览器中。

        • 查询词:filetype:xls 信用卡 site:edu.cn以及filetype:xls 身份证号 site:edu.cn可以得到一些学校网站上保存的Excel文档中会泄露个人信息。

      • 编程实现Google搜索

      • 元搜索引擎

        • 集成多个搜索引擎进行信息收集,效果比单独使用一个更好,这种多个搜索引擎集成的思路,称为元搜索引擎
      • web信息搜索与挖掘防范措施

    DNS与IP查询

    DNS和IP信息往往需要在互联网上以公开的方式对外发布,并在互联网上的公共数据库中进行维护,供公众查询。

    • DNS与IP基础设施管理

      • DNS与IP基础设施,是由一套层次结构的管理结构来负责统一管理的

      管理层次结构的顶层机构是互联网技术协调机构ICANN,主要负责互联网基础的几类标识符的分配工作,负责根DNS服务器系统的稳定运转。

      • ICNAA的三个下属分支:地址支持组织ASO 基本名称支持组织GNSO 国家代码域名支持组织CNNSO
    • DNS注册信息WHOIS查询

      • 域名注册信息(官方注册局、注册商和注册人详细信息)将进入官方注册局或注册商维护的数据库中,向公众提供WHOIS查询。
      • DNS注册信息分散在官方注册局或注册商的数据库中,需要按照层级关系找出维护有具体注册信息的机构数据库。
    • DNS服务:从DNS到IP的映射

      • 权威DNS服务器:提供原始DNS映射信息的,由其提供的映射信息被称为权威解答。
      • 递归缓存DNS服务器:由ISP提供给接入用户使用。在接受到DNS请求后,先查看缓存,如果有则直接回复,否则通过递归查询向其他缓存DNS服务器或权威DNS服务器提出查询。
    • 使用nslookuo或dig客户端程序,向DNS查询特定域名映射IP地址。dig可以直接向权威DNS服务器请求DNS。

    • 一些重要域名网络提供多个DNS服务器(主DNS服务器、辅DNS服务器)。

      • DNS区域传送:实现主与辅DNS服务器之间的数据同步。
      • nslookup可进行DNS区域传送,输入ls -d DNMAIN_NAME如果该DNS服务器配置存在缺陷,会通过区域传送获得大量内部网络主机名和IP地址对应信息。
      • 防范DNS区域传送
    • IP WHOIS查询

      • 只需要挑选一家的RIR的WHOIS服务器,作为IP注册信息的查询出发点,就会告诉我吗应该去哪一个RIR才能找到详细的注册信息。
    • 从DNS与IP到真实世界的地理位置

      • 构建IP地址与真实世界地理位置映射关系一般被称为IP2Location

    网络拓扑侦查

    攻击者对网络拓扑结构侦查的主要技术手段是路由跟踪。路由跟踪是向目标主机发送一系列的UDP数据包,其中数据包的目标端口往往设置为一个不太可能的值,最终可以确定从源到目标主机路由路径上每个节点的IP地址。

    使用WHOIS查询DNS域名获取的信息:

    网络扫描

    主机扫描

    也称为Ping扫描,是探测目标网络拓扑结构的一个基本步骤。指通过对目标网络IP地址范围进行自动化扫描,确定网络中存在哪些活跃设备与系统。

    • 使用ICMP协议的Ping扫描
      • ping程序利用ICMP协议中的ICMP Echo Request数据包进行存活性与连通性的检测。

    首先看一下TCP协议的三次握手

    • 使用TCP协议的主机扫描

      • TCP协议的ACK Ping
        • 发送一个只有ACK标志的TCP数据报给目标主机,如果目标主机反馈一个TCP RST数据报,说明这台主机是存在的
      • SYN ping
        • 如果目标主机活跃但指定端口不开放,会返回RST;如果端口开发,则返回SYN/ACK 两者均可判断目标主机是否活跃
    • 使用UDP协议的主机扫描

      • 实施UPD主机扫描需要选择一个关闭的目标端口,才能完成活跃性探测
    • 主机扫描工具

    端口扫描

    在确定活跃主机之后,用于探查活跃主机上开发了哪些TCP/UDP端口的技术方法。

    TCP/UDP协议均定义了从1到65535共64KB的端口范围,网络服务可以在特定端口上监听以接收客户端的数据包,并在该端口提供反馈。端口扫描需要针对TCP和UDP的端口号进行两遍探测扫描,以发现分别使用TCP和UDP的监听网络服务。

    • TCP connect扫描

      • Connect扫描通过扫描目标端口反馈报文的上述差异来判断目标端口是否开放。
    • TCP SYN扫描

      • 在开放端口反馈SYN/ACK后对连接进行RST
      • TCP SYN还可以用于主机扫描、拒绝服务攻击等
        • SYN Ping 一般用于躲避防火墙进行主机活跃性探测
        • SYN Flooding 通过发起大量“半开连接”耗尽目标主机的连接队列
    • UDP端口扫描

      • 对UDP开放端口与监听网络服务进行探测发现的技术方法

    系统类型探查

    目标:探查活跃主机的系统及开放网络服务的类型,即了解目标主机上运行着何种类型的操作系统,以及在各个开放端口上监听的是哪些网络服务。

    • 操作系统类型探查

      • 操作系统主动探测技术

        • 在不同操作系统类型及版本实现上有一定的差异,对这些差异所构成的指纹特征进行总结,形成操作系统协议栈指纹特征库,可以对主动探测激发的反馈数据包中所存在的指纹特征进行对比,从而精确地识别目标主机操作系统类型。
      • 操作系统被动识别技术

        • 同样基于TCP/IP协议栈指纹分析技术,不向目标主机发送任何数据包。需要位于目标主机的局域网内部或者通信枢纽位置,利用网络嗅探技术捕获通信的数据包。
    • 网络服务类型查探

      • 需要依据网络服务在实现应用层协议时所包含的特殊指纹信息。网络服务类型探查也分为主动探测和被动识别两种方式。

    漏洞扫描

    目的:发现目标网络中特定操作系统、网络服务与应用程序中存在的安全漏洞

    原理:存在安全漏洞的操作系统、网络服务、应用程序对某些网络请求的应答,会和安全的已经安装补丁的实例存在一定的差别。漏洞扫描技术正是利用这些差别来时被目标主机是否存在特定安全漏洞

    漏洞扫描器一般由以下几个部分组成:

    • 安全漏洞数据库
    • 扫描引擎模块
    • 用户配置控制台
    • 扫描进程控制模块
    • 结果存储与报告生成模块

    Nessus漏洞扫描器

    目标:远程监测出目标主机上存在的一系列潜在安全漏洞。守护服务nessusd用于真正实施漏洞扫描,以及客户端程序Nessus用于控制扫描进程以及用户交互。

    网络查点

    与网络踩点技术不同的是,攻击者的入侵程度,查点包括了对目标系统的主动连接与查询,应该被记入日志或触发入侵检测系统报警

    网络服务旗标抓取

    指利用客户端工具连接至远程网络服务并观察输出以收集关键信息的技术手段,仅限于对采用明文传输的网络服务。

    • talent 连接目标主机以及指定端口,得到服务器向客户端发送的旗标信息,往往包含网络的服务类型、版本号及其他信息
    • netcat

    通用网络服务查点

    • FTP文件传输协议 控制协议监听在TCP21端口
    • SMTP电子邮件发送协议 两条特殊指令——VRFY和EXPN,都可以用来查看其他用户的个人资料。

    Windows平台网络服务查点

    • NetBIOS网络基本输入/输出系统服务 在Windows平台提供计算机名与IP地址之间的名字解析,虽然可以直接被DNS所替代,但Windows的所有版本默认启用了NetBIOS名字服务。

      • net view /domain 命令,列出Windows网络上的域和工作组。
      • net view /domain:DOMAIN_NAME 命令,可列出指定域中的所有计算机列表。
    • nltest工具,运行 nltest/dclist:DOMAIN_NAME 可得到给定域的主控制服务器和备份服务器。

    • Samba服务

      Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。

      • 进行SMB会话查点的第一步建立“空会话”,使用 net use \HOSTIPC$ "" /u:""其含义是使用空口令字"" 以及内建的匿名用户/u:""身份去连接主机名或IP地址为HOST的“进程间通信”隐蔽共享卷IPC$,这个共享卷是Windows默认开放的。

      进程间通信就是在不同进程之间传播或交换信息,那么不同进程之间存在着什么双方都可以访问的介质呢?进程的用户空间是互相独立的,一般而言是不能互相访问的,唯一的例外是共享内存区。另外,系统空间是“公共场所”,各进程均可以访问,所以内核也可以提供这样的条件。此外,还有双方都可以访问的外设。在这个意义上,两个进程当然也可以通过磁盘上的普通文件交换信息,或者通过“注册表”或其它数据库中的某些表项和记录交换信息。广义上这也是进程间通信的手段,但是一般都不把这算作“进程间通信”。

      点击这里-->关于IPC$的相关概念

      • 具体SMB会话查点技术如下:
        • 查点主机共享资源 net view \host可以查点远程系统上的共享卷
        • 注册表查点
        • 查点受信任域
        • 用户查点

    视频学习

    kali linux 信息收集之主机探测

    • netenum IP段生成工具

    可以用netenum生成IP地址信息,方便生成列表重定向到文件中。也可以测试目标主机是否在线。然后测试该网段有哪些主机在线。

    由于netenum使用ping来做出判断,并不是那么靠谱,无法绕过防火墙。

    • fping -g 生成网段 ,可以测试网段中活跃的主机。

    • 内网扫描工具:nbtscan

    使用nbtscan可以扫描所在网段有哪些主机以及相关信息。

    • arping用于探测目标mac地址
    • Netdiscover同样用于在网络上扫描IP地址,检查他们的在线情况或搜索为他们发送的ARP请求。

    • dmitry用于收集主机的很多信息,包括whois tcp port等等,作为前期信息收集非常有用。

    • 对防护工具的探测

      • 对WAF进行探测的工具 wafw00f

      WAF:Web应用防护系统(也称为:网站应用级入侵防御系统。英文:Web Application Firewall,简称: WAF)。利用国际上公认的一种说法:Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。

      可以看到我们探查百度是否使用了waf,waf00f返回的结果告诉我们“The site http://www.baidu.com seems to be behind a WAF or some sort of security solution”

      • 对目标是否具有负载均衡的检测 ldb

      可以帮助发现多个IP地址映射到单个域名,由此确定针对性的测试范围。

        ![](https://img2018.cnblogs.com/blog/1505758/201903/1505758-20190317165232246-552462769.png)
      

    kali linux 信息探测之主机扫描

    通过主机探测确定目标地址后,往往需要对主机信息做出更完整的扫描,这个过程需要获得目标主机开放端口、服务器以及主机名、主机操作系统等信息。使用nmap及其图形化界面zenmap和分布式框架dnmap。

    nmap可以完成以下任务:

    • 主机探测
    • 端口扫描
    • 版本检测
    • 系统检测
    • 支持探测脚本的编写

    1.打开测试主机(Linux靶机),得到测试目标IP地址192.168.199.245

    2.使用nmap对测试主机进行基本的扫描 namp 192.168.199.245探测主机在1~10000开放的所有端口

    3.添加参数 -vv 可以对扫描结果进行详细输出

    4.自定义端口扫描 -p 加上要扫描的端口范围 再加上IP地址

    或者用命令 nmap -p80,443,22,21,8080,25,53 192.168.199.245扫描指定的端口。

    5.对目标主机进行在线测试sP设置为ping扫描

    6.进行路由跟踪nmap -teaceroute

    7.扫描一个C段的主机在线情况

    8.对目标主机的系统进行检测

    9.万能开关扫描 nmap -A 192.168.199.245 可以将每个服务和服务的端口扫描出来

    kali Linux信息搜集之指纹识别

    用于识别目标主机的操作系统版本与应用版本,可以进一步帮助我们进行探测操作系统与应用级别的漏洞。

    • Banner抓取 抓取的是应用程序的指纹识别而不是操作系统指纹识别

    常规主动指纹识别工具

    • Nmap 可以使用 -O 参数探测操作系统指纹, -sV参数可以主动探测开放端口信息

    • xprobe2 对新系统的识别率较低

    被动指纹识别工具

    • p0f 在网络分析方面功能强大,当浏览网站时可以检测到部分数据包,将截获的数据包加以分析

    web指纹识别工具

    • whatweb
    • wapscan

    kali linux信息收集之协议分析

    在完成主机扫描与探测,并对主机指纹进行探测分析之后,还会涉及到对具体服务的具体分析。

    • 针对SMB的利用工具——acccheck
    • 针对SSL协议的分析——sslscan

    • sslstrip

    • wireshark 数据包分析必备工具,是一个网络封包分析软件,功能是获取网络封包,并列出最为详细的网络封包资料,使用winPCAP作为接口,直接与网卡进行数据报文交换。

    wireshark使用方式见上周的工具使用总结。

    kali linux漏洞分析之openVAS安装

    openVAS特点是针对性漏洞分析扫描的工具,其中包括一个中央服务器和一个图形化前端。这个服务器允许用户运行几种不同的网络漏洞测试。

    使用openvas-check-setup可以检测openvas安装是否完整,并对此提出修复方式。

    安装FIX给定的默认方式执行命令

    之后利用openvas-check-setup继续检测是否安装完整,没有安装完整,输入命令greenbone-scapdata-sync继续安装

    终于下完了所有内容,之后又出现了新的问题

    输入命令gasd运行结束后,运行openvas-check-setup终于终于安装完成了。漫长的等待:(

    之后启动openvas-start,查看端口情况netstat -na | grep 939

    通过浏览器访问https://127.0.0.1:9392进行登录

    登录之后可以看到主页面

    至此openvas就已经安装成功了,下载持续了两三天,因为网速真的非常慢了 : ((

    Python黑帽子

    代码已经上传到码云,点击这里----> 我的码云:))

  • 相关阅读:
    mysql 覆盖索引
    mysql 连接查询 和 子查询
    mysql varchar
    uchome 是如何将数据插入数据库的
    Tomcat5 在windows安装服务
    Linux中错误码及描述查看
    Longines浪琴手表型号解释
    perl 安装 Net::Telnet 模块
    php一些错误的显示问题
    firefox样式表cursor和兼容Ie firefox,解决文字溢出的问题(wordwrap:breakword;wordbreak:breakall)
  • 原文地址:https://www.cnblogs.com/zz-1226/p/10547693.html
Copyright © 2011-2022 走看看