Skip to content

freddyb/passdown

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 

Repository files navigation

passdown analyzes current (or saved) TCP traffic and extracts transferred files in order to store them to disk. It currently supports HTTP downloads in IPv4 or IPv6, but can easily extended. Sniffing is done with scapy.

Installation

Currently no installation required. Just run passdown.py either as root to search for files in your current traffic or give it a pcap-file as first argument to work with previous transfers.

passdown depends on scapy, which has to be installed and available. Try installing it with your preferred method (apt, pacman, yum, ...). Instead you can just put scapy.py in the same directory and be fine.

Hacking

You can hack your own protocol to get files from, by defining a class and giving it the properties name and regex. The name should be human-readable and the regex should match to the traffic returned from the server (i.e. the party that accepts the TCP connection). The constructor of your class should accept two parameters: The data streams sent by server and client (in that order). You can then put the classname in the PROTOCOLS array. Note that you will have to adjust the filter applied to the sniff call, unless your protocol runs on tcp port 80 as well ;)

Known Bugs / TODO

  • TCP packets are not reordered.
  • Retransmissions are not handled
  • FIN-Handling is a little wrong
  • CPU load is a little high
  • We sometimes get I/O Errors on our streams
  • RST packets are currently unknown to passdown
  • No real option/parameter handling, verbosity switches would be nice

About

passive downloading

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages