snake case format - @lidia9

This commit is contained in:
Mery-Sanz 2025-01-10 13:07:30 +00:00
parent 131fcc491e
commit a22c03e811
9 changed files with 76 additions and 23 deletions

View File

@ -1,4 +1,4 @@
# ReverseShellTool
# ReverseShellTool
# ReverseShellSession
# ReverseShellManager
# ShellCommandExecutor

View File

@ -1 +0,0 @@
#DirbScanTool

View File

@ -1,8 +1,7 @@
# """
# Here are crypto tools
# """
# # import base64
# from cai.tools.common import run_command
"""
Here are crypto tools
"""
import base64
# # URLDecodeTool
# # HexDumpTool
# # Base64DecodeTool
@ -25,22 +24,22 @@
# return run_command(ctf, command)
# def decode64(input_data: str) -> str:
# """
# Decode a base64-encoded string.
def decode64(input_data: str) -> str:
"""
Decode a base64-encoded string.
# Args:
# input_data: The base64-encoded string to decode
# args: Additional arguments (not used in this function)
Args:
input_data: The base64-encoded string to decode
args: Additional arguments (not used in this function)
# Returns:
# str: The decoded string
# """
Returns:
str: The decoded string
"""
# try:
# decoded_bytes = base64.b64decode(input_data)
# decoded_str = decoded_bytes.decode('utf-8')
# return decoded_str
# except UnicodeDecodeError as e:
# print(f"Error decoding bytes to string: {e}")
# return f"Error decoding bytes to string: {str(e)}"
try:
decoded_bytes = base64.b64decode(input_data)
decoded_str = decoded_bytes.decode('utf-8')
return decoded_str
except UnicodeDecodeError as e:
print(f"Error decoding bytes to string: {e}")
return f"Error decoding bytes to string: {str(e)}"

View File

@ -0,0 +1 @@
# DirbScanTool

View File

@ -0,0 +1,54 @@
"""
This is a short example of how we can solve ctf scenarios programmatically. With CAI framework
"""
# 1. Instance CAI, pentestperf and tools
from cai import CAI, Agent
from cai.tools.reconnaissance.crypto_tools import *
from cai.tools.reconnaissance.nmap import *
from cai.tools.reconnaissance.netcat import *
import pentestperf as ptt
from wasabi import color
import os
# 2. Init the CTF environment
ctf = ptt.ctf(
"picoctf_reversing_python",
subnet="192.168.9.0/24",
container_name="ancient",
ip_address="192.168.9.52"
)
ctf.start_ctf()
challenges = list(ctf.get_challenges().keys())
challenge = challenges[0]
# 3. Instance the cybersecurity AI Framework client
client = CAI(ctf=ctf)
# 4. Instance the agent/agents to solve the CTF
ctf_agent = Agent(
model="qwen2.5:14b",
name="CTF agent",
instructions="You are an CTF solver agent",
functions=[netcat, nmap, decode64], # This code can execute by LLM
# parallel_tool_calls=True, Enable multi function calling
)
messages = [{
"role": "user",
"content": "Instructions: " + ctf.get_instructions() +
"\nChallenge: " + ctf.get_challenges()[challenge] +
"\nTechniques: " + ctf.get_techniques() +
"\nExtract and return only the flag"
"\nYOU MUST RETURN THE FLAG IN PLAIN TEXT"
}]
# 5. Run the CAI
response = client.run(
agent=ctf_agent,
messages=messages,
debug=True,
brief=True)
print(response.messages[-1]["content"])
ctf.stop_ctf()