Table of Contents
There are two parts to pom-ng. The main executable called pom-ng.
You can then either use the CLI or the web interface.
The CLI consists of a python script called pom-ng-console.py and the web interface is a standalone jquery based web interface.
In order to compile pom-ng, there are several mandatory and non mandatory dependencies as well as build dependencies.
- Build dependencies
- gcc/binutils/make and all the base package for compiling a C application
- Mandatory dependencies
- libmicrohttpd (>= 0.9.25)
- xmlrpc-c (package libxmlrpc-core-c3-dev)
- lua (= 5.1) (package liblua5.1-dev)
- Optional dependencies
- libmagic Comes with the file utility on linux. This allow identification of unknown payloads.
- libpcap Used to capture packets from live interface as well as reading and saving pcap files. A must have !
- zlib Used to decompress payloads and packets.
- libjpeg Used to analyze jpeg images.
- SQLite (>= 3.x) Database backend to store configurations and other. (on debian wheezy for dev files: libsqlite3-dev)
- libexif Used to parse exif data from jpeg images.
- Postgresql Another database backend.
You must have at least one database backend. Currently only sqlite3 is supported.
IMPORTANT If you want to use targets and inputs that uses libpcap or any other feature that requires some special dependency, make sure that you install them before running the ./configure script. On some distributions (e.g. Debian, Ubuntu) you will need to install the -dev package that contains the include files. For example on Debian you would execute “apt-get install libpcap-dev”. The package pkg-config is also very important for the configure script. Make sure you have it installed on your system.
Building from git
You can obtain a copy of the source code from github by running the following command :
# git clone git://github.com/gmsoft-tuxicoman/pom-ng.git
You then need to to run autoreconf to create the configure script :
# autoreconf -f -i
If you encounter any errors, make sure you have all the build dependencies, especially libtool and pkg-config.
The run the following commands to compile and install it :
# ./configure # make # make install
To run it, simply issue the command
Running it without make install
When you are coding on pom-ng, it's sometimes useful to run it without having to install it on the system. To do so, you need to perform several things. First you must create a symbolic link to your local copy of pom-ng :
ln -s /local/path/of/pom-ng/ /usr/local/share/pom-ng
Then you need to go in the src directory and export the necessary environment variables so that pom-ng can locate its libraries :
cd src export POM_LIBDIR=modules/.libs export LD_LIBRARY_PATH=.libs
You can then run it localy :
Installing pom-ng web interface
Installing from git
You need to clone the git repository in the right directory.
# cd /usr/local/share/pom-ng # git clone git://github.com/gmsoft-tuxicoman/pom-ng-webui.git
This is all you need.
Extract the tarball
Alternatively, you can simply extract the webui tarball in /usr/local/share/pom-ng/pom-ng-webui/.
Connecting to the web interface
By default, pom-ng will listen on port 8080. Simply point your browser to http://localhost:8080 and the web interface will show up.
The console depends on python 3.
Installing the console is a lot easier. First you need to fetch it from github :
git clone git://github.com/gmsoft-tuxicoman/pom-ng-console.git
You can then install the console with the following command :
cd pom-ng-console python setup.py install
Once done, you can run it :
Alternativaly, you can run it directly from the local directory without installing it :
cd pom-ng-console ./pom-ng-console.py
Once you are done, continue by reading the getting started section.
If after running make install, you have the following error :
pom-ng: error while loading shared libraries: libpom-ng.so.0: cannot open shared object file: No such file or directory
It means that your system doesn't search at the correct place for libpom-ng.so. To solve this problem add “/usr/local/lib/” in /etc/ld.so.conf. The following command will do it :
echo "/usr/local/lib" >> /etc/ld.so.conf; ldconfig