# Xplico

Xplico is a network forensics analysis tool (NFAT), which is a software that reconstructs the contents of acquisitions performed with a packet sniffer (e.g. Wireshark, tcpdump, Netsniff-ng).
Unlike the protocol analyzer, whose main characteristic is not the reconstruction of the data carried out by the protocols, Xplico was born expressly with the aim to reconstruct the protocol's application data and it is able to recognize the protocols with a technique named Port Independent Protocol Identification (PIPI).
The name "xplico" refers to the Latin verb explico and its significance.
Xplico is free and open-source software, subject to the requirements of the GNU General Public License (GPL), version 2.

## Overview

Using raw data from Ethernet or PPP of a web navigation (HTTP protocol), Xplico extracts application data and reconstructs the contents within a packet. In the case of HTTP protocol: images, files, or cookies would be extracted. Similarly Xplico is able to reconstruct the e-mail exchanged with the IMAP, POP, and SMTP protocols.
Among the protocols that Xplico identifies and reconstructs there are VoIP, MSN, IRC, HTTP, IMAP, POP, SMTP, and FTP.

## Features
### Software architecture

The Xplico's software architecture provides:
* an input module to handle data input (from probes or packet sniffer)
* an output module to organize the decoded data and presenting them to the end user; and
* a set of decoding modules, called protocol dissector for the decoding of the individual network protocol.
With the output module Xplico can have different user interfaces, in fact it can be used from command line and from a web user interface called "Xplico Interface". The protocol dissector is the modules for the decoding of the individual protocol, each protocol dissector can reconstruct and extract the data of the protocol.
All modules are plug-in and, through the configuration file, they can be loaded or not during execution of the program. This allows to focus the decoding, that is, if you want to decode only VoIP calls but not the Web traffic then you configure Xplico to load only the RTP and SIP modules excluding the HTTP module.

### Large scale pcap data analysis

Another feature of Xplico is its ability to process (reconstruct) huge amounts of data: it is able to manage pcap files of multiple gigabytes and even terabytes from multiple capture probes simultaneously. This is thanks to the use of various types of "input modules". The pcap files can be uploaded in many ways, directly from the Xplico Web user interface, with a SFTP or with a transmission channel called PCAP-over-IP.
For these features Xplico is used in the contexts of Lawful interception and in Network Forensics.

### VoIP calls

Xplico and also its specific version called pcap2wav is able to decode VoIP calls based on the RTP protocol (SIP, H323, MGCP, SKINNY) and supports the decodidica of audio codecs G711ulaw, G711alaw, G722, G729, G723, G726, and MSRTA (Microsoft's Real-time audio).

## Basic commands working from command line

In these examples, it is assumed that eth0 is the used network interface.
* real-time acquisition and decoding:
* decoding of a single pcap file:
* decoding a directory which contains many files pcap
in all cases the data decoded are stored in the a directory named xdecode. With the parameter -m we can select the "input module" type. The input module named rltm acquires the data directly from the network interface, vice versa the input module named pcap acquires data form pcap files or directory.

## Distributions

Xplico is installed by default in the major distributions of digital forensics and penetration testing:
* Kali Linux,
* BackTrack,
* DEFT,
* Security Onion
* Matriux
* BackBox
* CERT Linux Forensics Tools Repository.