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

Celestial

Grey Team
20.12.2016
79
74
#1
Кому известно откуда берутся существующие словари, типа "Топ 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-машину, но это займет какое-то время.
Альтернативно, я пытался договориться с администраторами этих ресурсов о возможности разом забрать у них все бесплатные пароли, но ответа не последовало. Они не делятся даже своими словарями.
 
Последнее редактирование:
10.04.2018
2
0
#5
Что за ошибка?
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

Grey Team
20.12.2016
79
74
#6
Пароли тож, логин и пароль 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
Установи и обнови все необходиме зависимости и добавь в прогу необходимые данные типа своего логина и пароля от эксплуатируемого сервиса.
 

Celestial

Grey Team
20.12.2016
79
74
#8
3wifi там пароли не от роутеров а от точек доступа))))))))
Разве? На страничке проекта на гитхабе написано что суть задумки в загрузке логов роутерскана в общую базу данных и отображение вместе с гео-координатами на карте. На сколько я знаю, роутерскан ломает пароли к роутерам, но не к wi-fi.

Screenshot from 2018-04-10 18-30-24.png
[automerge]1523371339[/automerge]

UPD:
Да, точно. Еще раз взглянув, все понял.
База пока не велика, всего 6 миллионов. Однако ее применение достаточно обосновано.
Можно добавить в копилочку, спасибо!
 
Последнее редактирование:
10.04.2018
2
0
#9
Какие зависимости нужно установить? Не могу завести ее ввел почту и пароль ошибки только так и сыпятся?
[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

Well-known member
30.10.2016
52
34
#11
Разве? На страничке проекта на гитхабе написано что суть задумки в загрузке логов роутерскана в общую базу данных и отображение вместе с гео-координатами на карте. На сколько я знаю, роутерскан ломает пароли к роутерам, но не к wi-fi.

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

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

Bidjo111

Премиум
14.11.2017
122
48
#12
Товарищи, а подскажите бесплатные сервисы по взлому WPA2 хэндшейков, проверенные Вами. Типа xsrc. Только бесплатные.

P.S. Кто чем в домашних условиях брутит хеши?(GPU)
 
22.01.2017
7
0
#14
Не работает. Я так понял, что лавочку прикрыли? Ответит кто-то?
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