www.netcopsecurity.com datalock@linuxmail.org Security BREAK DOWN



Documentos relacionados
Algoritmos em Javascript

2 echo "PHP e outros.";

CURSO B SICO DE PERL

Prof. Esp. Adriano Carvalho

OPERADORES E ESTRUTURAS DE CONTROLE

Conceitos básicos da linguagem C

Curso de Programação Computadores

CURSO DE PROGRAMAÇÃO EM JAVA

INTRODUÇÃO AO JAVA PARA PROGRAMADORES C

Oficina de Programação em Python direcionada para o desenvolvimento de jogos

Componentes da linguagem C++

JAVA NETBEANS PGOO Prof. Daniela Pires Conteúdo

LINGUAGEM C UMA INTRODUÇÃO

Arte em ASCII. Introdução: Python

1. PROLOGO ==========

5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES

JSP - ORIENTADO A OBJETOS

AMBIENTE DE PROGRAMAÇÃO PYTHON

Internet e Programação Web

Algoritmos e Estrutura de Dados. Introdução a Linguagem Python (Parte I) Prof. Tiago A. E. Ferreira

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

PHP() é uma linguagem de integração de servidor que permite a criação de paginas dinâmicas. Como todas

Introdução à Linguagem

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

Usando o do-file editor Automatizando o Stata

Algoritmos com VisuAlg

Criando scanner para FreeSSHd vulnerável ao exploit do Metasploit Inj3cti0n P4ck3t. Inj3cti0n P4ck3t

2. OPERADORES ALGORITMOS, FLUXOGRAMAS E PROGRAMAS FUNÇÕES... 10

Resumo da Matéria de Linguagem de Programação. Linguagem C

Fundamentos de Programação II. Introdução à linguagem de programação C++

CURSO BÁSICO DE PROGRAMAÇÃO AULA 9. Introdução a linguagem C Estruturas de decisão

Programação WEB II. Introdução. Variáveis, Constantes, Operadores, Estruturas de Seleção e Repetição Arrays e Vetores. Thiago Miranda dos Santos Souza

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: Prof. Dr. Raimundo Moura

Organização de programas em Python. Vanessa Braganholo

Aluísio Eustáquio da Silva

Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza.

9 Comandos condicionais

20 Caracteres - Tipo char

Criando scanner para Oracle vulneráveis a exploits do Metasploit Inj3cti0n P4ck3t. Inj3cti0n P4ck3t

Javascript 101. Parte 2

Curso de Linguagem C

Programação Elementar de Computadores Jurandy Soares

Desenvolvendo MetasploitScanHTTP.pl para falhas HTTPS vulneráveis ao Metasploit. Inj3cti0n P4ck3t

Python Intermediário. terça-feira, 4 de agosto de 15

Linguagem de Programação. Introdução ao PHP. Prof Mauricio Lederer Ciência da Computação - UNIANDRADE 1

Nome do Artigo: Desenvolvendo um scanner para Joomla Password Change Admin. Linguagem de Programação: Perl (Practical Extraction and Report Language)

Resumo da Introdução de Prática de Programação com C. A Linguagem C

O Excel é um programa de computador desenvolvido para gerenciar dados na forma de planilhas.

e à Linguagem de Programação Python

Estrutura de Dados Básica

LÓGICA DE PROGRAMAÇÃO. Professor Celso Masotti

STK (Start Kit DARUMA) Observer2 Driver para Linguagens DOS Mini Impressoras Versão 1.0

1) Ao ser executado o código abaixo, em PHP, qual será o resultado impresso em tela?

Microsoft Access: Criar consultas para um novo banco de dados. Vitor Valerio de Souza Campos

Para testar seu primeiro código utilizando PHP, abra um editor de texto (bloco de notas no Windows) e digite o código abaixo:

Características do PHP. Começando a programar

Linguagem e Técnicas de Programação I Operadores, expressões e funções. Prof. MSc. Hugo Souza Material desenvolvido por: Profa.

ERROS MAIS COMUNS COMETIDOS EM PROGRAMAS E ALGORITMOS

PÓS-GRADUAÇÃO EM MATEMÁTICA COMPUTACIONAL INFORMÁTICA INSTRUMENTAL

Criando um script simples

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

1 Resumo: Strings e vetores de caracteres. Departamento de Ciência da Computação IME/USP

Tutorial de Matlab Francesco Franco

2 Um Primeiro Programa em C

O que é o JavaScript?

Manipulando Strings no VBA (Replace, Mid e InStr)

STK (Start Kit DARUMA) Observer2 Driver para Linguagens DOS

APOSTILA PHP PARTE 1

UNIVERSIDADE GAMA FILHO Laboratório de Controle I - MATLAB

Excel Planilhas Eletrônicas

INF 1005 Programação I

Aulas de PHP Criptografia com Cifra de César. Paulo Marcos Trentin

Aula de JavaScript 05/03/10

Primeiro programa em Java (compilação e execução)

O código JavaScript deve ser colocado entre tags de comentário para ficar escondido no caso de navegadores antigos que não reconhecem a linguagem.

Algoritmos e Programação Estruturada

Estruturas de entrada e saída

JavaScript. JavaScript é uma linguagem de script usada em navegadores web. É uma linguagem dinâmica, estruturada e orientada em objetos.

Lição 1 - Criação de campos calculados em consultas

Microsoft Excel 2007

Instalando e configurando o Java Development Kit (JDK)

Sistemas Operacionais INF Prof. José Gonçalves

Sistemas Operacionais e Introdução à Programação. Programação com linguagem C

- CURSO DE CALCULADORA FINANCEIRA HP 12C -

Programação Básica em Arduino Aula 2

Apostila Básica de Lógica e Programação para Game Maker por Giosepe Luiz 1

Java Como Programar, 8/E

1. Introdução ao uso da calculadora

Introdução aos critérios de consulta. Um critério é semelhante a uma fórmula é uma cadeia de caracteres que pode consistir em

Aula 1. // exemplo1.cpp /* Incluímos a biblioteca C++ padrão de entrada e saída */ #include <iostream>

Introdução aos cálculos de datas

Universidade Federal Rural do Rio de Janeiro PET-Sistemas de Informação. Lucas Nunes Paim

Aula 4: adivinhe o número

Aula 2. Objetivos Conceitos; Instalação do Text Pad; Entendendo o código java do AloMundo1 Codificação do AloMundo2,AloMundo3 e AloMundo4.

Programação WEB. Prof. André Gustavo Duarte de Almeida docente.ifrn.edu.br/andrealmeida. Aula III Introdução PHP

Determinando a equação da reta usando Python

Transcrição:

www.netcopsecurity.com datalock@linuxmail.org Security BREAK DOWN

0x1. Por Quê o PERL? Perl (Practical Extraction and Report Language) começou como um aplicativo UNIX. Hoje Perl é usado em quase todos os sistemas operacionais e funfa como asoutras linguagens de programação. Perl é única como qualquer linguagem de programação. Destaca-se por ser fácil de aprender e fácil de usar. Por que vc deve saber codar em Perl? Perl é único na cena hacking. Cerca de 70% dos exploits estão codificados em Perl. A razão pela qual a maioria dos hackers optar por escrever exploits em perl não é porque é fácil de interpretar, é fácil baixar e usar esses exploits, é eficiente e obtém o código eh feito rapidamente. Assim, se o seu interesse está em encontrar Vulnerabilidades e compartilhá-las escrevendo um code em perl para explorá-la eu recomendo o Perl para criar seus exploits. 0x2. Básico Bem antes de você começar a programar em Perl você precisa fazer o download do Interpretador perl da ActiveState. Você pode baixá-lo em www.activestate.com (lá vc tb encontra o interpretador python). Precisará tb de um editor de texto. Eu, pessoalmente, recomendo DzSofts Perl Editor (baixe no forum:http://netcopsecurity.com/index.php?/topic/1175-dzsoft-perl-editor-5-8-5-2/) ou use o notepad ou outro editor que preferir. Os arquivos em Perl têm uma extensão única, todos osseus arquivos perl devem ser salvos de preferência com extensão "pl", qndo executados serão interpretados como perl, porém se vc salvar com outra extensão qualquer e usar o comando "perl arquivo.xxx" ele tb será interpretado como um código Perl. O Perl é simples, e não uma língua muito difícil de aprender. Como todas as linguagens de programação costumam começar com um "Olá Mundo", vamos codar isso em Perl: print "Hello World\n"; Salve como HelloWorld.pl, arraste e solte-o no prompt de comando e tecle enter. Esse programa deve imprimir Olá Mundo. Vamos dar uma analizada no que nós criamos. A primeira linha (#!/usr/bin/ perl-w) é o início dos programas em perl. É o que faz cada programa perl seremreconhecidos de modo que possa ser interpretado. O (-W) eh uma opção chamada "simple error checking variable". É comumente utilizada para classificar alguns erros que podem estar presentes no código e assim podem ser mais facilmente arrumados depois. A segunda linha (print "Olá Mundo \ n";) é, obviamente, a linha que imprimiu o Olá Mundo em seu comando.

Print é um comando comum correntemente utilizados em aplicações Perl. Para mais esclarecimentos, o comando de impressão é como o msgbox ( "em VB6 ou comando printf em C). Você percebe o "\n", este é o caractere de nova linha em Perl. Há muitos chararters especial em Perl, abaixo é um gráfico de todos os caracteres especiais. Outro exemplo do uso desses caracteres especiais, veja: #!/usr/bin/ perl -w print "Hello \ tworld \ n \ a"; A coisa mais vitais para uma aplicação Perl executar sem erros é o ponto e vírgula no final de cada linha. Cada linha (a menos que em um bloco [explicado mais tarde]) tem ter um ponto e vírgula depois. Isto diz ao perl parar de ler essa linha e seguir em frente através do código. Assim como na maioria das linguagens o ponto e vírgula representa o fim de uma instrução... Como a maioria das linguagens de programação Perl possui variáveis. Variáveis tempprárias ou permanentes e pode conter números ou cadeias de quase todo o comprimento. Variáveis em Perl são definidas com o sinal "$". Dê uma olhada no código abaixo é um simples "Hello World" usando variáveis.

$Hello = "Hello World\n"; print $Hello; Eh fácil notar o que fizemos, alocamos a string Hello World dentro da variável Hello: $Hello = "Hello World\n"; Veja que a variável recebe a string. E depois o conteúdo da variável eh imprimido com o comando print: print $Hello; Em Perl não existem apenas aspas duplas, mas simples tb. Aspas simples (') são utilizados em matrizes e pode ser usada em substituição da aspas duplas. A principal diferença entre os dois é que aspas duplas interpreta caracteres especiais, como nova linha (\n) e aspas simples não. Uma função que será útil quando se lida com strings no Perl é adição. Você pode adicionar strings no Perl. Exemplo abaixo: #O caractere "#" no perl eh usado para fazer comentários #nada disso q eu estou escrevendo na frente de #s #será considerado código e nao será interpretado #um bom programador sempre comenta seus codes! $nome = "datalock" ; print "Que". " ". "código". " ". "n00b". "$nome"."\n"; Como notamos, no perl eh o ponto (.) que faz adição de strings e não o q seria mais óbvio, o sinal de mais (+). Isso vai ser mto útil quando precisarmos concatenar coisas no nosso exploit, como por exemplo, as partes de um shellcode do nosso payload.

Veja agora as funções matemáticas do perl: #!/usr/bin/perl #Adição, Subtração, Multiplicação, Divisão $a = 3 + 5 ; #Ad $b = 5 * 5; #Mult $c = 10 / 2 ; #Div $x = 12-5; #Sub print $a. " ". "AD: deve dar 8.\n"; print $b. " ". "MULT: deve dar 25.\n"; print $c. " ". "DIV: deve dar 5.\n"; print $x. " ". "SUB: deve dar 7.\n"; #Encrementação $Count = $Count + 1; print "$Count\n"; #ou $Count1 += 1 ; # Decrementação $Count1 -=1 ; print "$Count1\n"; #Raiz Quadrada $Square = sqrt(121) ; print "A raiz de 121 eh $Square\n"; #Expoentes $Exp = 2**5 ; print "$Exp\n";

0x3. Arrays Matrizes, ao contrário de variáveis comuns, contêm vários itens que podem ser chamados ou usados posteriormente em um aplicativo Perl. Como sempre, o melhor para aprender eh dar uma olhada em um code e preticar. @Hello = ('Hello', 'World'); print join(' ', @Hello). "\n"; Observe q o que designa o array eh um @ e não o $ de variável comum. Crimos um array (@Hello;) e a ele atribuímos 2 elementos Hello e World. E a função join é usada para imprimir os elementos do array. Método split: $Frase = "Eu sou datalock."; @MeuArray = split(/ /, $Frase) ; print "@MeuArray". " ". "Esse eh o split". "\n"; #Outro jeito mas sem o split (menos eficiente) @Ola = ('Ola', 'Mundo'); print $Ola[0]. " ". $Ola[1]. "\n"; O que acontece eh o seguinte... o split quebra muito o nosso galho, pq bastou usar a função split para processar nossa variável $Frase e jogar o resultado no nosso array: @MeuArray = split(/ /, $Frase) ; Depois só foi imprimir: print "@MeuArray"; No outro jeito veja q tivemos que especificar no print os elementos do array q desejamos imprimir: print $Ola[0]; #imprime o primeiro elemento do vetor print $Ola[1];#imprime o segundo elemento do vetor Outra forma similar, e útil eh: @array = qw(w1 w2 w3 w4); print join(' ', @array);

0x4. Condições: Se vc sabe o mínimo de progamação vai estar familiarizado com os termos de expressões condicionais usados no Perl. Vamos ver um código: $i = 1; #var i recebe 1 if($i ==1) { #se i eh igual a 1 $i++; #incremento print $i. "\n"; #imprime valor de i } Esse código deve imprimir o número 2 na tela. Além de valores numéricos podemos fazer com strings: $i = Hello; if($i eq 'Hello') { #comparação da string em $i com a palavra Hello print "Hello!\n"; } else{ print "A variável nao eh igual a string q comparamos\n"; } Com a instrução eq conseguimos fazer a comparação da variável com a palavra q escolhemos, se elas forem iguais será imprimido Hello!, se forem diferentes será impressa a frase: A variável nao eh igual a string q comparamos. O else significa senão ou seja, se a sentença do if for falsa ele passa para o else. Siga o raciocínio: if (verdadeiro) faça x senão faça y. Dúvidas? Poste no Fórum, ou datalock@linuxmail.org