红队信息收集,总结最全信息收集思路与实操技巧 0x01 简介无论是做渗透测试还是红队Red Team的工作信息收集都是工作前期必不可少的一个环节。渗透测试的本质是信息收集资产信息越多可攻击面就越广找到突破口的机会就越大。但随着安全行业的蓬勃发展各类信息收集技a术与工具层出不穷令人眼花缭乱。以下总结本人在实际渗透工作中常用的信息收集方法和工具。鉴于不同场景与个人习惯差异只有契合自身需求的才是最为适宜的。本文仅旨在阐述个人见解期望各位师傅能够依据自身经验与认知对文中内容进行批判性地思考与探讨。本文仅用于技术学习与合规交流严禁非法滥用。因违规使用产生的一切后果由使用者自行承担与作者无关。现在只对常读和星标的才展示大图推送建议大家把渗透安全HackTwo“设为星标”否则可能就看不到了啦末尾可领取挖洞资料/加圈子 #渗透安全HackTwo0x02 正文详情平台选择关于渗透测试平台的选择可能很多师傅会立刻想到Kali LinuxKali Linux集成了很多知名渗透测试工具确实是个非常优秀的渗透测试平台但是根据个人使用习惯我感觉Kali还是有一定的局限性比如做代码审计、免杀这类需要用到IDE的工作时还是略显笨拙。因此这里本人使用 Windows11 系统作为信息收集工作的主力机Kali Linux 作为辅助工具。企业产权收集企业产权信息收集主要收集目标业务的产权信息例如域名产权、APP与小程序的产权、员工信息、供应链信息等在线平台企业信息天眼查[https://www.tianyancha.com/]企查查[https://www.qcc.com/]小蓝本[https://sou.xiaolanben.com/pc]爱企查[https://aiqicha.baidu.com/]通过查询企业产权信息可以获得更多的攻击面例如APP域名等信息。备案信息工信部备案查询[https://beian.miit.gov.cn/]ICP备案查询[https://www.beianx.cn/]批量查询https://www.hacktwohub.com/wp-custom-dev/icp_app/icp通过查询企业网站的备案号也可以搜集到企业下的其他资产信息Kali Whois查询此外也可以使用Kali Linux自带的whois工具进行备案信息的查询whois xxx.com网络空间搜索引擎通过网络空间搜索引擎可以搜索到一些被搜索引擎隐藏的资产效率较高并且能够直观地看到站点标题以及服务信息。FOFA[https://fofa.info/]钟馗之眼[https://www.zoomeye.org/?R1nG]零零信安[https://0.zone/]shodan[https://www.shodan.io/]sensys[https://censys.com/]鹰图[https://hunter.qianxin.com/]360quake[https://quake.360.net/quake/#/index]自动化资产收集-ARLARL(Asset Reconnaissance Lighthouse)资产侦察灯塔系统旨在快速侦察与目标关联的互联网资产构建基础资产信息库。 协助甲方安全团队或者渗透测试人员有效侦察和检索资产以攻击者视角持续探测资产风险协助用户时刻洞察资产动态掌握安全防护薄弱点快速收敛攻击面。下载地址https://github.com/ki9mu/ARL-plus-docker安装与使用文档https://tophanttechnology.github.io/ARL-doc/移动资产收集当信息收集工作完毕后 Web 页面无从下手时可以将目光转向移动应用平台聚焦到 APP 应用和小程序上移动平台使用便捷用户量大因此功能点就比较多攻击面就越广。APP应用APP应用可以通过查询企业的知识产权获取或者在各大应用商店搜索获取。七麦APP软件搜索七麦app搜索[https://www.qimai.cn/]公众号信息直接使用微信的搜一搜功能或者使用搜狗微信搜索[https://weixin.sogou.com/]小程序资产一般中大型企业都有自己的小程序通过支付宝微信等平台搜索可以获取到小i程序或着关注公司运营人员通过社工等方式获取小程序。单一目标信息收集前面通过收集了一些企业的资产信息例如域名、app、小程序等资产这些资产包括但不限于域名、IP、接口信息等接下来就对这些单一的目标进行信息收集。操作系统TTL值不同的操作系统的默认TTL值是不同的 所以我们可以通过TTL值来判断主机的操作系统但是当用户修改了TTL值的时候就会误导我们的判断所以这种判断方式也不一定准确。下面是默认操作系统的TTL 1、WINDOWS NT/2000 TTL128 2、WINDOWS 95/98 TTL32 3、UNIX TTL255 4、LINUX TTL64 5、WIN7 TTL64Nmap -O参数Nmap -O xxx.xxx.xxx.xxx //nmap的-O参数可以帮助判断目标所使用的操作系统大小写敏感一般情况下windows服务器对目录的大小写是不敏感的而linux则相反IP反查使用网络空间搜索引擎或者ARL灯塔收集信息后通常会有一些没有域名的独立IP可以使用IP反查的手段来确定这个独立IP是否归属于该单位ip138反查[https://site.ip138.com/]微步在线[https://x.threatbook.cn/]爱站反查域名[https://dns.aizhan.com/]子域名查询当主站点没有web安全漏洞或者设置了WAF等安全产品等情况导致无法进行边界突破时可以考虑对子域名进行渗透测试DNS解析利用DNS记录公开数据收集ip138[https://site.ip138.com/]DnsDumpster[https://dnsdumpster.com/]hackertarget.com:[https://hackertarget.com/find-dns-host-records/]GobusterKali下使用gobuster爆破Dns​​​​​​​apt-get install gobustergobuster dns -d xxxx.com -t 50 -w /root/Documents/domains.txt网络空间搜索引擎搜索通常搜索引擎的主页设有相关搜索规则多数是以 domainxxxx.com 的形式来搜索子域名信息在线子域名收集​​​​​​​dnsdumpster[https://dnsdumpster.com/]bugscanner[http://tools.bugscaner.com/subdomain/]OneForAll子域名查询工具工具下载地址[https://github.com/shmilylty/OneForAll]oneforall是一款功能强大的子域收集工具收集能力强大详细模块请阅读收集模块说明。支持子域爆破该模块有常规的字典爆破也有自定义的fuzz模式支持批量爆破和递归爆破自动判断泛解析并处理。支持子域验证默认开启子域验证自动解析子域DNS自动请求子域获取title和banner并综合判断子域存活情况。支持子域爬取根据已有的子域请求子域响应体以及响应体里的JS从中再次发现新的子域。支持子域置换根据已有的子域使用子域替换技术再次发现新的子域。支持子域接管默认开启子域接管风险检查支持子域自动接管目前只有Github有待完善支持批量检查。处理功能强大发现的子域结果支持自动去除自动DNS解析HTTP请求探测自动筛选出有效子域拓展子域的Banner信息最终支持的导出格式有txt,csv,json。速度极快收集模块使用多线程调用爆破模块使用massdnsDNS解析速度每秒可解析350000以上个域名子域验证中DNS解析和HTTP请求使用异步多协程多线程检查子域接管风险。体验良好各模块都有进度条异步保存各模块结果。安装使用在高版本的安装及使用过程中可能会出现各种问题参考下面这篇博客https://blog.csdn.net/weixin_49769267/article/details/131464408python oneforall.py --target http://xxx.com run收集完成后会将结果保存到results文件夹下layer子域名挖掘机Layer 子域名挖掘机是一款域名查询工具可提供网站子域名查询服务拥有简洁的界面、简单的操作模式支持服务接口、暴力搜索、同服挖掘三种模式支持打开网站、复制域名、复制 IP、复制 CDN、导出域名、导出 IP、导出域名 IP、导出域名 IP WEB 服务器以及导出存活网站工具地址https://github.com/euphrat1ca/LayerDomainFinder/releases操作简便只需填入一级域名选用默认或自行收集的字典后点击启动按钮即可。SubfinderSubfinder 是一款专注于子域名收集的开源工具旨在帮助安全专业人员、渗透测试人员和研究人员快速有效地发现目标域的子域名。该工具通过与多个子域名源例如搜索引擎、DNS数据集成提供了一个全面的子域名搜集解决方案。以下是 Subfinder 的一些主要特点和功能多源搜集Subfinder 集成了多个子域名源包括但不限于谷歌Google、Shodan、Censys、Virustotal等以提高搜集的全面性。快速且并发Subfinder 被设计为快速且支持并发搜集以加速子域名发现过程。DNS 数据源工具可以利用DNS数据通过查询DNS服务器来发现子域名。这包括常规域传输、DNS枚举和暴力破解。API支持Subfinder 提供了对多个子域名API的支持以允许用户在工具中集成自定义的数据源。漏洞扫描集成Subfinder 还可以与漏洞扫描工具如 Amass、Assetnote、Virustotal进行集成以提供更全面的信息。结果导出Subfinder 支持将搜集到的子域名结果导出为常见的文件格式如文本文件、JSON和CSV。自定义字典用户可以使用自定义字典进行子域名的暴力破解尝试以满足特定的搜集需求。Subfinder 是一个灵活而强大的工具适用于用于渗透测试、漏洞评估、红队操作以及一般的信息搜集任务。使用 Subfinder 时请确保在合法和授权的范围内操作并遵循法律和道德准则。在Kali中使用Subfindersudo apt-get install subfindersubfinder -d xxxx.com证书查询利用谷歌提出的证书透明度可以查询到公开的子域一般可以查询到的结果包括域、签发者、有效期和签名等​​​​​​​crtsh[https://crt.sh/]censys[https://censys.io/certificates]spyse[https://spyse.com/search/certificate]certspotter[https://sslmate.com/certspotter/api/]威胁情报收集​​​​​​​微步 https://x.threatbook.cn/绿盟科技 威胁情报云 https://ti.nsfocus.com/华为安全中心平台 https://isecurity.huawei.com/sec爬虫收集当目标比较单一或者无法提取出更多的子域名资产时可以考虑定制爬虫的方法对目标的JS信息、源码信息、目录信息等做更深层次的域名信息的提取关于爬虫获取子域名的学习可以参考这篇博客https://blog.csdn.net/qq_45859826/article/details/124030119信息去重经过在线平台和工具的收集工作得到的域名信息有很多但是有很多会是重复出现的需要做去重工作这里给出我自己写的python脚本​​​​​​​import urllib.parse # 将域名统一修改为url标准格式 def normalize_url(url): if not url.startswith(http://) and not url.startswith(https://): url http:// url parsed_url urllib.parse.urlparse(url) return urllib.parse.urlunparse(parsed_url._replace(path/, params, query, fragment)) # 读取文件中的域名或URL数据规范格式并去重同时将结果保存到新文件 def process_domains_file(file_path): seen_urls set() result [] with open(file_path, r, encodingutf-8) as file: for line in file: url line.strip() # 去除每行的空白字符如换行符等 normalized_url normalize_url(url) if normalized_url not in seen_urls: seen_urls.add(normalized_url) result.append(normalized_url) # 将去重后的结果保存到新文件domains_new.txt中 with open(domains_new.txt, w, encodingutf-8) as new_file: for url in result: new_file.write(url \n) return result file_path domains.txt # 这里替换为你实际的文件路径 final_urls process_domains_file(file_path) for url in final_urls: print(url)端口扫描通过扫描端口可以判断目标主机使用了哪些服务从而对这些服务进行有针对性的信息收集、漏洞探测在线端口扫描使用在线端口扫描一是比较快捷、二是可以先使用在线端口扫描判断目标主机是否限制了访问频率后续在本地进行主动端口扫描时可以通过设置线程和速率的方式绕过​​​​​​​ToolLine[https://toolonline.net/port-scan]Ip33[http://www.ip33.com/port_scan.html]coolad[http://coolaf.com/tool/port]当然在线的端口扫描平台还不止这些可以通过搜索引擎找到很多类似的在线扫描平台Nmap工具下载地址[https://nmap.org/]Nmap中文使用手册[https://www.cnblogs.com/HOsystem/p/16538678.html]在Kali中使用Nmap进行端口扫描nmap -sU --top-ports 20 xxx.com //扫描UDP top20端口nmap -T4 -O -sV -p- kali.wiki //扫描全端口 判断操作系统 扫描部署的服务Masscanmasscan是一个快速端口扫描器号称是世界上最快的扫描软件可以在几分钟内扫描整个互联网端口。工具下载[https://github.com/robertdavidgraham/masscan]masscan -p 0-5000 xxx.xxx.xxx.xxx --rate3000 //使用3000的速率扫描目标0-5000的端口开放情况在Kali中的使用和Windows基本无异但是如果速率设置的很高的话可能会导致扫描不全的情况出现网络测绘空间通过测绘空间搜索单个IP地址可以探测出目标主机开放过哪些端口服务目录扫描目录扫描字典https://github.com/arrdres/Web-Dict御剑目录扫描御剑目录扫描专业版简单实用的命令行网站目录扫描工具支持爬虫、fuzz、自定义字典、字典变量、UA修改、假404自动过滤、扫描控速等功能。工具下载[https://github.com/foryujian/yjdirscan]7KbScan7kbscan-WebPathBrute Web路径暴力探测工具工具下载[https://github.com/7kbstorm/7kbscan-WebPathBrute]dirsearchdirsearch是一个基于python的命令行工具用于暴力扫描页面结构包括网页中的目录和文件。工具下载[https://github.com/maurosoria/dirsearch]Gobustergobuster工具可以对Web目录和dns域、子域进行枚举功能较为强大参数详细描述-C--cookie请求中使用的cookie-x--extensions指定枚举的扩展名-H--headers指定请求头-k--no-tls-validation跳过TLS证书验证-n--no-status不打印状态码-s--status-codes肯定的状态码-b--status-codes-blacklist负面的状态码-U--usernameBasic验证用户名-P--passwordBasic验证密码gobuster dir -u http://xxx.com/ -w directory-list.txt //使用指定字典对目标进行目录爆破CMS识别通过识别CMS的类型和版本信息可以根据该CMS公开的历史漏洞针对CMS进行漏洞探测在线CMS识别​​​​​​​云悉指纹识别[http://finger.tidesec.com/]数字观星[https://fp.shuziguanxing.com/#/]TideFingerTideFinger——指纹识别小工具汲取整合了多个web指纹库结合了多种指纹检测方法让指纹检测更快捷、准确。工具下载​​​​​​​https://github.com/TideSec/TideFingerTideFinger_Win.exe -u http://xxxx.comWhatwebWhatWeb 是一款用于识别网站技术栈和特征的开源Web扫描工具。它可以自动分析网站的响应并识别出使用的Web框架、CMS、服务器、JavaScript库等技术组件。Kali中使用whatweb识别目标CMS信息whatweb xxxx.comWappalyzeWappalyzer是一款开源的浏览器扩展用于识别网站所使用的技术栈。它能够检测出使用的Web服务器、内容管理系统、编程语言、JavaScript库、框架等信息并将其展示给用户。插件可以在各个浏览器的插件商城免费下载经验判断AI当工具无法提供正确的CMS信息时可以根据网站的目录结构、js信息、版权信息综合判断CMS的类型也可以将收集到的信息提交给AI判断源码泄露攻击者可通过泄露的源码文件提取出网站配置信息如数据库配置信息、云服务配置信息等还可以根据源代码进行代码审计导致漏洞披露。网站备份压缩文件管理员如果将网站源代码备份在Web目录下攻击者就通过遍历文件路径获得备份文件。常见的备份文件后缀​​​​​​​.rar.zip.7z.tar.gz.bak.txt.old.temp.phps.sqlgit源码泄露git是一个开源的分布式版本控制系统在执行git init初始化目录的时候会在当前目录下自动创建一个.git目录用来记录代码的变更记录等。发布代码的时候如果没有把.git这个目录删除就直接发布到了服务器上攻击者就可以通过它来恢复源代码。访问网站根目录/.git/文件夹是否存在如果文件夹存在或显示403则存在 使用githack.py进行下载GitHack工具下载[https://github.com/lijiejie/GitHack]python3 GitHack.py http://xxxx.com/SVN源码泄露SVN是一个开放源代码的版本控制系统。在使用SVN管理本地代码过程中会自动生成一个名为.svn的隐藏文件夹其中包含重要的源代码信息。网站管理员在发布代码时没有使用‘导出’功能而是直接复制代码文件夹到WEB服务器上这就使.svn隐藏文件夹被暴露于外网环境可以利用.svn/entries文件获取到服务器源码。SvnHack工具下载[https://github.com/callmefeifei/SvnHack]使用方法与githack基本无异但是需要使用python2版本使用此工具本人使用的python环境为Python 2.7.18python2 SvnHack.py -u http://xxxx.com/GitHub源码泄漏如果网站开发者在开发过程中自动或手动将源码上传到github等其他开源平台并且没有正确设置访问权限那么就可以通过搜集到的已知信息去各个开源平台搜索泄露的源代码​​​​​​​in:name target # 仓库标题搜索含有关键字targetlanguage:java target # 在java语言的代码中搜索关键字in:descripton target # 仓库描述搜索含有关键字in:readme target # Readme文件搜素含有关键字user:target # 通过用户名搜素license:apache-3.0 target # 明确仓库的 LICENSE 搜索关键字user:target in:name target # 组合搜索,用户名target的标题含有target的API与JS信息Packer-Fuzzer工具下载[ https://github.com/rtcatc/Packer-Fuzzer]Packer-Fuzzer是一款针对Webpack等前端打包工具所构造的网站进行快速、高效安全检测的扫描工具。常用命令python3 PackerFuzzer.py -u http://xxxx.com -t adv -p http://127.0.0.1:8080 -f 1 -r html # 高级版模式、yakit代理、忽略自签名CA证书 python3 PackerFuzzer.py -u http://xxxx.com -j http://xxxx.com/js/index.js,http://xxxx.com/static/js/cookieAlert.js # 附加JS进行额外分析 python3 PackerFuzzer.py -u http://xxxx.com -b v1 #指定baseurlUrlFinderURLFinder是一款快速、全面、易用的页面信息提取工具用于分析页面中的js与url,查找隐藏在其中的敏感信息或未授权api接口工具下载[https://github.com/pingc0y/URLFinder]\URLFinder.exe -u http://xxxx.com -s 200,403 -m 3JSFinderJSFinder是一款用作快速在网站的js文件中提取URL子域名的工具。工具下载[https://github.com/Threezh1/JSFinder]0x03 总结做渗透红队别上来就乱扫乱打信息收集才是王道先扒企业工商与备案资产再靠测绘工具挖隐藏站点子域名、端口挨个排查。顺带识别网站架构与 CMS揪出备份、Git 等源码泄露漏洞还能扒前端 JS 提取隐藏接口。把各类工具灵活搭配用好摸透目标家底再动手既能少走弯路还能轻松找到突破点位实战效率直接拉满喜欢这类文章或挖掘SRC技巧文章师傅可以点赞转发支持一下谢谢