基于渗透测试理论的信息搜集技术*
2020-07-22冷涛四川警察学院
冷涛 四川警察学院
引言
近年来,网站漏洞问题依然严峻,挖矿木马成为网站最大的现实威胁,网络赌博、钓鱼网站、网络色情等涉网案件层出不穷,这给企事业单位和网民造成了大量损失。《中华人民共和国网络安全法》自2017年6月1日正式实施,对国内运营的信息系统实施等级保护提出了明确要求。渗透测试技术广泛应用于网站安全等级评估和涉网案件的侦查工作中,信息搜集技术作为渗透测试的重要阶段,对攻防双方都是掌握信息的关键,作为情报侦查员,可以先发制人,搜集目标信息;作为案件侦查员,利用信息搜集技术可以后发制人,对攻击者实施信息搜集,归因溯源。从学者研究来看,郭璞等人介绍了信息收集的常见方法,主要有网站信息收集、Google Hacking、蜘蛛爬虫、扫描工具、网络媒体平台。该方法写的较简略,分类不够明晰。莫怀海等人结合主动和被动信息收集介绍了域名信息、服务器信息、架构信息、指纹信息、敏感目录、敏感信息等,做了大量工作,但分类还不够全面。国外的文献也多侧重于某一具体技术的研究。笔者主要基于渗透测试理论,详解介绍信息搜集的内容和技术,为实战提供方法论。
一、渗透测试理论
(一)定义和类型
渗透测试是一种通过模拟恶意攻击者的技术与方法,挫败目标系统的安全措施,取得访问控制权,并发现具备业务影响后果安全隐患的一种安全测试与评估方式。主要包括黑盒测试、白盒测试和灰盒测试。
(二)测试流程
PTES标准中定义了渗透测试的七个阶段,分别是前期交互阶段、信息搜集阶段、威胁建模阶段、漏洞分析阶段、渗透测试攻击阶段、后渗透攻击阶段和报告阶段。渗透测试团队尝试利用各种信息来源与搜集技术方法,尝试获取关于目标组织的网络拓扑、系统配置与安全防御措施的信息。情报搜集的方法包括公开来源信息查询、Google hacking、社会工程学、网络踩点、扫描探测、被动监听、服务查点等。
二、信息搜集的主要内容
作为网络攻击者,在已知目标名称和域名的情况下,在攻击准备阶段,需要知道在网络中的“地理位置”,如DNS、IP地址、单位地址、网络拓扑、电话号码、网管员及联系方式等,还需知道目标系统中存在的安全缺陷和漏洞以及目标系统的安全防护机制(IDS、IPS、WAF等),作为网络防御方,信息搜集的主要内容是追查入侵者的身份、网络位置、所攻击的目标、采用的攻击方法等,追查是否存在域、子域,搜集IP地址、网络范围、分配的ASN号码,在这些IP地址的操作系统、服务、开放端口等,以及入侵者的电子邮件地址等相关信息。
三、信息搜集技术
信息搜集技术分为被动信息搜集和主动信息搜集,被动信息搜集是指在不被目标系统察觉的情况下,通过搜索引擎、社交媒体等方式对目标外围的信息进行搜集。例如网站的Whois信息、DNS信息、管理员,以及工作人员的个人信息等。主动信息搜集技术则要与目标进行接触,如端口探测、指纹探测等。下面根据渗透测试关注内容的相关技术进行介绍。
(一)目标域名查询技术
1.Whois信息
目标域名的Whois信息,包括管理员姓名、邮箱、电话、Ns产商等。渗透测试者重点关注注册商、注册人、邮件、DNS解析服务器、注册人联系电话。对于获取的邮箱账号,可通过各种公开的社工库查询该邮箱密码。Whois查询可通过在线网站,如爱站网、站长之家、微步在线等,也可通过Kali系统命令Whois。
2.备案信息查询技术
网站备案是根据国家法律法规规定,网站的所有者需向国家相关部门申请注册并备案。在中国境内的网站可查询备案信息,查询网站有天眼查、ICP备案查询网。
3.DNS各类记录获取
DNS记录类型较多,在信息搜集阶段,需要重点关注地址记录(A)、邮件服务器记录(Mx)、名字服务器记录(Ns),通过A记录观察域名解析到的IP,需要注意的是,如果目标使用了CDN,所获IP不一定是目标真实IP。通过Mx记录:检查Smtp、Imap、Pop3是否可枚举目标邮件用户名,通过Ns记录,检查是否允许传送,如果可传送,将直接获取目标所有真实子域。
4.子域名信息查询技术
子域名即二级域名,是在顶级域名下的域名,收集的子域名越多,测试的目标越多,成功率也越大。子域名搜集的方法主要有:基于Google语法、第三方聚合应用枚举、基于SSL证书查询和爆破枚举法。基于Google语法是指利用Google和Bing这样的搜索引擎进行搜索查询(Site:www.xxx.com),Google还支持额外的减号运算符,以排除对“网站:wikimedia.org-www-store”不感兴趣的子域名。第三方聚合应用枚举是利用第三方在线网站查询子域名,如VirusTotal、https://dnsdumpster.com/等网站。Kali集成工具Dmitry,Recon-ng也可获取子域名信息。证书透明度(CertificateTransparency,CT)是证书授权机构(CA)的一个项目,证书授权机构会将每个SSL/TLS证书发布到公共日志中。一个SSL/TLS证书通常包含域名、子域名和邮件地址,因此查找这些公共日志也可以获取目标的子域名。常用查询网站有“https://crt.sh”和“https://censys.io”等。爆破枚举法是利用爆破形式的子域名挖掘常用工具有Layer子域名挖掘机、Subdomainbrute、K8、DNSRecon等,其中Layer子域名挖掘机是Windows下的检测工具,在域名对话框直接输入域名即可进行扫描,工具显示比较细致,有域名、解析IP、CDN列表、Web服务器和网站状态等。
(二)目标IP信息获取技术
1.CDN判断和IP定位
当前大多数网络运营商都采用了CDN来提高网络响应速度,为了顺利实现渗透测试,需要绕过CDN寻找真实的IP地址。CDN即内容分发网络,是为解决因传输距离和不同运营商节点造成的网络速度性能低下的问题而出现的一种技术,它通过缓存用户经常访问的静态数据资源并在用户二次访问时就近分发来提高网站的响应速度及用户体验。所以当Ping目标域名时,得到的IP只是返回最近目标节点的CDN服务器的IP,并非真实IP。判断是否使用了CDN可通过多地区Ping目标主域,如果目标服务器返回结果出现多个IP地址,则说明使用了CDN。绕过CDN的方法有很多,如网络空间引擎搜索、查询历史DNS记录、查询子域名、漏洞利用、RSS邮件订阅,通过Zmpap全网爆破查询真实IP等。还可尝试通过国外IP访问。在确定真实IP后,可通过“ipip.net”等网站查询服务器真实地理位置,如果确定在第三方云服务器,公安机关可通过调证手段获取目标信息。
2.旁站、C段搜集
旁站是指和目标网站处于同一服务器的其它站点,有些情况下,对一个网站进行渗透,如果发现安全性较高,可以尝试从旁站入手,通过旁站看是否有跨目录权限,如果没有,可继续提权拿到更高权限之后再对目标网站进行渗透。C段是指和目标服务器IP处在同一个网段的其它服务器。通过C段可探测该网段的开放端口和开放Web,进而开展内网渗透获取信息。常用工具有御剑、爱站网、Tools内部旁注扫描器、K8_c段旁注工具、Nmap等。
(三)敏感资源获取技术
敏感资源主要包括数据库文件、配置信息、CMS的安装文件和后台地址、Robots.txt、备份文件、招聘信息、人员信息、历史漏洞信息、Github、邮箱、网盘等。常用技术如下:
1.Google Hacking
Google提供了多个关键字自定义搜集信息,见表1。其关键字可组合使用。作用是搜索网页正文中含有"后台管理"并且域名后缀是“edu.cn”的网站。此外Google搜索引擎还可用来收集数据库文件、SQL注入、配置信息、源代码泄露、未授权访问和Robots.txt等敏感信息。
?
2.Shodan
Shodan是世界上第一个互联网连接设备的搜索引擎。使用Shodan可发现哪些设备连接到Internet,它们位于何处,使用者是谁等。Shodan可以跟踪网络中所有可以直接从Internet访问的计算机。使用Shodan可发现许多网络设备的足迹,如连接的摄像头,网络摄像头,交通信号灯等。
3.威胁情报大数据平台
微步在线情报社区(https://x.threatbook.cn/),提供云Api接口,支持对内部资产进行失陷检测和发现威胁;对内部大数据平台或者安全设备日志的威胁进行检测;对公网开放的应用或者服务的外放访问IP的风险识别;对终端/服务器的可疑文件/进程是否属于恶意程序进行分析识别;对外部安全事件的关联拓线及溯源追踪等。
4.开源程序
敏感资源的获取还可通过开源程序,如Github源代码信息泄露搜集(Github_Nuggests,GitHack)、Svn信息泄漏搜集(Svn_git_scanner)、Seekret(目录信息搜索)、SeaySVN漏洞利用工具,DS_Store泄露(DS_Store_exp),批量信息泄露扫描(bbscan)、.hg源码泄漏(Cvcs-Ripper-Master)。Theharvester:为域提供电子邮件地址、虚拟主机、不同域名、Shodan结果等。Spiderfoot:Spiderfoot是一种侦察工具,它可以自动查询100多个公共数据源(OSINT),以搜集有关IP地址、域名、电子邮件地址、名称等的情报。Recon-ng:自动化信息搜集框架,既提供了被动扫描的功能,又提供了主动扫描的功能。
5.字典或暴力破解
基于字典或暴力破解敏感目录的工具较多,如御剑后台扫描,DirBuster、Wwwscan、Spinder.py(轻量快速单文件目录后台扫描),Sensitivefilescan(轻量快速单文件目录后台扫描),Weakfilescan(轻量快速单文件目录后台扫描)。
DirBuster 是一款路径及网页暴力破解的工具,可以破解出一直没有访问过或者管理员后台的界面路径。还可扫描敏感的文件、目录、后台或者网站备份文件和数据库文件。
(四)服务器和网站信息探测技术
在获取目标真实IP后,需要探测目标服务器的操作系统版本、Web服务及版本信息、后端脚本,网站是否使用开源程序或框架。对目标主机的系统版本、服务版本以及目标站点所用的应用程序版本进行探测,为漏洞发现做铺垫。例如使用nmap -sS -sV -O 192.168.26.13,参数-sS使用syn扫描,参数-sV探测详细的服务版本信息,参数-O是探测系统指纹。而对网站CMS(内容管理系统)指纹识别,由于网站包含Html、Js、Css等文件,在这些文件中含有一些特征码,这些特征码就是CMS的指纹,在渗透测试中通过识别CMS查找与其相关的漏洞进行下一步操作。常用的CMS如MetInfo(米拓)、蝉知、Ecshop、DedeCMS、帝国CMS、PHPCMS、Wordpress、Discuz、Phpwind等,开源框架如Thinkphp等。识别此类网站的方法主要通过Whatweb、御剑Web指纹识别、WebRobo、椰树、轻量Web指纹识别、大禹CMS识别等工具,也可通过网站Bugscanner、云悉指纹进行识别。
(五)目标服务器端口探测技术
在渗透测试的过程中,对端口信息的收集是一个很重要的过程,通过扫描服务器开放的端口以及从该端口判断服务器上存在的服务,以此对症下药。常用的端口扫描工具有Nmap、Zenmap、御剑等,针对扫描出的文件共享服务端口、远程连接服务端口、Web服务端口、数据库服务端口、邮件服务端口、网络常见协议端口、特殊服务端口等进行定向攻击。
(六)目标网络拓扑获取技术
掌握目标网络的拓扑结构,对整个系统网络的渗透成功具有重要意义。常见的网络拓扑探测工具有Nslookup、Maltego、Visualroute等。其中,Maltego是图形化界面,可搜集目标的网络拓扑及相关的各类信息,Visualroute工具将Traceroute、Ping以及Whois等功能集合在了一个简单易用的图形界面里,可以用来分析互联网的连通性,并找到快速有效的数据点以解决相关的问题。此外,该软件还具有一个独特的功能,即能够找到路由器或者服务器的地理位置。
(七)Waf探测技术
Waf也叫Web应用防火墙,是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。常见的探测方法有利用Wafwoof、Nmap、Sqlmap等工具。
(八)目标邮箱获取技术
由于许多网站后台通过邮箱登录,因此搜集邮箱账号可用来爆破或者弱口令登录以及撞裤攻击。常用的搜集邮箱账号的方法主要有通过Google语法搜集,通过说明文档以及网站页面收集,或者从网站发表者以及留言板信息处收集账号,常用工具有Msf的Search_email模块、社工库等。
(九)社会工程学
社会工程学分为非接触信息搜集和与人交流的社会工程学。非接触信息搜集是指在不物理接触目标的情况下,通过互联网或其他手段,对目标进行信息搜集。主要收集姓名、性别、出生日期、身份证号码、身份证家庭住址、快递收货地址、地理位置(包括照片EXIF提取、IP地址、附近的人三角定位)、学历目标履历素描、QQ、手机号(曾用与现用)、邮箱、银行卡、电子邮箱、支付宝、各SNS主页、微博、人人网、百度贴吧、网易轻博客等常用ID、目标性格素描。常用的社会工程学工具有Theharvester和Kali平台下的Setoolkit集成化社会工程学工具。其中Set工具提供了网站攻击、鱼叉式钓鱼攻击、介质感染攻击、群发邮件攻击等10多种集成攻击手法。
四、实战应用
在一起案件中,获得嫌疑网站域名为Http://www.cpfxxx.Com/,通过上述技术信息搜集技术获取信息如表2所示。
?
五、结语
无论是渗透测试工程师、网络管理员,还是网络警察,在实际网络安全评估或涉网案件的侦查工作中,信息搜集技术作为一项重要技术应用广泛。研究基于渗透测试理论技术,详细介绍了信息搜集的内容、技术和相关工具,对相关工作者具有一定的借鉴意义。