PDA

View Full Version : Fake Ping Reply


Darker
15-10-2008, 20:44
Ciao a tutti :D

Ho un problemino piuttosto difficile, mi chiedevo se qualcuno può aiutarmi. Uso un'immaginina che vale più di mille parole :P

http://darkerino.altervista.org/_altervista_ht/Schema_JPG.jpg

Quando con A pingo B, il ping risultante è quello della massima latenza che, approssimando, è quello della VPN.
Io vorrei, invece, che la latenza risulti con ping più basso, falso ovviamente. In pratica il PC X deve intercettare la richiesta di ping di A e rispondergli al posto di B. Ovviamente altri tipi comunicazione devono continuare a funzionare.

Come faccio? :D

OUTATIME
16-10-2008, 09:37
Credo che l'unico sistema sarebbe quello di fare generare l'echo response a X.... una specie di ping spoofing.... ma non so se esista... sinceramente non ne vedo neppure l'utilità.... :boh:

BTS
16-10-2008, 10:10
per l'ufficio complicazioni affari semplici, secondo thread a destra, scenda le scale e si spari in testa.


scherzi a parte, a che diavolo serve questa follia?

tutmosi3
16-10-2008, 11:08
Anche io volevo chiedere l'utilità di tutto ciò, forse c'è una via alternativa.

Ciao

Darker
16-10-2008, 11:56
C'è un ping filter su un programma: se il ping supera i 15ms tra le due macchine non è possibile accedere al DB.
Credo che l'unico sistema sarebbe quello di fare generare l'echo response a X.... una specie di ping spoofing.... ma non so se esista... sinceramente non ne vedo neppure l'utilità.... :boh:

Ho pensato anche io a questo, ma non c'è niente di pronto. Non sono bravo in programmazione c, per giunta. In ogni caso sto dando uno sguardo al PCAP e al funzionamento di ICMP, anche se dubito di venirne a capo :\

per l'ufficio complicazioni affari semplici, secondo thread a destra, scenda le scale e si spari in testa.

ahahahahahha :D
Bhe dai, che gusto c'è se ogni tanto non arriva uno a fare qualche domanda assurda? :D

BTS
16-10-2008, 11:59
potresti collegarti in desktop remoto ad un pc nella rete B e dalla stessa accedere al db

OUTATIME
16-10-2008, 12:17
Allora è più semplice modificare il programma e consentire l'accesso al DB anche con tempi superiori....

Darker
16-10-2008, 13:46
potresti collegarti in desktop remoto ad un pc nella rete B e dalla stessa accedere al db

No, perché altrimenti il PC B non può lavorare contemporaneamente con il PC A ;)

Allora è più semplice modificare il programma e consentire l'accesso al DB anche con tempi superiori....

Non posso fare questa modifica, purtroppo :)

OUTATIME
16-10-2008, 14:06
Non posso fare questa modifica, purtroppo :)
E' un controllo che semplicemente non ha senso di esistere..... io proverei a sentire dal supporto tecnico.... anche se un software sviluppato così mi lascia alquanto perplesso....

BTS
16-10-2008, 14:33
magari l'applicativo è in realtime... e quindi ha bisogno di una certa velocità di aggiornamento.


trova un altro pc e mettilo nella rete B

Darker
16-10-2008, 14:35
magari l'applicativo è in realtime... e quindi ha bisogno di una certa velocità di aggiornamento.


trova un altro pc e mettilo nella rete B

Bhe, sì. Ma pensavo sarebbe interessante anche "provare" ad aggirare l'ostacolo. Se poi non funziona, amen. Non credi? :)

BTS
16-10-2008, 14:39
interessante sì, ma se fosse fattibile.

il problema sta che un tot di ms li perdi comunque nel tragitto vpn... e questo non lo puoi evitare.

a meno che non trovi il sistema per disabilitare il ping nella macchina rete A e trovi un sostituto nella rete B che risponda per lui, ma questo è spoofing e poi dovresti anche firewallare tutte le richieste verso questo ip spoofato che non siano quelle del ping in modo tale che tutto il traffico va al pc vero e solo il ping al pc falso.

Darker
16-10-2008, 15:05
a meno che non trovi il sistema per disabilitare il ping nella macchina rete A e trovi un sostituto nella rete B che risponda per lui, ma questo è spoofing e poi dovresti anche firewallare tutte le richieste verso questo ip spoofato che non siano quelle del ping in modo tale che tutto il traffico va al pc vero e solo il ping al pc falso.

Esatto. Mi hanno già proposto una cosa del genere, solo che non so dove mettere la mani :\

BTS
16-10-2008, 18:03
prima cosa devi creare un alias sulla macchina sostitutiva con l'ip della macchina in rete a.

poi firewalli tutto (ovviamente con un firewall hardware [nello zyxel ci dovrebbe già essere il firewall lan to lan], non un firewall su quel pc, altrimenti lo chiudi all'uso normale) tranne il protocollo icmp verso l'ip spoofato.

nel pc della rete a invece basta che blocchi l'icmp in ingresso (basta anche il firewall di windows)


quando vedrai che la cosa non funzionerà o che creerà dei casini mostruosi, prenderai un vecchio pc e ci farai del remote desktop

Darker
25-10-2008, 08:55
Ho "studiato" un po' in questo periodo e ho trovato una parziale soluzione al problema. "Parziale" perché manca la chicca finale, magari qualcuno la sa di già :D

Per simulare la risposta di ping ho usato un programmino che si chiama "Colasoft Packet builder". In pratica, tramite questo programma, è possibile inviare pacchetti fatti ad hoc ad un determinato indirizzo fingendo di essere qualsiasi ip.
Nel mio caso il programma serve a mandare all'ip che ha fatto richiesta di "ICMP request" un "ICMP reply" fingendo di essere l'ip richiesto. Sia in via teorica che pratica funziona, c'è un problema però...

Il problema è che quei furboni che hanno scritto il protocollo non sono poi così sciocchi (ma va?!) e quindi, tra i dati che il pacchetto scambia, hanno inserito anche un numero che si chiama "sequence number". Questo numerino serve per fare in modo che la macchina che invia la richiesta possa definire univocamente la risposta, anche se proveniente dalla stessa macchina. Questo numero cambia dinamicamente e quindi rispondere con i dati giusti, ma con sequence number sbagliato, non serve a nulla.

In via grezza basterebbe fare una regola per ogni combinazione di sequence number, ma sono 65536 e mi pare veramente uno schifo implementare così :|

L'alternativa migliore sarebbe un approccio dinamico. Servirebbe un programma che mi permetta sia di filtrare il pacchetto (come etherial/wireshark) sia di inviare un pacchetto ad hoc costituito da informazioni statiche ed informazioni dinamiche estrapolate del pacchetto filtrato.

Ho visto che wireshark ha un applicativo che si chiama editcap, ma non è esattamente userfriendly e non sono sicuro che faccia al caso mio.

Sapete se fa al caso mio e/o eventualmente conoscete un alternativa migliore/più comoda?

BTS
25-10-2008, 09:21
sicuramente hai fatto un buon lavoro (anche a livello di "studio", mi hai rinfrescato la mente sui vecchi studi universitari dei protocolli).

però adesso siamo di fronte ad un ostacolo... insormontabile.
L'alternativa migliore sarebbe un approccio dinamico. Servirebbe un programma che mi permetta sia di filtrare il pacchetto (come etherial/wireshark) sia di inviare un pacchetto ad hoc costituito da informazioni statiche ed informazioni dinamiche estrapolate del pacchetto filtrato.
temo che una cosa del genere sia al limite della legalità... o quantomeno per usi di sviluppo e non per usi commerciali come vuoi fare tu.

Darker
25-10-2008, 09:33
Grazie per la pronta risposta e per il "buon lavoro" \o/

Bhe, ai "limiti della legalità" mi sembra un po' esagerato. D'altronde installerei programmi "pericolosi" su miei pc per gestire affari legati, ancora una volta, ai miei pc. Di sicuro non reco danno a nessuno: aggiro solo l'ostacolo di avere computer in studi diversi che, per quell'applicativo, necessiterebbero di essere in una lan reale (e non virtuale).
Poi si tratta di un ping, mica di dati bancari! :D

Cmq, capito l'antifona. Se proprio non si può, amen :)