服务器信息收集在渗透攻击过程中,对目标服务器的信息收集是非常重要的一步,服务器上面可以运行大量的系统服务和第三方应用服务,如果操作系统或者第三方教件没有及时升级打补丁,攻击者就有可能直接通过服务器上运行的服务进行攻击,因为服务器的错误配置或者不安全的访问控制,导致通过服务器漏洞进行攻击的案例墨见不鲜,如果数据库可以直接对外连接并且存在数据库弱口令,攻击者就可以直接通过数据库的弱口令漏洞对数据库进行连接,获取敏感数据,甚至通过数据库控制整个服务器,对内网发动攻击,服务器需要收集的信息包含三个方面:端口信息收集、程序服务版本识别和操作系统信息识别。
端口信息收集和程序服务版本识别主要是为了收集服务器开放了哪些端口,这些端口都运行了什么类型的服务,这些服务的具体版本信息,因为不同服务的漏洞点不一样,相同服务不同版本的漏洞点也可能有很大差异,所以要识别每个服务的具体版本信息,才能根据这些信息进行相关版本漏洞的利用。比如同样是IIS服务,IIS6.0的解析漏洞与IIS7.0的解析漏洞在漏洞形成的原因和漏洞的利用方式方面就完全不同。
操作系统信息识别是为了判断目标运行了什么类型的操作系统,根据不同类型的操作系统、不同版本的操作系统漏洞进行漏洞利用,比如Windows操作系统存在“永恒之蓝漏洞”的可能,Linux操作系统存在“脏牛漏洞”的可能。服务器信息收集最常用的工具就是Nmap工具,下面将详细地介绍如何使用Nmap对服务器信息进行收集。端口扫描使用命令“nmap-p1-65535IP”,对目标IP进行全端口扫描,确保每个可能开放的口服务都能被识别到。常见端口及对应服务,渗透测试服务中对服务器方面上的端口扫描是师傅们必学的技能,如果想要对自己的网站或APP进行服务器渗透测试的话可以寻求网站安全公司的帮助,国内像SINESAFE,鹰盾安全,大树安全都是有名的网站安全公司。
从上面的扫描结果信息来看目标服务可能开放了3306数据库服务、3389远程桌面服务,但是“STATESERVICE”并不一定是准确的,很多管理员可能修改了服务的默认端口,可能将远程桌面的端口改成了3306,将数据库的端口改成了3389,那么通过“STATESERVICE”的信息来判断就非常不准确了。此时准确的服务版本识别就很重要了,Nmap扫描器使用指纹识别技术,Nmap通过TCP/IP栈不同服务的特定的数据包格式作为指纹信息来区分不同的协议,这样就可以做到准确的服务版本识别。Nmap进行指纹识别的参数是“-sV”,使用命令“nmap-sV-p1-65535IP”对目标IP进行全端口扫描,并进行服务版本识别,代码如下。通过“nmap-sV-p1-65535-192.168.88.21”对“192.168.88.21”地址的1~65535端口进行扫描并进行服务版本识别,发现80端口运行的是2.4.23版本的Apache服务,800端口运行的是IIS6.0服务,1433端口运行的是MicrosoftSQLServer2005服务,3306端口运行的是MySQL服务,3389端口运行的是远程桌面服务。通过服务器信息收集发现除了Web服务外,还开启了数据库和远程桌面等相关的务,攻击者就可以尝试对数据库和远程桌面存在的漏洞进行攻击,拿到服务器的权限。