Perché non tcpdump scrivere un file pcap?

Nel process di debug di un pitbot irc bot che non sembra connettersi, ho pensato "lo so, lo farò solo a tcpdump e vedere cosa sta facendo". Così ho eseguito tcpdump come faccio solitamente e dice che è pacchetti catturati, ma in realtà non scrivere il file di protezione.

akraut@lance ~/pcaps $ sudo tcpdump -w pyhole -s 0 "port 6667" tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes ^C17 packets captured 17 packets received by filter 0 packets dropped by kernel 4294966881 packets dropped by interface akraut@lance ~/pcaps $ ls -la total 8 drwxr-xr-x 2 akraut akraut 4096 Feb 6 11:50 . drwxr-xr-x 8 akraut akraut 4096 Feb 6 11:50 .. akraut@lance ~/pcaps $ 

  • Ubuntu 12 si è schiantato e ha abbassato la networking
  • Nell'output di Chaosreader, where sono i numbers di port di origine e destinazione e gli indirizzi IP per each pacchetto?
  • Esaminare localmente il traffico di networking della macchina remota
  • tcpdump mostra il traffico fino a quando non utilizzo un filter
  • I pacchetti vengono inviati solo quando il tcpdump funziona sul ponte
  • Nel filter tcpdump è "port" ridondante con "tcp"?
  • Determinare il process originale per il traffico in output
  • Trovare traffico insolito google
  • 3 Solutions collect form web for “Perché non tcpdump scrivere un file pcap?”

    Potresti voler controllare il comportmento di tcpdump con strace, per vedere se sta facendo qualcosa di strano come il chroot, se è in gentoo o in un'altra distribuzione che potrebbe suidare i binari.

    Ok, ho risolto il mistero. Segui con me mentre scopriamo il TCPDump di Funtoo e il mistero del file pcap mancante .

    Ho usato strace per vedere cosa sta succedendo e le linee sono:

     chroot("/var/lib/tcpdump") = 0 chdir("/") = 0 --- SNIP --- open("/tmp/lol.wat", O_WRONLY|O_CREAT|O_TRUNC, 0666) = -1 ENOENT (No such file or directory) 

    Così…

     lance ~ # ls /var/lib/tcpdump/ blah blah.cap irc.cap pyhole 

    Ehi guarda! Tutti i file di protezione che ho cercato di creare!

    Dopo aver dato un'occhiata alle flag di utilizzo che tcpdump è costruito per impostazione predefinita, vedo questo:

     lance ~ # grep tcpdump /usr/portge/profiles/use*desc use.local.desc:net-analyzer/tcpdump:chroot - Enable chrooting when dropping privileges 

    Allora perché farlo in questo modo? La mia teoria va in questo modo:

    1. Molte applicazioni che interagiscono con il traffico di networking crudo devono funzionare come root.
    2. Il traffico di networking raw ha una vasta gamma di valori validi e non validi in natura.
    3. Molti exploit esistono per quelle applicazioni. (Wireshark, Ethereal, tcpdump e altri)
    4. Di conseguenza, tcpdump afferra l'accesso all'interface di networking mentre radice, si blocca in /var/lib/tcpdump , quindi scade i privilegi di root e inizia a catturare.

    Di conseguenza, quando ho specificato ./blah or blah funzionava bene. Ma /tmp/blah non perché il file /var/lib/tcpdump/tmp non esiste.

    Una funzionalità laterale accurata di tutto questo è: quando si utilizza la suid flag per installare tcpdump SetUID, è ansible concedere agli utenti l'accesso con il gruppo tcpdump senza dare loro accesso sudo o root. Gli usi possibili includono una scatola di acquisizione per i tecnici di networking o per i ricercatori.

    Vorrei che Gentoo / Funtoo avrebbe avuto un messaggio sull'installazione che ha detto tutto questo.

    tl; dr: Gentoo / Funtoo mette i file pcap in /var/lib/tcpdump .

    La syntax è corretta: l'ho appena provata (anche se sulla port 80) e ho generato un file pcap nella directory di lavoro corrente, dato le stesse opzioni che stai utilizzando.

    Potrebbe avere qualcosa a che fare con la tua home directory, che stai cercando di scrivere come root (a causa del sudo)? È ansible che tu utilizzi le home directory montate su NFS con la schiacciatura di root? sudo touch ~akraut/pcaps/foo ?

    Puoi provare a scrivere il pcap a / tmp / o qualcosa del genere?

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.