Revision: 1.2
A complete description of available options is beyond the scope of this section.
For this implementation, there is no support for out-of-band data, and in fact the server implements two modes of operation: A simple, line-oriented approach is used for nodes and a mutiline approach for remote administration. Limitations such as these present us with a problem when say attempting to implement notifications for key retrievals and will be tackled in future releases.
The protocol is implemented on top of a TCP transport. Support for UDP and other methods is planned.
It has to be noted that the dictionary based generator supports file transfer over the network for files that do not exist on the nodes.
Supported ciphers at this time are:
In the same spirit of maximum control, the scheduling function also supports selective node, hash and/or run disabling, deletions and additions.
The need for recovery from malfunctioning/disconnected nodes is covered by supporting automatic cleanup from such cases. In this implementation, the keyspace previously owned by such a node is migrated to one of the live ones as soon as feasible.
This scheduler supports adaptability according to node speed; It will attempt to distribute keyspace accordingly using a linear approximation function which will aim to make all nodes conform to a settable time period between keyspace slices.
In order for the implementation to have a small memory footprint, no historical information is kept on covered keyspace; Instead, each schedule run has a starting, current and ending index. A new request for keyspace is honored by looking at the estimated efficiency of that node and incrementing the schedule's current index. In the case of recovery from dead nodes, a special state is used to keep node information around until that slice can be migrated to a live node.
| Parameter name | Option | Default value | Meaning |
| bindaddr | -b | 0.0.0.0 | The address that medussa will bind() to |
| bindport | -p | 5444 | The port that medussa will listen on |
| ident | -i | hostname | The name of the server |
| verbose | -v | 1 | Amount of feedback. Can be:
|
| N/A | -f | cwd/.medussarc | Specifies the location of the configuration file |
| N/A | -T | N/A | Configuration variable dump |
| interactive | -b | 1 | Whether medussa will background itself |
| uid | N/A | 60001 | On background operation, the uid it will run under |
| gid | N/A | 60001 | On background operation, the gid it will run under |
| pidfile | N/A | /tmp/.medussapid | On background operation, the file containing the process id |
| logmethod | N/A | stderr | Log information. Can be stderr, syslog, file |
| adminpassword | N/A | None | If set, it enables remote administration |
| motd | N/A | None | If set, the server offers a message of the day |
| Parameter name | Meaning |
| type | The type of hash (eg unixcrypt) |
| hash | The hash itself. |
| schedule* | A declaration of a schedule run. The first parameter is the keyspace generator and the second is a comma separated list of options to the generator. |
#
# Basics
#
verbose 1
adminpassword foo
motd Dysfunctional but persistent
#
# files that can be fetched
#
downloadable {
words normal stuff
rules normal stuff
/usr/dict/words system words file
}
#
# the real business. Stuff to crack
#
# test01
sha2 {
type sharaw
hash {SHA}wlp5xXkGunAns204AjDbkrvA/WQ=
schedule1 bruteforce maxlen=6,poss=tes01sdc
}
| Parameter name | Option | Default value | Meaning |
| server | -s | localhost | The address that tentacle will connect() to |
| serverport | -p | 5444 | The port that tentacle will connect() to |
| ident | -i | hostname | The name of the client, as reported to the server |
| verbose | -v | 1 | Amount of feedback. Can be:
|
| N/A | -f | cwd/.tentaclerc | Specifies the location of the configuration file |
| N/A | -T | N/A | Configuration variable dump |
| Parameter name | Option | Default value | Meaning |
| host | -h | localhost | The address that mecon will connect() to |
| port | -p | 5444 | The port that mecon will connect() to |
| verbose | -v | 1 | Amount of feedback. Can be:
|
| Module | Task |
| hashpool | delta queue for events so that nodes can be selectively enabled and disabled according to say time of day |
| hashpool | switch to hash for nodes and schedule runs |
| hashpool | serialization of client connects to lessen server load |
| hashpool | checkpoint to filesystem support |
| hashpool | node slice might overflow the integer; switch to key_index_t |
| generator | redesign of the api so that we can batch generate attempts |
| generator | optimization, get rid of divs, mods, creating and destroying stuff |
| generator | need to be able to list out generator names being available |
| cli | optional readline support |
| cli | help system |
| method | SSL cracking |
| method | NT lanman and NT native cracking |
| method | need to be able to list out method names being available |
| bruteforce | character frequency tables |
| hash | massage api so that it looks like an array |
| tentacle | multiple cpu detection and forking |
| tentacle | implementation of a tentacle hive: a tentacle proxy |
| net | optional SSL for transport |
| net | out of band notifications for successful key retrievals |
| net | pipelined requests and responses |
| net | implement support for unreliable transports |
| net | implement UDP transport |
| medussa | last modification time support for downloadable files |
| medussa | Estimate initial cps for each method at startup |
| mecon | default schedule runs: will only need to supply a hash |
| mecon | range support for schedules |
| web server | Write a simple web server for medussa |
| web server | HTTP as transport, allows the use of nodes behind firewalls |
| web server | read only status via HTTP, allows remote monitoring |