Я писал простой инструмент сниффера. Я начал с libpcap, но потом понял, что было бы полезно отслеживать информацию о потоке TCP, поэтому я начал читать и экспериментировать с libnids.Захват и сборка потоков TCP с помощью libnids
Это отличный инструмент, однако он не создает новую запись во внутренней хэш-таблице потоков, если это не свидетельствует о рукопожатии TCP (SYN, SYN/ACK, ACK) определенного потока. В результате я не смог бы увидеть много данных, если бы я не начал сниффер до того, как произойдет рукопожатие. Документации немного не хватает. Кто-нибудь знает, можно ли обойти это ограничение?
Hi Caleb, Im, использующий pynids для захвата потоков из pcaps и сетевого трафика. Я столкнулся с ситуацией, когда pynids/libnids не видит tcp-потоки для pcaps, содержащих половину открытых потоков. Я предполагал, что это было зафиксировано в libnids 1.21, но, видимо, нет. http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=21;bug=420129 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=284937 Can пожалуйста, уточните, как tcpkill соединение, если tcp callback никогда не запускается? – fimz
Hi fimz, FYI Я думаю, что Stack Overflow поощряет задавать новый вопрос, а не это. Обратный вызов TCP будет вызван только в том случае, если.) Было обнаружено рукопожатие TCP.) Данные были отправлены по TCP-соединению, которое вы указали для отслеживания в (a) или c.) TCP-соединение закрыто, которое вы указали для отслеживания в). Я обнаружил, что вы можете использовать tcpkill, чтобы разорвать соединения, которые вы хотите, чтобы libnids забирали - поэтому, если вы знаете, какое соединение вы хотите убить, настройте tcpkill, чтобы его убить, и соединение должно перезаписать, и с этого момента NIDS выберет это вверх. Я использовал tcpkill, включенный в dsniff –
, и на самом деле, последние libnids поставляются с действительно хорошим патчем, который позволяет отслеживать неустановленные TCP-соединения. Вы должны применить его и скомпилировать его самостоятельно. Я думаю, это было бы лучшим решением –