大家对《潜伏》这部影片应该不陌生吧?更能体会到《潜伏》的流程吧!
成为卧底——获取信任——盗取情报
成为卧底需要我们收集对方信息,找到对方弱点,才能在敌方成为卧底。对接渗透测试流程就是信息收集和漏洞挖掘,只有精准找到敌方弱点,并经过一系列事情才能获取敌方信任。对接渗透测试流程就是漏洞利用、权限提升,当权限提升后就可以盗取情报。为了便于长期盗取有利情报,需要长期的盗取路径和清除盗取痕迹,对接渗透测试流程就是植入后门,痕迹清除。通过潜伏的流程,我们推出渗透测试流程,分为信息收集、漏洞挖掘、漏洞利用、权限提升、植入后门、痕迹清除。
《孙子兵法》提出了著名的"知己知彼,胜乃不殆;知天知地,胜乃可全",也就是常说的”知己知彼,百战不殆“。由此可见信息收集在渗透测试中的重要地位。
一、信息收集
信息收集的作用主要是明确目标,包括确定范围,例如测试目标的范围、IP、域名、内外网;确定规则,指能够渗透到什么程度,能够修改上传,能否提权等;确定需求,指web应用的漏洞,业务逻辑漏洞、人员权限管理漏洞等等,根据需求和自己技术能力来确定能不能做,能做多少。
信息收集,包括踩点、扫描和查点。
常收集的信息:
>Whois信息,了解注册人、电话、邮箱、DNS、地址、Googlehack,对敏感目录、敏感文件、更多信息收集。
>Nmap扫描服务器IP地址、端口对应的服务、C段,
>Bing查询、脚本工具进行旁注,
>通过CDN--Cloudflare(绕过),从邮箱、postfix等子域入手、DNS传送域漏洞,服务器、组件指纹,例如操作系统、Web server(apache,nginx,iis)脚本语言。
当我们收集到了足够多的信息之后,我们就要开始对网站进行漏洞挖掘,探测网站是否存在一些常见的Web漏洞。
二、漏洞挖掘
常见漏洞:
1、SQL注入漏洞
SQL注入就是指Web应用程序对用户输入数据的合法性没有判断,前端传入后端的参数是攻击者可控的,并且参数代入数据库查询,攻击者可以通过够在不同的SQL语句来实现对是数据库的任意操作。
2、XSS跨站脚本漏洞
XSS是一种针对网站应用程序的安全漏洞攻击技术,是代码注入的一种。它允许恶意用户将代码注入网页,其他用户在浏览网页时就会受到影响。恶意用户利用XSS代码攻击成功后,可能获得很高权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。
3、CSRF跨站请求伪造漏洞
CSRF是一种对网站的恶意利用。CSRF通过伪装成受信任用户请求受信任的网站。CSRF难以防范,危险性比XSS更高。
4、XXE漏洞
三、漏洞利用
四、权限提升
当我们了Webshell后,一般权限很低,所以我们需要提权。一般分为两种情况:一种是根据服务器类型选择不同的攻击载荷,进行权限提升;一种是无法进行权限提升,可以尝试结合获取的资料开始密码拆解,如果失败,只有回溯信息收集这个步骤重新开始。
五、植入后门
在拿到目标主机的权限后,很有可能当时我们并不能获取到想要的东西,需要进行长期的潜伏,需要进行长期的信息收集。这时权限维持就很重要了。那我们如何权限维持?我们一起来看一个新词,后门程序。后门程序是留在计算机系统中供某位特殊使用者,通过特殊方式控制计算机系统的途径。如果我们在系统中植入后门程序,就可以随时进入到系统中,不用担心系统加固而无法利用以前的漏洞进入系统。因此权限提升后,我们需要植入后门。
后门的特点是隐蔽性,因为后门需要躲避管理员的检测,因此我们需要定期查看并更新,保持周期性检测,确保后门的畅通无阻。
对于unix系统来说,SSH服务端作为最广泛应用的远程管理服务,并且有一定对外开放的必然性,必然引起黑客关注,所以SSH类的后门也是unix下最经典的后门方式之一。
六、痕迹清除
痕迹清除是渗透的最后一步。为了减少被发现和追溯的概率,攻击者有必要清除自己的攻击痕迹。为了达到这个目的,通常选择删除指定日志内容。
作为渗透测试人员,我们需要对这个流程撰写渗透测试报告,明确的写出哪里存在漏洞,以及漏洞修补的方法,以便于网站管理员根据我们的渗透测试报告修补这些漏洞和风险,防止被黑客攻击。