2个版本
0.1.1 | 2023年9月14日 |
---|---|
0.1.0 | 2023年2月19日 |
#32 in #noise
20KB
315 行
Ghost_Shell
Ghost Shell是一个轻量级且快速的远程shell,为客户端和服务器之间提供安全的通信。通信信道使用Noise_NNpsk0_25519_AESGCM_SHA256噪声协议加密,并使用SHA256生成预共享密钥。
噪声协议为构建加密通道提供了一个框架,Ghost Shell使用它来确保客户端和服务器之间的通信安全。预共享密钥通过SHA256哈希函数生成,确保安全密钥交换。加密算法AES-GCM提供带有附加数据的认证加密(AEAD),确保数据完整性、真实性和机密性。这些措施提供了端到端安全,保护免受监听、篡改和伪造消息的威胁。
需求
Rust(1.48或更高版本)
构建和运行
要构建项目,运行以下命令
git clone https://github.com/unclesp1d3r/ghost_shell.git
cd ghost_shell
cargo build --release
要运行服务器,使用以下命令并传递密码作为第一个参数
./target/release/server <password>
要运行客户端,使用以下命令并传递密码作为第一个参数
./target/release/client <password>
连接到服务器后,客户端可以向服务器发送shell命令,服务器将执行命令并将输出返回给客户端。客户端还可以通过发送退出命令来退出连接。
支持命令
Ghost Shell目前支持以下命令
echo
:回显提供的参数。exec
:在服务器上执行命令并返回输出。exit
:退出远程shell并终止连接。
未来可能还会添加其他命令。
安全
Ghost Shell使用Noise_NNpsk0_25519_AESGCM_SHA256噪声协议加密客户端和服务器之间的通信信道。此协议提供端到端安全,保护免受监听、篡改和伪造消息的威胁。
Noise_NNpsk0_25519_AESGCM_SHA256协议使用椭圆曲线Diffie-Hellman密钥协商和Curve25519,这是一种强大且高效的密钥交换机制。预共享密钥通过SHA256哈希函数生成,确保安全密钥交换。加密算法AES-GCM提供带有附加数据的认证加密(AEAD),确保数据完整性、真实性和机密性。
注意事项
虽然我们已经采取了措施来确保通信通道的安全性,但需要注意的是,没有任何安全解决方案是万无一失的。因此,Ghost Shell可能容易受到暴力破解密码或针对特定实现的攻击。
此外,Ghost Shell仍在开发中,尚未经过任何形式的审计。因此,我们不推荐在生产环境中使用它,除非首先进行全面的安全审查。
贡献
我们欢迎以拉取请求的形式为Ghost Shell做出贡献。如果您发现了一个错误,或对新的功能有想法,我们鼓励您提交一个拉取请求。在提交拉取请求之前,请确保您的代码遵循Rust编程语言风格指南,并且通过了所有测试。
要提交拉取请求,请分支仓库,进行更改,然后提交拉取请求。我们将审查您的更改并提供反馈。如果您的更改被接受,我们将将其合并到主分支。
免责声明
请注意,Ghost Shell是一个为了教育和研究目的而创建的业余项目。它不应用于恶意目的,我们不赞成使用此软件进行任何非法或不道德的活动。
许可证
本项目采用MIT许可证。有关详细信息,请参阅LICENSE文件。
依赖关系
~11–22MB
~379K SLoC