Mostrando postagens com marcador shell. Mostrar todas as postagens
Mostrando postagens com marcador shell. Mostrar todas as postagens

terça-feira, 26 de novembro de 2013

Olá!

Hoje vai uma dica de como esconder arquivos em uma máquina previamente atacada. Uma dica interessante: a vítima não consegue ver o arquivo nem habilitando a opção "Mostrar arquivos e pastas ocultas".

Assim que tiver uma sessão do meterpreter aberta use o comando shell para receber a shell da máquina alvo.


Localize o arquivo que deseja ocultar, no meu caso , o arquivos senhas.txt no desktop do usuário.


Com o comando attrib +h +r +s <nome_do_arquivo> podemos esconder um arquivo, pasta ou até mesmo unidade (C:/, D:/, etc).


E ai está! O arquivo sumiu!

Caso queira o arquivo de volta basta usar o comando attrib -h -r -s <nome_do_arquivo>.

OBS: Estes comandos também funcionam direto no "cmd" caso tenha acesso físico a máquina.


Eu fico por aqui! Bons estudos!

sexta-feira, 17 de maio de 2013

Olá pessoal!

Neste post, vamos ver alguns comandos, variáveis, arquivos e definições para administrarmos todos os parâmetros na nossa shell. Veja aqui como personalizar a sua shell para tirar o máximo proveito do seu terminal e atender suas necessidades.

As variáveis da “shell” têm o mesmo objetivo das variáveis que conhecemos na área da computação, ou seja, são áreas de memória que podem conter dados que serão utilizados por diversos programas. Quando estamos falando de variáveis em “shell” não precisamos nos preocupar em declará-las nem mesmo definir o seu tipo. Em “shell”, uma variável é definida simplesmente atribuindo-se um valor a ela. Por exemplo, se queremos ter em algum local na memória armazenado por algum motivo o número "35", basta declarar uma variável da seguinte maneira:
VARIAVEL1=35

Podemos usar este tipo de variável, chamada escalar, para armazenar tanto números quanto caracteres.

Para acessar ou referenciar as variáveis, precisamos usar o símbolo do cifrão ( $ ) antes do nome da variável. O exemplo abaixo escreve o conteúdo da variável na tela:
echo $VARIAVEL1

O comando “echo” é usado para imprimir algo na tela ou direcionar para um arquivo. Isso é bastante útil para automação. Na linha de comando o “echo” é útil para inspecionar variáveis de ambiente, que são parâmetros guardados em memória e que definem o ambiente em uso.

OBS: Não é obrigatório o uso de palavras maiúsculas no nome das variáveis, mas é uma prática muito recomendada para padronização.


Variáveis Locais e Globais


Quando falamos em variáveis em “shell” temos que ter em mente a divisão entre variáveis locais e de ambiente (ou globais). A diferença entre elas é que uma variável local tem visibilidade restrita, apenas ao escopo ao qual ela foi definida, e uma variável de ambiente tem visibilidade não só no escopo em que foi definida mas também em ambientes derivados.

A única diferença técnica entre variáveis locais e de ambiente é a forma de sua definição. Para definir uma variável local, basta atribuir um valor a um nome de variável. Para definir uma variável de ambiente o procedimento adiciona o comando “export” antes da definição. Abaixo mostramos exemplos de definição de variável local e de ambiente:
# LOCAL =" sem export na frente "
# export GLOBAL =" com export na frente "

Para remover uma variável, use o comando unset.

Para estas variáveis ficarem permanente para todos e funcionar em qualquer terminal deve-se colocar em um dos arquivos:
/etc/profile
/etc/environment

Algumas variáveis importantes:

EDITOR -> define o editor que abrirá um programa que chama o editor padrão. No debian, conseguimos fazer a alteração do editor através do comando update-alternatives –config editor.

TMOUT -> tempo em segundos de inatividade para deslogar automaticamente.

HOME -> home do usuário atual.

HISTSIZE -> tamanho do histórico de comandos.

PATH -> define quais diretórios pesquisar e a ordem na qual eles são pesquisados para encontrar um determinado comando.


Alias


Um recurso do “shell” que facilita muito a vida do usuário é a definição de “aliases”. Imagine que um usuário gosta de utilizar o comando “ls” sempre com os parâmetros“--color -h -l”. O que seria dele se toda vez que fosse executá-lo tivesse que escrever o comando com todos os parâmetros?! Para resolver esse tipo de situação, basta criar um “alias” para o comando “ls” que defina que cada vez que o usuário digitar um simples “ls” ele será sucedido pelas opções definidas, e o que será executado será o comando “ls --color -h -l”. Para criarmos esse “alias”, basta usarmos o comando abaixo:
alias ls = ’ls --color -h -l’

Caso você precise desabilitar um alias use o comando unalias alias_criado. E para ver todos os alias basta digitar o comando alias.


Login


Quando uma “bash” é executada como uma “shell” de “login” interativo ela lê e executa o arquivo“/etc/profile”, se ele existir. Esse arquivo deve conter as configurações gerais que se aplicam a todos os usuários do sistema. Após ler o “/etc/profile”, ela irá procurar por um dos arquivos:
~/.bash_profile
~/.bash_login
~/.profile

Esses arquivos estão na “home” do usuário, executando o primeiro que estiver disponível e tiver permissão de leitura. Além desses, executa também o arquivo “/.bashrc”. Perceba que esses são arquivos ocultos, pois estão precedidos por um (.). Quando a “bash” estiver sendo terminada (usuário fazendo logout), o arquivo “/.bash_logout” será lido e executado, caso ele exista. Através deste arquivo, podemos automatizar procedimentos como por exemplo limpar a tela ao se “deslogar” do sistema. Quando uma “bash” é chamada mas não é uma “shell de login”, o arquivo chamado será apenas o“/.bashrc”.

Os arquivos “/etc/issue” e “/etc/motd” são usados para mostrar mensagens para os usuários e não interferem na parte operacional do sistema. A diferença entre os arquivos “/etc/issue” e “/etc/motd”, é que o primeiro exibe uma mensagem para o usuário antes que o mesmo faça “login” no sistema, enquanto o segundo exibe uma mensagem após o usuário se “logar” no sistema. Há ainda o arquivo“/etc/issue.net”, que contém a mensagem exibida em “logins” remotos.

E ficamos por aqui, no próximo post vamos ver um assunto que assusta muitos usuários linux, os editores de texto no terminal.

quarta-feira, 15 de maio de 2013

E vamos para mais um post do guia para a LPI, nosso foco hoje será a interface de texto, mais conhecida como shell.

Linux sem shell é a mesma coisa que não ter nada. Grande parte do arsenal do linux está no terminal, por ele que vamos fazer a maioria das nossas brincadeiras pelo sistema.

As instruções, ou comandos que vamos digitar na shell serão interpretadas diretamente pelo kernel. Não precisam de todo o ambiente do sistema para processar e retornar suas funções, por isso que dizem que o terminal funciona melhor que o próprio sistema.

Primeiramente, saiba que existem vários tipos de shell, mas a que vamos nos focar é na padrão do GNU/Linux, o Bash.

Antes de sairmos digitando comandos como malucos precisamos saber mais alguns detalhes. Existem 2 tipos de usuarios, os usuarios normais do sistema e o super usuário, conhecido no mundo linux comoroot. Normalmente, por limitação do sistema ou por boas práticas, utiliza-se sempre o usuário normal no dia-a-dia, e em casos que o usuario normal não consiga resolver que apelamos para o root. Não usamos o root para tudo por que? Simples, o super usuario tem plenos poderes sobre tudo e todos. Imagine o que um comando errado poderia causar se fosse usado apenas o root.

Se você prestar a atenção na sua shell (se for a bash) tera algo assim:

seuusuario@suamaquina: ~#

ou

seuusuario@suamaquina: ~$


Com essa linha que sempre aparece no terminal (novamente, nesse formato é no Bash) podemos conseguir algumas informações básicas sobre nossa maquina. Como o nome do usuario corrente, o nome da maquina e um sinal, que pode ser # (tralha, jogo da velha, hashtag ou sustenido, dependendo da sua idade) ou $ (cifrão). O # quer dizer que estamos falando de um super usuario, e o $ é um usuario normal. Para usar a shell não tem grandes misterios, apenas digite o comando, suas opções de personalização e de Enter para confirmar. Simples! Agora vamos a algumas funcionalidades:

History - Os comandos de terminal são armazenados num historico temporário. O linux tem um arquivo que guarda os ultimos comandos digitados no terminal. Para visualiza-los basta digitar o comando “history”. Outro modo de acessar o historico de comandos é com as setas do teclado para cima e para baixo.

Scroll do terminal - Precisa voltar para ver a saída de algum comando que foi digitado antes mas já saiu da tela? E a rolagem do mouse não está funcionando no ambiente texto? Não tem problema! Podemos subir e descer as paginas no terminal com os atalhos Shift + Page Up e Shift + Page Down, respectivamente.

Mudar entre terminais virtuais - Nada impede que se use vários terminais ao mesmo tempo, como já comentei por aqui. Para alternarmos entre um terminal e outro basta usar a combinação de teclas Alt + F1 até F7, podendo variar para mais ou para menos, dependendo da distribuição.

Mudando nível de usuário - Caso precise (ou queira só para ver como é) usar alguma coisa que somente o super usuario tenha permissão, você pode elevar seus privilégios com o comando “su”. Logo depois do comando você deverá fornecer a senha do root. Caso consiga autenticar verá que o símbolo da shell muda para #, sinalizando que está com um super usuario. Também pode-se utilizar o comando su para se logar como outro usuario, mesmo não sendo root. Caso seja root o comando não pedirá a senha ao tentar se logar a um usuario normal. Para fazer isso usamos a sintaxe “su -nomedousuario”. Utilizamos o sinal de menos (-) para carregar as variáveis locais do usuario (falaremos disso mais para frente), e o nome do usuario a qual queremos nos logar.

Quem sou eu? - Temos aqui um comando muito útil, principalmente para um administrador que precisa sempre verificar com que tipo de permissões está. O comando “whoami” mostra com qual usuario você está no momento. Já o comando “who am i” (perceba que este com espaços) mostra com qual usuario eu me loguei nessa sessão.

Configurando o teclado - Uma das coisas que mais atrapalha no ambiente texto é a configuração de teclado. Nem sempre o teclado vai estar corretamente configurado. Para abrir o configurador de teclado utilize o comando “dpkg-reconfigure keyboard configuration”. Uma interface semi-gráfica se abrirá, escolha o layout de teclado que mais lhe agradar e logo depois de sair deste comando precisa-se reiniciar o serviço para que as alterações tenham efeito. Para isso temos o comando “/etc/init.d/keyboard-setup restart”. Todos esses comandos e procedimentos de teclado são exclusivos para distros baseadas no debian. Para as outras distros, usamos o comando “system-config-keyboard” para alterar o layout.

Mouse no terminal - Se mesmo depois de tudo isso você ainda precisa de mouse não se preocupe, tem como! Para isso, você precisa baixar e instalar o pacote gpm. Você pode usar o comando “apt-get install gpm” em distros Debian e o comando “yum install gpm” nas baseadas em Cent OS (falaremos de instalações mais adiante).

E chegamos ao fim de mais um post da série. Agora cada vez mais prático e mais aprofundado. Prepare-se ;)
Subscribe to RSS Feed Follow me on Twitter!