Chameleon(变色龙) 跨平台编译C文件,并一次性生成多个平台的可执行文件
地址:https://github.com/MartinxMax/Chameleon
Chameleon
跨平台编译C文件,并一次性生成多个平台的可执行文件。可以通过编译Chameleon自带的.C文件反向Shell生成不同平台攻击载荷。
登录 & 代理设置
按照以下步骤设置 Docker 的代理:
-
创建配置目录:
sudo mkdir -p /etc/systemd/system/docker.service.d sudo touch /etc/systemd/system/docker.service.d/proxy.conf
-
通过编辑
proxy.conf
文件配置代理设置:[Service] Environment="HTTP_PROXY=http://proxy.example.com:8080/" Environment="HTTPS_PROXY=http://proxy.example.com:8080/" Environment="NO_PROXY=localhost,127.0.0.1,.example.com"
-
重新加载 systemd 并重启 Docker:
sudo systemctl daemon-reload sudo systemctl restart docker
-
登录 Docker:
docker login -u <用户名>
登录时使用您的 Docker 密码或访问令牌。
构建
按照以下步骤构建 Chameleon:
-
克隆仓库:
git clone https://github.com/MartinxMax/Chameleon.git
-
进入 Chameleon 目录:
cd Chameleon
-
构建 Docker 镜像:
docker build -t chameleon .
使用方法
运行 Chameleon:
docker run --rm -v <工作目录>:/tmp chameleon -gcc <.C 文件>
要查看可用选项的帮助:
docker run --rm chameleon -h
Linux 反向 Shell
要为 Linux 编译反向 Shell:
docker run --rm -v /home/maptnh/Desktop/HTB/Chameleon/reverseshell:/tmp chameleon -gcc reverse_lin.c
输出将保存到:<工作目录>/opt
Windows 反向 Shell
要为 Windows 编译反向 Shell:
docker run --rm -v /home/maptnh/Desktop/HTB/Chameleon/reverseshell:/tmp chameleon -gcc reverse_win.c
输出将保存到:<工作目录>/opt
其他 .C 文件的跨平台编译
要编译任何其他的 C 文件,例如 “Hello World” 程序,请使用以下命令:
docker run --rm -v /tmp/hello:/tmp chameleon -gcc helloWord.c
示例 helloWorld.c
文件:
#include <stdio.h>
int main() {
printf("Hello\n");
return 0;
}
输出将保存到:<工作目录>/opt
删除镜像
运行以下命令删除镜像:
# ./rmself.sh