sudosammy/knary
A simple HTTP(S) and DNS Canary bot with Slack/Discord/MS Teams/Lark/Telegram & Pushover support
30 Releases
Latest: 1mo ago
Dependancy Bump π€·v3.5.1Latest
π Changes
- Bump dependancies
- Bump compiled versions to `go1.26.3`
Still here! β€οΈv3.5.0
π Changes
- Removed `BURP_*` configuration in favor of `REVERSE_PROXY_*` configuration. See `examples/` for new config
- Fix fuzzy "Host" header matching causing unexpected "Host" header results
- Supress noisy reverse proxy errors by default
- Bump dependancies
- Bump compiled versions to `go1.26.1`
DDDependancies & reverse proxy fixv3.4.13
π Changes
- Fix issue with reverse proxying breaking non-proxied requests to knary
- Bump dependancies
- Bump compiled versions to `go1.25.3`
Bug smashing & test coverage πv3.4.12
π Changes
- Closes https://github.com/sudosammy/knary/issues/85
- Closes https://github.com/sudosammy/knary/issues/84
- Closes https://github.com/sudosammy/knary/issues/83
- Closes https://github.com/sudosammy/knary/issues/82
- Bump dependancies
- Bump to `go version go1.24.5`
- Increase test coverage
MKGA π§’v3.4.11
π Changes
- SAN bugfix by @riramar - thanks mate!
- Bump dependencies
- Bump `go1.24.2`
Dependancy Bump πΈv3.4.10
π Changes
- Bump golang dependancies
- Bumped compiled binaries to `go 1.24.0`
Dependancy Bump π€v3.4.9
π Changes
- Bump golang dependancies
- Bumped compiled binaries to `go 1.23.0`
- Added a couple more tests & cleaned up some old ones
Dependancy Bump π‘v3.4.8
π Changes
- Bump golang dependencies to close #67 #68
- Bumped compiled binaries to `go 1.22.1`
Allowlist & User-Agent bugfix πv3.4.7
π Changes
- Fixed bug in allowlists which prevented them from working unless the request User-Agent was also in the allowlist. Thanks for reporting, Brez
- Fixed `User-Agent:` prefix not showing in webhook notification messages
- Bumped dependencies
- Bumped compiled binaries to `go1.21.4`
- Updated README to better explain allow/denylist order of precedence & specify building knary requires `golang >=1.20` now
Update dependancies π©βπ¬v3.4.6
π Changes
- Updates knary dependancies
- Fixes go module error from last release
Better control over posts to webhooks π£v3.4.5
π Changes
- Added configurations to better control webhook posts: `NO_HEARTBEAT_ALERT`, `NO_UPDATES_ALERT` & `NO_CERT_EXPIRY_ALERT`
- Attempted to fix the go module π€·
- Refreshed telemetry
- Deprecated `BURP_*` config in favour of new `REVERSE_PROXY_*` config. Added various examples of this
- Spelling fixes
- Refreshed Dockerfile, docker-compose, and circleci config
- Added some tests for zones
- Bumped compiled binaries to `go1.20.5`
Zone file bugfix πv3.4.4
π Changes
- Fixed issue that occured when using a custom zone file with multiple entries for the same FQDN
- Bumped go version of compiled builds to `go1.20.2`
Added --help & support for full request outputsv3.4.3
π Changes
- Added `--help` / `-help`
- Added support for the complete HTTP request to be posted to the webhook with the use of `FULL_HTTP_REQUEST` - Thanks @pimps
- Bumped to `go1.19.5`
Golang Module Fix π€·ββοΈv3.4.2
π Changes
- Fix the use of `go install` for knary (hopefully!). This release does not make significant code changes if you are already running knary.
Certificate location parsing bugfix πv3.4.1
π Changes
- In `v3.4.0` certain configurations would cause knary to look for certificates in an unexpected location & generate LE certificates into an unexpected location. This patch addresses these issues and strengthens how knary parses certifcate paths.
Multiple knary domains, allowlists, and Telegram support π±βπ€v3.4.0
π Changes
- Added support for multiple knary domains! Even with Let's Encrypt! (Up-to 100 certificates)
- Added allowlist functionality. Configuration `ALLOWLIST_FILE` & optionally `ALLOWLIST_STRICT`
- Added Telegram support: https://telegram.org/ (thanks @riramar)
- Fixed a bug that prevented BYO certificates outside of `certs/`
- Fixed a bug that prevented renewed certificates (Let's Encrypt or `TLS_*` set) from being applied until a knary restart. Now knary will detect the certificate change and reload
- Fixed IP address in `From:` HTTP(S) requests when Burp Collab is used.
- Lot's of documentation updates
- Swap TravisCI to CircleCI
Fixed Let's Encrypt Automatic Renewal πv3.3.1
π Changes
- Fix Let's Encrypt Automatic Renewal
- Update Travis CI config to reflect knary requires go >=1.16 now
- Bump go version to `1.17` for compiled releases
Wow! I can still use a computer? πv3.3.0
π Changes
- Letβs Encrypt support right out of the box! Just `LETS_ENCRYPT=<email addr>` in your config
- No more need to have *.dns. prepended to subdomains you want DNS alerting to
- Itβs now possible to run knary only on port 80 and not worry about supporting HTTPS
- Support for zone files for creating custom DNS responses from knary
- Support alerting on A, AAAA, CNAME, and TXT DNS lookups
- Support hosting with an IPv6 address! Probably! I dunno. I didnβt test it lol
- Updated Dockerfile & improved instruction around using knary in containers
- Bettered the documentation
- + 7 more
Added Lark Support π₯¬v2.3.3
π Changes
- Added Lark support: https://www.feishu.cn/
- Bump go version to `1.15.7` for compiled releases
TLS expiry warning now works for expired certificates πv2.3.2
π Changes
- The daily TLS expiry check would stop alerting you when the certificate eventually expired. That was inconvenient, so now it keeps reminding you
- Bump go version for compiled releases to `1.15.2`
We'll ACTUALLY remind you we're still alive πv2.3.1
π Changes
- Fixed bug in maintenance task timer so they actually run. Doh!
- Added more debug statements and `INFO` logging to notify when knary maintenance tasks run
- Bump go version to `1.14.4` for compiled releases
We'll remind you we're still alive β€v2.3.0
π Changes
- On launch and then weekly, knary will message webhooks to remind of the domains in the blacklist among some other things
- All outgoing HTTP requests now have sane timeouts
Blacklist is now case-INsensitive βΎv2.2.4
π Changes
- Domains in the blacklist were case sensitive. DNS isn't case sensitive though, so now the blacklist entries are case insensitive
Now it works with Discord! πv2.2.3
π Changes
- Fixed #20 by removing carriage returns and escaping new lines in webhook messages. This only affected Discord.
Bug murdering & spec aligning πv2.2.2
π Changes
- Closed #17 thanks @lo-sec
- Added support for `HEAD` and `CONNECT` type HTTP requests
- Changed expiring cert reminder to 10 days from 5
- Compiled binaries now use `go1.12.6`
TLS improvements πv2.2.1
π Changes
- Upcoming certificate expiry check! knary will now alert if the canary certificate is expiring in <= 5 days
- Improved error output on TLS errors at launch
- Checking for updates on launch is now better timed for the UI
- Removed `TIMEOUT` from config options
- go-routined analytics push to stop it blocking when server is offline
MS Teams Support & Bug fixes! πv2.2.0
π Changes
- MS Teams webhook support
- Made log file format follow best practice
- Added a LICENSE!
- Support request size up to 4kb
- Added analytics
- Upgraded binaries to Go 1.12 to patch: https://github.com/golang/go/issues/30794
- dos2unix fix for test_knary script
Better blacklist alerting πv2.1.0
π Changes
- New feature: alerting on old blacklist items!
- Revamped blacklist checking for efficiencies
- Better notifications if checking for updates fail
v2 release! ππv2.0.0
π Changes
- Docker support!
- Burp Collaborator support!
- Discord and Pushover Applications support!
- Stronger blacklisting controls!
- Bug fixes!
Automatic version check bug fix π
v1.1.1
π Changes
- Fixed #3 and removed cron dependency
- Added `build.sh` for guidance on building knary from source
- Updated picture in README
