一、信息收集
- 什么是信息收集
去做测试的两种情况:
客户给你一个xlsx文档,里面就是测试得资产范围
客户告诉你测试得公司需要你自己做信息收集(测试资产【不全】)
信息收集指的是当我们获取到的客户下发的测试目标(公司名、主域名、资产信息)后,通过网上公开的平台或者工具去尽可能多的收集该公司的资产(子域名、APP、小 程序、应用系统、控股公司)等。 这样的话我们可测试的资产量增加相等的那我们挖掘漏洞的几率也会增加
- 信息收集的意义
信息收集是渗透测试的第一步也是相对来说最重要的一步,通过信息收集我们可以掌握 该企业所持有的资产情况;每个站点的架构、使用到的组件、有哪些目录、那些功能接 口等信息。可以很大程度提高我们测试成功率。
- 信息收集的方法
主动信息收集:通过直接访问网站在网站上进行操作,对网站进行目录扫描、端口扫 描、JS接口检索等。
被动信息收集:借助三方网站、工具来获取目标企业、网站的信息。
二、信息收集-资产收集
在实际的渗透测试过程中,我们需要对企业资产进行梳理。随着企业业务不断壮大,各种业务平台和管理系统越来越多,很多单位往往会存在一些隐形资产,这些资产可能长期无人维护、也可能存在一些已知的安全漏洞。那么我们就可以以此作为切入点进行攻击
2.1备案资产查询
资产收集:公司所持有的备案域名、APP、小程序、业务软件等。
2.1.1 ICP备案查询
根据工信部规定,所有国内的网站、APP都需要进行ICP备案和公安备案。
工信部网站备案查询: https: //beian.miit.gov.cn/#/Integrated/index
2.1.2 爱企查
爱企查、企查查、小蓝本都可以去查询相关的备案信息。
2.1.3 空间搜索引擎
空间搜索引擎,他可以帮助我们去搜索某个主域名相关子信息,也可以搜索一个ip所开 放的服务,也可以搜索一公司所持有的资产。
FOFA:https://fofa.info
鹰图:https: //hunter.qianxin.com/
icp.name "小米科技有限责任公司"
2.2 域名Whois查询
whois(读作"Who is") ,是一个用来查询域名注册状态及域名注册信息的数据库。 在渗透测试中可通过whois查询我们可以查询到注册商、注册人、邮件、DNS解析服务 器、注册人联系电话等信息;
# Whois查询工具
站长之家:http://whois.chinaz.com/
爱站网:https://whois.aizhan.com/
微步:https://x.threatbook.cn/
腾讯云:https://whois.cloud.tencent.com/
中国万网:https://whois.aliyun.com/
西部数码:https://whois.west.cn/
2.3子域名收集
为什么收集子域名:假设目标资产数量庞大,一般来说主域都是防护重点,管理上可 能会谨慎,防护也相对严格,因此从子域名入手便成了很好的选择,子域往往在防护上会相对更加的松懈,然后再慢慢向目标系统渗透,所以子域名的收集便显得尤为的重要;
2.3.1 Oneforall工具
下载地址: https://github.com/shmilylty/OneForAll
OneForAll是一款功能强大的子域收集工具,拥有多个模块和接口扫描,收集子域信息 很全,包括子域、子域IP、子域常用端口、子域Title、子域Banner、子域状态等
2.3.2 无影Tscan
2.3.3 空间搜索引擎
https://hunter.qianxin.com/
https://fofa.into/
https://www.zoomeye.org/
2.3.4 威胁情报平台查询
微步在线:https://x.threatbook.cn/
VT: https://www.virustotal.com/gui/domain/{domain}/relations
2.3.5 HTTPS证书查询
crtsh: https://crt.sh/
censys: https://censys.io/certificates
2.3.6 其他查询方式
DNS记录查询:借助公开的DNS解析数据去搜索列出包含xxx.com域名的相关资产信息
ip138: https://site.ip138.com/xiaomi.com/domain.htm
dnsdb: https://dnsdb.io/zh-cn/search?q=xiaomi.com
2.4 IP反查绑定域名
IPIP: https://tools.ipip.net?ipdomain.php
爱站:https://dns.aizhan.com
站长之家: https://dns.aizhan.com/
三、信息收集-单站点相关
3.1 指纹识别
在渗透测试过程中,如何才能快速从大量资产中提取易受攻击的信息系统,就需要对资 产进行指纹识别。
前面你信息收集子域名之类的站点比较多,挨个测试效率比较低,那么就可以在大量的 子域中去识别弱点系统
CMS(内容信息管理系统):用来快速搭建网站。(别人已经开发好的成品网 站,只需要自己修改内容即可使用)
框架(代码框架):Shiro、ThinkPHP、S2等,框架就是将后端部分代码(路 由访问、过滤、登录逻辑)等编写完成。
厂商系统:海康威视安防、OA办公系统、VPN系统;属于国内各大公司开发 的功能性系统,对外出售其他单位购买其产品部署使用。
(CMS、框架、三方系统【oa、安防平台等】)。
3.1.1 工具识别
- EHole
项目地址: https://github.com/EdgeSecurityTeam/EHole
Ehole.exe -u url #单个识别
Ehole.exe urls.txt -josn result.json #批量识别,结果输出至Result.json中
- 无影Tscan
- 浏览器插件
Wappalyzer是一款功能强大的、且非常实用的网站技术分析插件,通过该插件能够分 析目标网站所采用的平台构架。
3.1.2 人工识别
关于手工识别:三方系统、框架、cms 后面每遇到一个框架cms三方系统就讲一个特征。
关于人工识别除了要分析对方有没有应用三方框架指纹之外必须要知道对方使用的是什 么操作系统、开发语言等
小结
什么渗透测试*:通过模拟黑客的攻击手段对目标系统进行安全评估;去借助各种攻击手段去对目 标的系统进行攻击、漏洞挖掘。
渗透测试的意义:去发现客户单位资产中所潜在的安全威胁、安全漏洞,提交给客户进行修复。
渗透测试类型*:黑盒、白盒、灰盒
渗透测试流程*:前期交互、信息收集、漏洞探测、漏洞利用、权限提升、内网渗透、撰写报告 常见的安全设备*:IDS、IPS、EDR、SOC、WAF、蜜罐等 信息收集
(要记都收集那些信息使用什么工具): 什么是信息收集:根据我们现有的信息(公司名称、主域名)等,借助互联网上的网站、工具 去收集该企业的资产以达到扩大测试范围的目的。
信息收集: 资产相关:收集该企业的资产信息(域名、app、小程序、公众号、应用系统等、邮 箱、手机号、员工信息)
根据公司备案查询:域名信息、app信息、小程序、公众号、应用系统 根据公司名称搜索控股企业(50%↑)
子域名收集:oneforall、fofa、鹰图、在线网站、gogole语法
IP反查域名(有些时候我们需要查看该IP网站所绑定的域名):爱站、站长之家 站点相关
指纹识别:从大量资产中找到易受攻击的系统(CMS、框架、三方系统)优先测 试。 EHOLE、TSCAN、手工识别、浏览器插件
3.2 站点目录扫描
我们一个网站是不是会有多个目录,每个目录下的文件提供功能可能不一样,功能越多漏洞能测试的点多。
1.主要是很多网站他不同的目录文件下功能点也各不相同,所以尽可能多的找到网站的 功能点这样后续测试点就增加了。
2.寻找后台登录地址,一般在(admin、admin.后缀、login.后缀)这种情况是很多的。
3.源码泄露、配置文件泄露问题
3.2.1 爆破字典
相关字典
kali默认字典存放位置
root模式下
apt install seclists
cd /usr/share/wordlists/
3.2.2爆破工具
1.DirSearch
项目地址: https://github.com/maurosoria/dirsearch
kali中
apt-get update
apt install dirsearch
apt --fix-briken install #上面命令失败执行
apt install dirsearch
常见命令参数
dirsearch -u https://xxxxx
dirsearch -e php,html,js -u https://xxxxx
-u 指定url
-e 指定语言 -e php,jsp,asp,tar,zip,rar,js.html 默认 php, aspx, jsp, html, js-x 排除status_code Example: 301,500-599
-w 字典路径
-r 递归的对目录扫描
2.DirB
默认爆破字典
dirb <url>
自定义爆破字典
dirb http://url/ /usr/share/dirb/wordlists/vulns/apache.txt/
3.DirBuster
项目地址: https://sourceforge.net/projects/dirbuster/
3.2.3网络物理路径
网站根路径(网站搭建的物理磁盘位置),发现这个主要是后续漏洞测试的时候需要用到网站绝对路径,所以要提前发现收集。
1.程序报错获取
网站报错信息,想办法让网站报错,如果报错时处理不当就会导致路径泄露。(比如访问不存在文 件、在url上传递垃圾字符)具体要根据实际情况操作;
1.有动态URL的地方可以替换参数 替换参数值为不存在的,很多时候都能爆物理路径;
2.访问不存在的文件名 文件 或者改正常后缀为不支持的后缀;
3.数据库语句报错时也会带出
2.网络后台、探测文件
<?php phpinfo();?>
3.默认路径
常见集成环境默认目录,后面往往还有以域名命名的目录:
C:\Inetpub\wwwroot
C:\xampp\htdocs
D:\phpStudy\WWW
/var/www/html/
/wwwroot/
/.git/
/.svn/
3.3 源码泄露
3.3.1 Git源代码泄露
Git是开源的分布式版本控制系统,在执行 git init 初始化目录时,会在当前目录下自动建立 .git 目录,用来记录代码变更的记录。发布代码时,如果没有把目录删除,攻击者就可以通过它查询源代码。
利用工具:GitHack
项目地址:GitHub - BugScanTeam/GitHack: .git 泄漏利用工具,可还原历史版本 · GitHub
案例:https://statics.aizhan.com/.git/config
使用方法:python GitHack.py https://statics.aizhan.com/.git
使用方法2:python git_extract.py https://statics.aizhan.com/.git/
3.3.2 SVN源代码泄露
Git是开源的分布式版本控制系统,在执行` git init `初始化目录时,会在当前目录下自动创建一个`.git `目录,用来记录代码变更的记录。发布代码时,如果没有把`.git` 目录删除,攻击者就可以通过它查询源代码。
利用工具:svnExploit
项目地址:GitHub - admintony/svnExploit: SvnExploit支持SVN源代码泄露全版本Dump源码 · GitHub 推荐:svnExploit-master
使用方法:python SvnExploit.py -u http://223.247.153.184:3000/.svn/entries
案例网站:
http://223.247.153.184:3000/.svn/entries
http://canmou.dhgate.com/guard/.svn/entries
3.3.3 源码备份文件泄露
配置文件:x.config 、.conf 、.ini、.xml等
日志文件(.log)
数据库备份文件(.sql)
网站源码备份文件(web.zip\www.zip\website.zip\www-data.zip).bak、.zip、.rar、.7z、.sql等
3.4 敏感信息
网站在开发的时候会使用JS做一些前端校验、前端功能编写啊,在这个过程中可能就会存在信息泄露的问题;另外就是网上一些公开的信息也可能存在。
3.4.1 JS敏感信息
在JS文件中可能会存放各种 接口(目录或文件) 提供给前端调用,获取某个接口存在敏 感信息返回、未授权访问等漏洞。这种案例在网上已经数不胜数了。细心耐心很重要
网站的url链接写到js里面;js的api接口里面包含用户信息比如账号和密码
1.findsomething
通过浏览器插件商城下载。会在测试时根据访问网站统计出,HTML\JS中存放的接口与 URL信息。
2.webpack提取工具
3.上帝之眼
4.手工找
3.4.2 其它信息
学校的:学号 校园网wifi账号 (朋友圈、抖音、社工库、qq群、表白墙)
企业: 找相关的文件(招标)邮箱手机号 、看联系我们、BOSS
Google(参考Google黑客语法)
google配合github搜索敏感信息
● site:mi.com sa password
● site:Github.com root password
● site:Github.com User ID='sa';Password
● site:Github.com inurl:sql
# SVN信息收集
google配合github搜索SVN敏感信息
● site:Github.com svn
● site:Github.com svn username
● site:Github.com svn password
● site:Github.com svn username password
# 综合信息收集
● site:Github.com password
● site:Github.com ftp ftppassword
● site:Github.com 密码
● site:Github.com 内部
# 扩展参考
● 信息收集之Github搜索语法_github搜索"学校域名" "password-CSDN博客
● http://www.361way.com/github-hack/6284.html
● 搜索代码 (旧版) - GitHub 文档
● Code search results · GitHub
3.5 查看域名IP地址
3.5.1 CDN介绍
www.baidu.com
在a地址:110.242.68.3
在b地址:14.123.135.12
我们如果处于不同的物理位置那么在解析域名的时候可能会不一致。
CDN的全称是:**内容分发网络**,基本的作用就是通过在网络各处放置节点服务器所构成基于互联网之上的只能虚拟网络。
CDN的核心就是**使用户可就近访问网络**,取得所需内容,解决网络拥挤的状况,提供用户访问以及下载速度。
一般来说如果网站开启了CDN服务,会根据用户所在地不同访问不同的CDN的节点服务器,并不直接访问源服务器。这样可以有效防止渗透测试以及DDOS、CC攻击也是一种防护方式。但是对我们测试人员来说就很不友好。
为了提高网络传输速度、网络访问速度、服务器资源问题。
可以在国内各城市架设CDN节点服务器来持续缓存源站的资源。 然后将各城市的dns域名解析指向cdn节点服务器IP。这个时候用户在去访问的时候进行dns解析,dns将其引导到cdn服务器进行请求。那么用户再去访问的时候就能够提高访问速度等。
3.5.2 CDN验证
1.CDN验证
# 国内在线:
超级ping:多个地点Ping服务器,网站测速 - 站长工具
爱站:网站测速工具_超级ping _多地点ping检测 - 爱站网
站长工具:海外网速测试 - 站长工具
ping:Ping, mtr, dig, TCP port check and real time BGP looking glass from multiple locations
ipip:HttpHead查询_专业精准的IP库服务商_IPIP
wepcc:https://www.wepcc.com/
2.网络空间搜索引擎
利用网站返回的内容寻找真实原始IP,如果原始服务器IP也返回了网站的内容,那么可 以在网上搜索大量的相关数据;
根据网站特征搜索相关站点:
FOFA :https://fofa.info/
title="网站的title关键字"
body="网站的body特征"
doamin="tools.net"
hunter:https://hunter.qianxin.com/
3.ICO图标搜索真实IP
https: www.t00ls.com/favicon.ico 下载图标 放到fofa识别
1. F12网络
2. 查看源码
4。利用SSL证书寻找真实原始IP
3.6端口扫描
3.6.1常见服务器端口
当我们确定了大概的IP后,可以先对IP的开放端口进行探测。因为不同端口上运行着 不同的服务;一些特定服务可能开启在默认端口上。探测也是利于快速收集目标资产, 找到目标网站的其他功能站点 一个IP可能有多个站点 假如主站和子站在同一个服务器上,主站打不下来,就打子站。
3.6.2 Namp端口扫描
Namp是一款开源免费的网络发现( Network Discovery )和安全审计(Security)工具,软 件名字Nmap是 Network Mapper 的简称。 Namp提供这几种功能:主机发现,端口扫描,操作系统识别,服务识别,脚本扫描
主机发现:去发现网段内存活得主机(在线主机)
端口扫描:端口1-65535
操作系统识别:去识别对方使用了什么操作
服务识别:识别端口上得服务版本
脚本扫描:调用nmap自带的脚本 去检测漏洞
1.扫描模式
nmap 192.168.1.1 -sS TCP SYN端口扫描(半开扫描) *
nmap 192.168.1.1 -sT TCP连接端口扫描 *
nmap 192.168.1.1 -sU UDP端口扫描 *
nmap 192.168.1.1-5 -Pn 跳过主机发现,直接扫描端口 *
-sS TCP SYN端口扫描(半开)
-sT TCP端口扫描(全开)
-sU UDP端口扫描
-Pn 跳过主机发现,直接扫描端口
2.端口扫描
* ARP扫描:如果扫描的内网网站,默认就是arp扫描。是最精准的扫描方式,并不会被过滤,因此会被强制使用。
* ICMP扫描:是最常见的扫描方式,和ping命令原理一致,但现在很多防火墙和IPS设备会禁用ICMP扫描,使得ICMP主机发现失败
* 端口扫描:是另一种发现主机的方式,准确且不容易被防火墙过滤,这种方式经常被使用
3.主机发现
* ARP扫描:如果扫描的内网网站,默认就是arp扫描。是最精准的扫描方式,并不会被过滤,因此会被强制使用。 * ICMP扫描:是最常见的扫描方式,和ping命令原理一致,但现在很多防火墙和IPS设备会禁用ICMP扫描,使得ICMP主机发现失败 * 端口扫描:是另一种发现主机的方式,准确且不容易被防火墙过滤,这种方式经常被使用常用于主机发现得参数
-sP -sn4.服务识别
服务识别:-sV 回去判断对方端口所运行的服务以及版本
5. 操作系统识别
-O 识别操作系统得原理 通过 TCP/IP 数据包发到目标主机,由于每个操作系统类型对于处理 TCP/IP 数据包都不相同,所以可以通过之间的差别判定操作系统类型;6.脚本扫描
--script="vuln" 利用漏洞检测脚本进行扫描
3.6.3 常用参数
-sV 探测端口服务版本 -O 探测主机操作系统 -p 扫描端口 -sP -sn 主机发现 -sT 进行TCP扫描 -sU 进行UDP扫描 -sS tcp半开扫描 -A 启用操作系统检测,版本检测,脚本扫描和跟踪路由 --script= 指定扫描脚本文件 --proxies=xx 挂代理 -Pn 无ping扫描(跳过主机发现阶段) -T0-5 扫描速率 -O 识别操作系统得原理 通过 TCP/IP 数据包发到目标主机,由于每个操作系统类型对于处理 TCP/IP 数据包都不相同,所以可以通过之间的差别判定操作系统类型; nmap主要功能:主机发现、端口扫描、服务版本识别、操作系统识别、脚本扫描 nmap扫描模式:-sT -sS -sU3.7 旁站/C段
1.旁站
旁站攻击激素 在攻击目标是,对目标网站无法下手,找不到目标网站的漏洞。那么攻击者可以通过与目标站点在同一个服务器下的其他站点进行渗透,从而获取目标站点的权限。
这个过程称为:旁注攻击
2.C段
C段指的是同一内网段的其他服务器。每个IP可以分为ABCD四个段
3.8 Google hacking
#搜索引擎
百度:www.baidu.com
bing: www.bing.com
Yahoo: www.search.yahoo.com
aol: www.search.aol.com
goodle: goodle.cn
#搜索语法 goodle hacker 语法
intitle : 标题关键字 eg:intitle 后台登陆
inurl : URL关键特征 eg:inurl admin.php
intext:内容关键词 eg: intext 文件上传
filetype:指定类型文件 // 例如:bak mdb asp php jsp
site: 指定域名
link :baidu.com //表示 表示返回所有和baidu.com做了链接的网站
info: 查找指定站点的一些基本信息
cache: 搜索google里关于某些内容的缓存
intitle:标题关键字 查询在网站标题中存在该关键字的站点
inurl:URL关键字 查询在URL路径中存在该关键字的站点
intext:内容关键词 查询在网站主体中存在该关键字的站点
filetype:文件类型 查询存在指定文件类型的站点
site: 指定域名 查询在搜索引擎下的所收录的资产 site:xxx.com
举例: ntext:管理
filetype:mdb
inurl:file site:http: xx.com filetype:txt
site:http: xx.com filetype:asp
site:tw inurl:asp?id= 查找台湾的
intitle:旁注- 网站 filetype:asp http:lmb.scsio.cas.cn/xzzx/201411/P020141121459287656532.xls
# Google Hacker Database(GHDB)
https: www.exploit-db.com/google-hacking-database
管理后台地址
site:mi.com intext:管理 | 后台 | 后台管理 | 登录 | 用户名 | 密码 | 系统 | login |system site:mi.com inurl:login | inurl:admin | inurl:manage | inurl:manager | inurl:admin_login | inurl:system | inurl:backend site:mi.com intitle:管理 | 后台 | 后台管理 | 登录上传类漏洞
site:target.com inurl:file site:target.com inurl:upload注入漏洞
site:target.com inurl:php?id= inurl:asp?id= inurl:?id=1 .....编辑器
site:target.com inurl:ewebeditor
目录遍历漏洞
site:target.com intitle:index.of
phpinfo()
site:target.com ext:php intitle:phpinfo "published by the PHP Group"
配置文件泄露
site:target.com ext:.xml | .conf | .cnf | .reg | .inf | .rdp | .cfg | .txt | .ora | .ini
数据库文件泄露
site:target.com ext:.sql | .dbf | .mdb | .db
备份|历史文件泄露
site:target.com filetype:.doc | .docx | .xls | .xlsx | .ppt | .pptx | .odt | .pdf | .rtf | .sxw | .psw | .csv
邮箱信息
site:target.com intext:@target.com site:target.com 邮件 site:target.com email社工信息
site:target.com intitle:账号 | 密码 | 工号 | 学号 | 身份证