• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Статья Альтернативный метод составления словарей для атак на Wi-Fi сети

Кому известно откуда берутся существующие словари, типа "Топ 500 паролей Wi-Fi" ? Если задуматься, то они не могут никак "утечь", пароли из них не устанавливаются "по дефолту" как пароли от роутеров, нет-камер и прочего IoT-дерема. Они вообще не имеют массовый характер с точки зрения доступности и хранения. Разве что вся видящее око Google и Apple знают все пароли на планете благодаря функции "Backup and restore options". Но до сих пор известных случаев их утечек не было.

Между тем, тестировать сети мне приходилось часто и зачастую они оказывались неуязвимы к типичным атакам WEP/WPS/WPA. Тогда остается практически только перебор паролей методом грубой силы. Множество раз я подходил к процессу составления словаря для данной задачи с разных сторон. И всегда результаты оказывались не достаточно конкретизированными, скудными, а пермутации ситуацию сильно не меняли.

Однако, в итоге эта, практически невидимая, иллюзия недоступности ресурсов для создания сколько-нибудь реалистичного словаря растворилась в мраке человеческого безрассудства.

Наткнувшись на о набирающем популярность приложении, ворующем контакты пользователей, меня озарила очевидная мысль: изучить безопасность приложения, а в основном коммуникацию с сервером, где как раз и хранится база украденных контактов. Однако, прежде изучив популярность приложения (~700 000 скачиваний по всему миру), я отказался от задумки т.к. результаты не стоили трудов.

Во имя этой статьи, позже, я вспомнил о набирающих популярность приложениях в Play Market-e, а конкретно о двух наиболее успешных с общим кол-ом скачиваний ~35 миллионов. Их предназначение заключается в предоставлении пользователям списков точек доступа Wi-Fi с паролями по ключам координат. Очевидно, такой сервис с обширной базой точек выхода в интернет мог возникнуть только благодаря достаточным маркетинговым усилиям, а это затратно и не остается незамеченным, или нечестным манипуляциям с личными данными пользователей приложения. Если каждое устройство хранит в памяти от 5-ти и больше паролей к сетям Wi-Fi, то скорость и масштабы развития подобных "приложений-баз данных" совсем не удивительны.



Уже разобрав оба приложения и убедившись в отсутствии всякой защиты коммуникации с сервером, я принялся писать код для "выкачивания" паролей и парсер, как обнаружил что это уже кто-то сделал до меня (иначе это была бы статья о испытании безопасности приложений, эмуляторах аndroid, прокси и т.д.). В общем-то парсер мне в итоге пригодился, а под второе приложение имеющийся код адаптировать не сложно.
з.ы. код будет ниже.

Как и положено, после непродолжительных прелюдий, кладу код "выкачивателя" гео-конкретизированных паролей из этой адской машины, эксплуатирующей стремление людей "кататься" на "халявном интернете" и исследование искомых паролей автором кода. (README переводить не стану).

Пример отклика сервера на запрос точки доступа:
{ "id": 13103828, "password": "hoodlum832", "createdAt": 1481011435, "user": "Arnold Mendes", "owner_id": 6780310 }] }, { "id": 5363282, "name": "ATT Park", "address": "24 Willie Mays Plz ", "lat": "37.778605", "lng": "-122.39137", "ssid": "attwifi", "category": "4f4528bc4b90abdf24c9de85", "tips": [{ "id": 8970902, "createdAt": 1458765497, "user": "AT\u0026T", "owner_id": 4692309 }] }

Коротко, итоги:
Из получившегося словаря автор набрутил свой собственный пароль всего за 3 минуты такой командой:
for i in $(cat password.txt);do nmcli device wifi connect <SSID> password $i;done
работает с network-manager.

сообщают о наличии 100 миллионов записей в их базе.

In my search for a list I’ve found a Russian company that has built a crowdsourced app for mobile phones to make the internet more accessible. They did this by mapping over 100 million private and public WiFi access points worldwide and included comments and passwords from the social community. The data showed that in most cases, I did not need to guess the password. The app’s community actually provided the correct password for all the places I’ve used the hotspot, including a history of some access points that date back 3 years with password changes.
[automerge]1523268586[/automerge]

Есть несколько сервисов для онлайн взлома wpa записей рукопожатий, но т.к. они предоставляют только платный доступ к паролям длинее 8-ми символов, я не думаю что они станут ими делиться. Некоторые сервисы стримят на главной странице все доступные взломанные пароли в реальном времени. Их тоже можно выкачать простым парсером на реквестах и используя WayBack-машину, но это займет какое-то время.
Альтернативно, я пытался договориться с администраторами этих ресурсов о возможности разом забрать у них все бесплатные пароли, но ответа не последовало. Они не делятся даже своими словарями.
 
Последнее редактирование:
A

aleksandrperchikow

Что за ошибка?
Traceback (most recent call last):
File "cities.py", line 56, in <module>
token = load_token()["session_token"]
File "cities.py", line 45, in load_token
data=data, headers=user_agent)
File "/usr/lib/python2.7/dist-packages/requests/api.py", line 112, in post
return request('post', url, data=data, json=json, **kwargs)
File "/usr/lib/python2.7/dist-packages/requests/api.py", line 58, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 508, in request
resp = self.send(prep, **send_kwargs)
File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 640, in send
history = [resp for resp in gen] if allow_redirects else []
File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 218, in resolve_redirects
**adapter_kwargs
File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 618, in send
r = adapter.send(request, **kwargs)
File "/usr/lib/python2.7/dist-packages/requests/adapters.py", line 506, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host=' ', port=443): Max retries exceeded with url: /users/sign_in?timestamp=e4d2db90e7850e5ab70309c (Caused by SSLError(SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:726)'),))
[automerge]1523346848[/automerge]
Вот еще?:unsure:
python2.7 cities.py
Traceback (most recent call last):
File "cities.py", line 56, in <module>
token = load_token()["session_token"]
File "cities.py", line 52, in load_token
return json.loads(line.read())
File "/usr/lib/python2.7/json/__init__.py", line 339, in loads
return _default_decoder.decode(s)
File "/usr/lib/python2.7/json/decoder.py", line 364, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python2.7/json/decoder.py", line 382, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded
 
Последнее редактирование модератором:

Celestial

Green Team
20.12.2016
81
91
BIT
0
Пароли тож, логин и пароль antichat
Так это роутеры. А у меня тема про Wi-Fi пароли.
Хотя ту базу можно тоже отсортировать и придумать универсальный способ для всех моделей роутеров, чтобы забирать из них пароли от Wi-Fi.
[automerge]1523352349[/automerge]
Что за ошибка?
Traceback (most recent call last):
File "cities.py", line 56, in <module>
token = load_token()["session_token"]
File "cities.py", line 45, in load_token
data=data, headers=user_agent)
File "/usr/lib/python2.7/dist-packages/requests/api.py", line 112, in post
return request('post', url, data=data, json=json, **kwargs)
File "/usr/lib/python2.7/dist-packages/requests/api.py", line 58, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 508, in request
resp = self.send(prep, **send_kwargs)
File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 640, in send
history = [resp for resp in gen] if allow_redirects else []
File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 218, in resolve_redirects
**adapter_kwargs
File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 618, in send
r = adapter.send(request, **kwargs)
File "/usr/lib/python2.7/dist-packages/requests/adapters.py", line 506, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host=' ', port=443): Max retries exceeded with url: /users/sign_in?timestamp=e4d2db90e7850e5ab70309c (Caused by SSLError(SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:726)'),))
[automerge]1523346848[/automerge]
Вот еще?:unsure:
python2.7 cities.py
Traceback (most recent call last):
File "cities.py", line 56, in <module>
token = load_token()["session_token"]
File "cities.py", line 52, in load_token
return json.loads(line.read())
File "/usr/lib/python2.7/json/__init__.py", line 339, in loads
return _default_decoder.decode(s)
File "/usr/lib/python2.7/json/decoder.py", line 364, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python2.7/json/decoder.py", line 382, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded
Установи и обнови все необходиме зависимости и добавь в прогу необходимые данные типа своего логина и пароля от эксплуатируемого сервиса.
 

w3n0m41k

Green Team
30.10.2016
68
46
BIT
0
3wifi там пароли не от роутеров а от точек доступа))))))))
 
  • Нравится
Реакции: ALF

Celestial

Green Team
20.12.2016
81
91
BIT
0
3wifi там пароли не от роутеров а от точек доступа))))))))
Разве? На страничке проекта на гитхабе написано что суть задумки в загрузке логов роутерскана в общую базу данных и отображение вместе с гео-координатами на карте. На сколько я знаю, роутерскан ломает пароли к роутерам, но не к wi-fi.

Screenshot from 2018-04-10 18-30-24.png

[automerge]1523371339[/automerge]

UPD:
Да, точно. Еще раз взглянув, все понял.
База пока не велика, всего 6 миллионов. Однако ее применение достаточно обосновано.
Можно добавить в копилочку, спасибо!
 
Последнее редактирование:
  • Нравится
Реакции: w3n0m41k
A

aleksandrperchikow

Какие зависимости нужно установить? Не могу завести ее ввел почту и пароль ошибки только так и сыпятся?
[automerge]1523522504[/automerge]
Что за ошибка?
Traceback (most recent call last):
File "cities.py", line 56, in <module>
token = load_token()["session_token"]
File "cities.py", line 45, in load_token
data=data, headers=user_agent)
File "/usr/lib/python2.7/dist-packages/requests/api.py", line 112, in post
return request('post', url, data=data, json=json, **kwargs)
File "/usr/lib/python2.7/dist-packages/requests/api.py", line 58, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 508, in request
resp = self.send(prep, **send_kwargs)
File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 640, in send
history = [resp for resp in gen] if allow_redirects else []
File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 218, in resolve_redirects
**adapter_kwargs
File "/usr/lib/python2.7/dist-packages/requests/sessions.py", line 618, in send
r = adapter.send(request, **kwargs)
File "/usr/lib/python2.7/dist-packages/requests/adapters.py", line 506, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host=' ', port=443): Max retries exceeded with url: /users/sign_in?timestamp=e4d2db90e7850e5ab70309c (Caused by SSLError(SSLError(1, u'[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:726)'),))

Вот еще?:unsure:
python2.7 cities.py
Traceback (most recent call last):
File "cities.py", line 56, in <module>
token = load_token()["session_token"]
File "cities.py", line 52, in load_token
return json.loads(line.read())
File "/usr/lib/python2.7/json/__init__.py", line 339, in loads
return _default_decoder.decode(s)
File "/usr/lib/python2.7/json/decoder.py", line 364, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python2.7/json/decoder.py", line 382, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded
 

w3n0m41k

Green Team
30.10.2016
68
46
BIT
0
Разве? На страничке проекта на гитхабе написано что суть задумки в загрузке логов роутерскана в общую базу данных и отображение вместе с гео-координатами на карте. На сколько я знаю, роутерскан ломает пароли к роутерам, но не к wi-fi.

Посмотреть вложение 17379
[automerge]1523371339[/automerge]

UPD:
Да, точно. Еще раз взглянув, все понял.
База пока не велика, всего 6 миллионов. Однако ее применение достаточно обосновано.
Можно добавить в копилочку, спасибо!
всегда пожалуйста!)))))))))))
 
  • Нравится
Реакции: ALF

Urfin--Juice

Gold Team
14.11.2017
203
74
BIT
0
Товарищи, а подскажите бесплатные сервисы по взлому WPA2 хэндшейков, проверенные Вами. Типа xsrc. Только бесплатные.

P.S. Кто чем в домашних условиях брутит хеши?(GPU)
 

sam_rihon

One Level
22.01.2017
7
1
BIT
0
Не работает. Я так понял, что лавочку прикрыли? Ответит кто-то?
Bash:
Traceback (most recent call last):
  File "cities3.py", line 51, in <module>
    token = load_token()["session_token"]
  File "cities3.py", line 40, in load_token
    token = requests.post("http://wifimap.io/users/sign_in?timestamp={}".format(linuxTimestamp(data)),
  File "cities3.py", line 34, in linuxTimestamp
    sha.update("{}".format(string + salt))
TypeError: Unicode-objects must be encoded before hashing
 
  • Нравится
Реакции: rocoss75

pes

Green Team
07.12.2016
21
2
BIT
0
Актуально. Тут человек выше кинул ссыль на ачат там ЗИП архив. Его безопасно качать? Скажите реально кто занимался Брутом как пароли составлять? Или где взять готовые хорошие словари?
 
  • Нравится
Реакции: ALF
A

ALF

Читал и не раз на разных площадках что ачат Скам. Так ли это?
На любом форуме есть кидалы и фишеры, я не слышал про форум куда бы не проникали мошенники. Но в файл с расширением .txt тяжело что либо засунуть.))) Тем более словари не запаролены и можно посмотреть что там внутри.
 
  • Нравится
Реакции: Vertigo и n01n02h

pes

Green Team
07.12.2016
21
2
BIT
0
Кто нибудь, кто пользовался Брутом хэндшейка и получал результат, скажите есть такие? Словарь с ачата качали? Где ещё словари поискать? Что лучше брутить рукопожатие или wps?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!