)
一、信息收集什么是信息收集去做测试的两种情况客户给你一个xlsx文档里面就是测试得资产范围客户告诉你测试得公司需要你自己做信息收集测试资产【不全】信息收集指的是当我们获取到的客户下发的测试目标公司名、主域名、资产信息后通过网上公开的平台或者工具去尽可能多的收集该公司的资产子域名、APP、小 程序、应用系统、控股公司等。 这样的话我们可测试的资产量增加相等的那我们挖掘漏洞的几率也会增加信息收集的意义信息收集是渗透测试的第一步也是相对来说最重要的一步通过信息收集我们可以掌握 该企业所持有的资产情况每个站点的架构、使用到的组件、有哪些目录、那些功能接 口等信息。可以很大程度提高我们测试成功率。信息收集的方法主动信息收集通过直接访问网站在网站上进行操作对网站进行目录扫描、端口扫 描、JS接口检索等。被动信息收集借助三方网站、工具来获取目标企业、网站的信息。二、信息收集-资产收集在实际的渗透测试过程中我们需要对企业资产进行梳理。随着企业业务不断壮大各种业务平台和管理系统越来越多很多单位往往会存在一些隐形资产这些资产可能长期无人维护、也可能存在一些已知的安全漏洞。那么我们就可以以此作为切入点进行攻击2.1备案资产查询资产收集公司所持有的备案域名、APP、小程序、业务软件等。2.1.1 ICP备案查询根据工信部规定所有国内的网站、APP都需要进行ICP备案和公安备案。工信部网站备案查询 https: //beian.miit.gov.cn/#/Integrated/index2.1.2 爱企查爱企查、企查查、小蓝本都可以去查询相关的备案信息。2.1.3 空间搜索引擎空间搜索引擎他可以帮助我们去搜索某个主域名相关子信息也可以搜索一个ip所开 放的服务也可以搜索一公司所持有的资产。FOFAhttps://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/OneForAllOneForAll是一款功能强大的子域收集工具拥有多个模块和接口扫描收集子域信息 很全包括子域、子域IP、子域常用端口、子域Title、子域Banner、子域状态等2.3.2 无影Tscan2.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}/relations2.3.5 HTTPS证书查询crtsh: https://crt.sh/censys: https://censys.io/certificates2.3.6 其他查询方式DNS记录查询借助公开的DNS解析数据去搜索列出包含xxx.com域名的相关资产信息ip138: https://site.ip138.com/xiaomi.com/domain.htmdnsdb: https://dnsdb.io/zh-cn/search?qxiaomi.com2.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/EHoleEhole.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 seclistscd /usr/share/wordlists/3.2.2爆破工具1.DirSearch项目地址 https://github.com/maurosoria/dirsearchkali中apt-get updateapt install dirsearchapt --fix-briken install #上面命令失败执行apt install dirsearch常见命令参数dirsearch -u https://xxxxxdirsearch -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\wwwrootC:\xampp\htdocsD:\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使用方法2python 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/entrieshttp://canmou.dhgate.com/guard/.svn/entries3.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群、表白墙)企业 找相关的文件招标邮箱手机号 、看联系我们、BOSSGoogle参考Google黑客语法# Googlegoogle配合github搜索敏感信息● site:mi.com sa password● site:Github.com root password● site:Github.com User IDsa;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 · GitHub3.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检测 - 爱站网站长工具海外网速测试 - 站长工具pingPing, mtr, dig, TCP port check and real time BGP looking glass from multiple locationsipipHttpHead查询_专业精准的IP库服务商_IPIPwepcchttps://www.wepcc.com/2.网络空间搜索引擎利用网站返回的内容寻找真实原始IP如果原始服务器IP也返回了网站的内容那么可 以在网上搜索大量的相关数据根据网站特征搜索相关站点FOFA https://fofa.info/title网站的title关键字body网站的body特征doamintools.nethunter:https://hunter.qianxin.com/3.ICO图标搜索真实IPhttps: www.t00ls.com/favicon.ico 下载图标 放到fofa识别1. F12网络2. 查看源码4。利用SSL证书寻找真实原始IP3.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.脚本扫描--scriptvuln 利用漏洞检测脚本进行扫描3.6.3 常用参数-sV 探测端口服务版本 -O 探测主机操作系统 -p 扫描端口 -sP -sn 主机发现 -sT 进行TCP扫描 -sU 进行UDP扫描 -sS tcp半开扫描 -A 启用操作系统检测版本检测脚本扫描和跟踪路由 --script 指定扫描脚本文件 --proxiesxx 挂代理 -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.combing: www.bing.comYahoo: www.search.yahoo.comaol: www.search.aol.comgoodle: goodle.cn#搜索语法 goodle hacker 语法intitle : 标题关键字 egintitle 后台登陆inurl URL关键特征 eginurl admin.phpintext:内容关键词 eg: intext 文件上传filetype指定类型文件 // 例如bak mdb asp php jspsite: 指定域名link baidu.com //表示 表示返回所有和baidu.com做了链接的网站info: 查找指定站点的一些基本信息cache: 搜索google里关于某些内容的缓存intitle:标题关键字 查询在网站标题中存在该关键字的站点inurl:URL关键字 查询在URL路径中存在该关键字的站点intext:内容关键词 查询在网站主体中存在该关键字的站点filetype文件类型 查询存在指定文件类型的站点site: 指定域名 查询在搜索引擎下的所收录的资产 site:xxx.com举例 ntext:管理filetype:mdbinurl:file site:http: xx.com filetype:txtsite:http: xx.com filetype:aspsite:tw inurl:asp?id 查找台湾的intitle:旁注- 网站 filetype:asp http:lmb.scsio.cas.cn/xzzx/201411/P020141121459287656532.xls# Google Hacker DatabaseGHDBhttps: 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:?id1 .....编辑器site:target.com inurl:ewebeditor目录遍历漏洞site:target.com intitle:index.ofphpinfo()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:账号 | 密码 | 工号 | 学号 | 身份证