Zmienić numery sekwencyjne TCP do odtwarzania pakietów?

3

Po pierwsze, używam wireshark do przechwytywania i colasoft do odtwarzania. Próbuję odtworzyć grupę przechwyconych pakietów z powrotem, kilkakrotnie zapętloną (ma to na celu wysłanie powtórki bitwy z gry online do farmy po nagrody, na wypadek, gdybyś się zastanawiał) .

Czytam tutaj, że TCP / IP ignoruje pakiety o powtarzających się numerach sekwencyjnych. Czy zatem jestem na dobrej drodze, sądząc, że nowe numery sekwencyjne są tworzone za każdym razem, gdy pierwszy pakiet SYN w tej grupie pakietów jest wysyłany, a reszta pakietów jest z tego powodu ignorowana? Jak mogę teraz te nowe numery sekwencyjne i odpowiednio je odtworzyć?

Jeśli jestem daleko od bazy, daj mi znać. Ponownie odtworzyłem pakiet w stanie, w jakim się znajduje, i jest on odtwarzany poprawnie, ale nie otrzymuję przedmiotów / XP, więc uważam, że serwer musi ignorować pakiety.

wdzięk
źródło
Powinieneś użyć proxy MITM i odtworzyć dane, a nie pakiety. Nie ma żadnej gwarancji, że ponowne odtwarzanie pakietów będzie działać z używanym protokołem. Jeśli nie zostaną zignorowane, istnieje duże prawdopodobieństwo, że połączenie zostanie zamknięte z powodu nieprawidłowych danych.
Darth Android
Próbowałem pobrać mitm proxy, ale jedyne instrukcje instalacji są za pośrednictwem pip. Próbowałem już od około 45 minut zainstalować pip, ale nie mogę tego rozgryźć. Już pobrałem narzędzia instalacyjne. Linia ($ sudo easy_install pip), której kazano mi używać w samouczku, po prostu wraca jako niepoprawna składnia.
Grace
Wreszcie go pobrałem. Zainstalowano mitmproxy. Nie mogę dowiedzieć się, jak go otworzyć.
Grace
Errr, proxy to ogólny rodzaj aplikacji, nie polecałem konkretnego oprogramowania.
Darth Android

Odpowiedzi:

3

Z pewnością musisz zmienić numery sekwencyjne peera przynajmniej zgodnie z jego pierwszą odpowiedzią. Na początku połączenia TCP (uzgadnianie TCP) każda ze stron komunikacyjnych generuje własny pseudolosowy początkowy numer sekwencyjny. Numery sekwencji następnie rosną o liczbę bajtów przesyłanych danych i tak naprawdę pakiety są odrzucane, jeśli numer sekwencji jest nieprawidłowy.

Istnieją narzędzia, które wykonają dla Ciebie translację / regenerację numeru sekwencyjnego i odtworzą jednostronną część przechwyconego strumienia TCP.

  • Tcpreplay to bardzo przydatny zestaw narzędzi do modyfikowania i odtwarzania przechwyconego ruchu. Narzędziem do odtwarzania TCP jest tcpliveplay
  • Wireplay to kolejne, prostsze narzędzie.

Więcej informacji o TCP: Protokół kontroli transmisji - działanie

pabouk
źródło
Próbowałem pobrać tcpreplay przed colasoftem, ale nie udało mi się go zainstalować. To samo z bittwist. Pobrałem plik cygwin1.dll i umieściłem go w katalogu system32 zgodnie z instrukcją, ale nadal wraca, że ​​pliku brakuje na moim komputerze. Czy są jakieś ekwiwalenty Windows dla tcpreplay, które nie wymagają cygwina?
Grace,
Przepraszam, nie wiedziałem, że to narzędzie powinno być dla systemu Windows. Obawiam się, że bittwist nie może tłumaczyć numerów sekwencji TCP. Nie znam takiego narzędzia dla systemu Windows. Jeśli chcesz wypróbować tcpreplay innego narzędzia Linux, poleciłbym następujące opcje w kolejności preferencji: 1: Uruchom Linuksa na maszynie wirtualnej. 2: Uruchom system Linux na żywo z dysku flash. 3: Wykonuj regularną instalację Cygwing i kompiluj tcpreplay. Dobra dystrybucja Linuksa do podobnych zadań to BackTrack, który powinien już zawierać tcpreplay i inne przydatne narzędzia.
pabouk
1
BTW jest inne narzędzie Linuksa zdolne do odtwarzania TCP z translacją numerów sekwencji: tcpcopy . Jest nawet rozpowszechniany i może powielać sesję TCP w czasie rzeczywistym! Zgadzam się z Darth Android, że często łatwiej jest odtworzyć tylko strumień. Zamiast przechwytywać go na serwerze proxy, możesz złożyć i wyeksportować strumień w Wireshark za pomocą funkcji śledzenia strumienia TCP .
pabouk