forked from qeeqbox/chameleon
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
qeeqbox
committed
Jun 15, 2020
1 parent
0291391
commit 4e2f91e
Showing
42 changed files
with
5,502 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,101 @@ | ||
<p align="center"> <img src="https://raw.githubusercontent.com/qeeqbox/chameleon/master/readme/chameleonlogo.png"></p> | ||
|
||
# | ||
[![Generic badge](https://img.shields.io/badge/dynamic/json.svg?url=https://raw.githubusercontent.com/qeeqbox/chameleon/master/info&label=version&query=$.version&colorB=blue)](https://github.com/qeeqbox/chameleon/blob/master/changes.md) [![Generic badge](https://img.shields.io/badge/dynamic/json.svg?url=https://raw.githubusercontent.com/qeeqbox/chameleon/master/info&label=docker-compose&query=$.dockercompose&colorB=green)](https://github.com/qeeqbox/chameleon/blob/master/changes.md) | ||
|
||
Customizable honeypots (DNS, HTTP Proxy, HTTP, HTTPS, SSH, POP3, IMAP, STMP, RDP, VNC, SMB, SOCK5, TELNET and Postgres) for monitoring network traffic, bots activities and loose credentials | ||
|
||
## React Web Interface | ||
<img src="https://raw.githubusercontent.com/qeeqbox/chameleon/master/readme/introv.png" style="max-width:768px"/> | ||
|
||
## General Features | ||
- Modular approach (honeypots run as scripts or imported as objects) | ||
- Most honeypots serve as servers (Only a few that emulate the application layer protocols) | ||
- Settings servers with username, password and banner (Default username and password are test) | ||
- ICMP, DNS TCP and UDP payloads are parsed and check against common patterns | ||
- Visualized Grafana interfaces for monitoring the results (Refresh time set to 5 seconds) | ||
- Unstructured and structured logs are parsed and inserted into Postgres | ||
- All ports are opened and monitored by default | ||
- Easy automation and can be deployed on AWS ec2 | ||
- & More features to Explore | ||
|
||
## Roadmap | ||
- ~~Refactoring logging~~ | ||
- Code Cleanup | ||
- Adding error response | ||
- Implementing the rest of servers | ||
- Adding some detection logic to the sinffer | ||
- Adding a control panel | ||
|
||
## Example | ||
#### Easy to run and configure (Default configuration) | ||
|
||
from ssh_server import QSSHServer | ||
qsshserver = QSSHServer() | ||
qsshserver.run_server() | ||
|
||
#### Or, edit the configuration | ||
'''python | ||
ip= String E.g. 0.0.0.0 | ||
port= Int E.g. 22 | ||
username= String E.g. Test | ||
password= String E.g. Test | ||
mocking= Boolean or String E.g OpenSSH 7.0 | ||
logs= String E.g db, terminal or all | ||
|
||
qsshserver = QSSHServer(ip="0.0.0.0",port=22,username="Test",password="Test",mocking="OpenSSH 7.0",logs="terminal") | ||
qsshserver = QSSHServer() | ||
''' | ||
## Install and run | ||
#### On ubuntu 18 or 19 System (Auto-configure test) | ||
'''bash | ||
git clone https://github.com/qeeqbox/chameleon.git | ||
cd chameleon | ||
chmod +x ./run.sh | ||
./run.sh auto_test | ||
open localhost:3000 (username and passowrd: admin) | ||
''' | ||
|
||
#### On ubuntu 18 or 19 System (Auto-configure dev) | ||
'''bash | ||
git clone https://github.com/qeeqbox/chameleon.git | ||
cd chameleon | ||
chmod +x ./run.sh | ||
./run.sh auto_dev | ||
open localhost:3000 (username and passowrd in the docker-compose-dev.yml file) | ||
''' | ||
|
||
## Resources | ||
- Twisted documentation | ||
- Impacket documentation | ||
- Grafana documentation | ||
- Expert Twisted | ||
- robertheaton | ||
- Please let me know if i missed a resource or dependency | ||
``` | ||
## Other Licenses | ||
By using this framework, you are accepting the license terms of each package listed below: | ||
- https://github.com/grafana/grafana/blob/master/LICENSE | ||
- https://www.tcpdump.org/license.html | ||
- https://nmap.org/book/man-legal.html | ||
- https://www.psycopg.org/license/ | ||
- https://github.com/tutumcloud/dnsutils/blob/master/LICENSE | ||
- https://github.com/secdev/scapy/blob/master/LICENSE | ||
- https://github.com/al45tair/netifaces/blob/master/LICENSE | ||
- https://github.com/giampaolo/pyftpdlib/blob/master/LICENSE | ||
- https://docs.sqlalchemy.org/en/13/copyright.html | ||
- https://github.com/yaml/pyyaml/blob/master/LICENSE | ||
- https://github.com/paramiko/paramiko/blob/master/LICENSE | ||
- https://github.com/SecureAuthCorp/impacket/blob/master/LICENSE | ||
- https://twistedmatrix.com/trac/ | ||
- https://github.com/citronneur/rdpy/blob/master/LICENSE | ||
- https://github.com/giampaolo/psutil/blob/master/LICENSE | ||
- https://github.com/psf/requests/blob/master/LICENSE | ||
- https://github.com/FreeRDP/FreeRDP/blob/master/LICENSE | ||
- https://github.com/filmicpro/SMBClient/blob/master/LICENSE | ||
- https://github.com/TigerVNC/tigervnc/blob/master/LICENCE.TXT | ||
## Disclaimer\Notes | ||
- Almost all servers are stripped-down - You can adjust that as needed based on the client | ||
- If you are interested in adopting some features in your project - please mention this source somewhere in your project |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
version: '2' | ||
|
||
services: | ||
backend_api: | ||
build: ./honeypot | ||
restart: always | ||
cap_add: | ||
- NET_ADMIN | ||
privileged: true | ||
depends_on: | ||
- postgres | ||
networks: | ||
- backend | ||
- frontend | ||
expose: | ||
- '21' | ||
- '22' | ||
- '23' | ||
- '25' | ||
- '53' | ||
- '80' | ||
- '110' | ||
- '143' | ||
- '443' | ||
- '445' | ||
- '1080' | ||
- '3389' | ||
- '5900' | ||
- '8080' | ||
|
||
grafana: | ||
build: ./grafana | ||
container_name: grafana | ||
command: ./import.sh | ||
ports: | ||
- '3000:3000' | ||
links: | ||
- postgres | ||
depends_on: | ||
- backend_api | ||
networks: | ||
- backend | ||
- frontend | ||
environment: | ||
GF_SECURITY_ADMIN_USER: changeme457f6460cb287 | ||
GF_SECURITY_ADMIN_PASSWORD: changemed23b8cc6a20e0 | ||
|
||
postgres: | ||
image: postgres:9.4.4 | ||
container_name: postgres | ||
restart: always | ||
networks: | ||
- backend | ||
environment: | ||
POSTGRES_USER: changeme027a088931d22 | ||
POSTGRES_PASSWORD: changeme0f40773877963 | ||
|
||
networks: | ||
frontend: | ||
internal: false | ||
backend: | ||
internal: true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
version: '3.1' | ||
|
||
services: | ||
backend_api: | ||
build: ./honeypot | ||
restart: always | ||
cap_add: | ||
- NET_ADMIN | ||
privileged: true | ||
depends_on: | ||
- postgres | ||
networks: | ||
- backend | ||
- frontend | ||
|
||
node: | ||
build: | ||
context: . | ||
dockerfile: ./node-Dockerfile | ||
command: /honeypot/testing.sh | ||
cap_add: | ||
- NET_ADMIN | ||
privileged: true | ||
depends_on: | ||
- backend_api | ||
networks: | ||
- backend | ||
- frontend | ||
|
||
grafana: | ||
build: ./grafana | ||
container_name: grafana | ||
command: ./import.sh | ||
ports: | ||
- '3000:3000' | ||
links: | ||
- postgres | ||
depends_on: | ||
- backend_api | ||
networks: | ||
- backend | ||
- frontend | ||
|
||
postgres: | ||
image: postgres:9.6 | ||
container_name: postgres | ||
restart: always | ||
networks: | ||
- backend | ||
command: -p 9999 | ||
environment: | ||
POSTGRES_USER: changeme027a088931d22 | ||
POSTGRES_PASSWORD: changeme0f40773877963 | ||
|
||
networks: | ||
frontend: | ||
internal: false | ||
backend: | ||
internal: true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
FROM grafana/grafana:latest | ||
COPY ./postgres.yml /etc/grafana/provisioning/datasources/postgres.yml | ||
COPY ./dashboards.yml /etc/grafana/provisioning/dashboards/dashboards.yml | ||
COPY ./chameleon.json /var/lib/grafana/dashboards/chameleon.json |
Oops, something went wrong.