Académique Documents
Professionnel Documents
Culture Documents
Unix é um sistema operativo (ou sistema operacional) portátil (ou portável), multitare
fa e multiutilizador (ou multiusuário) originalmente criado por Ken Thompson, que
trabalhava nos Laboratórios Bell (Bell Labs) da AT&T. A marca UNIX é uma propriedade
do The Open Group, um consórcio formado por empresas de informática.
Sistema operacional multitarefa
Multitarefa significa executar uma ou mais tarefas ou processos simultaneamente.
Na verdade, em um sistema monoprocessado, os processos são executados seqüencialmen
te de forma tão rápida que parecem estar sendo executados simultaneamente. O Unix es
calona sua execução e reserva-lhes recursos computacionais (intervalo de tempo de pr
ocessamento, espaço em memória RAM, espaço no disco rígido, etc.).
O Unix é um sistema operacional de multitarefa preemptiva. Isso significa que, qua
ndo esgota-se um determinado intervalo de tempo (chamado quantum), o Unix suspen
de a execução do processo, salva o seu contexto (informações necessárias para a execução do
ocesso), para que ele possa ser retomado posteriormente, e coloca em execução o próxim
o processo da fila de espera. O Unix também determina quando cada processo será exec
utado, a duração de sua execução e a sua prioridade sobre os outros.
A multitarefa, além de fazer com que o conjunto de tarefas seja executado mais rap
idamente, ainda permite que o usuário e o computador fiquem livres para realizarem
outras tarefas com o tempo economizado.
Sistema operacional multiutilizador
Uma característica importante do Unix é ser multiusuário (multiutilizador). Bovet e Ce
sati [4] definem um sistema multiusuário como "aquele capaz de executar, concorren
te e independentemente, várias aplicações pertencentes a dois ou mais usuários". O Unix
possibilita que vários usuários usem um mesmo computador simultaneamente, geralmente
por meio de terminais. Cada terminal é composto de um monitor, um teclado e, even
tualmente, um mouse. Vários terminais podem ser conectados ao mesmo computador num
sistema Unix. Há alguns anos eram usadas conexões seriais, mas atualmente é mais comu
m o uso de redes locais, principalmente para o uso de terminais gráficos (ou termi
nais X), usando o protocolo XDMCP.
O Unix gerencia os pedidos que os usuários fazem, evitando que um interfira com ou
tros. Cada usuário possui direitos de propriedade e permissões sobre arquivos. Quais
quer arquivos modificados pelo usuário conservarão esses direitos. Programas executa
dos por um usuário comum estarão limitados em termos de quais arquivos poderão acessar
.
O sistema Unix possui dois tipos de usuários: o usuário root (também conhecido como su
perusuário), que possui a missão de administrar o sistema, podendo manipular todos o
s recursos do sistema operacional; e os usuários comuns, que possuem direitos limi
tados.
Para que o sistema opere adequadamente em modo multiusuário, existem alguns mecani
smos: (i) um sistema de autenticação para identificação de cada usuário (o programa login,
p.ex., autentica o usuário verificando uma base de dados, normalmente armazenada
no arquivo /etc/passwd); (ii) sistema de arquivos com permissões e propriedades so
bre arquivos (os direitos anteriormente citados); (iii) proteção de memória, impedindo
que um processo de usuário acesse dados ou interfira com outro processo. Esse últim
o mecanismo é implementado com a ajuda do hardware, que consiste na divisão do ambie
nte de processamento e memória em modo supervisor (ou modo núcleo) e modo usuário.
Arquivos de dispositivo
Uma característica singular no Unix (e seus derivados) é a utilização intensiva do conce
ito de arquivo. Quase todos os dispositivos são tratados como arquivos e, como tai
s, seu acesso é obtido mediante a utilização das chamadas de sistema open, read, write
e close.
Os dispositivos de entrada e saída são classificados como sendo de bloco (disco, p.e
x.) ou de caractere (impressora, modem, etc.) e são associados a arquivos mantidos
no diretório /dev (v. detalhamento mais adiante).
Estrutura
X Window System
Além do shell, o Unix suporta interface gráfica para o usuário. Nas primeiras versões do
Unix as interfaces do usuário eram baseadas apenas em caracteres (modo texto) e o
sistema compunha-se apenas do núcleo, de bibliotecas de sistema, do shell e de al
guns outros aplicativos. As versões mais recentes do Unix, além de manterem o shell
e seus comandos, incluem o X Window System que, graças ao gerenciador de exibição e ao
gerenciador de janelas, possui uma interface atraente e intuitiva que aumenta e
m muito a produtividade do usuário.
Desenvolvido no MIT (Massachussets Institute of Technology), o X Window System (
também pode ser chamado de Xwindow) tornou-se o sistema gráfico do Unix. O Xwindow f
unciona como gerenciador de exibição e por si só, não faz muita coisa. Para termos um am
biente gráfico produtivo e completo, precisamos também de um gerenciador de janelas.
O gerenciador de janelas proporciona ao ambiente gráfico a aparência e as funcionali
dades esperadas incluindo as bordas das janelas, botões, truques de mouse, menus e
tc. Como no sistema Unix o gerenciador de exibição (X Window System) é separado do ger
enciador de janelas, dizemos que seu ambiente gráfico é do tipo cliente-servidor. O
Xwindow funciona como servidor e interage diretamente com o mouse, o teclado e o
vídeo. O gerenciador de janelas funciona como cliente e se aproveita dos recursos
disponibilizados pelo Xwindow.
O fato de o Unix possuir o gerenciador de exibição (Xwindow) separado do gerenciador
de janelas tornou possível o surgimento de dezenas de gerenciadores de janelas di
ferentes. Os gerenciadores de janelas mais comuns no mundo Unix são o Motif, Open
Look, e o CDE. Também existem outros gerenciadores de janelas que são bastante utili
zados no Unix, principalmente nos sistemas Unix-Like (versões gratuitas e clones d
o Unix). São eles: KDE, Gnome, FVWM, BlackBox, Enlightenment, WindowMaker etc.
Comandos
Esta é uma lista de programas de computador para o sistema operacional Unix e os s
istemas compatíveis, como o Linux. Os comandos do Unix tornam-se acessíveis ao usuário
a partir do momento em que ele realiza o login no sistema. Se o usuário utiliza t
ais comandos, então ele se encontra no modo shell, também chamado de modo texto (ou
Unix tradicional). Quando estiver utilizando o modo gráfico, o usuário também poderá se
utilizar de tais comandos desde que abra uma janela de terminal (Xterm).
A linha de comando do sistema operacional Unix permite a realização de inúmeras tarefa
s através de seus comandos, de manipulação de arquivos a verificação do tráfego em rede. Pa
a exibir uma descrição detalhada de cada comando abra uma console ou xterm e digite
man comando, onde comando é o comando em questão.
Shell
Antes de saber o que é um script em shell, é importante saber o que é um Shell.
Na linha de comandos de um shell, podemos utilizar diversos comandos um após o out
ro, ou mesmo combiná-los numa mesma linha. Se colocarmos diversas linhas de comand
os em um arquivo texto simples, teremos em mãos um Shell Script, ou um script em s
hell, já que Script é uma descrição geral de qualquer programa escrito em linguagem inte
rpretada, ou seja, não compilada. Outros exemplos de linguagens para scripts são o P
HP, Perl, Python, JavaScript e muitos outros. Podemos então ter um script em php,
um script perl e assim em diante.
Uma vez criado, um ShellScript pode ser reutilizado quantas vezes for necessário.
Seu uso, portanto, é indicado na automação de tarefas que serão realizadas mais de uma v
ez. Todo sistema Unix e similares são repletos de scripts em shell para a realização d
as mais diversas atividades administrativas e de manutenção do sistema.
Os arquivos de lote (batch - arquivos *.bat) do windows são também exemplos de Shell
Scripts, já que são escritos em linguagem interpretada e executados por um Shell do
Windows, em geral o command.com ou hoje em dia o cmd.exe. Os Shells do Unix, porém
, são inumeras vezes mais poderosos que o interpretador de comandos do windows, po
dendo executar tarefas muito mais complexas e elaboradas.
Os scripts shell podem ser agendados para execução através da tabela crontab, entre ou
tras coisas. É uma ferramenta indispensável aos administradores de sistemas Unix.
O Shell mais comum e provavelmente o que possui mais scripts escritos para ele é t
ambém um dos mais antigos e simples, o sh. Este shell está presente em todo o sistem
a tipo Unix, incluído o Linux, FreeBSD, AIX, HP-UX, OpenBSD, Solaris, NetBSD, Irix
, etc. Por ser o shell nativo mais comum é natural que se prefira escrever scripts
para ele, tornando o script mais facilmente portável para outro sistema.
Os Shells não estão diretamente associados a um ou outro tipo de Unix, embora várias e
mpresas comerciais tenham suas próprias versões de Shell. No software livre o Shell
utilizado em um sistema em geral é exatamente o mesmo utilizado em outro. Por exem
plo, o bash encontrado no Linux é o mesmo shell bash encontrado no FreeBSD e pode
também facilmente ser instalado no Solaris, Windows através do Cygwin [1] ou outros
sistemas Unix comerciais para passar a ser utilizado como interface direta de co
mandos ou como interpretador de scripts. O mesmo acontece com o tcsh e vários outr
os shells desenvolvidos no modelo de software livre.
Características
Os scripts shell podem conter estruturas de programação tais como:
estruturas de decisão (if)
estruturas de repetição (for)(while)
funções e argumentos
definições de variáveis e escopo destas
Shell script é uma linguagem de script usada em vários sistemas operativos (operaci
nais), com diferentes dialetos, dependendo do interpretador de comandos utilizad
o. Um exemplo de interpretador de comandos é o bash, usado na grande maioria das d
istribuições GNU/Linux.
A maior parte dos usuários classificam shell script como uma linguagem de fácil apr
ndizagem. O primeiro passo é, saber o que se deseja fazer, então ver qual o código que
executa este comando em shell e aí criar, basta escrever o código em algum editor d
e texto e salvar. Depois de salvo você tem que executar o arquivo, dessa forma:
./"Nome do arquivo, sem aspas"
No Linux o script tem que ter permissão de execução, isto pode ser feito com o coma
chmod +x "arquivo", para exibir um manual do bash ou mesmo do comando 'chmod',
digite na linha de comando 'man bash' ou 'man chmod' (sem aspas).
É possível executar o arquivo mesmo sem modificar a permissão de execução, por exem
for um arquivo escrito para ser executado pelo bash, usar:
sh ./"Nome do arquivo, sem aspas"
Introdução à shell
O intérprete de comandos é o interface entre o utilizador e o sistema de exploração, daí o
seu nome inglês shell , que significa casca .
A Shell está então encarregue de ser o intermediário entre o sistema de exploração e o uti
lizador graças às linhas de comando escritas por este. O seu papel consiste assim em
ler a linha de comando, interpretar o seu significado, executar o comando, segu
idamente devolver o resultado às saídas.
A shell é assim um ficheiro executável, encarregue de interpretar os comandos, trans
miti-los ao sistema e devolver o resultado. Existem várias shells, sendo as mais u
suais sh (chamada Bourne shell ), bash ( Bourne again shell ), csh ( C Shell ), Tcsh ( Ten
C shell ), ksh ( Korn shell ) e zsh ( Zero shell ). Onome corresponde geralmente ao nome d
o executável.
Cada utilizador possui uma shell por defeito, que será lançada durante a abertura de
comando. A shell por defeito está definida no ficheiro de configuração /etc/passwd no
último campo da linha que corresponde ao utilizador. É possível alterar a shell numa
sessão, executando muito simplesmente o ficheiro executável correspondente, por exem
plo:
/bin/bash
Convide de comando (rápido)
A shell inicia-se lendo a sua configuração global (num ficheiro do directório /etc/),
de seguida lendo a configuração própria ao utilizador (num ficheiro escondido, cujo no
me começa por um ponto, situado no directório básico do utilizador, quer dizer /home/n
om_de_l_utilisateur/.fichier_de_configuration), posteriormente afixa um convite
de comando (em inglês prompt) do seguinte modo:
machine:/repertoire/courant$
Por defeito, na maior parte das shells o prompt é composto pelo nome da máquina, seg
uido de dois pontos (:), do directório corrente, seguido de um carácter que indica o
tipo de utilizador conectado:
«$» indica que se trata de um utilizador normal
«#»indica que se trata do administrador, chamado root
Entrada/saída standard
Aquando da execução de um comando, é criado um processo. Este vai então abrir três fluxos:
stdin, chamado entrada standard, no qual o processo vai ler os dados de entrada.
Por defeito, o stdin corresponde ao teclado; STDIN é identificado pelo número 0;
stdout, chamado saída standard, no qual o processo vai escrever os dados de saída.
or defeito, o stdin corresponde ao ecrã; STDOUT é identificado com o número 1;
stderr, chamado erro standard, no qual o processo vai escrever as mensagens de e
rro. Por defeito, o stderr corresponde ao ecrã. STDERR é identificado com o número 2;
Por defeito, quando se executa um programa, os dados são lidos a partir do teclado
e o programa envia a sua saída e os seus erros para o ecrã, mas é possível ler os dados
a partir de qualquer periférico de entrada, ou mesmo a partir de um ficheiro, e e
nviar a saída para um periférico de afixação, um ficheiro, etc.
Redireccionamentos
O Linux, como qualquer sistema de tipo Unix, possui mecanismos que permitem reen
caminhar os entrada/saída standard para ficheiros.
Assim, a utilização do carácter > permite reencaminhar a saída standard de um comando sit
ado à esquerda para o ficheiro situado à direita :
ls -al /home/jf/ > toto.txt
echo "Toto" > /etc/monfichierdeconfiguration
O comando seguinte é equivalente a uma cópia de ficheiros :
cat toto > toto2
O redireccionamento > tem como objectivo criar um novo ficheiro. Assim, se um fich
eiro do mesmo nome existir, este será esmagado. O seguinte comando cria simplesmen
te um ficheiro vazio :
> fichier
O emprego de um duplo carácter >> permite concatenar a saída standard para o ficheiro,
quer dizer, acrescentar a saída na sequência do ficheiro, sem o esmagar.
cat < toto.txt
De maneira análoga, o carácter < indica um redireccionamento da entrada standard. O co
mando seguinte envia o conteúdo do ficheiro toto.txt em entrada do comando cat, cu
jo único objectivo é afixar o conteúdo sobre a saída standard (exemplo inútil, mas pedagógi
o) :
cat << STOP
Tubos de comunicação (canos)
Os tubos (em ingleses pipes , literalmente "tubos") constituem um mecanismo de comu
nicação próprio a todos os sistemas UNIX. Um tubo, simbolizado por uma barra vertical
(carácter | ), permite afectar a saída standard de um comando a uma entrada standard de
outra, como um tubo que permite fazer comunicar a entrada standard de um comand
o com a saída standard de outra.
Assim, no exemplo seguinte, a saída standard do comando ls - Al é enviado para o pro
grama sort encarregue de fazer uma triagem do resultado por ordem alfabética:
ls -al | sort
Desta maneira é possível encadear diversos comandos por tubos sucessivos. No exemplo
seguinte, o comando afixa todos os ficheiros do directório corrente, selecciona a
s linhas que contêm a palavra zip (graças ao comando grep) e conta o número total de lin
has :
ls -l | grep zip | wc -l
Tipos de Hackers
Hacker
Na verdade, os hackers são os bons mocinhos. Para os fãs de Guerra nas Estrelas, pen
sem no hacker como o cavaleiro jedi bonzinho. Ele possui os mesmos poderes que o
jedi do lado negro da força (cracker) mas os utiliza para proteção. É um curioso por na
tureza, uma pessoa que têm em aprender e se desenvolver um hobby, assim como ajuda
r os "menos prevalecidos". Um bom exemplo real foi quando o cracker Kevin Mitnic
k invadiu o computador do analista de sistemas Shimomura. Mitnick destruiu dados
e roubou informações vitais. Shimomura é chamado de hacker pois usa sua inteligência pa
ra o bem, e possui muitos mais conhecimentos que seu inimigo digital. Assim faci
lmente montou um honeypot (armadilha que consiste em criar uma falsa rede para p
egar o invasor) e pegou Kevin. Infelizmente a imprensa confundiu os termos e tod
a notícia referente a baderneiros digitais se refere à hacker.
Cracker
Esses sim são os maldosos. Com um alto grau de conhecimento e nenhum respeito, inv
adem sistemas e podem apenas deixar a sua "marca" ou destruí-los completamente. Ge
ralmente são hackers que querem se vingar de algum operador, adolescentes que quer
em ser aceitos por grupos de crackers (ou script kiddies) e saem apagando tudo q
ue vêem ou mestres da programação que são pagos por empresas para fazerem espionagem ind
ustrial. Hackers e crackers costumam entrar muito em conflito. Guerras entre gru
pos é comum, e isso pode ser visto em muitos fóruns de discussão e em grandes empresas
, as quais contratam hackers para proteger seus sistemas.
Phreaker
Maníacos por telefonia. Essa é a maneira ideal de descrever os phreakers. Utilizam p
rogramas e equipamentos que fazem com que possam utilizar telefones gratuitament
e. O primeiro phreaker foi o Capitão Crunch, que descobriu que um pequeno apito en
contrado em pacotes de salgadinhos possui a mesma freqüência dos orelhões da AT&T, faz
endo com que discassem de graça. Um programa comum utilizado é o blue box, que gera
tons de 2600 pela placa de som, fazendo com que a companhia telefônica não reconheça a
chamada. Outra técnica muito usada principalmente no Brasil é a de utilizar um diod
o e um resistor em telefones públicos. Ou de cobrir o cartão telefônico de papel alumíni
o para que os creditos não acabem (essa técnica não funciona nos orelhões novos e nos ve
lhos vc pode tomar um belo choque!! acredite eu já tomei um e foi... CHOCANTE!!).
Técnicas como essas são utilizadas no mundo inteiro. O phreaker é uma categoria à parte,
podem ser hackers, crackers ou nenhum dos dois. Alguns phreakers brasileiros são
tão avançados que têm acesso direto à centrais de telefonia, podendo desligar ou ligar t
elefones, assim como apagar contas. Um dos programas muitos usados para isso é o o
zterm, programinha de terminal que funciona em modo DOS. Por sinal, muito difícil
de encontrar na net.
Script Kiddies
Sub-categoria de crackers. Não têm um alvo certo, vão tentando invadir tudo que vêm na f
rente usam ferramentas encontradas na Internet. Nem programar sabem. Mas tem um
conhecimento digital bem acima dos usuários comuns.
Lamer
Dificilmente aprendem a usar algum programa, não sabem e não tem condição de aprender co
mo as coisas funcionam. Aqueles que chegam nos chats anunciando "vou te invadir,
sou o melhor" mas acaba desistindo pois não consegue descompactar nem um arquivo
ZIP.
Carder
É o especialista em fraudes com cartões de crédito. Sabe como conseguir listas de cartõe
s válidos em sites que os utllizam (sites de compras, chat pago, etc.), gerar número
s falsos que passam pela verificação e mesmo roubar e clonar cartões verdadeiros. ( os
caras são bons mesmo!)
Tipos de Invasao
Muitas pessoas nos perguntam sobre os tipos de hackers e sobre crackers, phreake
rs, etc. Inicialmente, o termo hacker é o termo generalizado. Um cracker é um hacker
. Um wannabe é um hacker. Porém, um hacker não é necessariamente um phreaker, por exempl
o. Digamos que todo hacker possa ter uma especialidade, tal como um médico, por ex
emplo. Veja em quais desses tipos você se pode se encaixar:
WHITE-HAT: são os hackers que exploram problemas de segurança para divulgá-los para to
da a comunidade, a título de que os usuários saibam como devem se proteger.
BLACK-HAT: usam seus conhecimentos em benefício próprio e, geralmente, estão ligados a
atividades ilícitas.São geralmente perigosos e difíceis de identificar, pois nunca te
ntarão chamar atenção.
CRACKER: alguns classificam cracker como aqueles que tem por objetivo invadir si
stemas ou redes apenas pelo desafio. Porém, historicamente, o nome cracker está liga
do a modificação de código, para obter funcionalidades que não existem ou, de certa form
a, limitadas. Você já ouviu falar em cracks ou patches para programas?
PHREAKER: sua especialidade é interferir o curso normal de funcionamento das centr
ais telefônicas, mudar rotas, números, realizar chamadas sem tarifação, bem como realiza
r chamadas sem ser detectado.
WANNABE: é aquele que acha que sabe, diz para todos que sabe, divulga abertamente
suas "façanhas" e na grande maioria dos casos usam informações já conhecidos, as famosas
"receitas de bolo." Eles geralmente atacam apenas para testar suas descobertas
e a maioria deles não possui nenhum escrúpulo. São frequentemente encontrados no progr
ama de bate-pap mIRC.
Esses são os tipos de hackers mais famosos. Se você conhecer mais algum tipo, ou tiv
er alguma dúvida, entre em contato conosco.
Como se um HACKER
ADVERTENCIA:
Este documento foi criado para informacao apenas. De nenhuma forma, encorajando
qualquer tipo de atividade ilegal, e qualquer ato praticado apos a leitura deste
documento é de inteira
responsabilidade do leitor. Se nao concorda com este fato, retorne agora.
________________________________________________________________________________
_______________
- Conseguindo Ajuda
E verdade que existe centenas e centenas de home pages de "hackers" na Internet.
Se voce nunca tentou
enviar um e-mail para algum deles, uma coisa certamente se torna evidente, a fal
ta de conhecimento. Qualquer
pessoa (eu inclusive!) pode colocar uma pagina na Internet, adicionando links, t
extos,... de outros e se chamar
um hacker. Mas peca por ajuda para escrever um shel script para explorar um bug
e voce ficara ligeiramente
disapontado. Claro! ha alguns hackers genuinos por ai, e se voce conseguir encon
tra-los, podera pedir ajuda.
Mas ai voce estara dependendo de alguem para tudo. Um hacker deve ser autoditada
.
- A Psicologia de Hacke(ar)
E importante entender como o cerebro humano funciona em outras pessoas. Para se
ter uma ideia de como
comprometer a seguranca de computadores, voce deve "penetrar" na mente do admini
strador do sistema e
pensar como voce protegeria o sistema se fosse o encarregado. Voce deve tambem l
evar em consideracao
que a muitas das pessoas sao estupidas, e isto sera decisivo se voce estiver ten
tando descobrir algumas
senhas. Use o senso comum.
- Fazendo a Conexão
Constantemente, escuta-se uma pergunta MUITO comum dos iniciantes: "Como eu me c
onecto a um sistema
?" ou "Como eu uso o Telnet ?" Para explicar algumas questões basicas: Voce pode s
e conectar com
qualquer maquina ligada na Internet com um programa de Telnet. Muitos programas
utilizam o servico de telnet
quando voce conecta-se a uma maquina. Por exemplo, se eu rodar meu programa e co
nectar com o xyz.com,
ele ira me conectar com a porta 23, a porta da Telnet do xyz.com. Telnet, simple
smente, e um meio de se usar
um terminal UNIX, como se voce estivesse sentado em frente a um. Imagine estar d
iscando em uma maquina
em ambiente DOS e recebendo o prompt C:\>. E essencialmente a mesma coisa. Quand
o voce aprender
sobre UNIX, voce vera que existem outros servicos (tambem conhecido como dameons
), e podera usar um
programa de Telnet para conectar-se a varios deles. Onde encontrar tais programa
s ? Que tal em
www.tucows.com, eles possuem varios deles.
Se voce puder instalar uma variacao do UNIX como o LINUX em seu computador, eu c
ertamente sugiro-lhe
que o faca. Este e o melhor caminho para aprender o sistema operacional. Alem di
sso, o LINUX possui
excelentes utilitarios que o acompanham, como o GNU C compiler.
Também e importante identificar um erro comum que os iniciantes cometem quando apr
endem por arquivos
de texto. Nao confundam TELENET com TELNET. TELENET e uma grande rede de servido
res, agora
também conhecido como SprintNet. Possui um sistema operacional especial e e acessa
do por numeros de
acesso discado com um programa de terminal. Uma vez conectado voce pode acessar
diferentes servidores
pelo seu NUA (Network User Address). Hacke(ar) em redes como SprintNet/Telenet e
uma pratica arriscada,
por ser facilmente rastreada. Voce esta discado diretamente na rede de sua linha
telefonica. Novamente, um
servidor pode simplesmente gravar o seu endereco IP se voce conectar-se na Inter
net e usar a identificacao
de cliente para possivelmente conseguir o seu username do seu provedor.
Porta (informática)
Porta é um ponto físico (hardware) ou lógico (software), no qual podem ser feitas cone
xões, ou seja, um canal através do qual os dados são transferidos entre um dispositivo
de entrada e o processador ou entre o processador e um dispositivo de saída. Uma
porta de software é uma conexão virtual que pode ser usada na transmissão de dados. As
mais comuns são as portas TCP e UDP, que são usadas para conexão entre os computadore
s e a Internet. Já uma porta de hardware serve como elemento de ligação entre um compu
tador e outro, ou entre um computador e um periférico. Fisicamente, uma porta é a pa
rte de um equipamento na qual se conecta um plug ou um cabo.
O uso do termo "porta", em informática, deriva da tradução de um falso cognato port, q
ue em inglês significa "porto". A semelhança física é com os portos náuticos onde os mesmo
atracam e permitem a transferência de mercadorias e pessoas. Neste caso o porto i
nformático permite o fluxo de informação. Porém, mesmo com a tradução incorreta, o nome "po
ta" foi bem assimilado pela língua portuguesa, pela analogia que se pode fazer com
a porta de uma casa, por exemplo: uma porta, em informática, é o ponto de entrada d
e um dispositivo externo no computador.
Hardware O hardware, circuitaria, material ou ferramental. É a parte física do compu
tador, ou seja, é o conjunto de componentes eletrônicos, circuitos integrados e plac
as, que se comunicam através de barramentos.Em complemento ao hardware, o software
é a parte lógica, ou seja, o conjunto de instruções e dados processado pelos circuitos
eletrônicos do hardware. Toda interação dos usuários de computadores modernos é realizada
através do software, que é a camada, colocada sobre o hardware, que transforma o com
putador em algo útil para o ser humano. Além de todos os componentes de hardware, o
computador também precisa de um software chamado Sistema Operacional. O Sistema Op
eracional torna o computador utilizável. Ele é o responsável por gerenciar os disposit
ivos de hardware do computador (como memória, unidade de disco rígido, unidade de CD
) e oferecer o suporte para os outros programas funcionarem (como Word, Excel et
c).
O termo hardware não se refere apenas aos computadores pessoais, mas também aos equi
pamentos embarcados em produtos que necessitam de processamento computacional, c
omo o dispositivos encontrados em equipamentos hospitalares, automóveis, aparelhos
celulares (em Portugal portáteis), entre outros.
Na ciência da computação a disciplina que trata das soluções de projeto de hardware é conhe
ida como arquitetura de computadores.
Para fins contábeis e financeiros, o hardware é considerado um bem de capital.
Software. Software, logiciário ou suporte lógico é uma sequência de instruções a serem seg
idas e/ou executadas, na manipulação, redirecionamento ou modificação de um dado/informação
ou acontecimento. Software também é o nome dado ao comportamento exibido por essa se
qüência de instruções quando executada em um computador ou máquina semelhante além de um pr
duto desenvolvido pela Engenharia de software, e inclui não só o programa de computa
dor propriamente dito, mas também manuais e especificações. Para fins contábeis e financ
eiros, o Software é considerado um Bens de capital.
Este produto passa por várias etapas como: análise econômica, análise de requisitos, esp
ecificação, codificação, teste, documentação, Treinamento, manutenção e implantação nos amb
portas
Transmission Control Protocol
navegaçãopesquisa
Protocolos Internet (TCP/IP)
Camada Protocolo
5.Aplicação
HTTP, SMTP, FTP, SSH, Telnet, SIP, RDP, IRC, SNMP, NNTP, POP3, IMAP, BitTorrent,
DNS, Ping ...
4.Transporte
TCP, UDP, RTP, SCTP, DCCP ...
3.Rede
IP (IPv4, IPv6) , ARP, RARP, ICMP, IPsec ...
2.Enlace
Ethernet, 802.11 WiFi, IEEE 802.1Q, 802.11g, HDLC, Token ring, FDDI, PPP,Switch
,Frame relay,
1.Física
Modem, RDIS, RS-232, EIA-422, RS-449, Bluetooth, USB, ...
O TCP (acrônimo para o inglês Transmission Control Protocol) é um dos protocolos sob o
s quais assenta o núcleo da Internet. A versatilidade e robustez deste protocolo t
ornou-o adequado a redes globais, já que este verifica se os dados são enviados de f
orma correta, na sequência apropriada e sem erros, pela rede.
O TCP é um protocolo do nível da camada de transporte (camada 4) do Modelo OSI e é sob
re o qual assentam a maioria das aplicações cibernéticas, como o SSH, FTP, HTTP portan
to, a World Wide Web.
Características técnicas
Cabeçalho de uma trama TCP
+ Bits 0 - 3 4 - 9 10 - 15 16 - 31
0 Porta na origem Porta no destino
32 Número de sequência
64 Número de confirmação (ACK)
96 Offset Reservados Flags Janela
Window
128 Checksum Ponteiro de urgência
160 Opções (opcional)
Padding (até 32)
224
Dados
Detalhe do campo Flags
+ 10 11 12 13 14 15
96 UrgPtr ACK Push RST SYN FIN
As características fundamentais do TCP são:
Orientado à conexão - A aplicação envia um pedido de conexão para o destino e usa a
" para transferir dados.
Ponto a ponto - uma conexão TCP é estabelecida entre dois pontos.
Confiabilidade - O TCP usa várias técnicas para proporcionar uma entrega confiável
pacotes de dados, que é a grande vantagem que tem em relação ao UDP, e motivo do seu
uso extensivo nas redes de computadores. O TCP permite a recuperação de pacotes perd
idos, a eliminação de pacotes duplicados, a recuperação de dados corrompidos, e pode rec
uperar a ligação em caso de problemas no sistema e na rede.
Full duplex - É possível a transferência simultânea em ambas direções (cliente-serv
ante toda a sessão.
Handshake - Mecanismo de estabelecimento e finalização de conexão a três e quatro t
, respectivamente, o que permite a autenticação e encerramento de uma sessão completa.
O TCP garante que, no final da conexão, todos os pacotes foram bem recebidos.
Entrega ordenada - A aplicação faz a entrega ao TCP de blocos de dados com um taman
o arbitrário num fluxo (ou stream) de dados, tipicamente em octetos. O TCP parte e
stes dados em segmentos de tamanho especificado pelo valor MTU. Porém, a circulação do
s pacotes ao longo da rede (utilizando um protocolo de encaminhamento, na camada
inferior, como o IP) pode fazer com que os pacotes não cheguem ordenados. O TCP g
arante a reconstrução do stream no destinatário mediante os números de sequência.
Controle de fluxo - O TCP usa o campo janela ou window para controlar o fluxo. O
receptor, à medida que recebe os dados, envia mensagens ACK (=Acknowledgement), c
onfirmando a recepção de um segmento; como funcionalidade extra, estas mensagens pod
em especificar o tamanho máximo do buffer no campo (janela) do segmento TCP, deter
minando a quantidade máxima de bytes aceita pelo receptor. O transmissor pode tran
smitir segmentos com um número de bytes que deverá estar confinado ao tamanho da jan
ela permitido: o menor valor entre sua capacidade de envio e a capacidade inform
ada pelo receptor.
[editar] Descrição do funcionamento
Neste simples exemplo só está a ser considerada a janela do servidor. O cliente tem
a percepção do estado da janela do servidor a cada ACK recebido.
O cabeçalho TCP possui um parâmetro que permite indicar o espaço livre atual do recept
or (emissor quando envia a indicação): a janela (ou window). Assim, o emissor fica a
saber que só poderá ter em trânsito aquela quantidade de informação até esperar pela confi
mação (ACK) de um dos pacotes - que por sua vez trará, com certeza, uma atualização da jan
ela. Curiosamente, a pilha TCP no Windows foi concebida para se auto-ajustar na
maioria dos ambientes e, nas versões atuais, o valor padrão é superior em comparação com v
ersões mais antigas.
Porém, devido ao tamanho do campo, que não pode ser expandido, os limites aparentes
da janela variam entre 2 e 65535, o que é bastante pouco em redes de alto débito e h
ardware de alta performance. Para contornar essa limitação é usado uma Opção especial que
permite obter múltiplos do valor da janela, chamado de escala da janela, ou TCP wi
ndow scale; este valor indica quantas vezes o valor da janela, de 16 bit, deve s
er operado por deslocamento de bits (para a esquerda) para obter os múltiplos, pod
endo variar entre 0 e 14. Assim, torna-se possível obter janelas de 1 gigabyte. O
parâmetro de escala é definido unicamente durante o estabelecimento da ligação.
[editar] Término da ligação
Término de conexão.
A fase de encerramento da sessão TCP é um processo de quatro fases, em que cada inte
rlocutor responsabiliza-se pelo encerramento do seu lado da ligação. Quando um deles
pretende finalizar a sessão, envia um pacote com a flag FIN ativa, ao qual deverá r
eceber uma resposta ACK. Por sua vez, o outro interlocutor irá proceder da mesma f
orma, enviando um FIN ao qual deverá ser respondido um ACK.
Pode ocorrer, no entanto, que um dos lados não encerre a sessão. Chama-se a este tip
o de evento de conexão semi-aberta. O lado que não encerrou a sessão poderá continuar a
enviar informação pela conexão, mas o outro lado não.
[editar] Portas ou serviços
O TCP introduz o conceito de porta tipicamente associado a um serviço (camada apli
cação)/ligação específica. Assim, cada um dos intervenientes na conexão dispõe de uma porta
sociada (um valor de 16 bit) que dificilmente será o mesmo do interlocutor. Alguns
serviços (que fazem uso de protocolos específicos) são tipicamente acessíveis em portas
fixas, conhecidas como portas bem conhecidas, que são aqueles numerados do 1 ao 1
023. Além destas, existem ainda duas gamas de portas, registradas e privadas ou di
nâmicas. As portas bem conhecidas são atribuídas pela Internet Assigned Numbers Author
ity (IANA) e são tipicamente utilizados por processos com direitos de sistema ou s
uper-utilizador. Nestas portas encontram-se em escuta passiva os serviços triviais
, como HTTP, SSH, FTP, etc. Todos os protocolos da suite IP se encontram registr
ados dentro desta gama.
A gama de portas privadas segue regras de atribuição específicas do sistema operativo
e serve para abrir ligações a outras máquinas, como surfar na rede, por exemplo.[edita
r] Utilização do IP para entrega de dados
User Datagram Protocol
O User Datagram Protocol (UDP) é um protocolo simples da camada de transporte. Ele
é descrito na RFC 768 e permite que a aplicação escreva um datagrama encapsulado num
pacote IPv4 ou IPv6, e então enviado ao destino. Mas não há qualquer tipo de garantia
que o pacote irá chegar ou não.
O protocolo UDP não é confiável. Caso garantias sejam necessárias, é preciso implementar u
ma série de estruturas de controle, tais como timeouts, retransmissões, acknowlegmen
ts, controle de fluxo, etc. Cada datagrama UDP tem um tamanho e pode ser conside
rado como um registro indivisível, diferentemente do TCP, que é um protocolo orienta
do a fluxos de bytes sem início e sem fim.
Também dizemos que o UDP é um serviço sem conexão, pois não há necessidade de manter um rel
cionamento longo entre cliente e o servidor. Assim, um cliente UDP pode criar um
socket, enviar um datagrama para um servidor e imediatamente enviar outro datag
rama com o mesmo socket para um servidor diferente. Da mesma forma, um servidor
poderia ler datagramas vindos de diversos clientes, usando um único socket.
O UDP também fornece os serviços de broadcast e multicast, permitindo que um único cli
ente envie pacotes para vários outros na rede.
Funcionamento
O UDP dá às aplicações acesso direto ao serviço de entrega de datagramas, como o serviço de
entrega que o IP dá. O UDP é pouco confiável, sendo um protocolo não orientado para cone
xão. Não existem técnicas no protocolo para confirmar que os dados chegaram ao destino
corretamente. O UDP usa número de porta de origem e de destino de 16 bits.
O UDP é um acrónimo do termo inglês User Datagram Protocol que significa protocolo de
datagramas de utilizador (ou usuário). O UDP faz a entrega de mensagens independen
tes, designadas por datagramas, entre aplicações ou processos, em sistemas host. A e
ntrega pode ser feita fora de ordem e datagramas podem ser perdidos. A integrida
de dos dados pode ser conferida por um "checksum" (um campo no cabeçalho de checag
em por soma) baseado em complemento de um, de 16 bits.
Os pontos de acesso do UDP são geralmente designados por "Portas de protocolo" ou
"portas" ou até "portos", em que cada unidade de transmissão de dados UDP identifica
o endereço IP e o número de porta do destino e da fonte da mensagem, os números poden
do ser diferentes em ambos os casos.
A diferença básica entre o UDP e o TCP é o fato de que o TCP é um protocolo orientado à co
nexão e, portanto, inclui vários mecanismos para iniciar, manter e encerrar a comuni
cação, negociar tamanhos de pacotes, detectar e corrigir erros, evitar congestioname
nto do fluxo e permitir a retransmissão de pacotes corrompidos, independente da qu
alidade do meio físicos.
No UDP, por sua vez, é feito para transmitir dados pouco sensíveis, como fluxos de áud
io e vídeo, ou para comunicação sem conexão como é o caso da negociação DHCP ou tradução de
s por DNS. No UDP não existem verificações, nem confirmações. Os dados são transmitidos ape
as uma vez, incluindo apenas um frágil, e opcional, sistema de CRC de 16 bits. Os
pacotes que chegam corrompidos são simplesmente descartados, sem que o emissor seq
uer saiba do problema. Por outro lado, a ausência de estruturas de controle comple
xas garante ao UDP alta eficiência, já que cada pacote é composto praticamente somente
por dados.
[editar] Cabeçalho UDP
O cabeçalho UDP é extremamente simples, contendo apenas os números de porta, comprimen
to da mensagem e o checksum. O cabeçalho dos datagramas UDP é colocado a seguir ao c
abeçalho IP.
Porta origem Porta destino
Comprimento da mensagem Checksum
Os campos em laranja são opcionais. A porta de origem geralmente especifica a port
a desejada de resposta, mas pode ser omitida. Isso tipicamente ocorre em comunic
ações broadcast ou mensagens de pânico, que notificam sobre a queda de um equipamento.
[editar] Seleção do número de portas no UDP
Os computadores que pretendem estabelecer uma comunicação devem definir um número de p
orta. Para o servidor (Processo), e aguarda pela chegada de mensagens, datagrama
s, o cliente seleciona uma porta local, para recebimento de datagramas e envia d
atagramas para a porta selecionada para o processo do servidor. Muitos serviços co
nhecidos usam números de portas reservados, por exemplo: 161 para o Protocolo SNMP
.
[editar] Vantagens do uso do UDP
O UDP é uma escolha adequada para fluxos de dados em tempo real, especialmente aqu
eles que admitem perda ou corrompimento de parte de seu conteúdo, tais como vídeos o
u voz. Aplicações sensíveis a atrasos na rede, mas poucos sensíveis a perdas de pacotes,
como jogos de computadores, também podem se utilizar do UDP. As garantias de TCP
envolvem retransmissão e espera de dados, como consequência, intensificam os efeitos
de uma alta latência de rede.
O UDP também suporta broadcasting e multicasting. Caso esses recursos sejam necessá
ios, o UDP deverá necessariamente ser utilizado. Algum tratamento de erro pode ser
adicionado, mas geralmente aplicações multicast também admitem perda de parte dos pac
otes ou fazem retransmissões constantes (tal como o ocorre no protocolo DHCP).
O UDP não perde tempo com criação ou destruição de conexões. Durante uma conexão, o
apenas 2 pacotes, enquanto no TCP esse número é superior a 10. Por isso, aplicações que
encaixam num modelo de pergunta-resposta também são fortes candidatas a usar UDP. En
tretanto, pode ser necessário implementar algoritmos de timeouts, acks e, no mínimo,
retransmissão. Nesse caso, vale lembrar que se a troca de mensagens for muito int
ensa, o protocolo TCP pode voltar a ser vantajoso, já que seu custo de conexão será am
ortizado.
Embora o processamento dos pacotes UDP seja realmente mais rápido, quando as garan
tias de confiabilidade e ordenação são necessárias, é pouco provável que uma implementação
P obterá resultados melhores do que o uso direto do TCP. Em primeiro lugar, corre-
se o risco de que uma implementação ingênua feita em UDP seja menos eficiente do que o
s algoritmos já testados e otimizados presentes no TCP. Em segundo lugar, boa part
e do protocolo TCP, nos principais sistemas operacionais, opera em modo núcleo, te
ndo portanto uma execução mais privilegiada do que um protocolo de aplicação teria. Fina
lmente, é válido lembrar que muitas placas de rede já possuem o TCP programado em seu
firmware o que permite, por exemplo, o cálculo de checksum por hardware. Por isso,
o protocolo UDP não deveria ser utilizado para fluxos de bytes confiáveis, tais com
o a transferência de arquivos. Como exemplo, podemos citar o protocolo TFTP, exceção a
essa regra, que foi feito para redes locais, de alta confiabilidade. Na interne
t, seu desempenho é muito inferior ao sua versão confiável, o protocolo FTP.
Nc -l -p 8080 isso faria com que o netcat colocasse a porta 8080 em escuta, note
que foi usado -v para que fosse mostrado a saída do programa na tela "listening o
n [any] 8080 ...", caso a opção -v não fosse inserida este texto não seria mostrado.
Fazendo um Port-Scanner com o netcat
nc -vv 127.0.0.1 1-6550 isso faz um scanner da porta 1 à 6550 mais você também pode se
lecionar as portas que deseja escanear dando um espaço entre os intervalos de port
as a ser escaneados ex: nc -vv 127.0.0.1 21 80 23 79 25 isso faria um scanner na
s portas 80, 23, 79 e 25.
Fazendo um trojan com o netcat
Note que basta redirecionar todo o trafego de uma porta enviando a cmd.exe se fo
r windows e bin/bash.sh se for UNIX a sintaxe é a seguinte em sistemas windows nc
-L -p 1024 -e cmd.exe e nc -l -p 1024 -e bin/sh em UNIX.
Fazendo um ataque de brute force com o netcat
O canivete suíço do TCP/IP tem muitas funções interessante uma delas é o brute force um ex
emplo: nc -vv 79 < c:\usuarios.txt > c:\log.txt note que você precisara de um arqu
ivos com nome de usuários em c: e todo log será gravado em c:\log.txt para que você po
ssa analisar depois. esse força bruta foi feita em cima da porta 79 FINGER mais po
deria ser facilmente adaptada a outras portas.
Fazendo um sniffer com o netcat
O fantástico netcat também pode servir como um sniffer e captura todo trafego em uma
rede basta colocar nc -vv -L 127.0.0.1 -p 80 note que o L deve ser maiúsculo pois
, esta opção reabre socketes fechados, isso fará com que o netcat capture todo trafego
na porta 80 acho que nem é mais necessário dizer que podemos também gravar toda saída e
m um arquivo TXT, mais bem pra você que ainda não sacou a jogada ai vai nc -vv -L 12
7.0.0.1 -p 80 > c:\sniffer.txt
Conclusão
Como podemos ver o NETCAT é uma faca de dois gumes é pode ser usado pelos dois lados
da força, este artigo mostrou em detalhes as principais utilidades do netcat mais
vale frisar que não são as únicas utilidades, e com um pouco de imaginação podemos fazer
verdadeiras façanhas com este verdadeiro canivete suíço ...
Aqui termina minha matéria sobre o canivete suíço do TCP/IP o netcat, espero que você te
nha gostado.
TELNET
Pra vc que não sabe o, o TelNet é um progama usado para estabelecer uma conexão entre
computadores. O TelNet é parecido com as telas de um BBS de interface DOS. O TelNe
t funciona com comandos Unix ou apartir de um menu de comandos disponíveis em algu
m lugar da tela. O TelNet pode ser usado para pesquisas e transferências de arquiv
os embora algumas pessoas o utilizem para invasão.
OBS: Este texto tem a intenção de ser educativo, e traser algumas dicas para este gr
ande progama que é o TelNet. Se vc utilizar este conhecimento para o mal, a ação é sua.
Não me responsabilizo por qualquer dano que vc venha a causar, ou qualquer confusão
que venha para o seu lado! UTILIZANDO O TELNET
Primeiro pegue o endereço que vc quer visitar. Se o endereço a ser visitado pedir o
login, vc precisará da senha. Caso vc não saiba a senha ou esqueceu, vc pode chutar.
Se o servidor for de acesso público, vc poderá ficar chutando até acertar. Se o servi
dor for de acesso restrito, vc não poderá chutar, pois se vc errar podem pegar seu I
P, e entregar vc ao seu provedor e vc se foderia.
Se vc for chutar a senha do servidor de acesso público, vc pode tentar com o nome
da organização. Por exemplo, se o endereço for: ned.ipac.caltech.edu (centro de pesqui
sas extragaláticas da Nasa), vc pode tentar a senha ned, ou ipac, ou caltech. É só usa
r a criatividade! Se tudo falhar, vc pode tentar a senha guest, que é usada na mai
oria dos casos que não obedecem a regra citada acima.
Ja se o servidor for de acessso restrito, vai ser um pouco mais complicado. Vc t
era de usar o login de alguem que tenha senha neste provedor. Se for o seu, vc p
ode por a sua senha e seu username. Mas eu não aconselho vc a fazer iso. É que quand
o vc invade um servidor de acesso restrito, vai ficar um arquivo no serivdor. Ne
sse arquivo vai tar a senha e o username do animal que invadiu. Se lá tiver a sua
senha e o seu username, eu nem preciso dizer o que vai acontecer. Tem vários outro
s jeitos de invadir sem utilizar senha, ou sem utilizar a sua senha (senhade out
re pessoa). Mas isto envolveria progamas que não tem nada a ver com Telnet. Então va
mos deixar essa parte de lado. COMANDOS UNIX BÁSICOS PARA O TELNET ls -l: lista os
arquivos de um diretório. Parâmetros principais: t, a, F, R,l ls -al: lista todos o
s arquivos de um diretório, mesmo os ocultos cp 1 2: copia o arquivo do diretório 1
para o diretório 2 (o caminho de diretório deve ser colocado por inteiro) mv 1 2: mo
ve o arquivo do diretório 1 para o diretório 2 (o caminho de diretório deve ser coloca
do por inteiro) rm: deleta arquivo cd: muda o diretório cd: muda o diretório ativo p
ara o que está 'acima' do atual mkdir: cria o diretório dentro do diretório atual rm:
remove o diretório. Parâmetros principais: r, i cat: mostra o conteúdo do arkivo pwd:
exibe o diretório atual clear: limpa a tela Find: procura arquivo. Parâmetros rpinci
pais: name, group, user LINKS PARA LNET
<PIXTEL_MMI_EBOOK_2005>1</PIXTEL_MMI_EBOOK_2005>