0%

安全牛第二章-安全测试扫描工具

  • 安全测试扫描方法

    • 被动信息收集

      有以下特征:测试者不与目标直接交互;搜集请求与活动不被日志记录;无法定位测试者

    • 方法原则

      重点是商业活动,监管环境,系统管理习惯:密码命名习惯,员工号规律

      可以通过公司网站,下载文档,找预期用户活动

      从广泛信息到具体收集

      明确信息收集范围,做完整记录

    • 开源信息收集 OSINT

      收集范围:目标地理位置、总/分支机构情况、联系方式(员工号/名字/E-mail/手机号..)、企业文化/氛围、合作伙伴/供应商、目标公开发表应用的技术、新闻稿、微信公众号文章、求职网站公布信息、公司雇员博客、DNS /路由/服务信息

      • DNS/路由服务信息

        DNSstuff

        verSniff(墙了)

        etcraft(墙了)

      • 便签网站 pastebin

        黑客喜欢将战果粘贴到 Pastebin 上,可以用语法找目标域名/主机 IP 相关的便签记录

      • 特殊搜索引擎

        yandex

        之前拿来 OSINT 搜图 比 google 好用

        支持细粒度搜索表达式,搜索定制信息

  • 被动信息收集工具利用

    • shodan 搜索引擎

      搜索互联网在线设备,非会员只能查看两页结果,会员价 ¥319 ,提供可以与 maltego 共同使用的 API-key

      • 遵循以下语法:

        hostname :搜索指定的主机或域名

        port :搜索指定的端口或服务

        country :搜索指定的国家

        city :搜索指定的城市

        org :搜索指定的组织或公司

        isp :搜索指定的ISP供应商

        product :搜索指定的操作系统/软件/平台

        version :搜索指定的软件版本

        geo :搜索指定的地理位置,参数为经纬度

        before/after :搜索指定收录时间前后的数据,格式为dd-mm-yy

    • google hacking

      用特定的高级搜索语法,收集目标信息,查找配置缺陷和漏洞弱点

      可以参考 google hacking database

      或者用附件里的 ghdb_scraper.py 爬取信息,附件下载参考第一章

      • 基本语法

        1、关键字不区分大小写

        2、默认使用AND逻辑搜索

        3、默认最多 $32$ 个单词,用 * 突破限制,但影响精确搜索

        4、用 号,强制带后面的单词搜索;

        5、|OR ,匹配多个关键字的任一个

        6、混合用多种布尔操作时,将从左到右的顺序执行

        7、默认下忽视关键字中部分常用单词

      • 高级搜索语法

        1、intext :匹配网页正文中含有的关键字,可接多个关键字,空格或者逗号分隔

        2、allintext :和上一个类似,能接多个关键字,能与其他操作符混合使用,可单独使用

        3、intitle :搜索网页标题中是否有所输入字符,可单独使用,可混合其他命令用

        4、allintitle :类似上一个 ,能接多个关键字,不能与其他操作符混合使用

        5、cache :输入 URL ,搜索特定页面的缓存快照,回查网页副本

        6、define :返回搜索关键字的定义

        7、filetype/ext :搜索指定类型的文件,可以与其他操作符混合使用

        8、info :搜索输入URL的摘要信息和其他相关信息,该操作符不能与其他操作符及关键字混用

        9、inurl :搜索输入字符是否存在于URL中

        10、allinurl :类似 inurl ,可指定多个字符,不能与其他操作符混合使用,可单独使用

        11、link :搜索链接到所输入 URL 的页面,该操作符不需要关键字,不能与其他操作符及关键字混用;

        12、site :搜索范围缩小到特定的网站,域或子域

        13、related :接一个 URL ,搜索与该URL相关的页面,该操作符不能与其他操作符及关键字混用

        14、numrange :接数字范围,用一个减号两边接数字来表示。减号左边为最小值,右边为最大值,从而搜索数字

        15、inanchor :搜索一个 HTML 标记中的一个链接的文本表现形式,即在链接文本中搜索冒号后紧接的一个关键字

        16、insubject :搜索 Google 组的标题行;

        17、daterange :搜索某个日期范围内 Google 做索引的网页。

    • Recon-NG 查询目标开源情报信息

      py 编写,完全模块化的被动信息收集工具,kali 自带了,在图形化界面的 应用程序-信息收集 或者终端输入 recon-ng

      对于某些特定模块,如 Shodan , Jigsaw , Linked-in 需要提供 API-keys 才能使用

      对于 ip 的具体信息,可以通过 ipinfodb 来查询

      其功能与 Discover 重合,故略过

    • Discover

      自动化脚本,可以调用各种渗透模块进行扫描

      目录下运行

      1
      ./discover.sh

      • 目录

        • misc 目录

          工具:查找子域名及 IP ,对比站点 url 变化,DNS 解析,检查 DNS 域传输,检查 SSL 子域名

        • mods 目录

          工具:google 查找敏感文件,mail 信息,host 主机信息

        • notes 目录

          全是 txt 文件,分享了对应工具的渗透测试常用技巧

        • parsers 目录

          含有 burp 等主动扫描工具的解析器

      • 菜单

        • RECON

          recon-ng 类似,domainperson 用以查找域名或根据关键字查找个人相关的敏感信息

          • domain

            Passive :被动收集需要事先提供 Bing,google,shodanAPI-keys

            Active :用工具主动扫描并生成报告

          • person

            根据输入的名和姓,自动打开 Zaba search , peekyou 等站点搜索个人敏感信息,需要准备相关网站的 API 以及梯子

        • SCANNING

          通过 nmap 等脚本扫描 IP/CIDR IP 地址段端口开放情况

          • generate target list

            包含 ARP 扫描以及 ping 扫射,用以探测多个主机是否存活

          • CIDR

            对指定网段信息收集,可选择外网/内网

          • List

            列表清单醒时扫描指定地址,类似 CIDR

          • IP, range, or URL

            指定 URL

        • WEB

          借助 Burp suitr , Nikto , SSL 等审计脚本做 Web 应用安全检查

          Web 应用的渗透测试与漏洞检查占据很大工作量,用脚本的信息收集与检查可以了解目标的 Web 架构

          • Nikto

            指定 ip 地址列表及端口号信息,检查列表清单的 Web 应用,下图是脚本自动执行的结果

            这里注意,当我把文件目录放在 /root 下时脚本无法读取,这里选择放在和 discover 同目录

          • SSL

            调用了 nmap . sslscan 等工具分析服务器 SSL 配置

        • misc 工具集

          提供了 生成 metepreter 攻击载荷,解析 xml 扫描报告,打开 MSF listener 等功能

          • 攻击载荷

            包含以下类型

    • SpiderFoot

      kali 自带了

      感觉 官网 应该是挂了

      搜索汇集目标情报信息,获取目标子域,E-mail 地址,敏感信息文件等

      利用多个开源情报数据库,生成信息视图,但一些数据源需要提供 API-keys ,但都是免费的,具体数据源信息可以参考它的github页面

      可以自动执行渗透的侦察阶段任务

      启动时提供地址及端口以在浏览器中访问

      setting 里面加上特定网站的 API-keys 能调用更多的网站数据源

  • 密码字典创建和使用

    • 注意收集暴力破解的字典

      Top100 , weblogic 密码,Webshell 密码,常用密码,撞库邮箱

    • 根据目标机构站点/系统自定义密码字典,路径

    • 自动化工具添加

      Wordhound

      BruteScrape

    • 攻陷的密码字典列表

      使用已泄露的密码,字典,证书凭证

      Adobe , 网易 163 , qq 邮箱 , 京东 , CSDN

  • 主动信息收集

    • 搜集的目标

      • 分析目标网络,了解目标脆弱点,掌握渗透测试环境;

      • 扫描搜集目标安装的操作系统和网络服务;

      • 定义攻击目标,确定映射关系,发现潜在的漏洞;

      • 从网络内部或外部,对网段目标展开扫描;

      • 主动扫描,行为活跃,频频触发IDS/IPS告警;

      • 主动扫描,信息搜集,更直接干脆地掌握目标漏洞信息

    • sparta (斯巴达)扫描

      扫描与枚举,简化网络架构探测工作,组合了 nmap , Metasploit , Sqlmap , Hydra

      看起来这个版本的 kali 并未集成,需要手动下载安装

      • 功能

        可以调用 nmap 扫描,以及 Nitko 根据其结果展开更精确的扫描

        针对扫描结果展开专项渗透:Dirbuster 目录爆破, Webslayer 进行 Web 指纹识别,Cutybcapt 进行 Web 页面截图

        针对可暴力破解的端口,调用 Hydra

      • 使用

        host 添加主机,对于 ssh , ftp , mysql , 3389 等服务,发送到 Brute 直接爆破

    • Masscan 结合 Nmap 扫描端口

      其不关心 TCP ,即不需建立 TCP 三次握手,加快扫描速度

      自定义黑白名单,扫描速率,伪造发包源 IP ,源端口和源 MAC

      Linux 下能达到每秒发包 $160万$

      但因为不能探测端口对应服务以及主机操作系统类型,无法扫描端口漏洞,所以要结合 Nmap

      • 使用

        • 扫描网段

          1
          masscan -p[port],[port1]-[port2] IP
        • 定义每秒发包速度

          1
          --rate [num]
        • 定义结果输出位置

          1
          -oL [/path]

        • 输出扫描参数为配置文件

          1
          -echo scan.conf
        • 扫描时使用文件的配置

          1
          -c scan.conf

          可以为不同类型的扫描设置不同模板

        • banner checking

          masscan 分配一个单独的 IP 地址,如此才能获取 banner 信息

          1
          --banners --source-ip [IP]
        • 黑名单设置/读取列表扫描

          1
          2
          3
          4
          5
          --excludefile exclude.txt
          --exclude [IP/range]

          --includefile [filename]
          -iL [filename]
        • 不同报告输出

          1
          2
          3
          4
          5
          -oX  报告为 xml 格式
          -oG Grepable Nmap 格式
          -oJ json报告
          -oL 简单的列表,每行一个主机端口对
          -oB 二进制文件报告
        • 指定发包网卡

          1
          -e eth0
        • 设置 user-agent

          1
          --http-user-agent [user-agent]
    • NexposeNessus

      视频只讲了安装和基本操作,都是图形化界面操作不再赘述

      这里不是很重要

      值得注意的是 Nexpose 的免费一年社区版好像没有了,现在是试用 $30$ 天以及其升级版 InsightVM

    • burp 进行 Web 漏洞扫描和分析

      Intercept 关闭时,流量仍会经过 burp ,可以在 HTTP history 里查看

      • burp 消息过滤

        请求类型,MIME 类型,HTTP 状态码,查找条件,文件类型,Comment 注释,监听端口

      • Intercept 可选项配置

        • Websockets Messages

          选择双向拦截客户端与服务端的消息

        • Response Modification 服务器返回消息修改

          包括:(高亮)显示表单中隐藏字段,使表单中 disable 字段生效,移除输入域长度限制,移除 JS 验证,移除所有 JS ,移除所有标签,将 https 改为 http ,移除所有 cookie 中的安全标志

        • 正则表达式

          对请求和返回消息的消息头,消息体,请求参数名,请求参数值进行匹配和替换

    • IBM Appscan 漏洞分析扫描

      • 工作原理

        爬虫得到整个 Web 应用结构

        根据分析,发送修改的 HTTP Request 进行攻击尝试

        通过分析验证 Response ,判断漏洞

        Appscan 在用内置规则库测试时,对每种安全威胁都会发送多个安全测试的变体,网站页面与页面参数越多,其需要发送的测试用例越多。

        即应该更改扫描策略与扫描任务参数设置

      • appscan 检测 Web services 漏洞

        Web services 实现了应用程序之间跨平台跨语言的通信,将应用程序转换为 Web 应用程序,通过使用 xml 等标记语言,在应用程序之间传递消息

        SOAP(Simple Object Access Protocol) 协议允许程序使用 http 进行数据交互

        WSDL(Web Service Definition Language) 语言用来描述网络服务,其特征是使用 xml 标记的文档,可以规定 Web service 的具体操作等

        UDDI(Universal Description Discover and Intergration) 语言是一种目录服务,使用此语言对 Web service 进行注册和搜索,或用于储存相关信息的目录

        SOA 架构,作为各个系统组件的协调,故其安全性尤其重要

        • Web service 安全特性

          • 传输层安全

            通过 SSL 加密传输隧道

          • 消息层加密

            xml 签名,加密,token

            • Web service 协议安全体系
          • 应用层安全

        • Web Service 常见安全漏洞

          • 命令注入(SQL , LDAP , OS Command)
          • 缓冲区溢出
          • 不正确的异常处理
          • 无效的访问控制
          • XML 命令注入 (XPath , XQuery)

            一种最基本的 XPath 注入如下:

            1
            Stmt="//users/user[username/text()='admin' and password/text()=''or'1'='1']/id/text()

            如此直接访问 admin 用户

          • XML 拒绝服务攻击

            服务器调用 XML Paser 解析SOAP 消息中的 XML 数据,利用大量的超大消息体或递归的 XML 实体声明使服务器长时间解析 XML 数据,直至资源耗竭,形成拒绝访问攻击

          • XML 信息泄露

            例:

            1
            2
            3
            <!DOCTYPE root>[
            <!ENTITY myfile SYSTEM "file://c:/windows/flag.txt">
            ]>
    • SQLmap

      罗列了所有可用的参数,笔者感觉用处不大,具体常用参数可以看我的博客

    • NoSQL 数据库注入和漏洞分析

      常规的数据库分为结构性和关系型,而 NoSQL 数据库是基于键/数据对的,即 keys-Value 型的,允许储存任何形式数据,区别于传统要求的树状/关系型数据,适用于存有海量数据的环境下使用,如大数据

      它比传统数据库效率更高,常见的有 CouchDB , MongoDB

      虽然通常意义上 sql 注入只针对传统数据库,但仍有办法对 NoSQL 型数据库进行注入

      • 安装

        1
        git clone https://github.com/codingo/NoSQLMap.git NoSQLMap 

        但原项目基于 python2.x 开发,如果当前电脑是 python3 的话会出现以下报错,原因是 use_2to3 不被支持

        1
        error: Setup script exited with error in pymongo setup command: use_2to3 is invalid.

        相关issue中并没有给出解决方案,而笔者在自己的 kali 下回退版本后也遇到了其他报错

        正常安装的场景

    • CMS 内容管理器漏洞扫描分析

      例如 Wordpress , Joomla , Drupal

      1
      2
      git clone https://github.com/Dionach/CMSmap.git /opt/CMSmap
      python setup.py install
      • Wordpress 为例

        用户角色包括:超级管理员,管理员,editorcontributorsubscriber

        目录结构:wp-admin , wp-content---lan/plugins/themes . wp-includes . index.php , wp-login.php

        安全机制:nonce 防御 CRSF

      • 操作

        靶场地址可以用老大给的靶机 $1.0$ 中的 Wordpress3.5.2-getshell 来测试

        1
        cmsmap [IP]

    • AWVS 漏洞扫描

      官网可试用 $14$ 天

      这里有一个节约时间的链接

      课程所用版本和现版本相差过远,大部分没有参考价值,笔者自行发挥

      这里扫一个本地靶机试一下

      业务关键性:低到严重,根据业务的重要程度来选择

      默认扫描配置文件:全扫描,高风险,高/中风险,跨站脚本,SQL注入,弱密码,仅抓取,恶意软件扫描

      扫描速度,是否需要网站登录等设置

      扫描结果

      可能不太明显,扫一下 DVWA 的靶机看一下

    • firefox 渗透插件

      这一小节主要是工具分享,共有 30+ 款,包括渗透测试,信息收集,代理,加/解密

      • Firefox-Security-Toolkit

        仅支持 linux/Unix,一个集成式的脚本,能帮助安装大量渗透脚本

      • firebug

        firebug 已经下架,现在的是 persona 版本

        主要工作是用来编辑修改各种 css,html,JS等 代码

      • User-agent-switcher

        更改上传包中的 user-agent 值,笔者认为这一款更好用一些

      • hackbar

        分析流量,包括修改参数,挺好用的

        本体要收费,这里给出无需修改代码即可免费用的版本

      • [foxyproxy standard](https://addons.mozilla.org/zh-CN/firefox/addon/foxyproxy-standard/
        高级的代理管理工具

      • httpfox

        检测分析浏览器与服务端数据流信息,现已失效

      • HTTP Headers live

        即时查看网站返回的 Header ,支持数据包修改重发

        你是否在找 burp-repeater

      • IP address and domain info

        用于信息收集,详细查看每个 IP ,域名,网络提供商的信息

      • Header Spy

        显示 headers ,跟上面的一个重复了

      • Cipher fox

        显示当前 SSL/TLS 加密以及证书

        现已失效

      • xss me

        检测 xss ,现已失效,可使用平替 check xss

      • [sqlinject me]

        功能显然,现状同上,平替也同上

      • Wappalyzer

        鉴别网站组件语言等信息

      • Poster

        现已失效,不如 hackbar

      • javascript deobfuscator

        用于显示网页运行的 JS 代码,现已失效

      • modify headers

        显而易见,功能与上面某个重复了

      • flagfox

        显示当前服务器位置的国旗,双击国旗查看更多信息

      • Domain Details

        跟上面的差不多

      • ViewStatePeeker

        现已失效

      • Web Developer

        前端查看页面信息

      • Tamper Data

        现已失效,改 get/post ,跟 hackbar 重了

      • Rightclickxss

        现已失效

      • Regular Expressions Tester

        现已失效

      • passiverecon

        被动信息收集,现已失效

      • fireforce

        做暴力破解,现已失效

      • CSRF finder

        现已失效,找了个平替

      • cookies manager

      • cookies export

      • advance dork

        用来结合谷歌语法搜索,现已失效

      • host spy

        查找子域名等,现已失效``SX