herm1t LIVE!ng room - Darkleech [entries|archive|friends|userinfo]
herm1t

[ website | twilight corner in the herm1t's cave ]
[ userinfo | ljr userinfo ]
[ archive | journal archive ]

Darkleech [May. 7th, 2013|02:25 pm]
Previous Entry Add to Memories Tell A Friend Next Entry
[Tags|, , , , , , , ]

Полистал $subj, это просто ебаный стыд:
char* decrypt(ap_filter_t *f, char* str)
{
.....
                char *xorkey = CRYPT_KEY;
                int i;
                for (i=0; i<strlen(str); i++)
                        result[i] = str[i] ^ xorkey[i % strlen(CRYPT_KEY)];
.....
int dl_check_AdminOnline(ap_filter_t *f)
{
  if (DO_CHECK_UTMP > 0)
  {
.....
                        if (rec.ut_type == USER_PROCESS)
                        {
.....
                                struct passwd *user_rec;
                                if ((user_rec = getpwnam(rec.ut_user)) != NULL && user_rec->pw_uid == 0)

P.S. Пожалуйста, не ксорьте стринги, и детект рута так тоже не делается.
LinkLeave a comment

Comments:
From:[info]phonomania
Date:May 7th, 2013 - 02:30 pm
(Link)
а енкрипт - такойже как и декрипт? а че, удобно..
[User Picture]
From:[info]herm1t
Date:May 8th, 2013 - 09:20 am
(Link)
> а енкрипт - такойже как и декрипт? а че, удобно..
конечно. только палево, даже +/- был бы лучше в качестве "шифрования",
ну и, естественно, вторая функа рута не увидит.
[User Picture]
From:[info]ketmar
Date:May 9th, 2013 - 02:23 am
(Link)
да и C99 уже больше десяти лет на дворе. ну сколько можно эти ебанистические «int i; for (выеби-меня-в-жопу-потому-что-мой-компилятор-говно)»?!
[User Picture]
From:[info]herm1t
Date:May 9th, 2013 - 08:06 am
(Link)
откуда там только не копипастили... смотрю на кодес, и судя по стилю оформления, и обилию дурацкой копипасты, каждая строка так и кричит: "очень хотелось денег", вот еще дивное:

unsigned long ip2long (str) char *str;
{
unsigned long i, octet, ip = 0;
char *cp, arg[256];
strncpy (arg, str, sizeof(arg)-1);
arg[sizeof(arg)-1] = '\0';
cp = strtok (arg, ".");
for (i=4; i>0; i--)
{
octet = 0;
while (*cp)
{
octet = octet*10 + *cp-'0';
cp++;
}
ip += octet*(1<<((i-1)*8));
cp = strtok (NULL, ".");
}
return ip;
}

inet_aton, тоже отменили, а strtok... деграданты.
[User Picture]
From:[info]ketmar
Date:May 9th, 2013 - 11:19 am
(Link)
дьявол всезнающий, НО ЗАЧЕМ? с strtok()… я ещё понимаю, зачем inet_ntoa() можно быстропереписать, но тут-то… я и так поутру в человечество не верю…

тьфу. эмо-камент какой-то получился, довели, проклятые!
[User Picture]
From:[info]herm1t
Date:May 9th, 2013 - 12:02 pm
(Link)
зачем вообще строку копировать и бить, когда ее можно просто отпарсить, не говоря уже о том, что апач а) может туда и NULL сунуть, и IPV6 б) с тредами, весь этот шалашик сложится пиздой. занятно еще, что этот продукт стоит $1K, а эйверы подняли такой вой, будто звезду смерти нашли. а как оно славно выпаливается по кукам, и сколько всякого говна тащит в систему... а вот еще охенчик:

#ifdef DEBUG
FILE* debug_f; debug_f = fopen(DEBUG, "a"); fprintf(debug_f, "%s ALLOC ERROR: dl_genFilenameSession(), md5, md5, 128\r\n", dl_ClientIP(f)); fclose(debug_f);
#endif

и так ВЕЗДЕ, где нужен отладочный вывод. и зачем нужен va args ума не приложу )))
[User Picture]
From:[info]ketmar
Date:May 9th, 2013 - 12:22 pm
(Link)
ну, просто парзилку IP можно столькими способами сделать… зато заметь, strncpy(), заботятся о buffer overflow!

>и так ВЕЗДЕ, где нужен отладочный вывод
а я давно говорю, что copy и paste должны вызываться комбами из как минимум 128 нажатий. желательно, рандомных. а то и сам грешу, бывает…
[User Picture]
From:[info]herm1t
Date:May 9th, 2013 - 12:26 pm
(Link)
я не могу понять зачем вообще строку копировать, ведь функа ее не меняет, а парсер - простейший автомат. и если уже разбили на куски, то почему *= +=, а не atoi? чудовищно одним словом. это не кодер, а создание хаоса. )))

> комбо
точно! Ж-)
[User Picture]
From:[info]ketmar
Date:May 9th, 2013 - 12:41 pm
(Link)
>я не могу понять зачем вообще строку копировать
если бы не k&r, я бы предположил, что они так пытаются обеспечить потокобезопасность (ничего больше придумать не могу).

а, не, вот: strtok() же в строку нули хуячит в полный рост! точнее, может так делать, нигде не запрещено — ну, и часто делает. за что я его и не люблю. видимо, автор оригинала об этом знал. так что без копирования как раз поменяла бы.

такой парзер вообще можно сделать однопроходным, без всей этой ерунды. с проверкой на переполнение вдобавок.

хотя, конечно, это всё херня, потому что форм записи IPv4 немеряно, и годная aton их все распознаёт. но нынешние сумрачные гении не в курсе, видимо.
[User Picture]
From:[info]herm1t
Date:May 9th, 2013 - 12:45 pm
(Link)
внутри апача не так много вариантов IPV4/6

большая часть хакеров - это просто пиздец, даже студентота и то лучше (понтов меньше)
[User Picture]
From:[info]ketmar
Date:May 9th, 2013 - 12:55 pm
(Link)
>внутри апача не так много вариантов IPV4/6
лучше перебдеть, чем недобдеть! ну ладно, упёрло молодое дарование функцию, не хочет из библиотеки дёргать — так почему тогда не пойти и не упереть её из glibc, например? там кода-то…
[User Picture]
From:[info]herm1t
Date:May 9th, 2013 - 01:01 pm
(Link)
дарование не знает, что эта функа есть. а glibc оно юзает от души, ведь идет сборка на целевой системе из сырков + apxs, это ж школота - модифицировать бинари не умеют, там же еще поди скриптов на шелле вагон, чтобы весь девел вытащить ))))
[User Picture]
From:[info]herm1t
Date:May 9th, 2013 - 01:04 pm
(Link)
беру свои слова обратно, оно знает, что есть ntoa

if (rec.ut_addr > 0)
{
struct in_addr address_struct;
address_struct.s_addr = rec.ut_addr;
ip = inet_ntoa(address_struct);
dl_SendIPToLocalBlacklist(f);
}

толи тащили все подряд со stackoverflow, то ли методом проб и ошибок, а может просто php головного мозга
[User Picture]
From:[info]herm1t
Date:May 9th, 2013 - 01:09 pm
(Link)
блять. посмотрел на предыдущий пост (address_struct unused), и точно:

void dl_SendIPToLocalBlacklist(ap_filter_t *f)
{
char *filename = dl_genFilenameBlacklist(f);
FILE* fd;
fd = fopen(filename, "w");
if (fd != NULL)
{
fclose(fd);
}
}
[User Picture]
From:[info]herm1t
Date:May 9th, 2013 - 01:11 pm
(Link)
а, понял, это файл-флаг, только забанит он ip текущей сессии, а не ip из utmp

ВСЕ! хватит с меня глубин хакерской мысли.
[User Picture]
From:[info]ketmar
Date:May 9th, 2013 - 01:15 pm
(Link)
хотел пошутить на тему того, что скоро будут с собой таскать собраные шланг+ллвм для всех нужных архитектур и всё остальное нужное в архиве, но потом подумал, что это может и не шуткой оказаться.

с нетерпением жду, когда они найдут что-нибудь вроде DynamoRIO и попробуют его прикрутить. лулзов должно быть значительно больше.
[User Picture]
From:[info]herm1t
Date:May 9th, 2013 - 01:20 pm
(Link)
"и не шуткой оказаться."

пытаются. только для того, чтобы хакать (в хорошем смысле этого слова) LLVM нужны мозги...

пока видел только переделанные tinyc и llvm на предмет поксоренных строк и перестановок базовых блоков, но ради такой фигни можно и не брать продвинутые тулзы, все это можно сделать прямо в экзешке, а то, что нельзя, ну так это опять-таки нужны мозги, так что галктеко в безопасности.
[User Picture]
From:[info]herm1t
Date:May 9th, 2013 - 12:10 pm
(Link)
как тебе K&R style? это к вопросу о C99... ))))
[User Picture]
From:[info]ketmar
Date:May 9th, 2013 - 12:17 pm
(Link)
йопт, до меня и не сразу дошло, что ж в коде-то ещё глаз дёргает! демоны, ЭТО-ТО они откуда скопипастили, интересно?!
[User Picture]
From:[info]ketmar
Date:May 9th, 2013 - 02:25 am
(Link)
(задумчиво) а что, хоть ARC4 уже ниасиливают? ну простой же, скопипасти и наслаждайся…
[User Picture]
From:[info]herm1t
Date:May 9th, 2013 - 09:49 am
(Link)
тогда не осилят билдер, ведь придется или менять стиль разработки, или препроцессор вменяемый писать или бинарь патчить, а с этим уже все совсем плохо. )))
[User Picture]
From:[info]herm1t
Date:May 9th, 2013 - 12:15 pm
(Link)
неуловимый Джо:

darkleech@thesecure.biz
17:26 отходил
17:28 это нерутабельное ядро. Можно попробовать другими путями. Какие права у тебя там? Юзера или Апача? Это шаред хостинг или отдельный сервер какого-то чувака?
Дай команду:

uname -a; cat /etc/crontab; ls -lia --full-time /etc/cron* /lib; find / -type f -perm -u+s -exec ls -lia {} \; 2>/dev/null; find / -type f -name "*.sh" -user root -perm -o+rw -exec ls -la {} \; 2>/dev/null

JustFive
17:31 привет
17:31 ты до этого общался
17:31 с моим партнером
.............................

http://pastebin.com/DBxBfGXG

под столом.
[User Picture]
From:[info]ketmar
Date:May 9th, 2013 - 12:25 pm
(Link)
Как Страшно Жыдь!
[User Picture]
From:[info]herm1t
Date:May 9th, 2013 - 12:49 pm
(Link)
удивительно, как эта городушка вообще взлетела,
хотя судя по раскопкам на pastebin...

mod_build_mime.c:170: warning: (near initialization for 'directives[0].func')
mod_build_mime.c:181: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'out_filter'
mod_build_mime.c:399: error: expected ')' before '*' token
mod_build_mime.c:405: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'build_mime_module'
apxs:Break: Command failed with rc=1
=== Dark Leech Apache/2 Iframer 2012.08.07 keep it priv8
[+] FreeBSD version
[+] Random MODULE_NAME = build_mime_module
[+] Getting sudoers

[+] Generated KEY_XOR = C79283E7EB46F64
[+] Generated crypted_strings.h (11523 bytes)
[+] Debug is off
[+] APXS found, compiling module...
[-] Compilation unsuccessfull. Exiting...
[User Picture]
From:[info]ketmar
Date:May 9th, 2013 - 12:56 pm
(Link)
ахуенчик. «ну, нишмагла я, нишмагла…»