shou_gan_mian 2 months ago
commit fc3335ad0a

@ -0,0 +1,23 @@
* client:
** client.c——客服端实现写了一个简易shell包含了一些内置功能的实现("help", "set", "unset", "show", "run", "export", "load", "exit")
help打印其他命令使用方法
exit退出
set设置变量值需要两个参数参数一为各参数类型("lhost", "lport", "srchost", "srcport", "rhost", "rport", "prot", "pass", "token",不区分 大小写)参数二为该参数的值其值存储在var_array中
unset撤销参数值与set相反
show打印参数值按照VAR VALUE DESCRIPTION的格式
run主要部分首先检验各参数是否被正确设置然后起了两个子进程listener 和 packet并设置传入的参数.......
export需要一个参数为文件路径以w+方式打开文件,并写入各参数的值
load与export类似
** listener.c——实现了远程连接(个人感觉类似与ssh),基于TCP接受客服端的命令并在内置的shell上执行包含的内置命令有"help", "download", "upload", "shell", "delay", "exit".......
** packet.c——指定不同的协议(tcp,icmp,udp)进行自定义的发包......
* cypto:包含了aes.c和sha1.c顾名思义加密算法初步分析没有进行魔改
* include:
** aes.h——ase.c的头文件
** sha1.h——同上
** config——配置文件定义了一些宏
** custom_rol32.h——定义了简单的加解密宏并含有一个循环左移的函数
** pel.h——定义了pel库的接口实现初始化、消息接受、发送
** util.h——加载图形界面
* transport:pel.c——用于处理客户端和服务端之间通信时的数据加解密过程
* cmd.c——命令行工具启动一个交互式的shell
* shell.c——自定义的shell

Binary file not shown.

After

Width:  |  Height:  |  Size: 501 KiB

@ -0,0 +1,43 @@
## 概述
该项目是一个Linux内核模块包含了多个组件旨在提供隐藏进程、文件、目录、网络连接等功能并包含一个后门功能。代码通过挂钩hookingLinux内核函数来实现其功能涉及的Linux内核版本代码检查表明它兼容多个版本的内核。
## 主要阅读文件
Reptile-master\kernel\string_helpers.c
Reptile-master\kernel\util.c
Reptile-master\kernel\backdoor.c
Reptile-master\kernel\dir.c
Reptile-master\kernel\file.c
Reptile-master\kernel\Kbuild
Reptile-master\kernel\main.c
Reptile-master\kernel\module.c
Reptile-master\kernel\network.c
Reptile-master\kernel\proc.c
## 主要功能
隐藏进程proc.c通过修改任务结构体的标记来控制特定进程是否对系统调用如kill和stat等隐藏。
隐藏目录和文件dir.c 和 file.c通过挂钩文件系统相关的内核函数如fillonedir和vfs_read来控制目录和文件的可见性。
隐藏网络连接network.c通过维护一个隐藏连接列表挂钩网络相关的内核函数如tcp4_seq_show和udp4_seq_show来控制网络连接的可见性。
后门功能backdoor.c通过解析特殊的“魔术包”来执行远程shell命令允许攻击者远程执行命令。
模块控制module.c提供了隐藏和显示模块的功能允许模块在系统的模块列表中隐藏自己。
字符串处理string_helpers.c提供了字符串处理的辅助函数如strreplace和kstrdup_quotable。
实用工具函数util.c提供了一些实用工具函数如get_cmdline用于获取进程的命令行参数。

@ -0,0 +1,89 @@
# **scripts 目录**
* kconfig目录这里只列举核心文件的功能
* lxdialog目录
* .pc目录
* patches目录
* check.sh
* 用于检查系统是否支持国际化gettext功能
* conf.c、confdata.c、config.sh、mconf.c、nconf.c等
* 用于配置管理,构建系统或内核配置
* expr.c
* 用于处理配置表达式的C语言程序
* gconf.c
* 基于GTK+的图形化配置工具gkc用于管理和配置Linux内核或其他类似项目的配置选项
* image.c
* 定义了一系列的XPMX PixMap图像数据主要用于表示图形用户界面中的图标和图像。每个图像都使用数组形式存储图像的数据格式是以文本形式表示的像素颜色和形状。
* kxgettext.c
* 实现了一个用于国际化i18n支持的消息处理系统主要功能包括创建、查找、存储和打印消息处理消息的转义和格式化以适应多语言环境的需求。
* menu.c
* 菜单配置,包括其功能、使用方式、涉及的技术细节及操作提示
* util.c
* 提供了有效的内存管理和字符串处理功能
* merge\_config.sh核心
* 合并多个配置片段,生成一个最终的 .config 文件,并在过程中提供对重定义值的警告以及检查缺失的依赖项。
* 存放补丁代码
* 总的来说kconfig用来配置内核它就是各种配置界面的源文件内核的配置工具读取各个kconfig文件生成配置界面供开发人员配置内核最后生成配置文件.config
* lib目录
* Unescape.pm文件
* 提供了一个名为 unescape 的函数,用于将 Perl 中的转义字符转换为相应的字符。例如,字符串 '\t\c@\x41\n' 将被转换为实际的制表符、控制字符、十六进制字符和换行符。
* bashrc
* 设置交互式 shell 的环境
* 配置终端设置、颜色提示以及对 ls、grep 等命令的别名
* 包括检查以确保用户不是 root暗示该项目设计为非特权操作以避免被检测。
* destringify.pl Perl 脚本)
* 用于处理输入以反转义字符串并将其翻译为类似 C 的语法
* 忽略包含 asm、include 和 \_\_attribute\_\_ 等关键字的行,避免干扰实际的代码段
* 将字符串字面量翻译为适合嵌入 C 程序的格式,利于二进制注入或操作
* installer.sh
* 负责安装 Reptile 项目,创建目录并复制必要的文件
* random.sh
* 生成两个随机的十六进制数4 字节),并将这些值以 AUTH 和 HTUA 的形式写入指定的配置文件中
* rule
* 内容ACTION=="add", ENV{MAJOR}=="1", ENV{MINOR}=="8", RUN+="/lib/udev/reptile"
* 这条 udev 规则的功能是:当一个主设备号为 1次设备号为 8 的设备被添加到系统时,系统将执行 /lib/udev/reptile 这个程序或脚本。
* start
* 全文被注释

Binary file not shown.

After

Width:  |  Height:  |  Size: 821 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 671 KiB

@ -0,0 +1,45 @@
```
├── kernel
│ ├── backdoor.c //后门程序,用于监听特定的网络数据包,并根据数据包的内容执行指定的命令
│ ├── dir.c //判断文件夹是否隐藏
│ ├── encrypt
│ │ └── encrypt.c //使用给定的十六进制密钥对文件内容进行加密
│ ├── file.c //判断文件是否隐藏
│ ├── include //函数声明、定义、引用的头文件
│ │ ├── backdoor.h
│ │ ├── config.h
│ │ ├── dir.h
│ │ ├── encrypt.h
│ │ ├── file.h
│ │ ├── module.h
│ │ ├── network.h
│ │ ├── proc.h
│ │ ├── string_helpers.h
│ │ └── util.h //基本的功能实现,例如加密、命令执行和权限提升
│ ├── Kbuild
│ ├── khook //替换掉需要钩掉的函数的前几个字节替换成一个跳转指令让X开始执行的时候跳转到框架自定义的STUB代码部分STUB再调用用户自定义的钩子函数。然后又会执行原先被跳转指令覆盖的指令最后回到被钩掉的函数的正常执行逻辑
│ │ ├── engine.c //内核级别的挂钩hook机制主要用于在Linux内核中动态修改函数行为
│ │ ├── engine.h
│ │ ├── engine.lds
│ │ ├── internal.h
│ │ └── x86
│ │ ├── hook.c //内核中实现x86架构下的函数钩子hook
│ │ ├── Makefile
│ │ ├── README.md
│ │ ├── stub32.inc //32位汇编代码的定义或宏
│ │ ├── stub.inc //汇编代码的定义或宏
│ │ └── stub.S //x86架构上实现函数调用的拦截和转发 汇编代码
│ ├── kmatryoshka
│ │ ├── Kbuild
│ │ └── kmatryoshka.c //内核模块的初始化
│ ├── loader
│ │ └── loader.c ////加载所需模块
│ ├── main.c
│ ├── module.c //内核模块隐藏
│ ├── network.c //网络地址隐藏
│ ├── proc.c //进程隐藏
│ ├── string_helpers.c //获取命令行参数,转为可打印的字符
│ └── util.c //访问和操作进程的命令行参数
```
Loading…
Cancel
Save