/flea

后门程序

Primary LanguageC

FLEA

flea是通过栈溢出进行远程代码执行的木马程序

目前该项目仅仅实现了全部功能的1%不到,所以暂时先不要指望该程序存在任何有价值的功能和

用途

该程序主要用于对Win32逆向、Intel i386汇编、Linux SUS的学习研究,希望有兴趣和专业伙计

加入进来,一起完善

执行过程

  • 对肉鸡ZH的控制分三个过程:
  1. ZH每隔一段时间向远程控制主机CH发出ICMP ECHO REQUEST 请求,请求格式如下
+-------+--------+--------------+--------------------+
| salt  | mark   |OS identifier |   hostname         |(共16B)
+-------+--------+--------------+--------------------+
    1B     1B         4B                 10B
  • salt[1B]:盐,或称种子,用以将其与以上表8b处逐字节异或编码

  • mark[1B]:合法性检查标记,常量0xEA,在控制端CH收到的REQUEST请求解码后与0xEA比对,不

匹配则放弃

  • OS identifier[4B]:操作系统识别码,作用是根据不同的识别码选择不同版本的payload,具体

结构如下

+---------+-----------+-----------+-------------------------+
|iswow64  |osver:major|osver:minor|        osver:build      |(4B)
+---------+-----------+-----------+-------------------------+
0         1           8           16                        31
  • hostname[10B]:主机名,作用是控制端CH在回应任何请求前获取被控主机的基本标识

在异或编码之后,将16字节数据拆分为32字节,拆分方法为将1B,以4位为一个单位拆分为2B,前

后顺序不变,第一字节+='a',第二字节+='k',保证最终的32字节数据为a到z 的可打印字符

  1. CH接收到ECHO REQUEST请求后,解码数据,通过os identifier,搜索数据库,找出对应该操作系统版本的payload,该payload功能是提供一个稳定的与控制端CH的网络连接(考虑用KCP等UDP稳定协议封装),以及LoadLibrary,GetProcess等基础的系统函数 等执行环境,之后通过ECHO REPLY将payload发送到ZH,导致ZH溢出并执行该payload

  2. ZH执行payload后,创建于CH的稳定网络连接,接收远程发送来的payload可执行数据,创建线程并执行