安全测试扫描方法
被动信息收集
有以下特征:测试者不与目标直接交互;搜集请求与活动不被日志记录;无法定位测试者
方法原则
重点是商业活动,监管环境,系统管理习惯:密码命名习惯,员工号规律
可以通过公司网站,下载文档,找预期用户活动
从广泛信息到具体收集
明确信息收集范围,做完整记录
开源信息收集
OSINT
收集范围:目标地理位置、总/分支机构情况、联系方式(员工号/名字/E-mail/手机号..)、企业文化/氛围、合作伙伴/供应商、目标公开发表应用的技术、新闻稿、微信公众号文章、求职网站公布信息、公司雇员博客、
DNS
/路由/服务信息DNS/路由服务信息
便签网站
pastebin
黑客喜欢将战果粘贴到
Pastebin
上,可以用语法找目标域名/主机IP
相关的便签记录特殊搜索引擎
之前拿来做
OSINT
搜图 比google
好用支持细粒度搜索表达式,搜索定制信息
语法
文件类型:
filetype:xxx
关键字:
intitle:xxx
包含/描述关键字的页面:
inanchor:xxx
多个关键字:
alltitle:"xxx" "xxx2"
完全匹配关键字
"xxx"
被动信息收集工具利用
-
搜索互联网在线设备,非会员只能查看两页结果,会员价
¥319
,提供可以与maltego
共同使用的API-key
遵循以下语法:
hostname
:搜索指定的主机或域名port
:搜索指定的端口或服务country
:搜索指定的国家city
:搜索指定的城市org
:搜索指定的组织或公司isp
:搜索指定的ISP供应商product
:搜索指定的操作系统/软件/平台version
:搜索指定的软件版本geo
:搜索指定的地理位置,参数为经纬度before/after
:搜索指定收录时间前后的数据,格式为dd-mm-yy
google hacking
用特定的高级搜索语法,收集目标信息,查找配置缺陷和漏洞弱点
或者用附件里的
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
重合,故略过-
自动化脚本,可以调用各种渗透模块进行扫描
目录下运行
1
./discover.sh
目录
misc
目录工具:查找子域名及
IP
,对比站点url
变化,DNS
解析,检查DNS
域传输,检查SSL
子域名mods
目录工具:
google
查找敏感文件,mail
信息,host
主机信息notes
目录全是
txt
文件,分享了对应工具的渗透测试常用技巧parsers
目录含有
burp
等主动扫描工具的解析器
菜单
RECON
与
recon-ng
类似,domain
和person
用以查找域名或根据关键字查找个人相关的敏感信息domain
Passive
:被动收集需要事先提供Bing,google,shodan
等API-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
密码,常用密码,撞库邮箱根据目标机构站点/系统自定义密码字典,路径
自动化工具添加
攻陷的密码字典列表
使用已泄露的密码,字典,证书凭证
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]
Nexpose
与Nessus
视频只讲了安装和基本操作,都是图形化界面操作不再赘述
这里不是很重要
值得注意的是
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
2git clone https://github.com/Dionach/CMSmap.git /opt/CMSmap
python setup.py install以
Wordpress
为例用户角色包括:超级管理员,管理员,
editor
,contributor
,subscriber
目录结构:
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+
款,包括渗透测试,信息收集,代理,加/解密-
仅支持
linux/Unix
,一个集成式的脚本,能帮助安装大量渗透脚本 -
原
firebug
已经下架,现在的是persona
版本主要工作是用来编辑修改各种
css,html,JS等
代码 -
更改上传包中的
user-agent
值,笔者认为这一款更好用一些 -
分析流量,包括修改参数,挺好用的
本体要收费,这里给出无需修改代码即可免费用的版本
[
foxyproxy standard
](https://addons.mozilla.org/zh-CN/firefox/addon/foxyproxy-standard/
高级的代理管理工具httpfox
检测分析浏览器与服务端数据流信息,现已失效
-
即时查看网站返回的
Header
,支持数据包修改重发你是否在找burp-repeater
-
用于信息收集,详细查看每个
IP
,域名,网络提供商的信息 -
显示
headers
,跟上面的一个重复了 Cipher fox
显示当前
SSL/TLS
加密以及证书现已失效
xss me
检测
xss
,现已失效,可使用平替check xss
[
sqlinject me
]功能显然,现状同上,平替也同上
-
鉴别网站组件语言等信息
Poster
现已失效,不如
hackbar
javascript deobfuscator
用于显示网页运行的
JS
代码,现已失效modify headers
显而易见,功能与上面某个重复了
-
显示当前服务器位置的国旗,双击国旗查看更多信息
-
跟上面的差不多
ViewStatePeeker
现已失效
-
前端查看页面信息
Tamper Data
现已失效,改
get/post
,跟hackbar
重了Rightclickxss
现已失效
Regular Expressions Tester
现已失效
passiverecon
被动信息收集,现已失效
fireforce
做暴力破解,现已失效
-
现已失效,找了个平替
advance dork
用来结合谷歌语法搜索,现已失效
host spy
查找子域名等,现已失效
-
安全牛第二章-安全测试扫描工具
- 本文链接: http://noone40404.github.io/2023/11/02/安全牛课堂第二章-安全测试扫描工具/
- 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!