Advanced Anti-Forensics & System Artifact Management Tool
Project description
ShadowStep
ShadowStep is a professional-grade, modular toolkit for artifact management, metadata manipulation, and system sanitization. It is designed as a developer-focused framework for automating and testing cover-track workflows in authorized, legal, and controlled environments.
Key design goals:
- Modular components with clear responsibilities.
- Cross-platform awareness (Windows, Linux, macOS) with safe fallbacks.
- Auditability and testability for research and red-team exercises.
This README documents the project structure, modules, CLI usage, installation, development workflow, and an explicit security & ethics notice.
Table of Contents
- Project Overview
- Features
- Modules & Files
- Installation
- Configuration
- CLI Usage & Examples
- Development & Testing
- Packaging
- Security, Ethics & Legal Notice
- Roadmap
- Contributing
- License
Project Overview
ShadowStep provides a set of cooperative utilities for managing system artifacts and metadata. The tool is intended for use by security professionals, researchers, and system administrators who need to understand and test artifact lifecycles. The project is not intended to facilitate malicious activity — see the Security & Ethics section.
Features
- Secure file deletion with configurable overwrite passes (
utils/shredder.py). - Timestamp manipulation / timestomping for analysis and testing scenarios (
core/forensic_view.py). - System trace cleaning helpers: clipboard, shell history, DNS cache, RAM & swap handling (
core/janitor.py,core/memory_cleaner.py). - Network identity utilities (MAC generation/change; Linux-focused) (
core/network_utils.py). - Surgical log operations (text-based logs on Linux/macOS, structured handling for Windows Event Logs) skeleton (
core/log_surgeon.py). - Centralized, colorized logging support (
utils/logger.py,utils/colors.py). - Simple YAML-based configuration (
config/default.yaml) with a loader inconfig/__init__.py.
Modules & Files
shadowstep.py— main CLI entry module and argument routing. Installable viasetup.pyentry pointshadowstep=shadowstep:main.core/forensic_view.py—TimeStomperclass: cross-platform timestamp manipulation functions.core/log_surgeon.py—LogSurgeonclass: surgical cleaning and (safe) decoy injection strategies; designed with platform checks.core/janitor.py—Janitorclass: higher-level cleanup orchestration (clipboard, history, DNS, logs).core/memory_cleaner.py—MemoryCleanerclass: RAM & swap utilities (relies onpsutilwhen available).core/network_utils.py—NetworkManagerclass: MAC generation and Linux-focused MAC change functionality.utils/shredder.py—secure_delete()function: overwrites and deletes files.utils/logger.py&utils/colors.py— logging and color helpers.config/default.yaml— default configuration values (app metadata, logging level, shredder defaults, network defaults).
Installation
Recommended: create and use a Python virtual environment.
python -m venv .venv
source .venv/bin/activate # macOS / Linux
\.venv\Scripts\activate # Windows (PowerShell)
pip install -r requirements.txt
pip install -e .
After installing with pip install -e ., the shadowstep console script will be available on your PATH and resolves to shadowstep:main.
Configuration
Default configuration is located in config/default.yaml. The project loads this YAML at import time via config/__init__.py. Example config fields include:
app.versionandapp.environmentlogging.levelandlogging.file_pathshredder.default_passesandshredder.methodnetwork.spoof_oui
Override configuration by editing config/default.yaml or by providing a different loader in your own environment when embedding the library.
CLI Usage & Examples
ShadowStep exposes a single-script CLI. Run shadowstep --help after install, or invoke directly via the module:
python -m shadowstep --help
Common commands and examples:
- Secure delete a file (default 3 passes):
shadowstep --shred /path/to/secret.txt
- Change file timestamps using a reference file:
shadowstep --timestomp /path/to/target.file --ref /path/to/reference.file
- Run janitor to clear shell history, clipboard, DNS, RAM & swap (platform-dependent):
shadowstep --clean
- Surgical log sanitize (text log on Linux/macOS or Event Logs on Windows):
shadowstep --sanitize /var/log/syslog --keywords password admin # Linux/macOS
shadowstep --sanitize --keywords "sensitive-hostname" "username" # Windows (Event Log handling)
Notes and caveats:
- Many operations require elevated privileges (root/Administrator). The tool will log warnings or fail gracefully if permissions are insufficient.
- Platform behavior intentionally differs where OS constraints exist (e.g., creation time on Linux cannot be set via
utime).
Development & Testing
Run unit tests (project includes tests/):
python -m unittest discover tests
Linting and formatting recommendations:
pip install -r requirements-dev.txt # if you maintain a dev requirements file
black .
flake8 .
Project packaging and entry points are defined in setup.py. Use pip install -e . to install in editable mode during development.
Packaging
The setup.py declares shadowstep as a package and exposes a console script entry point. To build a wheel:
python -m pip wheel .
For a standalone binary, tools such as PyInstaller can be used, but be mindful of platform-specific dependencies and administrative requirements.
Security, Ethics & Legal Notice
ShadowStep contains functions that may be misused. You must not use the project to commit unauthorized or illegal activity. Use this software only in environments where you have explicit written authorization (e.g., your own lab, sanctioned red-team exercise, or customer engagement with a signed rules-of-engagement).
By using or contributing to this project you agree to follow applicable laws and obtain appropriate authorizations. The authors and maintainers are not responsible for misuse.
Roadmap
Planned and suggested improvements:
- Harden and formalize
log_surgeonwith non-destructive simulation modes and improved Windows Event Log handling. - Add platform-specific safe-check flags and a dry-run mode that reports intended changes without applying them.
- Expand tests and add integration tests for privileged operations (mocked where appropriate).
- Implement pluggable backends for log formats and better decoy generation templates.
- Add a
--sanitize-policyfeature to define reusable cleanup profiles.
Contributing
Contributions are welcome. Recommended workflow:
- Fork the repository.
- Create a feature branch:
git checkout -b feature/my-feature. - Add tests for new behavior.
- Run the test suite and linters.
- Submit a pull request with a clear description and rationale.
Please keep changes focused and well-tested. Document breaking changes in PR descriptions.
License
This project is provided under the MIT License. See LICENSE for details.
Acknowledgements
ShadowStep was authored and maintained by contributors. The project bundles several third-party helper libraries — see requirements.txt and setup.py for runtime dependencies.
If you want, I can:
- Expand any module-specific documentation in this README (API signatures, examples)
- Add a
docs/folder and Sphinx/Markdown pages - Add a
SECURITY.mdandCONTRIBUTING.md
Let me know which items to continue with next.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file shadowstep-1.0.0.tar.gz.
File metadata
- Download URL: shadowstep-1.0.0.tar.gz
- Upload date:
- Size: 10.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dc67659089b4b30875a182846f6c15d8111c37e167b60fd9e2587a466c64e881
|
|
| MD5 |
dcf0b041ec2adea404454cd24bf49c91
|
|
| BLAKE2b-256 |
1f020e46766d5fb17151fc310f6caec07891807117f7c56e9a490f30ecadd44a
|
File details
Details for the file shadowstep-1.0.0-py3-none-any.whl.
File metadata
- Download URL: shadowstep-1.0.0-py3-none-any.whl
- Upload date:
- Size: 11.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.9.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
64401ffef347490651bd0fc528652adc3ed3953bd47b4cfc36a8d8f19069842a
|
|
| MD5 |
817e83cbee8f306a2796119878d6b90b
|
|
| BLAKE2b-256 |
eaec771657faf964aa0ca9952a55f7343335f6e9df226b593875e94203646d25
|