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.
|
- 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.
|
- 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.
|
- 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
|
## 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)
|
".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.version" ".gnu.version_r" # Symbol versioning (may be needed for some shared libraries)
|
||||||
".gnu.hash" # Hash table for symbol lookup optimization
|
".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
|
# 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