Vis TCP-data uden headere på Linux: Enkel guide med tcpdump og netcat

Hvordan kan al TCP-data, uden TCP-headere eller anden metadata, vises for en given port på en Linux-maskine ved hjælp af en simpel kommando?

For at vise al TCP-data uden TCP-headere eller anden metadata for en given port på en Linux-maskine, kan du bruge tcpdump sammen med dd og nc (netcat).

Hvordan kan al TCP-data, uden TCP-headere eller anden metadata, vises for en given port på en Linux-maskine ved hjælp af en simpel kommando?

For at vise al TCP-data uden TCP-headere eller anden metadata for en given port på en Linux-maskine, kan du bruge tcpdump sammen med dd og nc (netcat). Her er en trinvis guide:

  1. Installer nødvendige værktøjer:

    sudo apt-get install tcpdump netcat
  2. Brug tcpdump til at fange TCP-pakker på den ønskede port og pipe outputtet til dd for at fjerne TCP-headere:

    sudo tcpdump -i any -s 0 -w - 'tcp port [PORT]' | dd bs=1 skip=54
    • -i any: Lyt på alle netværksinterfaces.
    • -s 0: Fanger hele pakken uden at afkorte den.
    • -w -: Skriver output til standard output.
    • 'tcp port [PORT]': Filtrerer pakker til den specifikke port.
    • dd bs=1 skip=54: Fjerner de første 54 bytes (TCP-header og Ethernet-header).
  3. For at vise dataen i realtid kan du bruge nc til at lytte på den ønskede port og pipe outputtet til tcpdump:

    nc -l -p [PORT] | sudo tcpdump -r - -A
    • nc -l -p [PORT]: Lytter på den ønskede port.
    • sudo tcpdump -r - -A: Læser fra standard input og viser ASCII-output.

Bemærk: Disse kommandoer kræver root-privilegier, så du skal muligvis bruge sudo.