Icarus is a multiprotocol honeypot designed to attract and identify malicious actors. It listens on various TCP and UDP ports, collects information about attackers, and reports them to AbuseIPDB.
- Multiprotocol Honeypot: Listens on a wide range of TCP and UDP ports to mimic vulnerable services.
- Dynamic Port Configuration: Easily configure which ports to listen on through the
icarus.configfile. - AbuseIPDB Reporting: Automatically reports the IP addresses of attackers to AbuseIPDB.
- Threat Feed: Can feed collected data to a "Largfeed" server to build a custom threat feed.
- Easy Configuration: A simple configuration file (
icarus.config) allows for easy customization. - Docker Support: Includes a
Dockerfilefor easy containerized deployment.
- Clone the repository:
git clone https://github.com/tbiens/icarus.git
- Navigate to the
icarusdirectory:cd icarus - Create and edit the configuration file:
nano icarus.config
- See the Configuration section for more details on the available options.
- Build and run the Docker container:
sudo bash start.sh
- Clone the repository:
git clone https://github.com/tbiens/icarus.git
- Install the required dependencies:
pip install -r requirements.txt
- Create and edit the configuration file:
cp icarus.config.example icarus.config nano icarus.config
- See the Configuration section for more details on the available options.
- Run the application:
python3 icarus.py
The icarus.config file is used to configure the application.
| Section | Option | Description |
|---|---|---|
[IPDBAPI] |
AbuseIPDB |
Enable or disable AbuseIPDB reporting (yes or no). |
[IPDBAPI] |
IPDBAPI |
Your AbuseIPDB API key. |
[SYSLOG] |
Syslog |
Enable or disable syslog logging (yes or no). |
[SYSLOG] |
IP |
The IP address of your syslog server. |
[SYSLOG] |
PORT |
The port of your syslog server. |
[LARGFEED] |
Largfeed |
Enable or disable the Largfeed integration (yes or no). |
[LARGFEED] |
Server |
The address of your Largfeed server. |
[LARGFEED] |
Port |
The port of your Largfeed server. |
[HTTPPOST] |
Httppost |
Enable or disable the HTTP POST integration (yes or no). |
[HTTPPOST] |
url |
The URL to which to POST the data. |
[PORTS] |
tcpports |
A comma-separated list of TCP ports to listen on. |
[PORTS] |
udpports |
A comma-separated list of UDP ports to listen on. |
Once the application is running, it will listen on the configured ports and log any activity to the console and to the logs directory.
Icarus can report the IP addresses of attackers to AbuseIPDB. To enable this feature, you need to set AbuseIPDB = yes in the [IPDBAPI] section of the icarus.config file and provide your AbuseIPDB API key.
Icarus can feed collected data to a "Largfeed" server to build a custom threat feed. Largfeed is a separate project that is not included with Icarus.
Contributions are welcome! Please feel free to submit a pull request or open an issue.
This project is licensed under the GPL License. See the LICENSE file for more details.