zoukankan      html  css  js  c++  java
  • 2019-2020-2 网络对抗技术 20175211 Exp5 信息搜集与漏洞扫描

    实践原理

    • 网络踩点(Footprinting)
      • Web搜索与挖掘
      • DNS和IP查询
      • 网络拓扑侦察
    • 网络扫描(Scanning)
      • 主机扫描
      • 端口扫描
      • 系统类型探查
      • 漏洞扫描
    • 网络查点( Enumeration)
      • 旗标抓取
      • 网络服务查点

    实践内容

    各种搜索技巧的应用

    Google Hacking

    google还是强的啊,google hacking其实是很老的东西了,就是利用google搜索过滤器对收录的网页信息进行搜索。一些搜索规则如下

    • 查询是不区分大小写(OR在表示布尔含义时一定要大写)
    • 谷歌有32词的搜索限制
    • 短语搜索要带上单引号
    • AND对谷歌来说是多余的,谷歌会自动查询你输入的一切
    • 谷歌会忽略特别常见的字符,但是前面加上+强制搜索(+后面不能有空格)
    • NOT可以使用-
    • 布尔查询OR|

    常用的高级运算符

    • intext:
      把网页中的正文内容中的某个字符做为搜索条件
    • intitle:
      搜索网页标题中是否有所输入字符
    • filetype:
      搜索指定类型的文件
    • site:
      将搜索范围缩小到特定的网站,域或子域
    • inurl:
      搜索输入字符是否存在于URL中.可以联合site指定来找后台、fck之类

    例如有些网站没有将sql删除,就有可能被搜索到,从而暴露数据库结构。我们在google中输入site:cn filetype:sql -inurl:nju,这样就可以搜索cn子域名下可能存在的sql文件,另外我排除了url中包含nju的,因为要访问他们的网站好像需要南大的账号。。

    打开搜索结果第一条就是“收获满满”

    我看了看手边的网络安全法,赶快退了出去。

    搜索网址目录结构

    利用metasploit的dir_scanner辅助模块,暴力猜解,获取网站目录结构

    msfconsole
    use auxiliary/scanner/http/dir_scanner
    set THREADS 10
    set RHOSTS www.baidu.com
    exploit
    

    另外推荐一个我打ctf常用的扫目录工具dirsearch

    路由侦查

    traceroute跟踪从IP网络获取到给定主机的路由包。IP每经过一个路由器,TTL值减1,对应的路由器就会返回ICMP TIME_EXCEEDED响应。据此可以得知经过的ip地址。

    DNS IP注册信息的查询

    whois

    WHOIS(读作“Who is”,而非缩写)是用来查询互联网中域名的IP以及所有者等信息的传输协议。早期的WHOIS查询多以命令行接口(Command Line)存在,但是现在出现了一些基于网页接口的简化在线查询工具,甚至可以一次向不同的数据库查询。网页接口的查询工具仍然依赖WHOIS协议向服务器发送查询请求,命令行接口的工具仍然被系统管理员广泛使用。

    WHOIS通常使用TCP协议43端口。每个域名或IP的WHOIS信息由对应的管理机构保存,例如,以.com结尾的域名的WHOIS信息由.com域名运营商VeriSign管理,中国国家顶级域名.cn域名由CNNIC管理。

    nslookup,dig域名查询

    nslookup可以得到DNS解析服务器保存的Cache的结果,但并不是一定准确的

    dig可以从官方DNS服务器上查询精确的结果

    基本的扫描技术

    主机发现

    ping

    最简单的探测方法,ping的通当然是存活的,ping不通也不一定就不存活,有可能只是防火墙拦截了

    metasploit中的arp_sweep模块和udp_sweep模块

    • arp_sweep使用ARP请求枚举本地局域网络中的所有活跃主机。

      • use auxiliary/scanner/discovery/arp_sweep进入arp_sweep模块
      • show options查询模块参数
      • set RHOSTS 192.168.79.0/24进行hosts主机段设置
      • set THREADS 10设置多线程
      • run执行扫描
    • udp_sweep通过发送UDP数据包探查指定主机是否活跃,并发现主机上的UDP服务

    端口扫描

    nmap老熟人了,可以扫描各种东西,自然也包括存活主机

    • -R选项,arp探测,仅限于同网段,和arp_sweep差不多

    • tcp扫描全家桶

      • -sT 全开扫描
      • -sS SYN半开扫描
      • -sA ACK扫描
      • -sN Null扫描
      • -sF FIN扫描
    • udp扫描
      -sU

    OS及服务版本探测

    nmap -O根据指纹库探测主机操作系统

    但是这里我探测的主机太多指纹符合所以没法确定。。

    nmap -sV查看服务的详细信息

    具体服务的查点

    msf的auxiliary/scanner模块有许多相关工具,比如探测telnet服务

    漏洞扫描--OpenVAS

    安装

    装了2天,还是各种报错,受不了了,直接去docker拉了OpenVAS image for Docker
    docker run -d -p 443:443 --name openvas mikesplain/openvas半个小时就起了,舒服。
    用户名和密码都是admin

    扫描

    选择菜单栏的Scans,然后点击Tasks,点击紫色烟花新建一个任务向导,输入要扫描的主机地址,点击Start Scans开始扫描

    扫描完成后点击Report,结果如下

    可以看到只有一个危险等级为Low的安全隐患。点击Task那一栏之后再点击Result

    可以看到界面做的还是蛮不错的,居然还有词云。点左上角的?图标,会有每一列的解释。

    点进去看一下那个low的是啥问题

    原因居然是这台主机实现了RFC1323定义的TCP时间戳,导致远程连接者可以据此推测出主机上的时间。我的理解就是时间戳可以被预判,导致基于时间戳的伪随机不那么安全。
    尝试按照它的提示修复漏洞。

    但是因为我是在docker里面搭建的,而扫的又是自己那个容器。这里想修复的时候报了个只读文件系统,看来是改不了了,作罢。

    报告内容

    基础问题回答

    (1)哪些组织负责DNS,IP的管理。

    • 全球根服务器均由ICANN(The Internet Corporation for Assigned Names and Numbers)互联网名称与数字地址分配机构统一管理。
    • 地址支持组织(ASO)负责IP地址系统的管理
    • 域名支持组织(DNSO)负责互联网上的域名系统(DNS)的管理
    • 协议支持组织(PSO)负责涉及Internet协议的唯一参数的分配

    五个地区性注册机构:

    • ARIN(北美地区)
    • RIPE(欧洲地区)
    • APNIC(亚太地区)
    • LACNIC(拉丁美洲美洲)
    • AfriNIC(非洲地区)

    (2)什么是3R信息。

    • Registrant注册人
    • Registrar注册商
    • Registry官方注册局

    (3)评价下扫描结果的准确性。
    ping出来的ip地址不一定是对的,因为大型网站可能用了CDN。whois没有dig可信度高。nmap还是蛮好用的,尤其是在目标靶机没开防火墙的时候,扫描的准确度蛮高的。至于漏扫不太好评价,因为就装了这一个,也没有对比,我也不知道这个靶机是不是还有其他漏洞。但是能扫出来东西我已经觉得很厉害了。

    实践总结与体会

    信息收集是渗透测试的第一步,可以避免像无头苍蝇一样乱撞,能扫出来其他后台也能扩大攻击面。如果能获取某个网站的数据库结构或者脚本类型、容器类型,在攻击过程中都可以少很多无意义的摸索时间。由于之前在别的课程包括课外的自学中接触过不少内容,所以这次试验还是比较轻松的。

  • 相关阅读:
    jQuery的AJAX请求成功,但是跳转到error的解决方法
    leaflet中如何通过透明度控制layerGroup的显示隐藏
    pg_ctl: no database directory specified and environment variable PGDATA unset , centos 7 postgreSQL
    MyBatisPlus乐观锁: Parameter ‘MP_OPTLOCK_VERSION_ORIGINAL‘ not found. Available parameters are [
    mybatisplus自动填充踩坑
    Linux如何查找大文件或目录总结
    MyBatisPlus中updateById与updateAllColumnById方法区别
    java 正则表达式替换Spring @RequestMapping URL中的@PathVariable值
    swagger2 Illegal DefaultValue null for parameter type integer
    【MybatisPlus进阶学习(八)】SQL注入器
  • 原文地址:https://www.cnblogs.com/20175211lyz/p/12776532.html
Copyright © 2011-2022 走看看