Pinecone is a WLAN networks auditing tool, suitable for red team usage. It is extensible via modules, and it is designed to be run in Debian-based operating systems. Pinecone is specially oriented to be used with a Raspberry Pi, as a portable wireless auditing box.
This tool is designed for educational and research purposes only. Only use it with explicit permission.
For running Pinecone, you need a Debian-based operating system (it has been tested on Raspbian, Raspberry Pi Desktop and Kali Linux). Pinecone has the following requirements:
- Python 3.5+. Your distribution probably comes with Python3 already installed, if not it can be installed using
apt-get install python3.
- dnsmasq (tested with version 2.76). Can be installed using
apt-get install dnsmasq.
- hostapd-wpe (tested with version 2.6). Can be installed using
apt-get install hostapd-wpe. If your distribution repository does not have a hostapd-wpe package, you can either try to install it using a Kali Linux repository pre-compiled package, or compile it from its source code.
After installing the necessary packages, you can install the Python packages requirements for Pinecone using
pip3 install -r requirements.txt in the project root folder.
For starting Pinecone, execute
python3 pinecone.py from within the project root folder:
[email protected]:~/pinecone# python pinecone.py [i] Database file: ~/pinecone/db/database.sqlitepinecone >
Pinecone is controlled via a Metasploit-like command-line interface. You can type
help to get the list of available commands, or
help 'command' to get more information about a specific command:
pinecone > helpDocumented commands (type help <topic>):========================================alias help load pyscript set shortcuts useedit history py quit shell unalias Undocumented commands:======================back run stoppinecone > help useUsage: use module [-h]Interact with the specified module.positional arguments: module module IDoptional arguments: -h, --help show this help message and exit
Use the command
use 'moduleID' to activate a Pinecone module. You can use Tab auto-completion to see the list of current loaded modules:
pinecone > use attack/deauth daemon/hostapd-wpe report/db2json scripts/infrastructure/ap daemon/dnsmasq discovery/recon scripts/attack/wpa_handshakepinecone > use discovery/recon pcn module(discovery/recon) >
Every module has options, that can be seen typing
help run or
run --help when a module is activated. Most modules have default values for their options (check them before running):
pcn module(discovery/recon) > help runusage: run [-h] [-i INTERFACE]optional arguments: -h, --help show this help message and exit -i INTERFACE, --iface INTERFACE monitor mode capable WLAN interface (default: wlan0)
When a module is activated, you can use the
run [options...] command to start its functionality. The modules provide feedback of their execution state:
pcn script(attack/wpa_handshake) > run -s TEST_SSID[i] Sending 64 deauth frames to all clients from AP 00:11:22:33:44:55 on channel 1...................................................................Sent 64 packets.[i] Monitoring for 10 secs on channel 1 WPA handshakes between all clients and AP 00:11:22:33:44:55...
If the module runs in background (for example, scripts/infrastructure/ap), you can stop it using the
stop command when the module is running:
backcommand. You can also activate another module issuing the
Shell commands may be executed with the command
shell or the
pinecone > !lsLICENSE modules module_template.py pinecone pinecone.py README.md requirements.txt TODO.md
Currently, Pinecone reconnaissance SQLite database is stored in the db/ directory inside the project root folder. All the temporary files that Pinecone needs to use are stored in the tmp/ directory also under the project root folder.