diff options
Diffstat (limited to 'other/adore-ng/README')
| -rw-r--r-- | other/adore-ng/README | 163 |
1 files changed, 163 insertions, 0 deletions
diff --git a/other/adore-ng/README b/other/adore-ng/README new file mode 100644 index 0000000..7a5ebee --- /dev/null +++ b/other/adore-ng/README | |||
| @@ -0,0 +1,163 @@ | |||
| 1 | Please read this! It is important. Otherwise you maybe crash your kernel! | ||
| 2 | ========================================================================= | ||
| 3 | |||
| 4 | |||
| 5 | 0. Intro | ||
| 6 | -------- | ||
| 7 | |||
| 8 | Only *YOU* are responsible for your own actions. So if you are | ||
| 9 | dumb enough to own machines and install this software on it, | ||
| 10 | only you can be blamed for it. | ||
| 11 | |||
| 12 | Do not say you have not been warned! | ||
| 13 | |||
| 14 | |||
| 15 | 1. Install by hand | ||
| 16 | ------------------ | ||
| 17 | |||
| 18 | You can skip this section if you want to use the "configure" | ||
| 19 | script. This section might be important if the configure | ||
| 20 | script does not run somehow or produces wrong output. | ||
| 21 | |||
| 22 | Edit Makefile and set proper values. | ||
| 23 | |||
| 24 | Everyone should choose an own ADORE_KEY to make it impossible to scan | ||
| 25 | for installed adore. Also ELITE_UID and ELITE_GID should be | ||
| 26 | changed to own values. | ||
| 27 | When commenting in the MODVERSIONS-switch, adore will be compiled | ||
| 28 | for modversioned kernels. Modversioned kernels have a /proc/ksyms file | ||
| 29 | that looks like | ||
| 30 | |||
| 31 | ... | ||
| 32 | foo_barR12345678 | ||
| 33 | ... | ||
| 34 | |||
| 35 | where normal kernels would look like | ||
| 36 | |||
| 37 | ... | ||
| 38 | foo_bar | ||
| 39 | ... | ||
| 40 | |||
| 41 | On some systems it can't find modversions.h. Try disabling MODVERSIONS even | ||
| 42 | when you see the symbols are version-ed. It seems to me that using MODVERSIONS | ||
| 43 | isn't necessary on newer kernels. | ||
| 44 | |||
| 45 | |||
| 46 | Hidden ports (adore-ng.h) go decimal, i.e. '2222' hides everything which belongs to port | ||
| 47 | 2222. | ||
| 48 | The tcp-hiding has been redesigned completely. It uses a technique similar to | ||
| 49 | the one described by palmers in phrack (http://www.phrack.org/show.php?p=58&a=6) | ||
| 50 | By default 2222 and 7350 are hidden. Only IPv4 (tcp4) stuff is hidden. | ||
| 51 | |||
| 52 | It is now very hard for adore-scanners to find a running adore because | ||
| 53 | it is not longer possible to chdir() or stat() PID-dirs in /proc | ||
| 54 | if PID is hidden. It is completely invisible, except to processes which | ||
| 55 | are hidden them self. | ||
| 56 | Files are now hidden using both, a ELITE_UID and a ELITE_GID which are chosen | ||
| 57 | randomly upon 'configure'. So we have 2**64 possible values which is | ||
| 58 | impossible to brute-force and thus checking for hidden files by brute-forcing | ||
| 59 | uid/gid. | ||
| 60 | |||
| 61 | Older Linux systems have a width of 16 bit for UID's and GID's, newer systems | ||
| 62 | have 32 bit. Adore supports both. Either give 4 (for 32 bit) or 2 (for 16 bit) | ||
| 63 | as argument to configure e.g. 'configure 4'. The default is 4. | ||
| 64 | |||
| 65 | |||
| 66 | Make sure SMP is enabled when it is in kernel. | ||
| 67 | Don't forget to recompile when you changed Makefile. | ||
| 68 | Two 'makes' may produce two different adore's that maybe can't | ||
| 69 | interact (i.e. further hidden-files are visible now due to UID-change). | ||
| 70 | For this reason, the Makefiles are backed-up to allow a restore. | ||
| 71 | |||
| 72 | |||
| 73 | |||
| 74 | 2. Install by script | ||
| 75 | -------------------- | ||
| 76 | |||
| 77 | Run configure-script. | ||
| 78 | Script should give you some messages which uid's are used etc. | ||
| 79 | View Makefile to see if everything is fine. Edit adore-ng.h to meet | ||
| 80 | with your services you want to hide. Defaults to port 2222 and 7350. | ||
| 81 | Do 'make'. | ||
| 82 | "insmod ./adore.o" as root. | ||
| 83 | Use "ava" to hide files, processes and so on then. | ||
| 84 | |||
| 85 | When ava responds, there is no adore, but you are sure there is, | ||
| 86 | then you maybe compiled adore.o and ava with different ADORE_KEY's. | ||
| 87 | Do 'make clean; make' to put it in sync. | ||
| 88 | |||
| 89 | "insmod ./cleaner.o; rmmod cleaner" to hide the adore LKM from lsmod. | ||
| 90 | Or use "startadore" script. Use "relink" script to relink adore-ng | ||
| 91 | into one of the LKMs already available on the system, so it is | ||
| 92 | automatically loaded during reboot. | ||
| 93 | |||
| 94 | 3. libinvisible | ||
| 95 | --------------- | ||
| 96 | |||
| 97 | libinvisible was written to have a layer between adore and ava. | ||
| 98 | Since there are other OS's which may be targeted by adore-like modules, | ||
| 99 | ava.c could easily ported, if one writes the proper library-calls. | ||
| 100 | libinvisible maybe also used from within sysop-written hidden logdeamons | ||
| 101 | as easy API to adore. | ||
| 102 | |||
| 103 | |||
| 104 | Adore was written for EDUCATIONAL PURPOSES, for testing on honey-pot | ||
| 105 | boxens (watching suspicious "broken" accounts) and intrusion testings. | ||
| 106 | If you need more help watching broken accounts, you may also use | ||
| 107 | EoE to watch what is executed. | ||
| 108 | |||
| 109 | |||
| 110 | 4. Use 'R' with care | ||
| 111 | -------------------- | ||
| 112 | |||
| 113 | 'R' switch of ava isn't well researched. It may crash your machine. | ||
| 114 | 'R'emoving current shell isn't good idea. | ||
| 115 | |||
| 116 | |||
| 117 | 5. A word on detecting root-kits | ||
| 118 | ------------------------------- | ||
| 119 | |||
| 120 | Adore has quite good anti-detection measurements in version 0.5 and better. | ||
| 121 | Since we use the new proc technique we completely control what user-space | ||
| 122 | programs see. It isn't even longer possible to detect hidden processes | ||
| 123 | by walking through the task-list and checking for PF_INVISBLE flag | ||
| 124 | because adore now uses a different approach to check for hidden procs. | ||
| 125 | I know of tools which read the disk raw by accessing /dev/hdXY and comparing | ||
| 126 | getdents() result with it. Thats the only thing where someone may detect | ||
| 127 | adore yet, but only if there are hidden files! It is not necessary to hide | ||
| 128 | files in all cases. Plus, modern systems support file-systems which are located | ||
| 129 | completely in-memory. This technique will fail here. | ||
| 130 | |||
| 131 | Child-processes of hidden processes are hidden automatically. | ||
| 132 | |||
| 133 | |||
| 134 | 6. Troubleshooting | ||
| 135 | ------------------ | ||
| 136 | |||
| 137 | In case gcc can't find modversions.h try to disable | ||
| 138 | MODVERSIONS flag in Makefile. | ||
| 139 | |||
| 140 | |||
| 141 | 7. SMP primer | ||
| 142 | ------------- | ||
| 143 | |||
| 144 | Adore-ng was successfully tested on UP and SMP systems. | ||
| 145 | |||
| 146 | |||
| 147 | |||
| 148 | 8. etc | ||
| 149 | ------- | ||
| 150 | |||
| 151 | You can also control adore-ng by hand via echo & cat, look at adore-ng.c | ||
| 152 | to see how. | ||
| 153 | You can specify an optional FS where files can be hidden. | ||
| 154 | Only use this switch ("insmod adore-ng.o opt_fs=/opt" for example) | ||
| 155 | when you are sure that / and (your particular) /opt have a different | ||
| 156 | FS, for example ext3 on / and reiser on /opt. otherwise you will | ||
| 157 | get FS inconsistencies for sure. The opt_fs argument should not | ||
| 158 | be needed in most cases anyway. Mounts of other partitions with the same | ||
| 159 | FS will be affected by adore too. So if / and /opt both have ext3, you | ||
| 160 | dont need to worry. Adore will handle both without a opt_fs switch. | ||
| 161 | |||
| 162 | Stealth | ||
| 163 | |||
