本文章仅提供学习,切勿将其用于不法手段!
今天,我们来聊聊渗透测试知识体系中的基础知识点。
渗透测试的工作方向领域,目前主要分为物联安全、无线安全、系统安全、应用安全等领域。
物联安全领域,主要涉及到物联网设备、物联网协议、物联网信号等基础元素的安全方向研究。
无线安全领域,主要涉及到无线设备、无线协议、无线信号等基础元素的安全方向研究。
系统安全领域,主要涉及到系统内核、硬件驱动、系统服务、文件系统等基础元素的安全方向研究。
应用安全领域,主要涉及到软件服务、软件通信、软件平台、软件用途等基础元素的安全方向研究。
Web安全,属于应用安全领域的一个分支。
Web软件,分为Web平台软件与Web应用软件。
Web平台软件,一般有 Apache、Nginx、IIS、Tomcat 等Web服务器软件。
Web应用软件,则一般指 Web 平台上运行的具体的Web应用项目。
Web安全,重点的研究方向是:Web领域相关的通信协议、Web平台软件、Web平台软件的操作系统、Web平台软件的网络环境,Web应用程序的编码语言、Web应用程序的类型、Web应用程序的软件作者、Web应用程序的一些其它信息等。
为什么要研究这些呢?
现在,我来说一说。
一名渗透测试工程师,去对一个Web项目进行渗透与安全评估,需要对即将要评估的项目,有较多的了解。这是非常重要的!不了解对手,也就很难打败对手,想要取得战斗的胜利,就必须了解对方的弱点。如何了解呢?观察!收集信息!
一名专业的白帽黑客,在对一个Web项目进行渗透测试工作时,一定会先去收集这个Web项目的关联信息(当然,这一行为,是需要得到被测试方的明确书面授权的,以免吃上官司)!
首先,要对Web项目进行关联域名扫描,这是信息收集的第一步。
笔者比较常用的这样软件有 layer 子域名挖掘机 等。
之后,白帽黑客通常要对收集到的子域名进行ICP备案查询。为什么这样做?可以查询到一些比较有价值的、一般可用于渗透测试工作的数据信息。
白帽黑客,还会访问目标站点和其关联站点去了解目标的网站结构、关联企业、联系方式、开发语言等信息。
了解网站结构,可以让渗透测试人员猜测到网站可能存在哪些安全漏洞。
电子商务网站,往往具有电子商务方向的特点与工作模式,那么对应的,电子商务网站特有的安全漏洞,基本大概率是可能存在的。
社交网站,往往具有社交方向的特点与工作模式,那么对应的,社交网站特有的安全漏洞,基本大概率是可能存在的。
如果你渗透的是一个静态的文学站点,连个会员中心都没有的那种,那么你去挖掘会员中心的漏洞,无疑是在浪费时间。你更可能应该做的,是爆破出这个文学站点的管理后台地址,并尝试下其是否存在弱口令和SQL注入漏洞,以及是否存在暴力破解的可能性。
记住,在进行渗透测试行为时,一定要得到被测试方的合法书面授权哦,否则,就是违法的!会有帽子叔叔找你哦 ^_^
为什么要知道被渗透的目标站点归属于哪家企业呢?
为什么要知道一些目标站点的归属企业的对应信息呢?
难道,我们是要去攻击这家企业?不是的!我们是白帽黑客,违法犯罪的事情,我们是不做的!
在进行渗透测试行为时,有时了解被渗透目标的一些关联信息,是非常重要的。
为什么重要呢?后台管理员账号和密码,可能会是某个技术人员或者企业高管的姓名、生日、手机号、或者其它信息。 (当然,在进行渗透测试行为时,渗透测试人员应具有职业操守,对客户的信息严格保密!这是必须的!这是必须的!这是必须的!重要的事情说三遍!)
当我们获得了目标站点的企业信息,那么,可以在天眼查、企查查 等相对专业的企业信息查询软件中查询到一些企业联系人信息(这些信息,可能在进行渗透测试行为时,用于社会工程或者敏感信息猜测)。
我们需要知道被渗透的目标站点的开发语言,不同语言,存在不同特性,也有着不同的安全漏洞。不同版本的同一个编程语言,可能具有不同的安全漏洞!因此,了解目标站点的开发语言和对应版本,是非常重要的!
我们还需要知道被渗透的目标站点所采用的通信协议,常见的协议,主要有 HTTP 和 HTTPS 协议。HTTP协议传输的数据是明文的,容易在局域网环境内被抓包,HTTPS协议传输的数据是密文的,可能需要采取中间人欺骗和攻击的方式来抓取HTTPS协议传输的明文数据(例如,我们可能需要把自己伪装成网关,网关通常指的是局域网的路由器),HTTPS协议传输的数据,对于网关而言,是明文的!但是你应注意,抓包行为,一般用于抓取自身计算机所发出和接收的数据包。如果你想抓取整个局域网络内的数据包,你是需要得到被测试方的明确书面授权的,这已经属于内网渗透的范畴了!你需要得到被渗透方的授权,方可抓取局域网内其它设备的通信数据。否则,可能涉嫌窃取他人敏感信息,甚至构成刑事犯罪!重要的事情说三遍,你需要得到合法授权!你需要得到合法授权!你需要得到合法授权!
你还需要什么?你还需要获得被渗透目标站点的真实IP地址!
很多大型站点,或者访问量高的站点,一般都采用CDN加速!
所以,你得到的,很有可能是CDN服务器的IP地址,而不是被渗透目标的真实IP地址!
怎么知道对方有没有采用CDN加速呢?
你可以考虑去 ping.chinaz.com 这个站点看看,这里提供了可以查询域名对应IP的功能!
如果一个域名对应多个不同的IP,那么基本采用了CDN加速。
怎么获得被渗透目标的真实IP地址呢?
这个,就要靠经验了。如果你曾是一名技术总监,或者你是一名经验丰富的白帽黑客,那么你一定会知道,CDN是需要花钱的!一个站点,通常会有多个子站点和子域名,而由于软件开发和版本迭代,以及服务器成本等等多方面因素的影响,子域名和主域名,是有可能位于同一台服务器的!位于同一个服务器,意味着,也可能可以通过同一个IP进行访问!当我们在 ping.chinaz.com 查询到,某个子域名对应的IP地址,只有一个的时候!那么意味着,这个子域名对应的站点,没有采用CDN加速!如果我们将 这个子域名对应的IP 在 hosts 文件中与被渗透站点的域名进行绑定后,可以成功访问被渗透站点对应的网页内容,那么意味着,这个IP,很有可能就是被渗透站点对应的真实IP地址!
知道了被渗透目标的真实IP后,我们应该做什么呢?
我们应该做的,是扫描被渗透目标所在服务器的端口开放与对应的服务信息!
nmap 是一个简单且实用的工具,它可以进行端口扫描,服务识别,操作系统指纹鉴定等行为。
当然, nmap 对于操作系统指纹鉴定的准确率,并不是很高,因此,一般结果仅供参考。
nmap 有多种扫描方式,其实,无外乎对应TCP数据包头中的几个字段,如SYN、ACK、FIN等,不同的标志位,对应不同的数据包类型!大家需要记住的,一共有6个标志位,分别是:URG(紧急)、ACK(确认)、PSH(推送)、RST(复位)、SYN(同步)、FIN(结束)!
在TCP包头的标志位中,重点需要记住的标志位是 SYN 、ACK 、FIN 。 TCP连接,一般会从SYN开始,再之后会以SYN,ACK进行回应,而最后,则会以 FIN 进行结束。
当我们知道了被渗透目标开放的端口以及对应的软件服务类型与版本,那么我们就可以,寻找对应的软件服务存在的安全漏洞,并进行正式的渗透测试工作了。
注意,在本篇文章的最后,笔者必须郑重的再次提醒您,技术要善用!白帽黑客,为了守护国家与民族的尊严而战!白帽黑客,为了维护国家网络世界的和平与安全而生!我们应该成为守护网络世界和平的卫士,而不是罪行累累的恶徒!任何未经合法授权的渗透测试行为,都是非法的,都必将受到国家法律的严惩!
请关注,下一篇《渗透测试基础知识之Web安全教程系列(漏洞挖掘与利用)》