网站渗透测试原理及详细过程

https://www.cnblogs.com/ECJTUACM-873284962/ https://zhuanlan.zhihu.com/p/65950247

零、前言

渗透测试在未得到被测试方授权之前依据某些地区法律规定是违法行为。 这里我们提供的所有渗透测试方法均为(假设为)合法的评估服务,也就是通常所说的道德黑客行为(Ethical hacking),因此我们这里的所有读者应当都是Ethical Hackers,如果您还不是,那么我希望您到过这里后会成为他们中的一员 ;)
这里,我还想对大家说一些话:渗透测试重在实践,您需要一颗永不言败的心和一个有着活跃思维的大脑。不是说您将这一份文档COPY到您网站上或者保存到本地电脑您就会了,即使您将它打印出来沾点辣椒酱吃了也不行,您一定要根据文档一步一步练习才行。而且测试重在用脑,千万别拿上一两个本文中提到的工具一阵乱搞,我敢保证:互联网的安全不为因为这样而更安全。祝您好运。。。

一、简介

  • 什么叫渗透测试?
    渗透测试最简单直接的解释就是:完全站在攻击者角度对目标系统进行的安全性测试过程。
  • 进行渗透测试的目的?
    了解当前系统的安全性、了解攻击者可能利用的途径。它能够让管理人员非常直观的了解当前系统所面临的问题。为什么说叫直观呢?就像Mitnick书里面提到的那样,安全管理(在这里我们改一下,改成安全评估工作)需要做到面面俱到才算成功,而一位黑客(渗透测试)只要能通过一点进入系统进行破坏,他就算是很成功的了。
  • 渗透测试是否等同于风险评估?
    不是,你可以暂时理解成渗透测试属于风险评估的一部分。事实上,风险评估远比渗透测试复杂的多,它除渗透测试外还要加上资产识别,风险分析,除此之外,也还包括了人工审查以及后期的优化部分(可选)。
  • 已经进行了安全审查,还需要渗透测试吗?
    如果我对您说:嘿,中国的现有太空理论技术通过计算机演算已经能够证明中国完全有能力实现宇航员太空漫步了,没必要再发射神8了。您能接受吗?
  • 渗透测试是否就是黑盒测试?
    否,很多技术人员对这个问题都存在这个错误的理解。渗透测试不只是要模拟外部黑客的入侵,同时,防止内部人员的有意识(无意识)攻击也是很有必要的。这时,安全测试人员可以被告之包括代码片段来内的有关于系统的一些信息。这时,它就满足灰盒甚至白盒测试。
  • 渗透测试涉及哪些内容?
    技术层面主要包括网络设备,主机,数据库,应用系统。另外可以考虑加入社会工程学(入侵的艺术/THE ART OF INTRUSION)。
  • 渗透测试有哪些不足之处?
    主要是投入高,风险高。而且必须是专业的Ethical Hackers才能相信输出的最终结果。
  • 你说的那么好,为什么渗透测试工作在中国开展的不是很火热呢?
    我只能说:会的,一定会的。渗透测试的关键在于没法证明你的测试结果就是完善的。用户不知道花了钱证明了系统有问题以后,自己的安全等级到了一个什么程序。但是很显然,用户是相信一个专业且经验丰富的安全团队的,这个在中国问题比较严重。在我接触了一些大型的安全公司进行的一些渗透测试过程来看,测试人员的水平是对不住开的那些价格的,而且从测试过程到结果报表上来看也是不负责的。我估计在三年以后,这种情况会有所改观,到时一方面安全人员的技术力量有很大程度的改观,另一方面各企业对渗透测试会有一个比较深刻的理解,也会将其做为一种IT审计的方式加入到开发流程中去。渗透测试的专业化、商业化会越来越成熟。

二、制定实施方案

实施方案应当由测试方与客户之间进行沟通协商。一开始测试方提供一份简单的问卷调查了解客户对测试的基本接收情况。内容包括但不限于如下:

  • 目标系统介绍、重点保护对象及特性。
  • 是否允许数据破坏?
  • 是否允许阻断业务正常运行?
  • 测试之前是否应当知会相关部门接口人?
  • 接入方式?外网和内网?
  • 测试是发现问题就算成功,还是尽可能的发现多的问题?
  • 渗透过程是否需要考虑社会工程?
  • 。。。

在得到客户反馈后,由测试方书写实施方案初稿并提交给客户,由客户进行审核。在审核完成后,客户应当对测试方进行书面委托授权。这里,两部分文档分别应当包含如下内容:

  • 实施方案部分:
  • 书面委托授权部分:

三、具体操作过程

1、信息收集过程

  • 网络信息收集:
    在这一部还不会直接对被测目标进行扫描,应当先从网络上搜索一些相关信息,包括Google Hacking, Whois查询, DNS等信息(如果考虑进行社会工程学的话,这里还可以相应从邮件列表/新闻组中获取目标系统中一些边缘信息如内部员工帐号组成,身份识别方式,邮件联系地址等)。 1.使用whois查询目标域名的DNS服务器
    2.nslookup
    >set type=all
    ><domain>
    >server <ns server>
    >set q=all
    >ls -d <domain>
    涉及的工具包括:Google,Demon,webhosting.info,Apollo,Athena,GHDB.XML,netcraft,seologs 除此之外,我想特别提醒一下使用Googlebot/2.1绕过一些文件的获取限制。
    Google hacking 中常用的一些语法描述
    1.搜索指定站点关键字site。你可以搜索具体的站点如site:http://www.nosec.org。使用site:http://nosec.org可以搜索该域名下的所有子域名的页面。甚至可以使用site:http://org.cn来搜索中国政府部门的网站。
    2.搜索在URL网址中的关键字inurl。比如你想搜索带参数的站点,你可以尝试用inurl:asp?id=
    3.搜索在网页标题中的关键字intitle。如果你想搜索一些登陆后台,你可以尝试使用intitle:”admin login”
  • 目标系统信息收集:
    通过上面一步,我们应当可以简单的描绘出目标系统的网络结构,如公司网络所在区域,子公司IP地址分布,VPN接入地址等。这里特别要注意一些比较偏门的HOST名称地址,如一些backup开头或者temp开关的域名很可能就是一台备份服务器,其安全性很可能做的不够。
    从获取的地址列表中进行系统判断,了解其组织架构及操作系统使用情况。最常用的方法的是目标所有IP网段扫描。
  • 端口/服务信息收集:
    这一部分已经可以开始直接的扫描操作,涉及的工具包括:nmap,thc-amap 1.我最常使用的参数
    nmap -sS -p1-10000 -n -P0 -oX filename.xml –open -T5 <ip address>
  • 应用信息收集:httprint,SIPSCAN,smap
  • 这里有必要将SNMP拿出来单独说一下,因为目前许多运营商、大型企业内部网络的维护台通过SNMP进行数据传输,大部分情况是使用了默认口令的,撑死改了private口令。这样,攻击者可以通过它收集到很多有效信息。snmp-guiHiliSoft MIB Browsermibsearchnet-snmp都是一些很好的资源。

2、漏洞扫描

这一步主要针对具体系统目标进行。如通过第一步的信息收集,已经得到了目标系统的IP地址分布及对应的域名,并且我们已经通过一些分析过滤出少许的几个攻击目标,这时,我们就可以针对它们进行有针对性的漏洞扫描。这里有几个方面可以进行:

针对系统层面的工具有:ISS, Nessus, SSS, Retina, 天镜, 极光

针对WEB应用层面的工具有:AppScanAcunetix Web Vulnerability ScannerWebInspectNstalker

针对数据库的工具有:ShadowDatabaseScannerNGSSQuirreL

针对VOIP方面的工具有:PROTOS c07 sip(在测试中直接用这个工具轰等于找死)以及c07 h225Sivussipsak等。

事实上,每个渗透测试团队或多或少都会有自己的测试工具包,在漏洞扫描这一块针对具体应用的工具也比较个性化。

3、漏洞利用

有时候,通过服务/应用扫描后,我们可以跳过漏洞扫描部分,直接到漏洞利用。因为很多情况下我们根据目标服务/应用的版本就可以到一些安全网站上获取针对该目标系统的漏洞利用代码,如milw0rmsecurityfocus,packetstormsecurity等网站,上面都对应有搜索模块。实在没有,我们也可以尝试在GOOGLE上搜索“应用名称 exploit”、“应用名称 vulnerability”等关键字。

当然,大部分情况下你都可以不这么麻烦,网络中有一些工具可供我们使用,最著名的当属metasploit了,它是一个开源免费的漏洞利用攻击平台。其他的多说无益,您就看它从榜上无名到冲进前五(top 100)这一点来说,也能大概了解到它的威力了。除此之外,如果您(您们公司)有足够的moeny用于购买商用软件的话,CORE IMPACT是相当值得考虑的,虽然说价格很高,但是它却是被业界公认在渗透测试方面的泰山北斗,基本上测试全自动。如果您觉得还是接受不了,那么您可以去购买CANVAS,据说有不少0DAY,不过它跟metasploit一样,是需要手动进行测试的。最后还有一个需要提及一下的Exploitation_Framework,它相当于一个漏洞利用代码管理工具,方便进行不同语言,不同平台的利用代码收集,把它也放在这里是因为它本身也维护了一个exploit库,大家参考着也能使用。

上面提到的是针对系统进行的,在针对WEB方面,注入工具有NBSI, OWASP SQLiXSQL Power InjectorsqlDumpersqlninjasqlmapSqlbftoolspriamosISR-sqlget***等等。

在针对数据库方面的工具有:

数据库 工具列表 Oracle(1521端口): 目前主要存在以下方面的安全问题:
1、TNS监听程序攻击(sid信息泄露,停止服务等)
2、默认账号(default password list)
3、SQL INJECTION(这个与传统的意思还不太一样)
4、缓冲区溢出,现在比较少了。 thc-orakeltnscmdoscannerGetsidsTNSLSNRlsnrcheckOATCheckpwdorabf MS Sql Server(1433、1434端口) Mysql(3306端口) DB2(523、50000、50001、50002、50003端口) db2utils Informix(1526、1528端口)

在针对Web服务器方面的工具有:

WEB服务器 工具列表 IIS IISPUTSCANNER Tomcat 想起/admin和/manager管理目录了吗?另外,目录列表也是Tomcat服务器中最常见的问题。比如5.*版本中的http://127.0.0.1/;index.jsp
http://www.example.com/foo/”../manager/html
http://www.example.com:8080/examples/servlets/servlet/CookieExample?cookiename=HAHA&cookievalue=%5C%22FOO%3B+Expires%3DThu%2C+1+Jan+2009+00%3A00%3A01+UTC%3B+Path%3D%2F%3B
http://www.example.com:8080/servlets-examples/servlet/CookieExample?cookiename=BLOCKER&cookievalue=%5C%22A%3D%27%3B+Expires%3DThu%2C+1+Jan+2009+00%3A00%3A01+UTC%3B+Path%3D%2Fservlets-examples%2Fservlet+%3B JBOSS jboss的漏洞很少,老版本中8083端口有%符号的漏洞:
GET %. HTTP/1.0可以获取物理路径信息,
GET %server.policy HTTP/1.0可以获取安全策略配置文档。
你也可以直接访问GET %org/xxx/lib.class来获取编译好的java程序,再使用一些反编译工具还原源代码。 Apache Resin http://victim/C:%5C/
http://victim/resin-doc/viewfile/?file=index.jsp
http://victim/resin-doc/viewfile/?contextpath=/otherwebapp&servletpath=&file=WEB-INF/web.xml
http://victim/resin-doc/viewfile/?contextpath=/&servletpath=&file=WEB-INF/classes/com/webapp/app/target.class
http://victim/[path]/[device].[extension]
http://victim/%20..”web-inf
http://victim/%20
http://victim/[path]/%20.xtp WebLogic

Web安全测试主要围绕几块进行:

  • Information Gathering:也就是一般的信息泄漏,包括异常情况下的路径泄漏、文件归档查找等
  • Business logic testing:业务逻辑处理攻击,很多情况下用于进行业务绕过或者欺骗等等
  • Authentication Testing:有无验证码、有无次数限制等,总之就是看能不能暴力破解或者说容不容易通过认证,比较直接的就是“默认口令”或者弱口令了
  • Session Management Testing:会话管理攻击在COOKIE携带认证信息时最有效
  • Data Validation Testing:数据验证最好理解了,就是SQL Injection和Cross Site Script等等

目前网上能够找到许多能够用于进行Web测试的工具,根据不同的功能分主要有:

  1. 枚举(Enumeration): DirBuster, http-dir-enum, wget
  2. 基于代理测试类工具:paros, webscarab, Burp Suite

针对WebService测试的部分有一些尚不是很成熟的工具,如:wsbangwschesswsmapwsdiggerwsfuzzer

这一部分值得一提的是,很多渗透测试团队都有着自己的测试工具甚至是0DAY代码,最常见的是SQL注入工具,现网开发的注入工具(如NBSI等)目前都是针对中小企业或者是个人站点/数据库进行的,针对大型目标系统使用的一些相对比较偏门的数据库系统(如INFORMIX,DB2)等,基本上还不涉及或者说还不够深入。这时各渗透测试团队就开发了满足自身使用习惯的测试工具。

在针对无线环境的攻击有:WifiZoo

4、权限提升

在前面的一些工作中,你或许已经得到了一些控制权限,但是对于进一步攻击来说却还是不够。例如:你可能很容易的能够获取Oracle数据库的访问权限,或者是得到了UNIX(AIX,HP-UX,SUNOS)的一个基本账号权限,但是当你想进行进一步的渗透测试的时候问题就来了。你发现你没有足够的权限打开一些密码存储文件、你没有办法安装一个SNIFFER、你甚至没有权限执行一些很基本的命令。这时候你自然而然的就会想到权限提升这个途径了。

目前一些企业对于补丁管理是存在很大一部分问题的,他们可能压根就没有想过对一些服务器或者应用进行补丁更新,或者是延时更新。这时候就是渗透测试人员的好机会了。经验之谈:有一般权限的Oracle账号或者AIX账号基本上等于root,因为这就是现实生活。

5、密码破解

有时候,目标系统任何方面的配置都是无懈可击的,但是并不是说就完全没办法进入。最简单的说,一个缺少密码完全策略的论证系统就等于你安装了一个不能关闭的防盗门。很多情况下,一些安全技术研究人员对此不屑一顾,但是无数次的安全事故结果证明,往往破坏力最大的攻击起源于最小的弱点,例如弱口令、目录列表、SQL注入绕过论证等等。所以说,对于一些专门的安全技术研究人员来说,这一块意义不大,但是对于一个ethical hacker来说,这一步骤是有必要而且绝大部分情况下是必须的。;)

目前比较好的网络密码暴力破解工具有:thc-hydrabrutus

>hydra.exe -L users.txt -P passwords.txt -o test.txt -s 2121 www.heimian.com ftp

目前网络中有一种资源被利用的很广泛,那就是rainbow table技术,说白了也就是一个HASH对应表,有一些网站提供了该种服务,对外宣称存储空间大于多少G,像rainbowcrack更是对外宣称其数据量已经大于1.3T。
针对此种方式对外提供在线服务的有:

网址 描述 rainbowcrack 里面对应了多种加密算法的HASH。 http://gdataonline.com/seekhash.php http://www.milw0rm.com/cracker/info.php http://www.hashchecker.com/?_sls=search_hash http://bokehman.com/cracker/ http://passcracking.ru/ http://www.md5.org.cn http://www.cmd5.com/ 数据量全球第一,如果本站无法破解,那么你只能去拜春哥…

当然,有些单机破解软件还是必不可少的:Ophcrackrainbowcrack(国人开发,赞一个),cain,L0phtCrack(破解Windows密码),John the Ripper(破解UNIX/LINUX)密码,当然,还少不了一个FindPass

针对网络设备的一些默认帐号,你可以查询http://www.routerpasswords.com/http://www.phenoelit-us.org/dpl/dpl.html

在渗透测试过程中,一旦有机会接触一些OFFICE文档,且被加了密的话,那么,rixler是您马上要去的地方,他们提供的OFFICE密码套件能在瞬间打开OFFICE文档(2007中我没有试过,大家有机会测试的话请给我发一份测试结果说明,谢谢)。看来微软有理由来个补丁什么的了。对于企业来说,您可以考虑使用铁卷或者RMS了。

6、日志清除

It is not necessary actually.

7、进一步渗透

攻入了DMZ区一般情况下我们也不会获取多少用价值的信息。为了进一步巩固战果,我们需要进行进一步的内网渗透。到这一步就真的算是无所不用其及。最常用且最有效的方式就是Sniff抓包(可以加上ARP欺骗)。当然,最简单的你可以翻翻已入侵机器上的一些文件,很可能就包含了你需要的一些连接帐号。比如说你入侵了一台Web服务器,那么绝大部分情况下你可以在页面的代码或者某个配置文件中找到连接数据库的帐号。你也可以打开一些日志文件看一看。

除此之外,你可以直接回到第二步漏洞扫描来进行。

四、生成报告

报告中应当包含:

  1. 薄弱点列表清单(按照严重等级排序)
  2. 薄弱点详细描述(利用方法)
  3. 解决方法建议
  4. 参与人员/测试时间/内网/外网

五、测试过程中的风险及规避

在测试过程中无可避免的可能会发生很多可预见和不可预见的风险,测试方必须提供规避措施以免对系统造成重大的影响。以下一些可供参考:

1. 不执行任何可能引起业务中断的攻击(包括资源耗竭型DoS,畸形报文攻击,数据破坏)。

2. 测试验证时间放在业务量最小的时间进行。

3. 测试执行前确保相关数据进行备份。

4. 所有测试在执行前和维护人员进行沟通确认。

5. 在测试过程中出现异常情况时立即停止测试并及时恢复系统。

6. 对原始业务系统进行一个完全的镜像环境,在镜像环境上进行渗透测试。

在之前的一系列文章中,我们主要讲了内网渗透的一些知识,而在现实中,要进行内网渗透,一个很重要的前提便是:你得能进入内网啊!所以,从这篇文章开始,我们将开启Web渗透的学习(内网渗透系列还会继续长期更新哦)。

渗透测试,是渗透测试工程师完全模拟黑客可能使用的攻击技术和漏洞发现技术,对目标网络、主机、应用的安全作深入的探测,帮助企业挖掘出正常业务流程中的安全缺陷和漏洞,助力企业先于黑客发现安全风险,防患于未然。

Web应用的渗透测试流程主要分为3个阶段,分别是:信息收集→漏洞发现→漏洞利用。本文我们将对信息收集这一环节做一个基本的讲解。

信息收集介绍

进行web渗透测试之前,最重要的一步那就是就是信息收集了,俗话说“渗透的本质也就是信息收集”,信息收集的深度,直接关系到渗透测试的成败。打好信息收集这一基础可以让测试者选择合适和准确的渗透测试攻击方式,缩短渗透测试的时间。一般来说收集的信息越多越好,通常包括以下几个部分:

域名信息收集

子域名信息收集

站点信息收集

敏感信息收集

服务器信息收集

端口信息收集

真实IP地址识别

社会工程学

下面我们对这几种信息收集分别做相应的讲解。

域名信息收集

域名(英语:Domain Name),又称网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。由于IP地址具有不方便记忆并且不能显示地址组织的名称和性质等缺点,人们设计出了域名,并通过网域名称系统来将域名和IP地址相互映射,使人更方便地访问互联网,而不用去记住能够被机器直接读取的IP地址数串。

顶级域名/一级域名:

顶级域(或顶级域名,也称为一级域名),是互联网DNS等级之中的最高级的域,它保存于DNS根域的名字空间中。顶级域名是域名的最后一个部分,即是域名最后一点之后的字母,例如在http://www.example.com这个域名中,顶级域是.com

二级域名:

除了顶级域名,还有二级域名,就是最靠近顶级域名左侧的字段。例如在http://www.example.com这个域名中,example就是二级域名。

子域名:

子域名(或子域;英语:Subdomain)是在域名系统等级中,属于更高一层域的域。比如,mail.example.com和calendar.example.com是example.com的两个子域,而example.com则是顶级域.com的子域。凡顶级域名前加前缀的都是该顶级域名的子域名,而子域名根据技术的多少分为二级子域名,三级子域名以及多级子域名。

一般来说,在做渗透测试之前,渗透测试人员能够了解到的信息有限,一般也就只知道一个域名,这就需要渗透测试人员首先要针对一个仅有的域名进行信息搜集,获取域名的注册信息,包括该域名的DNS服务器信息、子域信息和注册人的联系信息等信息。可以用以下几种方法来收集域名信息。

Whois 查询

whois 是用来查询域名的IP以及所有者等信息的传输协议。简单说,whois就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商),不同域名后缀的Whois信息需要到不同的Whois数据库查询。通过whois来实现对域名信息的查询,可以得到注册人的姓名和邮箱信息通常对测试个人站点非常有用,因为我们可以通过搜索引擎和社交网络挖掘出域名所有人的很多信息。

(1)在线查询

如今网上出现了一些网页接口简化的线上查询工具,可以一次向不同的数据库查询。网页接口的查询工具仍然依赖whois协议向服务器发送查询请求,命令列接口的工具仍然被系统管理员广泛使用。whois通常使用TCP协议43端口。每个域名/IP的whois信息由对应的管理机构保存。

常见的网站包括:

Whois站长之家查询:http://whois.chinaz.com/

阿里云中国万网查询:https://whois.aliyun.com/

Whois Lookup 查找目标网站所有者的信息:http://whois.domaintools.com/

Netcraft Site Report 显示目标网站上使用的技术:http://toolbar.netcraft.com/site_report?url=

Robtex DNS 查询显示关于目标网站的全面的DNS信息:https://www.robtex.com/

全球Whois查询:https://www.whois365.com/cn/

站长工具爱站查询:https://whois.aizhan.com/

示例:
下面是使用站长之家Whois查询freebuf域名的相关信息:

1601202210_5f706822c25936c650120.png!small

(2)使用kali中的whois工具查询

在Kali Linux下自带的Whois查询工具,通过命令Whois查询域名信息,只需输入要查询的域名即可,如下图所示。

1601202371_5f7068c350a296c9d9e56.png!small

备案信息查询

网站备案信息是根据国家法律法规规定,由网站所有者向国家有关部门申请的备案,是国家信息产业部对网站的一种管理途径,是为了防止在网上从事非法网站经营活动,当然主要是针对国内网站。

在备案查询中我们主要关注的是:单位信息例如名称、备案编号、网站负责人、法人、电子邮箱、联系电话等。

常用的备案信息查询网站有以下几个:

ICP/IP地址/域名信息备案管理系统:http://beian.miit.gov.cn/publish/query/indexFirst.action

ICP备案查询网:http://www.beianbeian.com/

备案吧吧:https://www.beian88.com/

天眼查:https://www.tianyancha.com/

1601202703_5f706a0fc1ca842608de6.png!small

子域名信息收集

子域名(或子域;英语:Subdomain)是在域名系统等级中,属于更高一层域的域。比如,mail.example.com和calendar.example.com是example.com的两个子域,而example.com则是顶级域.com的子域。凡顶级域名前加前缀的都是该顶级域名的子域名,而子域名根据技术的多少分为二级子域名,三级子域名以及多级子域名。

为什么要收集子域名

子域名枚举可以在测试范围内发现更多的域或子域,这将增大漏洞发现的几率。

有些隐藏的、被忽略的子域上运行的应用程序可能帮助我们发现重大漏洞。

在同一个组织的不同域或应用程序中往往存在相同的漏洞

假设我们的目标网络规模比较大,直接从主域入手显然是很不理智的,因为对于这种规模的目标,一般其主域都是重点防护区域,所以不如先进入目标的某个子域,然后再想办法迂回接近真正的目标,这无疑是个比较好的选择。

收集子域名的方法有以下几种:

利用搜索引擎查询

我们可以利用Google语法搜索子域名,我们以百度的域名为例,使用“site:baidu.com”语法,如下图所示。

1601203399_5f706cc739a4b37be16a0.png!small

利用在线工具查询

网上有很多子域名的查询站点,可通过它们检索某个给定域名的子域名。如:

我们用DNSdumpster查询nasa的子域名:

1601204368_5f7070908b96566f434cc.png!small
1601204623_5f70718f016e07acc9eb6.png!small

通过证书透明度公开日志枚举子域名

证书透明度是证书授权机构的一个项目,证书授权机构会将每个SSL/TLS证书发布到公共日志中。一个SSL/TLS证书通常包含域名、子域名和邮件地址,这些也经常成为攻击者非常希望获得的有用信息。

查找某个域名所属证书的最简单的方法就是使用搜索引擎来搜索一些公开的CT日志,例如以下网站:

利用工具枚举子域名

kali上的工具

1601205169_5f7073b13f48de2b9862a.png!small

在kali中的信息收集模块的DNS分析中,有很多工具可以进行域名信息收集,如上图。

  • Dnsenum:域名信息收集
  • Dnsmap:收集信息和枚举DNS信息
  • Dnsrecon:用于DNS侦察
  • Fierce :子域名查询
  • whois查询

我们可以利用Fierce工具,进行子域名枚举。该工具首先测试是否有域传送漏洞,若存在则应该直接通过域传送搜集子域信息,没有域传送漏洞则采用爆破的方式。

使用方法:

fierce -dns <域名> 
fierce -dns <域名> -threads 100 // threads 是线程数,可以自己指定
1601205913_5f7076991e2916242ff32.png!small

Windows上的工具

Windows上的子域名查询工具主要由:

  • Layer子域名挖掘机
  • subDomainsbrute
  • K8
  • Sublist3r
  • Maltego
  • ……

subDomainsbrute工具可以用于二级域名收集,下载地址:https://github.com/lijiejie/subDomainsBrute

Python3环境下运行需要安装aiodns库。使用该工具的命令执行如下:

python3 subDomainsBrute.py xxxx.com
1601206570_5f70792a5bee15c90644a.png!small

收集完后,会将收集结果写入一个域名对应的文件中:

1601206623_5f70795fd563855ff5c4d.png!small

除了subDomainsbrute工具,Layer子域名挖掘机也是十分强大的,用它收集子域名将详细的显示域名、解析IP、CDN列表、Web服务器和网站状态等信息:

1601206857_5f707a49bf77e2b4503fa.png!small

该工具请自行上网搜索下载。

站点信息收集

接下来我们进行web网站站点信息收集,主要收集如下信息:

  • CMS指纹识别
  • 历史漏洞
  • 脚本语言
  • 敏感目录/文件
  • Waf识别
  • ……

CMS指纹识别

CMS(内容管理系统)又称为整站系统或文章系统,用于网站内容管理。用户只需要下载对应的CMS软件包,就能部署搭建,并直接利用CMS。但是各种CMS都具有其独特的结构命名规则和特定的文件内容,因此可以利用这些内容来获取CMS站点的具体软件CMS与版本。

在渗透测试中,对进行指纹识别是相当有必要的,识别出相应的CMS,才能查找与其相关的漏洞,然后才能进行相应的渗透操作。

常见的CMS有Dedecms(织梦)、Discuz、PHPWEB、PHPWind、PHPCMS、ECShop、Dvbbs、SiteWeaver、ASPCMS、帝国、Z-Blog、WordPress等。

(1)在线识别

如今,网上一些在线的网站查询CMS指纹识别,如下所示:

如下,我们用WhatWeb: https://whatweb.net/在线识别一下我的博客:

(2)利用工具

常见的CMS指纹识别工具有WhatWeb、WebRobo、椰树、御剑Web指纹识别。大禹CMS识别程序等,可以快速识别一些主流CMS。

如下,我们利用kali上的WhatWeb工具识别目标站点的cms:

如上图,WhatWeb将目标站点的服务器、中间节、cms等都识别了出来。

当我们得知了一个站点的cms类型后,我们可以在网上查找与其相关的漏洞并进行相应的测试。

(3)手工识别

  • 1. 根据HTTP响应头判断,重点关注X-Powered-By、cookie等字段
  • 2. 根据HTML 特征,重点关注 body、title、meta等标签的内容和属性。
  • 3. 根据特殊的class判断。HTML 中存在特定 class 属性的某些 div 标签,如<body class=”ke-content”>
  • ……

敏感目录/文件收集

也就是对目标网站做个目录扫描。在web渗透中,探测Web目录结构和隐藏的敏感文件是一个十分重要的环节,从中可以获取网站的后台管理页面、文件上传界面、robots.txt,甚至可能扫描出备份文件从而得到网站的源代码。

常见的网站目录的扫描工具主要有:

  • 御剑后台扫描工具
  • dirbuster扫描工具
  • dirsearch扫描工具
  • dirb
  • wwwscan
  • Spinder.py
  • Sensitivefilescan
  • Weakfilescan
  • ……

(1)dirsearch目录扫描

下载地址:https://github.com/maurosoria/dirsearch

该工具使用很简单,简单使用如下:

python3 dirsearch.py -u <URL> -e <EXTENSION>
  • -u:url(必须)
  • -e:扫描网站需要指定网站的脚本类型,* 为全部类型的脚本(必须)
  • -w:字典(可选)
  • -t:线程(可选)
1601208904_5f708248b14d2bc2e68b2.png!small

(2)DirBuster目录扫描

DirBuster是Owasp(开放Web软体安全项目- Open Web Application Security Project )开发的一款专门用于探测Web服务器的目录和隐藏文件。(需要java环境)

使用如下:

  1. 首先在Target URL输入框中输入要扫描的网址并将扫描过程中的请求方法设置为“Auto Switch(HEAD and GET)”。
  2. 自行设置线程(太大了容易造成系统死机哦)
  3. 选择扫描类型,如果使用个人字典扫描,则选择“List based bruteforce”选项。
  4. 单击“Browse”加载字典。
  5. 单机“URL Fuzz”,选择URL模糊测试(不选择该选项则使用标准模式)
  6. 在URL to fuzz里输入“/{dir}”。这里的{dir}是一个变量,用来代表字典中的每一行,运行时{dir}会被字典中的目录替换掉。
  7. 点击“start”开始扫描

使用DirBuster扫描完成之后,查看扫描结果,这里的显示方式可以选择树状显示,也可以直接列出所有存在的页面:

1601210235_5f70877b0275cf478e7e6.png!small

Waf识别

Web应用防护系统(也称为:网站应用级入侵防御系统。英文:Web Application Firewall,简称: WAF)。利用国际上公认的一种说法:Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。

wafw00f是一个Web应用防火墙(WAF)指纹识别的工具。

下载地址:https://github.com/EnableSecurity/wafw00f

wafw00f的工作原理:

1. 发送正常的HTTP请求,然后分析响应,这可以识别出很多WAF。

2. 如果不成功,它会发送一些(可能是恶意的)HTTP请求,使用简单的逻辑推断是哪一个WAF。

3. 如果这也不成功,它会分析之前返回的响应,使用其它简单的算法猜测是否有某个WAF或者安全解决方案响应了我们的攻击。

kali上内置了该工具:

1601210847_5f7089df9f44efe4b8620.png!small

wafw00f支持非常多的WAF识别。要查看它能够检测到哪些WAF,请使用-l 选项:

1601211036_5f708a9cbf695b0daccca.png!small

……

简单使用如下:

wafw00f https://www.xxx.com/
1601211307_5f708babcd34157f0169e.png!small

敏感信息收集

有时候,针对某些安全做得很好的目标,直接通过技术层面是无法完成渗透测试的。此时,便可以利用搜索引擎搜索目标暴露在互联网上的关联信息。例如:数据库文件、SQL注入、服务配置信息,甚至是通过Git找到站点泄露源代码,以及Redis等未授权访问、Robots.txt等敏感信息,从而达到渗透目的。

Google hacking

Google搜索引擎从1998年开始沿用至今,我们所有的问题,在Google上面几乎都能找到答案。Google可以用来发现远远超过我们甚至应该能找到的信息,Google可以找到敏感文件,网络漏洞,它允许操作系统和识别,甚至可以被用来找到密码,数据库乃至整个邮箱内容……

Google Hacking 正是是利用谷歌搜索的强大,来在浩瀚的互联网中搜索到超乎我们想象我的信息。轻量级的搜索可以搜索出一些遗留后门,不想被发现的后台入口、sql注入等网络漏洞,中量级的搜索出一些用户信息泄露,源代码泄露,未授权访问等等,重量级的则可能是mdb文件下载,CMS 未被锁定install页面,网站配置密码,php远程文件包含漏洞等重要信息。

利用 Google Hacking 我们能够收集很多对我们有用的情报,毫无疑问Google是一个伟大的信息收集工具。

要利用Google搜索我们想要的信息,需要配合谷歌搜索引擎的一些语法:

intext:寻找正文中含有关键字的网页
intitle:寻找标题中含有关键字的网页
allintitle:用法和intitle类似,只不过可以指定多个词
inurl:搜索url中含有关键词的网页
allinurl:用法和inurl类似,只不过可以指定多个词
site:指定访问的站点
filetype:指定访问的文件类型
link:指定链接的网页
related:搜索相似类型的网页
info:返回站点的指定信息,例如:info:www.baidu.com   将返回百度的一些信息
phonebook:电话簿查询美国街道地址和电话号码信息
Index of:利用 Index of 语法可以发现允许目录浏览的web网站,就像在本地的普通目录一样

查找网站后台

  • intext:后台登录:将只返回正文中包含“后台登录”的网页
  • intitle:后台登录:将只返回标题中包含“后台登录”的网页

查找管理员登录页面

查找后台数据库管理页面

查找指定网站后台

  • site:xx.com intext:管理
  • site:xx.com inurl:login
  • site:xx.com intitle:后台

查看指定网站的文件上传漏洞

  • site:xx.com inurl:file
  • site:xx.com inurl:load

利用Index of可以发现允许目录浏览的web网站,就像在本地的普通目录一样

index of /admin
index of /passwd
index of /password
index of /mail
"index of /" +passwd
"index of /" +password.txt
"index of /config"

用index of目录列表列出存在于一个web服务器上的文件和目录。

intitle:index.of 这里的休止符代表的是单个字母的通配符

随便进去一个看看:

备份文件泄露

  • intitle:index.of index.php.bak
  • inurl:index.php.bak
  • intitle:index.of www.zip

查找sql注入

  • inurl:?id=1
  • inurl: php?id=

GHDB 谷歌黑客数据库

链接:https://www.exploit-db.com/google-hacking-database/

黑客们能通过简单的搜索框在网络中出入于无形,在这背后还有一个强大的后盾,那就是Google Hacking Database(GHDB)

这是全世界的黑客朋友们自发维护的一个汇集着各种已经被优化的查询语句的数据库,每天都在不断地更新各种好用有效的Google查询语句。

Github信息泄露

GitHub作为开源代码平台,给程序员提供了很多便利,但如果使用不当,比如将包含了账号密码、密钥等配置文件的代码上传了,导致攻击者能发现并进一步利用这些泄露的信息,就是一个典型的GitHub敏感信息泄露漏洞,再如开发人员在开发时,常常会先把源码提交到github,最后再从远程托管网站把源码pull到服务器的web目录下,如果忘记把.git文件删除,就造成此漏洞。利用.git文件恢复网站的源码,而源码里可能会有数据库的信息,详情参见:https://blog.csdn.net/qq_45521281/article/details/105767428

很多网站及系统都会使用pop3和smtp发送来邮件,不少开发者由于安全意识不足会把相关的配置文件信息也放到Github上,所以如果这时候我们动用一下Google搜索语法,就能把这些敏感信息给找出来了。

site:Github.com smtp
site:Github.com smtp @qq.com
site:Github.com smtp @126.com
site:Github.com smtp @163.com
site:Github.com smtp @sina.com.cn
……
1601256346_5f713b9a2ce1377110e0b.png!small
1601256490_5f713c2a823b6be768d59.png!small

数据库信息泄露:

site:Github.com sa password
site:Github.com root password

服务器信息收集

我们还需要对目标服务器的信息进行收集,主要包括一下部分:

  • Web服务器指纹识别
  • 真实IP地址识别
  • 编程语言
  • Web中间件
  • 端口信息收集
  • 后端存储技术识别
  • ……

Web服务器指纹识别

Web服务器指纹识别是了解正在运行的web服务器类型和版本,目前市场上存在几种不同的web服务器提供商和软件版本,了解被测试的web服务器的类型,能让测试者更好去测试已知漏洞和大概的利用方法,将会在渗透测试过程中有很大的帮助,甚至会改变测试的路线。

Web服务器指纹识别主要识别一下信息:

1、Web服务器名称,版本

2、Web服务器后端是否有应用服务器

3、数据库(DBMS)是否部署在同一主机(host),数据库类型

4、Web应用使用的编程语言

5、Web应用框架

……

(1)手工检测

  • 1. HTTP头分析

即查看HTTP响应头中的Server、X-Powered-By、Cookie 等字段,这也是最基本的方法。

如上图,从Server字段,我们可以发现服务器可能是Apache,版本2.4.6,运行在CentOS Linux系统上。

根据X-Powered-By字段我们可以判断识别出web框架,并且不同的web框架有其特有的cookie,根据这个我们也能判断识别出web应用框架。

  • 2. 协议行为

即从HTTP头字段顺序分析,观察HTTP响应头的组织顺序,因为每个服务器都有一个内部的HTTP头排序方法。

  • 3. 浏览并观察网站

我们可以观察网站某些位置的HTML源码(特殊的class名称)及其注释(comment)部分,可能暴露有价值信息。观察网站页面后缀可以判断Web应用使用的编程语言和框架。

  • 4. 刻意构造错误

错误页面可以给你提供关于服务器的大量信息。可以通过构造含有随机字符串的URL,并访问它来尝试得到404页面。

(2)利用工具识别

whatweb是一款用于辅助的自动化Web应用指纹分析工具

常规扫描:

whatweb 域名/ip地址

批量扫描:

指定要扫描的文件

whatweb -i 含有需要扫描的域名的文件的路径

详细回显扫描:

whatweb -v 域名

Whatweb是一个基于Ruby语言的开源网站指纹识别软件,如上图,正如它的名字一样,whatweb能够识别各种关于网站的详细信息包括:CMS类型、博客平台、中间件、web框架模块、网站服务器、脚本类型、JavaScript库、IP、cookie等等。

另外,我们可以使用Nmap OS指纹初步判断操作系统。对于后端DBMS的识别,如果主机对外开放DBMS的话,可以通过端口特征判断,尤其是在开放默认端口比如3306、1443、27017等。

真实IP地址识别

在渗透测试中,一般只会给你一个域名,那么我们就要根据这个域名来确定目标服务器的真实IP,我们可以通过像www.ip138.com这样的IP查询网直接获取目标的一些IP及域名信息,但这里的前提是目标服务器没有使用CDN。

什么是CDN?

CDN的全称是Content Delivery Network,即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。CDN的关键技术主要有内容存储和分发技术。

CDN将用户经常访问的静态数据资源直接缓存到节点服务器上,当用户再次请求时,会直接分发到在离用户近的节点服务器上响应给用户,当用户有实际数据交互时才会从远程Web服务器上响应,这样可以大大提高网站的响应速度及用户体验。CDN网络的诞生大大地改善了互联网的服务质量,因此传统的大型网络运营商纷纷开始建设自己的CDN网络。

因此,如果目标服务器使用了CDN服务,那么我们直接查询到的IP并不是真正的目标服务器的IP,而是一台离你最近的目标节点的CDN服务器,这就导致了我们没法直接得到目标服务器的真实IP。

如何判断目标服务器使用了CDN?

我们可以ping这个网站域名,比如我们ping百度:

1601251439_5f71286f28908a71279fa.png!small

如上图,我们可以看到百度使用了CDN。

我们也可以设置代理或者通过在线ping网站来在不同地区进行ping测试,然后对比每个地区ping出的IP结果,查看这些IP是否一致,一致,则极有可能不存在CDN。根据 CDN 的工作原理,如果网站使用了 CDN,那么从全国各地访问网站的 IP 地址是各个 CDN 节点的 IP 地址,那么如果ping出来的IP大多不太一样或者规律性很强,可以尝试查询这些IP的归属地,判断是否存在CDN。有以下网站可以进行ping测试:

以 https://www.wepcc.com/为例,如图所示,对 https://www.baidu.com进行ping命令测试,根据 IP 地址和归属地不同,可以判断 https://www.baidu.com使用了 CDN。

1601251978_5f712a8ac684a5dd3b467.png!small

如何绕过CDN找到目标真实IP?

1. 利用子域名。一般来说很多站长可能只会对主站或者流量较大的分站使用CDN,但是一些流量比较小的分站可能没有挂CDN,这些分站和主站虽然不是同一个IP但是都在同一个C段下面的情况,所以我们可以通过ping二级域名获取分站lP,从而能判断出目标的真实IP段。

2. 查询主域。以前用CDN的时候有个习惯,只让WWW域名使用cdn,秃域名不使用,为的是在维护网站时更方便,不用等cdn缓存。所以试着把目标网站的www去掉,ping一下看ip是不是变了,如下图,这个方法还是挺有效的:

1601252504_5f712c981c448cb0d3e01.png!small

3.扫描网站敏感文件,如phpinfo.php等,从而找到目标的真实IP。

4.从国外访问。国内很多CDN厂商因为各种原因只做了国内的线路,而针对国外的线路可能几乎没有,此时我们使用国外的主机直接访问可能就能获取到真实P。我们可以通过国外在线代理网站访问,可能会得到真实的IP地址,外国在线代理网站:

1601254055_5f7132a738c8119b73e01.png!small

如上图,从国外代理访问目标网站的IP都是一样的。

5.通过邮件服务器。一般的邮件系统都在内部,没有经过CDN的解析,通过目标网站用户注册或者RSS订阅功能,查看邮件,寻找邮件头中的邮件服务器域名IP,ping这个邮件服务器的域名,由于这个邮件服务器的有可能跟目标Web在一个段上,我们直接一个一个扫,看返回的HTML源代码是否跟web的对的上,就可以获得目标的真实IP(必须是目标自己内部的邮件服务器,第三方或者公共邮件服务器是没有用的)。

6. 查看域名历史解析记录。也许目标很久之前没有使用CDN,所以可能会存在使用 CDN 前的记录。所以可以通过https://www.netcraft.comhttps://viewdns.info/等网站来观察域名的IP历史记录。

7.Nslookup查询。查询域名的NS记录、MX记录、TXT记录等很有可能指向的是真实ip或同C段服务器。

8.利用网络空间搜索引擎。这里主要是利用网站返回的内容寻找真实原始IP,如果原始服务器IP也返回了网站的内容,那么可以在网上搜索大量的相关数据。最常见的网络空间搜索引擎有如下:

  • Shodan:https://www.shodan.io/
  • 钟馗之眼:https://www.zoomeye.org/
  • FOFA:https://fofa.so/

9. 让目标主动连接我们。

1、发邮件给我们。比如订阅、注册的时候会有注册连接发送到我们的邮件,然后查看邮件全文源代码或邮件标头,寻找邮件头中的邮件服务器域名IP就可以了。

2、利用网站漏洞。比如有代码执行漏洞、SSRF、存储型的XSS都可以让服务器主动访问我们预设的web服务器,那么就能在日志里面看见目标网站服务器的真实IP。

……

验证获得的真实IP地址

通过上面的方法获取了很多的IP地址(上面的方法4),此时我们需要确定哪一个才是真正的IP地址,如果是Web,最简单的验证方法是直接尝试用IP访问,看看响应的页面是不是和访问域名返回的一样即可。:

端口信息收集

在渗透测试的过程中,收集端口信息是一个十分重要的过程,通过扫描目标服务器开放的端口可以从该端口判断服务器上运行的服务。因为针对不同的端口具有不同的攻击方法,收集端口信息可以对症下药,便于我们渗透目标服务器。我们可以通过一下方法收集目标服务器的端口信息:

  • 1. 使用nmap工具收集
nmap -A -v -T4 -O -sV 目标地址
1601255035_5f71367b4eeb313a6c6aa.png!small
  • 2. 使用masscan探测端口开放信息

Masscan号称是最快的互联网端口扫描器,最快可以在六分钟内扫遍互联网。masscan的扫描结果类似于nmap(一个很著名的端口扫描器),在内部,它更像scanrand, unicornscan, and ZMap,采用了异步传输的方式。它和这些扫描器最主要的区别是,它比这些扫描器更快。而且,masscan更加灵活,它允许自定义任意的地址范和端口范围。

1601255458_5f71382286becd0cde096.png!small

由于使用工具通常会在目标网站留下痕迹,接下来提供一种在线网站探测方法。

1601255740_5f71393c6b36513051530.png!small

常见的端口及其攻击方向可以参考:https://blog.csdn.net/weixin_42320142/article/details/102679143

社会工程学

相信看过《我是谁:没有绝对的安全系统》的朋友对社会工程学可能有深刻的印象了。全片的过程中,一直在处处渗透着社会工程学的原理,利用人们的胆小怕事,来获取自己利益。而后来,男主将社会工程学运用到了极致,成功为自己赢得了一个新的身份。

社会工程学(Social Engineering)是一种通过人际交流的方式获得信息的非技术渗透手段。其实,现在的黑客攻击也不止是仅仅通过网络来进行远程的渗透与入侵,还会通过社会工程学在线下场景中来针对人性弱点进行相应的攻击。而且不幸的是,这种手段对于黑客来说非常有效,成功率也非常之高。事实上,社会工程学已是企业安全最大的威胁之一。狭义与广义社会工程学最明显的区别就是是否会与受害者产生交互行为。广义是有针对性的去对某一单一或多一目标进行攻击的行为。社会工程学在渗透测试中起着不小的作用,利用社会工程学,攻击者可以从一名员工的口中挖掘出本应该是秘密的信息。

凯文·米特尼克在《反欺骗的艺术》中曾提到,人为因素才是安全的软肋。很多企业、公司在信息安全上投入大量的资金,最终导致数据泄露的原因,往往却是发生在人本身。你们可能永远都想象不到,对于黑客们来说,通过一个用户名、一串数字、一串英文代码,社会工程师就可以通过这么几条的线索,通过社工攻击手段,加以筛选、整理,就能把你的所有个人情况信息、家庭状况、兴趣爱好、婚姻状况、你在网上留下的一切痕迹等个人信息全部掌握得一清二楚。虽然这个可能是最不起眼,而且还是最麻烦的方法。一种无需依托任何黑客软件,更注重研究人性弱点的黑客手法正在兴起,这就是社会工程学黑客技术。

社会工程学攻击包括四个阶段:

  • 研究:信息收集(WEB、媒体、垃圾桶、物理),确定并研究目标
  • 钩子:与目标建立第一次交谈(HOOK、下套)
  • 下手:与目标建立信任并获取信息
  • 退场:不引起目标怀疑的离开攻击现场

社会工程学收集的常见信息包括:姓名、性别、出生日期、身份zheng号、身份zheng家庭住址、身份zheng所在公安局、快递收货地址、大致活动范围、qq、手机号、邮箱、银行card号(银行开户行)、支付宝、贴吧、百度、微博、猎聘、58、同城、网盘、微信、常用ID、学历(小/初/高/大学/履历)、目标性格详细分析、常用密码、照片EXIF信息。

常见可获取信息系统包括:中航信系统、春秋航空系统、12306系统、三大运营商网站、全国人口基本信息资源库、全国机动车/驾驶人信息资源库、各大快递系统(越权)、全国出入境人员资源库、全国在逃人员信息资源库、企业相关系统、全国安全重点单位信息资源库等。

举个例子:

假设我们要对一家公司进行渗透测试,正在收集目标的真实IP阶段,此时就可以利用收集到的这家公司的某位销售人员的电子邮箱。首先,给这位销售人员发送邮件,假装对某个产品很感兴趣,显然销售人员会回复邮件。这样攻击者就可以通过分析邮件头来收集这家公司的真实IP地址及内部电子邮件服务器的相关信息。通过进一步地应用社会工程学,假设现在已经收集了目标人物的邮箱、QQ、电话号码、姓名,以及域名服务商,也通过爆破或者撞库的方法获取邮箱的密码,这时就可以冒充目标人物要求客服人员协助重置域管理密码,甚至技术人员会帮着重置密码,从而使攻击者拿下域管理控制台,然后做域劫持。

详情请参考:

https://www.zhihu.com/question/26113526

https://blog.csdn.net/Eastmount/article/details/100585715

推荐书籍:

《黑客心理学》、《欺骗的艺术》

Ending……

“知己知彼,百战不殆”,进行web渗透测试之前,最重要的一步那就是就是信息收集了,俗话说“渗透的本质也就是信息收集”,信息收集的深度,直接关系到渗透测试的成败。打好信息收集这一基础可以让测试者选择合适和准确的渗透测试攻击方式,缩短渗透测试的时间。

参考

https://blog.csdn.net/qq_41880069/article/details/83037081

https://blog.csdn.net/qq_32434307/article/details/107353811

https://blog.csdn.net/Eastmount/article/details/102816621

https://www.freebuf.com/sectool/104256.html

https://blog.csdn.net/weixin_41970600/article/details/104766547

https://blog.csdn.net/qq_36119192/article/details/84029809

https://www.freebuf.com/news/137497.html

https://www.fujieace.com/penetration-test/cdn-find-ip.html

https://blog.csdn.net/qq_36119192/article/details/89151336

https://blog.csdn.net/zyhj2010/article/details/45064903

https://blog.csdn.net/Eastmount/article/details/100585715

https://blog.csdn.net/Eastmount/article/details/100585715

https://www.zhihu.com/question/26113526

Leave a Reply

Your email address will not be published. Required fields are marked *