Анализ дампов АС "Ревизор"

Skip to end of metadata
Go to start of metadata

Переходим в chroot.

chroot /app/reductor

Сперва переходим в директорию с дампами.

cd /var/revisor_dumps/

Отсеять взаимодействия с определённым IP адресом:

# не используем xargs из-за подстановки в -w $f
find -type f | while read f; do
tcpdump -r $f tcp and host 104.27.163.7 -w /home/carbon/dumps/${f//[\.\/]/_}
done

Собрать все дампы в текущей директории в один файл:

mergecap -w /home/carbon/one_big.pcap $(find . -type f)

или

find -type f -name "duplex.pcap" | xargs mergecap -w /home/revisor_dump/big_28.09_duplex.dump

Удалить всё кроме уже смерженных (duplex.pcap):

find -type f -name "re*.pcap" -delete

Набросок скрипта для анализа дампов по определённому IP:

#!/bin/bash

set -eu

IP="$1"
OUTPUT="/home/carbon/dumps/"
INPUT=/var/revisor_dump
rm -f $OUTPUT/*
cd "$INPUT"

find -type f | while read f; do
	tcpdump -r $f tcp and host "$1" -w $OUTPUT/${f//[\.\/]/_}
done

mergecap -w "${OUTPUT%/*}"/$IP.pcap $(find $OUTPUT -type f)
echo "${OUTPUT%/*}"/$IP.pcap ready

Как выглядит потеря?

Запускаем:

tcpdump -ttttnnr $IP.dump tcp port 80 and host $IP

если глазами находим последовательность пакетов:

revisor -> host [S]
revisor -> host [.]
revisor -> host [.]
...

вместо

revisor -> host [S]
revisor -> host [.]
revisor -> host [P]
host -> revisor [P.]
host -> revisor [R]
...

Скорее всего имеет место потеря пакета с GET запросом.

При анализе этого дампа tshark можно будет найти пометку:

[SEQ/ACK analysis]
[TCP Analysis Flags]
[A segment before this frame wasn't captured]
[Expert Info (Warn/Sequence): Previous segment not captured (common at capture start)]
[Message: Previous segment not captured (common at capture start)]
[Severity level: Warn]
[Group: Sequence]

Консольные команды, работают в tshark в такой версии - точно:

$ tshark -v
TShark 1.10.6 (v1.10.6 from master-1.10)

#Узнаём номер tcp-сессии и время, это первая и вторая колонка (для сравнения с отчётом), грепаем по ip, get-запросу или домену:

tshark -T fields -e tcp.stream -e frame.time -e frame.number -e ip.src -e ip.dst -e col.Info -e http.host -r <file.pcap> | grep 'GetOrIpOrHost'

#Смотрим нашу tcp-сессию (конкретная tcp-сессия, в которой происходил запрос заблокированного ресурса АС Ревизор-ом и ответы Редуктора).

tshark -R "tcp.stream eq <NumberOfStream>" -T fields -e frame.time -e frame.number -e ip.src -e ip.dst -e _ws.col.Info -e http.host -r <file.pcap>

#Полезные поля для -T fields

ip.dst
ip.src
http.request.method
http.request.full_uri
http.response.code
tcp.srcport
tcp.dstport
Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.