当前位置: 首页 > article >正文

Chameleon(变色龙) 跨平台编译C文件,并一次性生成多个平台的可执行文件

地址:https://github.com/MartinxMax/Chameleon

Chameleon

跨平台编译C文件,并一次性生成多个平台的可执行文件。可以通过编译Chameleon自带的.C文件反向Shell生成不同平台攻击载荷。

chameleon.jpg

登录 & 代理设置

按照以下步骤设置 Docker 的代理:

  1. 创建配置目录

    sudo mkdir -p /etc/systemd/system/docker.service.d
    sudo touch /etc/systemd/system/docker.service.d/proxy.conf
    
  2. 通过编辑 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"
    
  3. 重新加载 systemd 并重启 Docker

    sudo systemctl daemon-reload
    sudo systemctl restart docker
    
  4. 登录 Docker

    docker login -u <用户名>
    

    登录时使用您的 Docker 密码或访问令牌。

构建

按照以下步骤构建 Chameleon:

  1. 克隆仓库:

    git clone https://github.com/MartinxMax/Chameleon.git
    
  2. 进入 Chameleon 目录:

    cd Chameleon
    
  3. 构建 Docker 镜像:

    docker build -t chameleon .
    

image.png

使用方法

运行 Chameleon:

docker run --rm -v <工作目录>:/tmp chameleon -gcc <.C 文件>

要查看可用选项的帮助:

docker run --rm chameleon -h

imagex.png

Linux 反向 Shell

要为 Linux 编译反向 Shell:

docker run --rm -v /home/maptnh/Desktop/HTB/Chameleon/reverseshell:/tmp chameleon -gcc reverse_lin.c

输出将保存到:<工作目录>/opt

image-3.png

Windows 反向 Shell

要为 Windows 编译反向 Shell:

docker run --rm -v /home/maptnh/Desktop/HTB/Chameleon/reverseshell:/tmp chameleon -gcc reverse_win.c

输出将保存到:<工作目录>/opt

image-4.png

其他 .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

image-1.png

image-2.png

删除镜像

运行以下命令删除镜像:

# ./rmself.sh

del.png


http://www.kler.cn/a/519140.html

相关文章:

  • 数据结构(四) B树/跳表
  • 学习std::is_base_of笔记
  • 全连接神经网络(前馈神经网络)
  • 【2025年数学建模美赛E题】(农业生态系统)完整解析+模型代码+论文
  • Next.js 实战 (十):中间件的魅力,打造更快更安全的应用
  • Mono里运行C#脚本35—加载C#语言基类的过程
  • JavaScript系列(43)--依赖注入系统实现详解
  • [极客大挑战 2019]BuyFlag1
  • vue高级组件封装 element组件二次封装
  • Maui学习笔记- SQLite简单使用案例
  • 基于ESP32的桌面小屏幕实战[6]:环境搭建和软件基础
  • 一次StarRocks分析的经历
  • 第25章 测试驱动开发模式深度剖析
  • unity 粒子系统实现碰撞检测(collision)且使粒子不受力
  • tcp/ip协议和ip协议,tcp/ip协议 ip协议
  • 探索JavaScript:网页设计中的创意与实践
  • leetcode——翻转链表(java)
  • (回溯分割)leetcode93 复原IP地址
  • AI学习(vscode+deepseek+cline)
  • INMP441一款微型电容式麦克风(MEMS麦克风)
  • Zookeeper(28)Zookeeper的线性化写入和顺序一致性读是什么?
  • 代码随想录day4
  • 【论文推荐|深度学习,滑坡检测,多光谱影像,自然灾害,遥感】2022年Landslide4Sense竞赛成果:基于多源卫星影像的先进滑坡检测算法研究(一)
  • 手机app如何跳过无障碍权限实现弹框自动点击-ADB连接专题
  • Redis 详解
  • 开源智慧园区管理系统对比五款主流产品探索智能运营新模式