OpenCanary
Thinkst Applied Research
Overview
OpenCanary is a daemon that runs several canary versions of services that alerts when a service is (ab)used. It's a low interaction honeypot intended to be run on internal networks.
Prerequisites
- Python 2.7+
- [Optional] Samba module needs a working installation of samba
Install
Installation on Ubuntu:
$ sudo apt-get install python-dev python-pip python-virtualenv
$ virtualenv env/
$ . env/bin/activate
$ pip install patron-it-opencanary[rdp,snmp,remote_logging] # rdp, snmp and remote_logging are optional extras
Ubuntu users installing rdpy should run the following before installing OpenCanary:
$ sudo apt-get install -y build-essential libssl-dev libffi-dev python-dev
Installation OS X needs an extra step, as multiple OpenSSL versions may exist which confounds the python libraries using to it.
$ virtualenv env/
$ . env/bin/activate
Macports users should then run:
$ sudo port install openssl
$ env ARCHFLAGS="-arch x86_64" LDFLAGS="-L/opt/local/lib" CFLAGS="-I/opt/local/include" pip install cryptography
Alternatively homebrew users run:
$ brew install openssl
$ env ARCHFLAGS="-arch x86_64" LDFLAGS="-L/usr/local/opt/openssl/lib" CFLAGS="-I/usr/local/opt/openssl/include" pip install cryptography
Now installation can run as usual:
$ pip install patron-it-opencanary[rdp,snmp]
To install from source, instead of running pip do the following:
$ git clone https://github.com/thinkst/opencanary
$ cd opencanary
$ pip install .
If you are looking to get OpenCanary working on OpenBSD, take a look at https://github.com/8com/opencanary.
Run
OpenCanary is started by running:
$ . env/bin/activate
$ opencanaryd --start
On the first run, instructions are printed that will get to a working config.
Samba Setup (optional)
The Samba OpenCanary module monitors a log file produced by the Samba full_audit VFS module. Setup relies on:
- Having Samba installed.
- A modified Samba config file, to write file events to syslog's LOCAL7 facility.
- A modified syslog file, to output LOCAL7 to a samba-audit.log file.
As template Samba config, modify the following and install it to the right location (often /etc/samba/smb.conf). The lines you'll likely want to change are:
- path
- workgroup
- server string
- netbios name
- [myshare]
- comment
[global]
workgroup = WORKGROUP
server string = blah
netbios name = SRV01
dns proxy = no
log file = /var/log/samba/log.all
log level = 0
syslog only = yes
syslog = 0
vfs object = full_audit
full_audit:prefix = %U|%I|%i|%m|%S|%L|%R|%a|%T|%D
full_audit:success = pread
full_audit:failure = none
full_audit:facility = local7
full_audit:priority = notice
max log size = 100
panic action = /usr/share/samba/panic-action %d
#samba 4
server role = standalone server
#samba 3
#security = user
passdb backend = tdbsam
obey pam restrictions = yes
unix password sync = no
map to guest = bad user
usershare allow guests = yes
[myshare]
comment = All the stuff!
path = /home/demo/share
guest ok = yes
read only = yes
browseable = yes
#vfs object = audit
Configure syslog to write the Samba logs out to the file that OpenCanary monitors. With rsyslog, adding these two lines to /etc/rsyslog will do that:
$FileCreateMode 0644
local7.* /var/log/samba-audit.log
For other syslog implementations similar lines might work.
Metadata
Release files for patron-it-opencanary 0.7.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| patron-it-opencanary-0.7.1.tar.gz | 3.1 MB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| patron_it_opencanary-0.7.1-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details |
Total release size: 6.3 MB
Release files / patron-it-opencanary-0.7.1.tar.gz
| Download URL | patron-it-opencanary-0.7.1.tar.gz |
|---|---|
| Size | 3.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c4f975850b00ac9e7395f34eb5282f67a09afa895d91e06e0ce040aacd49e54d
|
|
BLAKE2b-256 checksum How to use checksums |
973cf99870c3a95b10d43e36b1f5351902f99feaabf90a9bf07eae83580be7ab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.3
|
Release files / patron_it_opencanary-0.7.1-py2.py3-none-any.whl
| Download URL | patron_it_opencanary-0.7.1-py2.py3-none-any.whl |
|---|---|
| Size | 3.2 MB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
aa29eb50198726fecbf2d77f2329be5e251e29b692336b21dbe1595b5368e4b3
|
|
BLAKE2b-256 checksum How to use checksums |
f8e42f7118c6d61c515e24f59d3390fb9eb1f09adfb0e2740854703702dec93f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.6.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.6.3
|
Security for patron-it-opencanary 0.7.1
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.