mirror of
https://github.com/Astatin3/unshell.git
synced 2026-06-08 22:38:01 -06:00
Clean up some of the root files.
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
# unshell
|
||||
The unified shell and exploitation framework
|
||||
@@ -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?
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user