mirror of
https://github.com/splunk/DECEIVE.git
synced 2025-07-02 00:57:26 -04:00
Compare commits
2 Commits
wildcard-p
...
deceive-1.
Author | SHA1 | Date | |
---|---|---|---|
fd0d8a78fc | |||
dba537c58f |
@ -93,8 +93,8 @@ Things to note:
|
||||
* `Session summary`
|
||||
* `SSH connection closed`
|
||||
* Several of these message types also feature a `details` field with additional information
|
||||
* `User input` messages contain a base64-encoded copy of the entire user input
|
||||
* `LLM response` messages contain a base64-encoded copy of the entire simulated response
|
||||
* `User input` messages contain a base64-encoded copy of the entire user input in the `details` field, as well as an `interactive` field (true/false) that tells you whether this was an interactive or non-interactive command (i.e., whether they logged in with a terminal session or provided a command on the SSH command-line).
|
||||
* `LLM response` messages contain a base64-encoded copy of the entire simulated response in the `details` field.
|
||||
* `Session summary` messages contain not only a summary of the commands, but also a guess as to what they might have been intended to accomplish. There will also be a `judgement` field that contains one of "BENIGN", "SUSPICIOUS", or "MALICIOUS"
|
||||
* Since this is a honeypot and not intended for use by real users, IT WILL LOG USERNAMES AND PASSWORDS! These are found in the `Authentication success` messages, in the `username` and `password` fields.
|
||||
|
||||
@ -102,4 +102,4 @@ Things to note:
|
||||
Contributions are welcome! Please submit pull requests or open issues to discuss any changes or improvements.
|
||||
|
||||
### License
|
||||
This project is licensed under the MIT License. See the LICENSE file for details.
|
||||
This project is licensed under the MIT License. See the LICENSE file for details.
|
||||
|
@ -195,7 +195,7 @@ async def handle_client(process: asyncssh.SSHServerProcess, server: MySSHServer)
|
||||
config=llm_config
|
||||
)
|
||||
process.stdout.write(f"{llm_response.content}")
|
||||
logger.info("LLM response 1", extra={"details": b64encode(llm_response.content.encode('utf-8')).decode('utf-8'), "interactive": False})
|
||||
logger.info("LLM response", extra={"details": b64encode(llm_response.content.encode('utf-8')).decode('utf-8'), "interactive": False})
|
||||
await session_summary(process, llm_config, with_message_history, server)
|
||||
process.exit(0)
|
||||
else:
|
||||
@ -210,7 +210,7 @@ async def handle_client(process: asyncssh.SSHServerProcess, server: MySSHServer)
|
||||
)
|
||||
|
||||
process.stdout.write(f"{llm_response.content}")
|
||||
logger.info("LLM response 2", extra={"details": b64encode(llm_response.content.encode('utf-8')).decode('utf-8'), "interactive": True})
|
||||
logger.info("LLM response", extra={"details": b64encode(llm_response.content.encode('utf-8')).decode('utf-8'), "interactive": True})
|
||||
|
||||
async for line in process.stdin:
|
||||
line = line.rstrip('\n')
|
||||
@ -231,7 +231,7 @@ async def handle_client(process: asyncssh.SSHServerProcess, server: MySSHServer)
|
||||
return
|
||||
else:
|
||||
process.stdout.write(f"{llm_response.content}")
|
||||
logger.info("LLM response 3", extra={"details": b64encode(llm_response.content.encode('utf-8')).decode('utf-8'), "interactive": True})
|
||||
logger.info("LLM response", extra={"details": b64encode(llm_response.content.encode('utf-8')).decode('utf-8'), "interactive": True})
|
||||
|
||||
except asyncssh.BreakReceived:
|
||||
pass
|
||||
|
Reference in New Issue
Block a user