8.使用WebCruiser扫描网站漏洞及防御
WebCruiser是一款英文版的漏洞扫描工具,体积小,支持多种漏洞扫描,扫描到漏洞的同时可以直接对漏洞进行验证测试。Webcruiser从2.x开始,一直再坚持更新,因此对漏洞的识别率比较高,当然也存在一定几率的误报。Webcruiser是笔者推荐进行交叉扫描的一款web漏洞测试工具,本文主要介绍Webcruiser对某一个目标进行扫描,发现漏洞后,通过sql注入成功获取服务器及内网多台服务器权限。
8.1WebCruiser简介、安装及使用
1.WebCruiser简介
WebCruiser Web Vulnerability Scanner(简称WebCruiser),官方网站 https://janusec.com ,笔者从2.x版本开始接触,目前最新版本为3.5.6。它是一款非常实用的Web安全扫描工具,能够扫描SQL注入、Cross Site Scripting,本地文件包含、远程文件包含等漏洞,并且支持POC验证,支持SQL注入等操作,对jsp注入支持较好。WebCruiser共有四大功能:
(1)Browser:对网站URL进行浏览,在能正常访问的基础上才能进行扫描。
(2)Scanner:对目标进行当前URL、当前页面、当前站点进行扫描。
(3)POC验证:对SQL注入、XSS、本地及远程文件包含进行验证,对后台管理入口进行扫描等。
(4)Tools:提供暴力破解、Cookie、编码转换、字符串及设置等功能。
2.软件下载地址
(1)免费Windows Desktop下载地址:https://www.janusec.com/download/WebCruiser.zip
(2)专业版下载地址:http://www.janusec.com/download/WebCruiserPro.zip
3.WebCruiser安装
WebCruiser是免安装可执行程序,不过需要.NET Framework 4.5及IE9以上版本支持,Windows7及Windows2008默认可以运行。可以用万能用户名:“[email protected]”注册码“[email protected]”进行注册,注册完成后即可使用。
4.使用WebCruiser
(1)新开启一个WebCruiser扫描器。运行WebCruiser后,单击工具栏上的新建图标,可以新打开一个程序,这个功能比较好,可以开启多个程序对多个目标进行扫描。
(2)扫描目标。如图1所示,单击“Scanner”,在URL中输入需要扫描的地址,然后根据情况选择扫描的类型,一般选择第四个扫描当前站点(Scan Current Site),确认信息后即可开始扫描。
图1扫描目标站点
8.2发现主站SQL注入漏洞并获取Webshell
1.发现主站JSP注入漏洞
将网站地址
http://www.***.com.cn/
复制到Web Cruiser的URL中单击“Scan Current Site”进行扫描,扫描结束后,如图2所示,存在6个SQL注入漏洞,有“URL SQL INJECTION”和“COOKIE SQL INJECTION”两种漏洞,漏洞在同一个页面,三个参数分别为tid、selid及id。
图2发现SQL注入类型
2.测试SQL注入
一般来说“URL SQL INJECTION”注入类型比较好用,选中第一个注射点进行SQL注入测试,如图3所示,依次获取环境信息,数据库等信息。在本例中成功获取数据库tdxwebsite数据库表以及内容,但该数据库基本没有什么用,全是内容性质,无管理后台等。这没有关系,JSP类型SQL注入漏洞一般权限都比较高,在windows系统中对应System权限,在Linux系统中对应root权限。
图3测试SQL注入
3.获取System权限
在WebCruiser中,如图4所示单击“Command”命令,在其中分别输入“whoami”、“ipconfig/all”等命令进行测试,果然不出所料为System权限,如图5所示,能执行系统命令,那就比较好办。
图4可执行系统命令
图5系统权限
4.获取webshell
由于是system权限,因此获取Webshell就相对比较简单,先通过“dir c:”、“dir d:”等来获取网站的物理路径,本例中物理路径为D盘,然后通过“FileUploader”上传一句话mu-ma即可,如图6所示成功获取Webshell权限,可能是网络还是其他原因,其主站网络连接非常不稳定。
图6获取Webshell
8.3发现用户管理弱口令
在 http://www.***.com.cn/qduser/login.asp
中发现使用弱口令用户“test”,密码“888888”可以登录系统,其中可以对用户信息进行修改删除和添加,如图7所示。
图7获取大量后台弱口令
8.4进入主站所在服务器以及其相关服务器
1.获取主站及其附近服务器权限
将wce工具软件上传到服务器上,通过“wce -w”获取服务器曾经登录的密码:
服务器IP地址59.175.***.39,
用户“Administrator”,
密码“ td*x@2015##@@**!!”;
在服务器上通过查看通达信软件配置文件,获取MSSQL数据库帐号信息:
srcip=59.175.***.43,1433
srcpwd=***whsql2011
srcname=TdxDB
srcuser=sa
通过SQLTools直接提权并获取其密码等相关信息:
IP地址“59.175.***.42”,
登录帐号“administrator”,
登录密码 “whrx&(42(test%***”;
使用同样的方法
获取IP地址“59.175.***.43”,
登录帐号“administrator”,
登录密码 “ ***@201314@43”;
其使用远程桌面直接登录服务器,如图8所示,登录服务器后可以看到服务器上的业务系统,如图9所示。
图8登录服务器
图9业务系统
2.获取Linux服务器密码
在服务器59.175.43上发现有winscp程序,且在winscp.ini配置文件中保持有远程服务器的登录密码等信息,如图10所示。使用“winscppwd "E:\www..com.cn\winscp.ini"” 命令直接读取winscp.ini配置文件中保存的Linux服务器密码,如图11所示,可以直接读取Linux服务器IP地址,帐号和密码等信息。
图10 winscp.ini配置文件内容
图11直接读取winscp.ini配置文件中保存的密码
3.登录Linux服务器
使用获取的root帐号和密码登录 59.175.***.44 服务器,
如图12所示,成功登录该Linux服务器。该linux服务器负责分析和收集股票数据,具体作用未做分析,如图13所示,保存大量的数据文件信息。
图12登录Linux服务器
图13运行数据信息
4.获取某某高速行情交易系统测试帐号密码
在测试服务器上保存有某某高速行情交易系统测试帐号密码,如图14所示,获取其测试帐号和密码,只是其密码使用 “ * ” 进行隐藏,使用星号密码查看器,将鼠标移动到密码框中,成功获取帐号密码。
图14获取交易测试帐号密码
8.4总结与探讨
1.winscp.ini文件位置
WIN7\8下WinSCP默认路径在:
C:\Users\USERNAME\AppData\Local\VirtualStore\Program Files(x86)\WinSCP\WinSCP.ini(64位操作系统)
C:\Program Files (x86)\WinSCP\WinSCP.ini(64位操作系统)
C:\Users\USERNAME\AppData\Local\VirtualStore\Program Files\WinSCP\WinSCP.ini(32位操作系统)
C:\Program Files\WinSCP\WinSCP.ini (32位操作系统)
2.在Windows环境下可以进行查看或者搜索winscp.ini文件
3.WINSCP默认保存用户密码在注册表中的如下位置:
HKEY_USERS\SID\Software\Martin Prikryl\WinSCP 2\Sessions\
4.互联网获取密码工具
https://github.com/anoopengineer/winscppasswd/blob/master/main.go
https://github.com/YuriMB/WinSCP-Password-Recovery/blob/master/src/main/java/Main.java