阅读须知
免责声明:本文内容及提供的技术资料和工具仅供信息安全研究和学习之用,不得用于任何非法目的。使用者必须确保其行为符合所有相关法律法规,并对使用这些信息和工具可能引起的任何形式的损害或后果负全责。本文作者不对使用者可能的非法行为或任何由此引发的直接或间接后果承担责任。请使用者自觉维护网络安全,尊重知识产权,不得侵犯他人合法权益。对于任何使用本文内容进行非法行为的个人,其法律责任由该个人自行承担。
友情提示:未经合法授权方的明确许可,对计算机系统进行测试或渗透均属于违法行为!在进行任何形式的测试或渗透活动之前,必须获得合法授权方的明确授权!
在浩瀚的网络世界中,信息打点是红队攻防中不可或缺的一环。正因如此,我决定对这个广泛而深奥的领域进行整理与探索,并分享在这一过程中积累的经验与见解。本文的目标不仅仅局限于纯技术的探索,更从原理、源头出发,深入解析为何如此做、怎么做,按步骤展开,为读者提供全面深刻的网络侦察知识。
近期,我深入学习了xiaodi老师以及其他行业资深者的相关课程,并将他们的精华知识进行了总结。这并非简单的翻译与复述,而是对各类优秀视频的深度理解和提炼。这篇文章不仅仅是我的学习笔记,更是为红队技术爱好者提供的一份经验分享。希望这些整理能够帮助大家更好地理解和应用信息打点的技术,共同迈向网络安全的深度之路。
网络侦察 - 架构深拷问
本节内容概要
探讨网络侦察,包括域名、语言、中间件、数据库、系统、源码获取等。
为何要深入了解网络架构?
在数字时代的网络空间中,架构是安全的第一道防线,也是攻击者渗透的第一目标。深入了解网络架构,不仅可以发现系统的强壮之处,更能识别其中可能存在的薄弱环节,从而有针对性地加强安全防护。
架构深度探索的价值
- 发现潜在威胁: 了解架构,就是了解系统中各个组成部分之间的交互关系。这样的洞察力让我们能够早早发现潜在的威胁和漏洞,提前采取防范措施。
- 优化防线布局: 精通网络架构,能够更合理地布置防线,加强关键节点的保护,提高整体网络的安全性。
- 解决问题的高效性: 当系统出现问题时,了解架构能够帮助快速定位问题所在,加速问题解决的过程。
- 有效应对攻击: 攻击者往往选择系统的弱点入手,深刻了解架构可以使我们更好地预测攻击者的行为,从而更有效地进行防范和应对。
- 实现安全与发展的平衡: 安全与发展是永恒的话题,了解网络架构可以帮助我们在保障系统安全的同时,更好地推动系统的发展和创新。
Web架构下的信息打点探析
域名
域名作为网络地址的标识符,在网络侦察中扮演着关键的角色。掌握目标域名是渗透测试和攻击的第一步,而深入了解域名的相关信息则有助于更精确、有针对性地展开后续的攻击。
(一)判断域名对应的IP
- 在侦察阶段,首要任务是确定目标域名对应的IP地址。这里可以使用多种方法来进行探测,如:nslookup、ping命令、在线DNS查询等。
(二)域名的whois信息
- whois是用来查询域名注册所有者等信息的传输协议。简单说,whois就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商)。
(三) 实用工具和资源:站长之家
- 通过域名侦察,我们不仅能够获取目标域名对应的IP地址,还能深入了解注册者的信息。这为后续攻击和渗透的步骤奠定了基础,使网络侦察更加有针对性和有效。在实际操作中,综合利用在线工具和WHOIS查询,可以更全面地了解目标域名的各个方面,为红队行动提供重要支持。
操作系统
在进行服务器类型的判断时,最简单的方式之一是通过ping命令来进行探测。通常情况下,Windows和Linux的TTL(Time To Live)值有一定的区别,可以借此判断服务器的类型。
Windows的TTL值都是一般是128,Linux则是64。所以大于100的肯定是Windows,而几十的肯定是Linux。
但是,通过TTL值来判断服务器类型也不是百分之百准确的,有些windows服务器的TTL值也是几十,而且有的服务器出于安全考虑可能禁止了对ping的响应
网站容器和Web服务器
了解目标网站所使用的网站容器和Web服务器类型直接关系到网站的架构和安全性。以下是常见的网站容器和Web服务器类型:
(一)Apache Web服务器
- Apache是一款开源的Web服务器软件,广泛应用于互联网。
- 常见端口:80(HTTP)、443(HTTPS)。
(二)Nginx服务器
- Nginx是一款高性能的开源Web服务器,同时也是反向代理服务器。
- 常见端口:80(HTTP)、443(HTTPS)。
(三)Tomcat容器
- Apache Tomcat是一个开源的Java Servlet容器,用于实现Java Servlet和JavaServer Pages(JSP)技术。
- 常见端口:8080。
(四)IIS Web服务器
- Internet Information Services (IIS)是由Microsoft开发的Web服务器。
- 常见端口:80(HTTP)、443(HTTPS)。
探测Web服务器版本是网络侦察的关键步骤,因为不同的版本存在不同的漏洞和安全风险。以下是一些常见Web服务器的版本检测方法:
- Nginx版本检测: 检查Nginx的响应头或错误页面,特别关注版本号。
- IIS版本检测: 查询HTTP响应头或错误页面,获取IIS的具体版本信息。
- Apache版本检测: 查看HTTP响应头或错误页面中的Server字段,其中包含Apache的版本信息。
- Tomcat版本检测: 通过HTTP响应头中的Server字段或错误页面中的信息获取Tomcat的版本。
了解了具体版本,我们就能够有针对性地采取安全措施,提升系统的整体安全性。同时,及时更新和修补漏洞、定期检查服务器配置都是维护Web服务器安全的关键措施。下面我们介绍一些常见Nginx、Apache、IIS的漏洞以及相应的防御措施:
(一)IIS漏洞
- IIS解析漏洞:IIS特别是在IIS 6.0中,通过目录解析(如/xx.asp/xx.jpg,在.asp或.asa目录下任意扩展名文件被解析执行)和文件解析(如shell.asp;.jpg,服务器默认不解析分号后的内容)。例如:在IIS 6.0中,如果创建了一个名为xx.asp的文件夹,并在该文件夹中上传了一个名为1.jpg的文件,通过访问http://www.xxx.com/xx.asp/1.jpg,1.jpg文件会被IIS解析执行如同ASP代码。
- IIS PUT漏洞:当WebDAV开启,且来宾用户拥有上传权限时,可能导致任意文件上传。
- IIS Windows特性利用:利用Windows不允许以空格、点等特殊字符结尾的文件名规则,上传恶意脚本文件(如xx.php ,xx.php.)。
- IIS文件名猜测:利用NTFS 8.3文件格式,猜测目录文件名,可能导致信息泄露。
- 防御措施:包括限制上传目录的执行权限、禁止新建目录、将上传的文件重命名等。
(二)Apache漏洞
- Apache后缀解析漏洞:Apache允许文件有多个后缀,如果最右侧后缀无法识别,则继续向左识别,直至找到合法后缀进行解析。例如:如果上传了一个名为xx.php.qqq的文件,Apache会因为.qqq后缀不认识而继续向左解析,直到发现.php后缀并将其作为PHP文件解析
- Apache.htaccess文件滥用:当AllowOverride被启用时,可以上传包含恶意解析规则的.htaccess文件,进而执行恶意代码。
- Apache目录遍历漏洞:**配置Options +Indexes时,Apache存在目录遍历漏洞。
- 防御措施:包括修改Apache配置文件httpd.conf以禁止PHP文件的访问权限,或者改变上传的文件名。
(三)Nginx漏洞
- Nginx解析漏洞:Nginx配置不当(如cgi.fix_pathinfo=1)可能导致任意文件名后加上特定后缀(如/xxxx.php)被当做PHP文件解析。例如:在配置不当时,如果cgi.fix_pathinfo=1,攻击者可以上传一个名为a.jpg的图片文件,然后通过访问http://www.xxx.com/uploads/a.jpg/evil.php来执行evil.php中的PHP代码,尽管evil.php实际上并不存在。
- Nginx空字节代码执行漏洞:特定版本的Nginx(如0.5至0.8之间的版本)允许在图片文件中嵌入PHP代码,通过访问特定格式的URL(如xxx.php%00.php)执行其中的代码。
- Nginx配置错误导致的漏洞:包括目录穿越和目录遍历漏洞,通常是由于Nginx配置错误引起的。
- 防御措施:包括使用高版本PHP、合理配置cgi.fix_pathinfo参数、禁止上传目录脚本执行权限等。
语言
通过分析目标网站或应用程序的语言类型,我们可以更好地理解其技术栈,为后续的攻击和测试提供有力的依据。下面介绍几种判断网站语言的几种方式:
- 响应包分析:分析服务器返回的响应包,其中可能包含有关使用的语言的信息。常见的语言标识在响应头或响应体中可见。
- 文件扩展名:观察网站的文件扩展名,例如.php表示可能是PHP语言,.jsp表示可能是Java语言。
- URL结构:一些框架和语言在生成URL时具有特定的结构。通过观察URL,可以初步判断网站所使用的语言。
- 特殊文件或目录:不同的语言和框架在项目结构中可能有独特的文件或目录。通过寻找这些特殊标志,可以推测出使用的语言。
- 主页分析:分析网站的主页源代码,查看是否包含特定语言的标记或注释。
- 错误信息:在发生错误时,服务器可能返回包含语言信息的错误消息。这可以帮助我们确认正在使用的语言。
- 请求头分析:检查HTTP请求头中的信息,有些服务器可能在其中透露所用语言。
- 敏感文件:尝试访问常见的敏感文件,如robots.txt,其中可能包含有关语言类型的信息。
- 插件:这里介绍firefox的一款工具wappalyzer,Wappalyzer 能够检测网站所使用的不同的Web框架,如React、Angular、Vue等;也能揭示网站后端所使用的编程语言,如PHP、Java、Python等。
数据库
在网络侦察中,了解目标网站所使用的数据库类型至关重要,因为它直接关系到系统的数据存储和管理。以下是常见的数据库类型及其特点:
(一)Access数据库 (后缀名: .mdb)
- Access全名为Microsoft Office Access,是由Microsoft发布的关系式数据库管理系统。
- 属于小型数据库,性能在数据库达到100M左右时会有下降。
- 一般与ASP网页文件搭配使用。
(二)SQL Server数据库 (后缀名: .mdf)
- 由Microsoft开发和推广的关系数据库管理系统(DBMS)。
- 是一个比较大型的数据库,常用端口号为1433。
- 适用于中型规模的数据库应用。
(三)MySQL数据库
- 由瑞典MySQL AB公司开发,目前属于Oracle旗下产品。
- 是最流行的关系型数据库管理系统,在WEB应用方面表现卓越。
- 默认端口是3306,常与PHP页面搭配使用。
(四)Oracle数据库
- 又称Oracle RDBMS,是甲骨文公司的一款关系数据库管理系统。
- 常用于大型网站, 默认端口是1521。
- 是大型数据库中的佼佼者。
下面我们再从成本和规模的角度看一下不同数据库类型的差异:
- Access:免费,适用于小型项目。
- MySQL:开源,适用于中小型项目,是PHP页面的常用选择。
- SQL Server:收费,适用于中型项目,费用一般在几千元。
- Oracle:高昂的费用,适用于大型项目,费用数万。
最后,数据库的选择通常与使用的编程语言和框架相关,以下是一些常见的搭配:
- ASP 和 ASPX:Access、SQL Server
- PHP:MySQL、PostgreSQL
- JSP:Oracle、MySQL
源码获取
源码泄漏可能出现的原因多种多样,从源码本身的特性到管理员的不良习惯、配置和意识都可能导致信息暴露。以下介绍一些常见的源码泄漏原因:
- 从源码本身的特性入口:源码本身可能存在一些漏洞或敏感信息,直接访问源码可能导致信息泄露。
- 从管理员不好的习惯入口:管理员可能有一些不良的开发和维护习惯,使得源码容易受到攻击。
- 从管理员不好的配置入口:不当的服务器和代码配置可能导致源码泄露,例如未删除.git目录或者未导出SVN文件。
- 从管理员不好的意识入口:缺乏安全意识可能导致源码泄漏,例如忽略了保护文件的重要性。
- 从管理员资源信息搜集入口:攻击者可能通过搜集管理员的资源信息,如邮箱、用户名等,找到源码所在的位置。
以下是一些可能泄漏的源码集合:
- Composer.json泄漏:PHP特有的源码泄漏,关注项目中的composer.json文件。
- Git源码泄露:Git是常见的版本控制系统,源码泄漏可能由管理员在发布代码时未删除.git目录引起。
- SVN源码泄漏:SVN是另一种版本控制系统,源码泄漏可能由.svn隐藏文件夹未被删除引起。
- DS_Store文件泄漏:Mac系统下的.DS_Store文件可能导致文件目录结构泄漏。
- WEB-INF泄露:Java的WEB应用中的WEB-INF目录包含重要的源码信息,未正确映射文件可能导致泄露。
- GitHub源码泄漏:GitHub上的资源搜索语法可用于查找可能泄漏的源码,注意使用语法搜索和关键字搜索结合。
- 其他源码获取方式:通过CMS识别、云悉指纹识别平台等手段获取网上开源的源码。
网络侦察 - 系统层面解析
本节内容概要
本节着重介绍系统层面的网络侦察,包括端口和服务、CDN服务、WAF防火墙等。
系统层面剖析
端口和服务
在庞大的网络中,了解目标系统的基本情况是必不可少的。端口和服务的探测不仅仅限于网站漏洞,更是为了构建目标服务器的整体图景。通过全面了解目标服务器开放的端口,我们能够更准确地定位其用途,为后续的信息收集和攻击奠定基础。下面我们介绍一款常用端口扫描工具nmap。
(一)nmap安装
- 这里以CentOS系统为例,可直接命令行下载使用:yum install nmap -y,下载完毕后检验工具版本:namp -version
(二)nmap使用
nmap -vv -sS -sV -A -p- 127.0.0.1
- -vv 普通扫码增加冗长
- -sS SYN半连接扫描
- -sV 识别版本服务
- -A 详细信息:版本、操作系统、脚本扫描
- -p- 所有端口
(三)nmap高级使用
- nmap 127.0.0.1 -p 80 指定某个端口
- nmap 127.0.0.1 -p 1-100 多个端口
- nmap 127.0.0.1 -p- 所有端口
- namp -sP 127.0.0.1 Ping扫描
- nmap -sS 127.0.0.1 -p 80 SYN半连接扫描
- nmap -sT 127.0.0.1 -p 80 TCP全连接扫描
- nmap -sU 127.0.0.1 UDP扫描
- nmap --traceroute 127.0.0.1 路由追踪
- nmap -O 127.0.0.1 -p 80 扫码主机版本(不太准)
- nmap 10.0.1.161-162 连续扫描
CDN服务
CDN(Content Delivery Network)服务是一种通过分布在全球不同地理位置的服务器,将内容快速传递给用户的网络架构。它旨在提高内容的访问速度、降低延迟,并减轻原始服务器的负载。
CDN的三种访问方式:
- 传统访问:用户访问域名→解析服务器 IP→访问目标主机
- 普通 CDN:用户访问域名→CDN 节点→真实服务器 IP→访问目标主机
- 带WAF的CDN:用户访问域名→CDN 节点(WAF)→真实服务器 IP→访问目标主机
判断系统是否采用CDN可以用到以下几种方式方式
(一)利用超级ping/多地ping:
(二) 利用全球CDN查询获取真实IP
- 在此方法中,我们使用了一个在线网站 全球 CDN 服务商查询_专业精准的IP库服务商_IPIP。采用这种方式的原因在于,许多国内站点使用CDN(内容分发网络)旨在加速用户对系统的快速访问。由于这种技术在国外可能不太为人所知,许多国外用户在访问时很可能会直接获取到真实的IP地址,而非CDN的虚拟地址。
(三) 邮箱获取真实ip
- 许多网站都具有发送邮件的功能,例如Rss邮件订阅等。此外,许多邮件系统通常内部运行,未经过CDN解析。因此,邮件的源代码中往往包含了服务器的真实IP地址。
(四) 强大的接口查询在线工具:get-site-ip.com
- 这里介绍一款强大的在线工具 get-site-ip.com,该工具提供接口查询。然而,需要注意的是,结果可能不确定,但可以用来进行验证。例如可以结合备案信息帮你验证更准确的位置,比如备案是山东,它的地址大概率就是山东地区。
为什么我们要费尽心思去找一个系统的真实ip?这是因为在测试时,我们需要找到真实ip并在hosts文件中绑定真实ip地址,以确保测试环境与实际生产环境尽可能一致。此外使用真实IP地址有助于验证系统的配置和漏洞,因为一些安全问题可能仅在真实环境中才会显现出来。
WAF
WAF 是 Web Application Firewall 的缩写,也就是 Web 应用防火墙。它是一种网络安全设备或服务,旨在保护 Web 应用程序免受各种网络攻击。例如,当我们去访问某个网页,网页显示“对于该网页无法正常运作”,那么有以下三种可能,一是由于访问路径不对;二是该网站没有设置默认页面,必须访问网站链接的全部路径才能显示;三是我们的请求流量有可能被网站的WAF给拦截了。当我们在对网站进行漏洞探测的时候,许多师傅喜欢对burp进行被动扫描,这样就很容易被waf识别告警,并被封禁ip。
那么我们如何探测网站是否存在waf呢,这里我们介绍几种探测方式:
(一)看图识waf
- waf归根到底也是一种产品,也是有自己的显著标识的,大多waf拦截都会在页面上看到它的名字,如:网速云防火墙、D盾、宝塔防火墙等等。
(二)手工探测WAF
- 更改请求方式,造成误报
- 提交恶意数据,查看是否拦截
- 数据包响应包字段
(三) 工具探测WAF
- 这里我们可以用kali内置的一款工具:WAFW00F,该工具已在Kali内置。项目地址:GitHub - EnableSecurity/wafw00f: WAFW00F allows one to identify and fingerprint Web Application Firewall (WAF) products protecting a website.,该工具内置的特征足够识别市面上主流的waf。
- 工具使用:wafw00f+[域名]
既然我们识别出来了waf后,我们当然就要想办法去绕过waf,这里我总结了一些waf bypass的方式:
(一)利用标记:使用<>标记绕过WAF的检测。
- 一些WAF系统可能采用基于规则的简单字符串匹配来检测潜在的攻击。在这种情况下,使用<>标记可以绕过这些基本规则,因为<>不是常见的攻击字符串。
- WAF可能使用正则表达式来匹配潜在攻击字符串。一些正则表达式可能过于宽泛或不完整,未正确处理<>的情况。
(二)利用HTML属性
- 利用html属性如href、lowsrc、bgsound、background、value、action、dynsrc等。
(三)关键字绕过
- 利用回车拆分或字符串拼接,如window["al" + "ert"]。
(四)编码绕过
- 使用不同编码绕过检测,包括base64、jsfuck、String.fromCharCode、HTML、URL、hex等。
- 利用window["\x61\x6c\x65\x72\x74"],包括unicode和utf7编码。
- 使用+ADw-script+AD4-alert('XSS')+ADsAPA-/script+AD4-等UTF-16编码。
- 进行大小写混淆。
(五)标签属性值转码
- 对标签属性值进行转码,绕过WAF检测。
(六)产生事件
- 利用触发事件的方式,绕过WAF的规则。
(七)CSS跨站解析
- 利用CSS进行跨站解析,绕过WAF检测。
(八)长度限制绕过
- 利用各种长度限制绕过方法,如eval(name)、eval(hash)、import、$.getScript、$.get等。例如:通过eval函数执行动态生成的JavaScript代码,其中name是一个字符串,可以包含攻击载荷。这种方式常用于绕过对字符串长度的检测。
- 使用 ` 绕过引号过滤。因为在WAF中,通常会对引号进行过滤,以防止SQL注入等攻击。通过使用 ` 这样的变种,可以绕过引号过滤,使WAF在分析和检测时受到干扰。
移动应用与小程序 - 信息揭秘
本节内容概要
本节提供了一系列的技巧和工具,从反编译工具的选择到抓包技术,再到安全漏洞的探测,旨在帮助安全专家和渗透测试人员对移动应用进行深入的安全分析和测试。
App工作原理
App(应用程序)是为移动设备如智能手机或平板电脑设计的软件,旨在执行特定的任务和服务。App通常是通过一个开发平台如Android或iOS进行开发,并且能够利用设备的硬件特性,如摄像头、GPS或加速度计。下面我将通过外在功能、内在机制、工作环境以及网络传输方式四个维度来分析App的安全和测试。
(一)外在功能
- 用户界面(UI):App提供图形化的用户界面,允许用户与应用程序进行交互。这包括按钮、文本输入框、图像等元素。
- 交互反馈:App响应用户操作,如点击、滑动等,提供即时反馈,如页面跳转、状态更新。
- 功能性服务:实现特定的业务逻辑,如电子商务交易、社交媒体互动、游戏等。
(二)内在功能
- 数据处理:App内部处理用户输入和外部数据,执行业务逻辑,如数据计算、格式转换。
- 本地存储:App可以在设备上存储数据,如配置信息、用户数据等,通常使用SQLite数据库、文件存储或特定的存储框架。
- 资源管理:App管理内部资源,如内存、处理器使用、电池消耗,以及如何调用设备硬件资源,如摄像头、GPS等。
(三)工作环境
- 操作系统:App在特定的操作系统上运行,如iOS、Android,依赖于操作系统提供的API和服务完成其功能。
- 硬件设备:App的性能和功能可能依赖于底层硬件设备的能力,如处理器速度、内存大小、网络连接等。
(四)网络传输
- 数据交换:App通过网络与服务器进行数据交换,通常使用HTTP/HTTPS协议。数据格式可能包括JSON、XML等。
- API调用:App常通过RESTful API或GraphQL等接口与后端服务进行交互,获取或发送数据。
- 安全传输:为保证数据安全,App通常采用SSL/TLS加密进行数据传输,防止数据在传输过程中被截获或篡改。
为什么要app的反编译
为什么我们不能用常规测试web的思路来渗透App么,为什么还要那么麻烦去反编译它呢?这一点其实很简单,师傅们在测一下app的时候肯定遇到过有App无法抓包的情况,一开启抓包就显示网络错误,尤其是那些实施了SSL证书绑定或SSL Pinning技术的App。这些技术可以有效阻止中间人攻击,但同时也给安全测试带来了挑战。因此,通过反编译,安全研究人员可以绕过这些安全措施,直接查看和修改App的网络通信代码,实现抓包目的。另外,许多App通过“壳”来保护其代码不被轻易查看或修改,这就需要“脱壳”技术。在安全研究和逆向工程中,Hook技术就是一种常用的方法,它允许研究人员拦截并修改App的函数调用,这对于分析App的运行时行为和发现隐藏的功能尤为重要。
反编译工具组合拳
在Android应用开发和安全分析领域,一套高效的反编译工具是探索应用内部结构和代码的关键。这些工具不仅能帮助我们深入了解应用的底层逻辑,还能揭示潜在的安全漏洞或进行代码学习。这里介绍的反编译工具组合拳,利用其独特的能力,使我们能够全面、多角度地解析Android应用,进而实现对应用的深入分析和优化。
- ApkTool:作为逆向工程的基础工具,ApkTool的作用不可小觑。它不仅可以反编译APK文件来提取资源和源码,还支持对这些资源进行修改后重新编译和签名。这一过程对于应用的定制化修改、功能增强或安全审计至关重要。
- dex2jar:将Android特有的DEX文件转换为更通用的JAR文件格式,这一转换让Java反编译器能够介入进来,让我们能够使用诸如JD-GUI这样的工具来直接查看和分析Java代码。dex2jar在连接Android与Java生态之间起到了桥梁的作用,极大地增强了我们对代码逻辑的理解和审查能力。
- JD-GUI:JD-GUI作为一个图形界面的Java反编译器,它提供了一个直观的界面来查看Java代码。这对于快速理解应用的业务逻辑、寻找潜在的代码缺陷或进行代码审计来说,是一项极其有价值的能力。
ApkTool
(一)工具地址下载:iBotPeaches / Apktool / Downloads — Bitbucket
(二)设置步骤
- 下载后重命名为apktool.jar。
- 将需要进行反编译的APK文件放到与apktool.jar相同的目录下(此步骤可选)。
- 在终端中运行以下命令以确保apktool.jar可执行:
chmod +x apktool.jar
- 测试apktool是否正常运行:
apktool
或使用命令:java -jar apktool.jar
dex2jar
(一)工具地址下载:dex2jar - Browse Files at SourceForge.net
jd-gui
(一)工具地址下载: Java Decompiler
(二) 开始反编译
- 其中your_app.apk替换为你的APK文件名。
apktool d your_app.apk
- 反编译后文件概览
- AndroidManifest.xml:经过反编译还原后的manifest文件。
- smali文件夹:存放了反编译出来的所有代码,格式为.smali。
- res文件夹:存放了反编译出来的所有资源。
- original文件夹:存放了未经反编译过、原始的AndroidManifest.xml文件。
信息收集与资产识别 - 工具与实践
本节内容概要
本节重点介绍如何利用各种工具进行有效的信息收集和资产识别,涵盖四大网络空间搜索引擎:Fofa, Hunter和Quake,这些工具能帮助安全研究人员通过关联资产、特征资产和资产信息进行全面的网络空间搜索。
网络空间搜索引擎
随着网络环境的迅猛发展和日益增加的复杂性,传统的子域名搜集方法,虽然曾是信息收集领域的重要工具,现在却显得有些力不从心。这种方法的限制主要体现在信息搜集的广度和深度上:它们主要关注于描绘目标组织的域名结构,但在挖掘服务背后的配置错误或安全漏洞等方面则相对薄弱。与此形成鲜明对比的是,如Fofa、Quake、Shodan和Zoomeye等网络空间搜索引擎技术,它们能够通过精确的查询语句和过滤器在整个互联网范围内搜集信息。这些技术能够识别出多种类型的网络资产,包括开放端口、使用的服务和漏洞等公开信息,为用户提供了更全面和深入的网络空间视角。更重要的是,这些先进的搜索技术不仅适用于网络安全领域,还能被应用于市场研究、竞争分析等多个领域,展现出其卓越的灵活性和多功能性。
FOFA
不了解fofa的使用我们可以根据fofa的查询语法进行使用。
(一)域名
- 搜索host中带有wechat.com的域名
(二)ip
- 搜索某个IP的相关信息,如 ip="13.35.122.98"
- 对ip段进行搜索,如C段:13.35.122.1/24,B段:13.35.1.1/16
(三)端口
- 搜集22端口,如port=“22”
- 搜集非80端口,如port!=“80”
(四)服务器
- 搜索IIS 7.5的服务器,server == "Microsoft-IIS/7.5"
(五)操作系统
- 搜索windows的资产
(六)设备
- 搜索“视频监控”
(七)多重筛选
- 利用逻辑连接符多重高级筛选
Hunter
Hunter和Fofa一样都是网络空间搜索引擎,它们提供了搜索互联网上设备、服务器、网站、数据库等公开信息的能力。这类搜索引擎通常被网络安全专家用来发现潜在的安全漏洞、监控资产的暴露情况,或者进行安全研究。不同的搜索引擎其搜索语法不尽相同,但原理总是殊途同归。
(一)域名
- hunter提供了对域名更细节的搜索方式,直接搜索domain会将其所有子域名搜索出来,针对更细节的筛选如:可以搜索主域名资产、搜索域名的whois服务器资产、搜索名称服务器以及根据域名的创建时间搜索。
(二)ip
- 不同于Fofa,Hunter的ip搜索也提供了更为细节的搜索方式,如:可以根据ip地址、ip端口、ip的操作系统直接搜索
(三) icp备案号
- ICP备案号是网站的一项基本属性,传统方式我们会通过像企查查这样的平台,输入企业名称来查询其ICP备案号。然而,通过使用测绘平台的功能,我们可以直接以ICP备案的企业名称为关键词进行搜索,从而快速获取ICP备案号,这一点就很nice。
(四) app组件信息
- 与Fofa相比,Hunter在收集应用程序组件信息方面可能不那么全面,因此在实际操作中,很难依靠单一工具完成整个项目的任务。这就要求我们灵活运用多种工具以适应不同的需求。
(五)Hunter热门语法
- Hunter的热门搜索语法展现了它在网络空间搜索领域的强大实力,使得即便是搜索引擎新手也能轻松上手并有效使用。这些精心设计的语法指令简洁明了,无需深厚的技术背景即可快速掌握,从而准确地定位和分析特定网络资产。
Quake
360 Quake是360旗下一款网络空间搜索引擎平台,旨在帮助安全研究员和网络安全专家发现和分析互联网上的公开资产,提供了对全球互联网资产的实时视图,包括但不限于服务器、网站、路由器、智能设备等。基本使用方式和Hunter以及Fofa大同小异,下面介绍一下Quake的搜集优势。
(一)域名
- 可以通过域名搜索特定站点
- 根据响应再次进行组织筛选。
(二) 图标筛选特定资产
- 筛选特定资产的图标,如:tomcat
(三)通过响应包的字段收集资产
- 响应包中含有“rememberMe=DeleteMe”大多为shiro资产