1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
Script to help make sense of log output from popular SSH honeypot [Cowrie](https://github.com/cowrie/cowrie/). I think I got carried away with the specialized filtering settings. Only tested on my setup. Untested with Telnet. YMMV
# Usage
Simply point the script to a JSON log file output by Cowrie, or a folder thereof:
```
cowrieder.py <options> /path/to/your/log.json
cowrieder.py <options> /var/log/cowrie/
```
Options:
```
-h, --help show this help message and exit
-v, --verbose Make the output more verbose (print abridged logs for all logins where commands are run, not just the interesting ones)
-V, --verboser Make the output even more verbose (print timestamp, event id, and message (if applicable) for all events)
-W, --verbosest Make the output even more verboserer (just group the input log by session id and dump it to pretty-printed JSON)
-P, --pings Include only connections where no authentication attempt was made
-F, --fails Include only failed logins
-L, --logins Include only successful logins where no commands were run
-C, --commands Include only logins where only this list of basic test commands were run: ['uname', 'nproc']
-E, --eventful Include only the cool interesting sessions that aren't any of that other stuff
-r, --redact-ip Redact IP addresses by converting them to 16-character hashes
-i, --filter-ip FILTER_IP
Filter data to a specific IP or censored hash thereof
-c, --no-color Don't color-code terminal output
-s, --stats Print aggregated statistics
-S, --only-stats Print only aggregated statistics
```
# TODO
- Aggregate more stats
- Print stats on verbosity levels 2 and 3
- HTML output option
|