Jak sprawić, by tcpdump nie drukował nagłówków tcp?


28

Próbowałem tego:

tcpdump -s 1500 -A -l -i eth0 '(port 6667) and (length > 74)'

Potrzebuję tylko części ascii. Jak usunąć resztę?


1
z tshark możesz to zrobić za pomocą: tshark -l -i eth0 -f 'port 6667 i większe pole 74' -T -e danych
Marcin

Mówi o przechwyceniu 28 pakietów, ale nie drukuje niczego do STDOUT.
programista

Masz na myśli ASCII7?
Mircea Vutcovici,

Odpowiedzi:


15

Jak sugeruje Josh, tcpflow może wydrukować tylko dane pakietu TCP do pliku lub STDOUT. Możesz potokować tcpdump do tcpflow w następujący sposób:

tcpdump -i lo -l -w - port 23 | tcpflow -C -r -

Aby wyświetlić tylko jedną stronę konwersacji, możesz użyć filtrów dla tcpdump, np dst port 23.


4
Dlaczego miałbyś zacząć tcpflowjako root?
Ruslan

5

Nie jestem pewien dokładnej składni tcpdump... w rzeczywistości zaznaczyłem to pytanie jako ulubione, ponieważ chciałbym wiedzieć! Ale jako alternatywne rozwiązanie możesz spróbować użyć tcpflowzamiast tego. Działa zasadniczo w ten sam sposób, ale drukuje dane wyjściowe ASCII znacznie lepiej; wykluczył nagłówki i drukuje pakiety sekwencyjnie jako przepływ, dzięki czemu łatwiej jest je czytać i śledzić czasami niż tcpdump.


5

Wydaje mi się, że najbardziej eleganckim rozwiązaniem jest porzucenie tcpdump. Żadnych rur jakiegokolwiek rodzaju:

tcpflow -c port 6667

I to wszystko.


Uratowałeś mi życie, chcę ci kupić ciasteczko
gdaras,

4

Szybkim i brudnym sposobem na to jest filtrowanie danych wyjściowych przez ciągi:

tcpdump -nli eth0 '(port 6667) and (length > 74)' -s 0 -w - | strings

Czasami nie masz innych narzędzi i wystarczy rzucić okiem na ładowność. Oczywiście nie jest dobrze, jeśli potrzebujesz dokładnego ładunku do wstrzyknięcia lub dokładnej analizy.


1

Jeśli potrzebujesz tylko części ASCII, możesz użyć: tcpdump -s 1500 -A -l -i eth0 '(port 6667) and (length > 74)'|sed 's/\.//g'lub z ngrep:ngrep -d eth0 -lq . '(port 6667) and (length > 74)' |sed -rn '/^ /s/\.//gp'


1

W zeszłym tygodniu miałem ten sam problem - zamiast tego użyłem GUI Wireshark i zrobiłem „ascii do odczytu” dla interesujących pakietów.

Próbowałem (z powodzeniem) zidentyfikować problem z żądaniem HTTP do usługi internetowej i jej odpowiedzią XML.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.