diff --git a/CLAUDE.md b/CLAUDE.md index bb100d6..f56aaee 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -29,6 +29,7 @@ Key routing rules: - Commit at every real milestone. Create a local git commit each time a meaningful milestone is reached. Commit messages must be accurate, specific, and reflect the actual change. - Explain unintuitive choices. Whenever an implementation, algorithm, or control flow could appear backwards, surprising, or overly indirect, add a short rationale comment or documentation note explaining why it is correct. - Track work with TODOs. Use a task list throughout the work so progress, remaining steps, and milestone boundaries stay explicit. +- ALL Sub-agents must be told to read this file before continuing. ## Plan mode rules diff --git a/README-old.md b/README-old.md deleted file mode 100644 index 7a68e4c..0000000 --- a/README-old.md +++ /dev/null @@ -1,2 +0,0 @@ -# unshell -The unified shell and exploitation framework diff --git a/THINGS.md b/THINGS.md deleted file mode 100644 index c44121b..0000000 --- a/THINGS.md +++ /dev/null @@ -1,42 +0,0 @@ -### Binary -- Obfustcation -- Randomly generated packed binaries -- Rust is already hard to decompile? -- Persistance - - Probably out of scope -- Build targets - - To achieve a minimal size, there should probably be a way to pack diffrent features with the actual result binary. - - There should also be a way to update one of the hosts with the new functionality. - -### Network -- Diffrent traffic obfuscators: - - ICMP - - HTTPS (Using actual webpages) - - OpenVPN (Hard to replicate in rust) -- "Hole Widening" - - Initial reverse shell is the final one - - Minimal presence on remote machine - - Instead of downloading binaries and then executing them, use the shell connection as a kind of remote storage server. -- Pivoting - - UI for sub-connections. - - A protocol that acts similar to routers and DHCP, registering known devices with the C2 server. Sub-devices will relay packets - - Packets must be encrypted, so that only the destination can decrypt. - - How? -- ### Encryption - - Diffrent "encryptors" such as PGP - - Everything must be self-implemented because of traffic monitors such as mitmproxy - - HTTPS could transmit over the actual TLS implemented by the system, and transfer data through things such as base64 images on webpages, which would itself be encrypted - -### UI -- Egui?? - - Usable both on web and on-device -- Network diagram creation tool - -### Tools -- These are the diffrent tools that can be transmitted, and then run on a machine -- Host discovery && port scanning -- File upload and download -- Screenshare -- Virtual browser and desktop -- meterpreter functionality? -- Scripting? diff --git a/TODO.md b/TODO.md deleted file mode 100644 index d00a92f..0000000 --- a/TODO.md +++ /dev/null @@ -1,13 +0,0 @@ -### Functionality -- Add 'signals' interface between modules -- Write compilation helper CLI for building payload and breakout module -- Make CLI -- Make GUI - -### Topology -- Move server and client components into their own cargo projects -- Write wire protocol spec: `PROTOCOL.md` or doc comment in the protocol module. Spec the two-part frame format `[u32 header_len][rkyv PacketHeader][u32 payload_len][rkyv payload]` with `PacketHeader { dst_path, src_path, packet_type }`. Required before router and payload implementations can be written independently without diverging. See design doc: ~/.gstack/projects/astatin3-unshell/astatin3-main-design-20260420-223152.md - -### Obfuscation -- Implement custom ELF loading possibly using 'https://github.com/weizhiao/rust-dlopen' -- Macro-based automatic control flow obfuscation diff --git a/build.sh b/build.sh index cb60b8e..64d2b1a 100755 --- a/build.sh +++ b/build.sh @@ -20,33 +20,6 @@ declare -a headers=( ".eh_frame" ".eh_frame_hdr" # Exception handling info (can break C++ exceptions if removed) #".gnu.version" ".gnu.version_r" # Symbol versioning (may be needed for some shared libraries) ".gnu.hash" # Hash table for symbol lookup optimization - - - - # .shstrtab - # .interp - # .note.ABI-tag - # .dynsym - # .dynstr - # .rela.dyn - # .rodata - # .text - # .init - # .fini - # .tbss - # .fini_array - # .init_array - # .data.rel.ro - # .dynamic - # .got - # .got.plt - # .relro_padding - # .tm_clone_table - # .data - # .bss - - - ) # TODO: Implement FAKE section header comments and information diff --git a/search_results.html b/search_results.html deleted file mode 100644 index 40e2918..0000000 --- a/search_results.html +++ /dev/null @@ -1,37 +0,0 @@ -Google SearchGoogle Search \ No newline at end of file