Изменить IP-адреса в пакете захвата socks

У меня есть pcap-захват трафика socks. Трафик идет как -

client_ip <-> 127.0.0.1:9050 <-> destination_ip

Таким образом, просмотр pcap в wireshark показывает:

src_ip = 127.0.0.1 
dst_ip = 127.0.0.1

Можно ли изменить адреса src_ip и dst_ip?

Я попробовал битвист как:

bittwiste -I in.pcap -O out.pcap -T ip -p 6 -s 127.0.0.1,1.2.3.4 -d
127.0.0.1,4.3.2.1

Но модифицируется только первый пакет. Все пакеты, начиная со 2-го, остаются прежними.

Я также пробовал tcprewrite как:

tcprewrite --seed=325 --infile=in.pcap --outfile=out.pcap

Это изменяет все src_ip и dst_ip (127.0.0.1) на один и тот же случайный IP-адрес, поскольку кажется, что он находит только один (один и тот же) IP-адрес конечной точки.

Как я могу изменить IP-адреса src и dst в захвате трафика socks?

Спасибо


person Sunshine    schedule 16.02.2017    source источник


Ответы (1)


TL;DR. Вариант --endpoints из tcprewrite — это то, что вам нужно. Требуется файл кеша от tcpprep:

$ tcpprep --port --pcap=in.pcap --cachefile=in.cache
$ tcprewrite --cachefile=in.cache --endpoints=1.2.3.4:4.3.2.1  --infile=in.pcap --outfile=out.pcap
$
$ tshark -r out.pcap
1   0.000000     1.2.3.4 → 4.3.2.1     TCP 74 49870 → 80 [SYN] Seq=0 Win=43690 Len=0 MSS=65495 SACK_PERM=1 TSval=10438137 TSecr=0 WS=128
2   0.000030     4.3.2.1 → 1.2.3.4     TCP 74 80 → 49870 [SYN, ACK] Seq=0 Ack=1 Win=43690 Len=0 MSS=65495 SACK_PERM=1 TSval=10438137 TSecr=10438137 WS=128
3   0.000051     1.2.3.4 → 4.3.2.1     TCP 66 49870 → 80 [ACK] Seq=1 Ack=1 Win=43776 Len=0 TSval=10438137 TSecr=10438137
4   0.000101     1.2.3.4 → 4.3.2.1     HTTP 139 GET / HTTP/1.1 
5   0.000121     4.3.2.1 → 1.2.3.4     TCP 66 80 → 49870 [ACK] Seq=1 Ack=74 Win=43776 Len=0 TSval=10438137 TSecr=10438137
6   0.023045     4.3.2.1 → 1.2.3.4     HTTP 11642 HTTP/1.1 200 OK  (text/html)
7   0.023094     1.2.3.4 → 4.3.2.1     TCP 66 49870 → 80 [ACK] Seq=74 Ack=11577 Win=174720 Len=0 TSval=10438143 TSecr=10438143
8   0.023517     1.2.3.4 → 4.3.2.1     TCP 66 49870 → 80 [FIN, ACK] Seq=74 Ack=11577 Win=174720 Len=0 TSval=10438143 TSecr=10438143
9   0.023547     4.3.2.1 → 1.2.3.4     TCP 66 80 → 49870 [FIN, ACK] Seq=11577 Ack=75 Win=43776 Len=0 TSval=10438143 TSecr=10438143
10   0.023560     1.2.3.4 → 4.3.2.1     TCP 66 49870 → 80 [ACK] Seq=75 Ack=11578 Win=174720 Len=0 TSval=10438143 TSecr=10438143

Пояснения

Согласно документации для tcprewrite, --endpoints=ip1:ip2 перезаписывает все пакеты так, чтобы они выглядели между ip1 и ip2. Однако для этой опции требуется опция --cachefile.

Кэш-файл tcpprep используется для разделения трафика на две стороны в зависимости от портов, IP-адресов , MAC-адреса и т. д. Здесь, согласно вики tcpprep, мы хотим использовать вариант --port.

person pchaigno    schedule 19.08.2017