最近一段时间,都在做内网服务器全网段的安全检测,也算积累了一些经验,在这边小结检测的流程和思路,也方便自己复习。
检测目的:尽可能的帮助客户发现服务器网段中可能面临的威胁、存在的安全弱点
检测条件:一个接入点,可以访问一个或多个服务器网段。
一、信息收集
首先,对服务器资产信息进行收集,了解哪些ip是存活的,存活的ip开放了哪些端口,以及端口所对应的服务。
使用工具:F-NAScan
网络资产信息快速收集,结果生成html页面方面进行查看,一般使用这个进行资产探测
使用工具:Nmap
相对会比较全面,但速度慢
至此,对整个服务器网段的端口业务情况有了一定的了解,进一步去挖掘安全弱点。
二、弱口令检测
在这些服务器开放的端口服务中,主要服务由为系统服务、数据库服务、web服务。对常见的端口服务进行弱口令检测是非常有必要的。
主要使用的工具:iscan
这款工具主要是由自己用python编写的,基于端口的弱口令检测工具,可以检测常见端口的弱口令。目前支持以下服务:
系统弱口令: FTP、SSH、TELNET、SMB
数据库弱口令:MSSQL、MYSQL、MONGODB
中间件弱口令: TOMCAT、WEBLOGIC、PHPMYADMIN
说明:
1、利用SMB协议发送请求数据包进行ipc$的登录,若检测到目标主机开放139及445端口的ipc$服务,只要用户输入用户名及口令即可登录到目标主机,利用SMB检测主机是否开放文件共享及ipc$的弱口令。
2、MSSQL数据库SA弱口令可直接调用存储过程执行系统命令。
3、mysql数据库root弱口令,可尝试udf直接提权,mysql5.1以上版本关键的第一步是否能创建plugin目录,默认一般是不存在的。
基本套路:弱口令--提权--读取缓存密码
三、Web应用渗透
3.1 应用端口服务
Web常见应用端口服务:
1、WebLogic 默认端口:7001 弱口令,console后台部署webshell Java反序列化
2、Tomcat 默认端口:8080 弱口令,manager后台部署war包上传
3、jboss 默认端口:8080 弱口令,未授权访问,java反序列化
以某系统开放的Tomcat服务为例,其IP地址为192.1.33.133:8080。通过iscan的弱口令检测,发现Tomcat存在弱口令,直接使用弱口令可以成功登录Tomcat控制台,如图所示。
(2)直接上传war包,获取webshell
(3)查看当前权限,权限为administrator,无需进一步提权
(4)上传wce密码获取工具,在webshell中直接执行wce.exe -w顺利获取管理员密码
(5)登录服务器及域服务器
3.2 网站渗透
通过服务器资产探测,可收集服务器开放web端口,内网系统中,大部分web系统访问的界面都是登录界面,需要用户名密码进行认证。以某内网系统为例,进行实际渗透测试。
(1)在登录界面,用户名处输入加一个单引号 admin’,尝试登录,应用程序报错
(2)构造万能密码admin' or '1'='1尝试登录,成功登录后台
PS:登录处SQL注入,用户角色为sa,也可直接用sqlmap --os-shell获取权限。
(3)首先大致浏览了下后台功能,为了得到权限,我们可以通过常规的手段,后台的上传,命令执行,文件包含等手段,最简单有效直接的就是文件上传。在后台中发现上传点,尝试上传正常图片,进行抓包。
(4)通过抓包修改文件后缀,成功上传aspx木马,刷新页面获取图片链接
(5)访问aspx木马地址,查看当前权限,需进一步提权
(6)上传exp到可读可写目录,尝试执行
(7)新建管理员账号,登录服务器,上传mimikatz(wce有遇到蓝屏和重启的情况,慎用),读取系统缓存密码。
(8)使用administrator账号密码成功登录域服务器
至此,虽然控制了域服务器,但同网段或多网段的服务器不一定都在域控之内。
如果可以获取到每一台服务器的administrator账号密码,不是更有快感!!
PS:同网段服务器,管理员为了方便,大部分服务器采用同一个密码,或密码存在一定的规律,如某服务器ip为10.1.1.21 密码为:WSX@200821,看到ip末尾和密码末尾一致,可进行大胆猜测,往往能有意外收获。
将之前获取到的administrator账号密码汇总成一个字典,进行二次扫描,如图所示,基本上可以控制大部分服务器。
四、系统漏洞检测
进入内网,一般通过弱口令和web就可以搞定部分服务器,如果不行的话,可以试试系统漏洞,内网补丁很少的情况下可以试试远程溢出。
主要使用的工具:Nessus+Metasploit
扫描漏洞主要通过Nessus扫描内网漏洞,使用Metasploit进行远程溢出。