Está en la página 1de 16

Usar herramientas de línea de

comandos
Las herramientas de línea de comandos pueden ser invaluables
al resolver problemas o analizar sistemas. Si sabe cómo usarlos,
pueden facilitarle muchas tareas. Además, los objetivos
de CompTIA Security+ enumeran varias herramientas de línea
de comandos que debe conocer para ayudarlo a evaluar la
postura de seguridad de una organización. Algunos son
específicos de los sistemas Windows y se ejecutan a través de
la ventana del símbolo del sistema de Windows. Otros son
específicos de los sistemas Linux y se ejecutan a través del
terminal de Linux (a veces llamado shell).

A medida que lea esta sección y conozca estas herramientas,


le recomiendo que ejecute los comandos.

Un desafío para muchos examinados es que no tienen


un sistema Linux para jugar con estos comandos. Si no puede
ingresarlos y ver qué hacen, podría tener problemas incluso con
las preguntas fáciles. Los laboratorios en línea incluyen
laboratorios que puede usar para crear un entorno virtual de
Linux en un sistema Windows.

Línea de comandos de Windows


Antes de poder usar la línea de comandos en Windows, primero
debe iniciar la ventana del símbolo del sistema de Windows. La
forma más sencilla de iniciar la ventana del símbolo del sistema
es hacer clic con el botón derecho en el botón Inicio y
seleccionar Símbolo del sistema, como se muestra en la Figura
1.3. El botón Inicio está en la esquina inferior izquierda de la
pantalla y al hacer clic en él, se muestra el menú Inicio con
enlaces a muchas aplicaciones de uso común.
Figura 1.3: Inicio de la ventana del símbolo del
sistema de Windows

En algunas situaciones, debe iniciar la ventana del símbolo del


sistema con permisos elevados como administrador. Para hacer
esto, haga clic con el botón derecho en el botón Inicio y
seleccione Símbolo del sistema (Administrador).

Si está utilizando una versión diferente de Windows (o Microsoft


decide modificar la función del botón Inicio nuevamente), una
búsqueda rápida con su motor de búsqueda favorito debería
ayudarlo a identificar cómo abrir la ventana del
símbolo del sistema.
Terminal de Linux
El terminal es donde ejecuta comandos en un sistema
Linux. Existen diferentes formas de acceder al terminal según la
distribución que esté utilizando. Si está ejecutando Kali Linux
(recomendado mientras usa este libro), puede iniciarlo
simplemente haciendo clic en el icono del terminal en el menú de
Kali.

La Figura 1.4 muestra una instancia de Kali con el menú a la


izquierda. Si pasa el cursor sobre el segundo icono, verá
aparecer "Terminal". Haga clic y se iniciará el terminal.

Figura 1.4: Lanzamiento de la terminal en Kali Linux

Para simplificar, en lugar de decir "Linux o Unix" a lo largo de


este libro, solo lo digo como Linux. Tenga en cuenta que Linux es
una versión de Unix y los comandos que se pueden ejecutar en
un terminal Unix también se pueden ejecutar en
un terminal Linux.
Comprender los interruptores y
obtener ayuda
Casi todos los comandos con los que se ejecutará tienen
opciones disponibles que puede invocar con un
interruptor. Un modificador de línea de comandos de Windows
usa una barra diagonal (/) o un guión (-) después del comando e
incluye una opción que modifica el comando para realizar una
función diferente.

Los comandos de Linux también usan conmutadores, pero


generalmente solo usan un guión. Si usa una barra diagonal,
generalmente obtendrá resultados inesperados o un error.

El interruptor más utilizado en los sistemas Windows es el


interruptor de ayuda identificado con un signo de
interrogación. Por ejemplo, puede usar el interruptor de ayuda
para obtener ayuda con estos comandos:

• ping /? o ping -?
• ipconfig /? o ipconfig -?
• netstat /? o netstat -?

Aunque los comandos de terminal de Linux también usan


interruptores, no usan el signo de interrogación para obtener
ayuda. En cambio, si desea ayuda básica sobre un comando, a
menudo puede simplemente escribir el comando sin ningún
interruptor, o usar el símbolo de canalización (|) y la palabra
ayuda:

• ping
• ping | ayuda

La mayoría de las distribuciones de Linux incluyen un manual de


usuario incorporado que puede consultar. El manual está
organizado por páginas man y usted las consulta con el comando
man d. Por ejemplo, puede usar el siguiente comando para
obtener ayuda sobre ping:

• hombre ping
Desafortunadamente, no hay un estándar consistente para
obtener ayuda para todos los comandos en Linux. A veces, un
método funciona, pero otro no.

La clave es conocer los diferentes métodos para que pueda usar


un método alternativo si es necesario.

Caso comprensivo
La mayoría de los comandos de Windows no distinguen entre
mayúsculas y minúsculas. En otras palabras, puede escribir un
comando con mayúsculas, minúsculas o
cualquier combinación. Por ejemplo, cada uno de los siguientes
comandos hará ping a la dirección localhost IPv6 ( :: 1 ) y
proporcionará la misma salida:
• ping -6 localhost
• PiNg -6 localHOST
• PING -6 LocalHost

Sin embargo, esto no es cierto en el terminal de Linux. En


cambio, los comandos suelen estar en minúsculas y si usa letras
mayúsculas, encontrará que el comando no se reconoce. De los
tres comandos que se muestran para la línea de comandos
de Windows , solo ping -6 localhost funcionará dentro del terminal
Linux.

A medida que avanza por estos comandos, tenga en cuenta que


muchos de ellos admiten direcciones IPv4 y direcciones IPv6. Al
consultar la ayuda, puede ver cómo hacer cada uno.

Silbido
Ping es un comando básico utilizado para probar la conectividad
de sistemas remotos.

También puede usarlo para verificar que un sistema pueda


resolver nombres de host válidos para direcciones IP, probar la
NIC y verificar la postura de seguridad de una red.
El comando ping verifica la conectividad enviando paquetes de
solicitud de eco del Protocolo de mensajes de control de
Internet (ICM P). Los sistemas remotos responden con paquetes
de respuesta de eco ICMP y si recibe respuestas de eco, sabe
que el sistema remoto está operativo. Como ejemplo simple, el
siguiente comando verifica que su computadora pueda
conectarse con otra computadora en su red:

ping 192.168.1.1

En sistemas Windows, ping envía cuatro solicitudes de eco


ICMP. Los sistemas que reciben las solicitudes de eco ICMP
responden con respuestas de eco ICMP. En sistemas basados en
Linux, el ping continúa hasta que presione las teclas Ctrl + C para
detenerlo . Puede imitar este comportamiento en sistemas
Windows utilizando el modificador -t de esta manera:

ping -t 192.168.1.1

De manera similar, puede imitar el comportamiento de un ping de


Windows en un sistema Linux usando el modificador -c (para
contar) de esta manera:

ping -c 4 192.168.1.1

Este ejemplo probó la conectividad con una dirección IP en una


red local, pero puede probar fácilmente la conectividad con
cualquier sistema. Por ejemplo, si conocía la dirección IP de un
sistema que aloja un sitio web en Internet, podría hacer ping a su
dirección IP.

Uso de Ping para verificar


la resolución de nombres
El proceso de resolución de nombres resuelve un nombre de host
(como getcertifiedgetahead.com) en una n dirección IP. Hay
varios elementos de resolución de nombres. Por lo general, una
computadora consultará un Sistema de nombres de
dominio (DNS) con el nombre del host y DNS responderá con una
dirección IP.

Algunos programas maliciosos intentan romper el proceso de


resolución de nombres para hosts específicos. Por ejemplo,
los sistemas Win dows obtienen actualizaciones de un servidor
de Windows Update. En algunos casos, el malware cambia el
proceso de resolución de nombres para evitar que los sistemas
lleguen al servidor de Windows Update y
obtengan actualizaciones.

Puede hacer ping al nombre de host de un sistema remoto y


verificar que la resolución de nombre esté funcionando. Como
ejemplo, el siguiente comando resolverá el nombre de host
(itla.edu.do ) a una dirección IP:

ping itla.edu.do
Aquí está el resultado cuando el comando se ejecuta en el
símbolo del sistema en un sistema Windows 10. Tenga en cuenta
que la primera línea muestra que el ping resuelto el hos nombre t
(itla.edu.do ) a su dirección IP ( 198.20.81.218] ):
Hacer ping a getcertifiedgetahead.com [ 198.20.81.218] ] con 32
bytes de datos:
Respuesta de 198.20.81.218 : bytes = 32 tiempo = 45 ms TTL =
116
Respuesta de 198.20.81.218 : bytes = 32 tiempo = 45 ms TTL =
116
Respuesta de 198.20.81.218 : bytes = 32 tiempo = 48 ms TTL =
116
Respuesta de 198.20.81.218 : bytes = 32 tiempo = 45 ms TTL =
116
Estadísticas de ping para 198.20.81.218 :
Paquetes: Enviados = 4, Recibidos = 4, Perdidos = 0 (0% de
pérdida),
Tiempos aproximados de ida y vuelta en milisegundos -seconds:
Mínimo =
45 ms, máximo = 48 ms, promedio = 45 ms
Cuidado con los cortafuegos
Si recibe respuestas de un sistema, verifica que el otro sistema
esté operativo y sea accesible. Sin embargo, si el comando ping
falla, no significa necesariamente que el sistema remoto esté
operativo o no sea accesible. Ping podría mostrar un error de
"Tiempo de respuesta agotado" incluso si el sistema
remoto funciona correctamente.

Muchos ataques de denegación de servicio (DoS) utilizan ICMP


para interrumpir los servicios en sistemas
basados en Internet. Para proteger los sistemas, los firewalls
suelen bloquear el tráfico ICMP para evitar que estos
ataques tengan éxito. En otras palabras,
un sistema remoto puede estar operativo, pero un ping fallará
porque el firewall está bloqueando el tráfico ICMP.

Como ejemplo, es posible que pueda conectarse a


http://blogs.getcertifiedgetahead.com sitio web utilizando
un navegador web, pero el ping puede fallar. Esto indica que el
sitio web está operativo con el Protocolo de transferencia de
hipertexto (HTTP), pero un firewall está bloqueando el tráfico
ICMP.

Uso de Ping para verificar la postura


de seguridad
También puede usar ping para verificar la postura de seguridad
de una red. Por ejemplo, si ha configurado firewalls y enrutadores
para bloquear el tráfico de ping, puede verificar que los firewalls y
enrutadores estén bloqueando el tráfico utilizando ping
para verificarlo.

El módulo 4 cubre los sistemas de prevención de intrusiones


(IPS) con mayor profundidad, pero como introducción, a menudo
pueden detectar ataques y bloquearlos automáticamente. Por
ejemplo, un simple ataque distribuido de denegación de servicio
(DDoS) puede enviar miles de pings a un servidor y
sobrecargarlo. Un IPS puede detectar el ataque y bloquear
automáticamente el tráfico
ICMP, evitando efectivamente cualquier impacto del ataque.

Recuerde esto: los administradores usan ping para verificar la


conectividad de los sistemas remotos y verificar que la resolución
de nombres esté funcionando. También usan ping para verificar
la postura de seguridad de los sistemas y redes verificando que
los enrutadores, firewalls e IPS.

Puede usar ping para simular un ataque desde un par


de computadoras para enviar repetidamente solicitudes de
ping. Si el IPS está funcionando, bloqueará estos ataques y
los pings dejarán de recibir respuestas.

Ipconfig, ifconfig e ip
El comando ipconfig (abreviatura de configuración de Protocolo
de Internet) muestra la información de configuración del Protocolo
de control de transmisión / Protocolo de Internet (TCP/IP) para un
sistema. Esto incluye elementos como la dirección IP
de la computadora, la máscara de subred, la puerta de enlace
predeterminada, la dirección MAC y la dirección de un servidor
del Sistema de nombres de dominio (DNS). El comando muestra
la información de configuración para todas las tarjetas de interfaz
de red (NIC) en un sistema, incluidas las NIC cableadas y
cableadas. Los técnicos a menudo usan ipconfig como primer
paso cuando resuelven problemas de red.
Los sistemas basados en Linux usan ifconfig (abreviatura
de configuración de interfaz) en lugar de ipconfig. Una ventaja es
que ifconfig tiene más capacidades que ipconfig, lo que le permite
usarlo para configurar la NIC además de enumerar
las propiedades de la NIC.

La siguiente lista muestra algunos comandos comunes:

• ipconfig. Ingresado por sí mismo, el comando


proporciona información básica sobre la NIC, como la dirección
IP, la máscara de subred y la puerta de enlace predeterminada.
• ipconfig /all. Este comando muestra una lista completa
de información de configuración TCP/IP para cada NIC. Incluye
la dirección de control de acceso a medios (MAC), la dirección de
los servidores DNS asignados y la dirección de un servidor de
Protocolo de configuración dinámica de host (DHCP) si el sistema
es un cliente DHCP. Puede usar ifconfig -a en sistemas Linux.

• ipconfig /displaydns. Cada vez que un sistema consulta DNS


para resolver un nombre de host a una dirección IP, almacena el
resultado en el caché DNS y este comando muestra el contenido
del caché DNS. También muestra las asignaciones
de cualquier nombre de host a la dirección IP incluidas en el
archivo de hosts.

• ipconfig /flushdns . Puede borrar el contenido de la caché


DNS con este comando. Use esto cuando la memoria caché
tenga información incorrecta y desee asegurarse de que
se consulte al DNS para obtener información actualizada.

Los siguientes comandos son exclusivos de los sistemas Linux:

• ifconfig eth0. Este comando muestra la configuración de la


primera interfaz Ethernet (NIC) en un sistema Linux. Si el sistema
tiene varias NIC, puede usar eth1, eth2, etc. También puede usar
wlan0 para ver información sobre la primera interfaz inalámbrica.

• ifconfig eth0 promisc . Este comando habilita el modo


promiscuo en la primera interfaz Ethernet. El modo promiscuo
permite que una NIC procese todo el tráfico que
recibe. Normalmente, una NIC está en modo no promiscuo
e ignora todos los paquetes no dirigidos a ella.

Puede deshabilitar el modo promiscuo con este comando:

ifconfig eth0 -promisc

• ifconfig eth0 allmulti. Este comando habilita el modo de


multidifusión en la NIC. Esto permite que la NIC procese todo el
tráfico de multidifusión recibido por la NIC. Normalmente, una NIC
solo procesará el tráfico de multidifusión para los grupos de
multidifusión a los que se ha unido. Puede deshabilitar el modo
multidifusión con este comando: ifconfig eth0 -
allmulti. Normalmente, una NIC utiliza el modo no promiscuo y
solo procesa paquetes dirigidos directamente a su dirección
IP. Sin embargo, cuando lo coloca en modo promiscuo, procesa
todos los paquetes independientemente de la dirección
IP. Esto permite que el analizador de protocolos capture todos los
paquetes que llegan a la NIC.

El comando ifconfig quedó en desuso en 2009 en las


distribuciones Debian de Linux. Desaprobado significa que su uso
se desaconseja pero se tolera. El comando ifconfig es parte
del paquete net -tools y los desarrolladores de Linux Debian ya
no mantienen ese paquete. Sin embargo, todavía verá ifconfig y
otras herramientas en el paquete de herramientas de red en la
mayoría de los sistemas Linux, incluidos Kali Linux.

En lugar de usar ifconfig, los desarrolladores de Linux


recomiendan usar ip en su lugar. Aunque el comando ip puede
mostrar información y configurar interfaces de red, no usa los
mismos comandos ni tiene las mismas capacidades. Por ejemplo,
no tiene un comando que pueda usar para habilitar el modo
promiscuo en una NIC.

Aquí hay algunos comandos que puede usar con ip:

• ip link show . Muestra las interfaces junto con algunos detalles


sobre ellas.

• ip link set eth0 up. Habilita una interfaz de red

• ip -s link. Muestra estadísticas en las interfaces de red.

Netstat
El comando netstat (abreviatura de estadísticas de red) le
permite ver estadísticas de protocolos TCP/IP en un
sistema. También le brinda la posibilidad de ver conexiones de
red TCP/IP activas. Muchos ataques establecen
conexiones desde una computadora infectada a una
computadora remota. Si sospecha esto,
a menudo puede identificar estas conexiones con netstat.
Algunos de los comandos comunes que puede usar con netstat
son:

• Netstat. Muestra una lista de todas las conexiones TCP


abiertas.

• Netstat -a. Muestra una lista de todos los puertos TCP y


del Protocolo de datagramas de usuario (UDP) que el sistema
está escuchando, además de todas las conexiones abiertas. Esta
lista incluye la dirección IP seguida de dos puntos y el número de
puerto, y puede usar el número de puerto para identificar
protocolos. Como ejemplo, si ve una dirección IP seguida de :80,
indica que el sistema está escuchando en el puerto
predeterminado de 80 para HTTP. Esto indica que este sistema
es probablemente un servidor web.

• Netstat -r. Muestra la tabla de enrutamiento.

• Netstat -e. Muestra detalles sobre las estadísticas de la red,


incluido cuántos bytes envió y recibió el sistema.

• Netstat -s. Muestra estadísticas de paquetes enviados o


recibidos para protocolos específicos, como IP, ICMP, TCP y
UDP.

• Netstat -n. Muestra direcciones y números de puerto


en orden numérico. Esto puede ser útil si está buscando
información relacionada con una dirección IP específica o un
puerto específico.

• Netstat -p (IP, UDP, TCP, ICMP, etc). Muestra estadísticas


sobre un protocolo específico, como TCP o UDP. Por ejemplo,
podría usar netstat -p tcp para mostrar solo estadísticas TCP.

Puede combinar muchos de los conmutadores netstat para


mostrar diferentes tipos de información. Por ejemplo, si desea
saber cómo una lista de puertos en los que el sistema está
escuchando (-a), enumerados en orden numérico (-n), solo para
el protocolo TCP (-p tcp), puede usar este comando:

netstat - anp tcp


Netstat muestra el estado de una conexión, como ESTABLECIDO
para indicar una conexión activa. RFC 793
( https://tools.ietf.org/rfc/rfc793.txt ) define formalmente estos
estados. Algunos de los estados comunes son:

• ESTABLECIDO. Este es el estado normal para la fase


de transferencia de datos de una conexión. Indica una conexión
abierta activa.

• ESCUCHA. Esto indica que el sistema está esperando


una solicitud de conexión. El puerto conocido en el que está
escuchando un sistema indica el protocolo.

• CLOSE_WAIT. Esto indica que el sistema está esperando


una solicitud de finalización de la conexión.

• TIEMPO DE ESPERA. Esto indica que el sistema está


esperando el tiempo suficiente para asegurarse de que el sistema
remoto recibió un acuse de recibo basado en TCP.

• SYN_SENT. Esto indica que el sistema envió un TCP SYN


(sincronizar) paquete como la primera parte de SYN, SYN-ACK
(sincronizar-reconocer), ACK (reconocer) proceso de
reconocimiento y está esperando la respuesta SYN-ACK.

• SYN_RECEIVED. Esto indica que el sistema envió


un paquete TCP SYNACK después de recibir un paquete SYN
como la primera parte del proceso de enlace SYN, SYN-
ACK, ACK. Está esperando la respuesta ACK para establecer la
conexión. Un número excesivo de estados SYN_RECEIVED
indica un ataque SYN en el que un atacante inunda un sistema
con paquetes SYN pero nunca finaliza la conexión con los
paquetes ACK.
tracer
El comando tracert enumera los enrutadores entre dos
sistemas. En este contexto, cada enrutador se denomina
salto. Tracert identifica la dirección IP y, a veces, el nombre de
host de cada salto, además de los tiempos de ida y vuelta
(RTT) para cada salto. Los sistemas basados en Windows
usan tracert y los sistemas basados en Linux usan traceroute,
pero ambos funcionan de manera similar. Para simplificar, estoy
usando el nombre del comando tracert en esta sección, pero esta
sección se aplica a ambos por igual.

Los administradores de red generalmente usan tracert para


identificar enrutadores defectuosos en la red. Ping les dice si
pueden comunicarse con un servidor disidente. Si el ping
falla, pueden usar tracert para identificar dónde se detiene el
tráfico. Algunos de los saltos tendrán éxito, pero en algún
momento, tracert identificará si los paquetes se pierden,
dándoles una idea de dónde ha ocurrido el problema. Otras
veces, verán dónde aumentan los RTT a medida que el tráfico
se enruta alrededor de un enrutador defectuoso. El seguimiento
de una ruta es especialmente valioso cuando se solucionan
problemas a través de una red de área amplia (WAN). Desde una
perspectiva de seguridad, que puede usar tracert para identificar
los caminos. Como ejemplo, considere la Figura 1.5. Los usuarios
dentro de la red interna normalmente acceden a Internet
directamente a través del enrutador 1. Sin embargo,
¿qué sucede si un atacante instaló un enrutador no
autorizado entre el enrutador 1 e Internet?

Figura 1.5: Trazando un camino con tracert


El tráfico seguirá yendo y viniendo a los usuarios. Sin embargo, el
atacante podría capturar el tráfico con un analizador de
protocolos y ver los datos enviados en texto sin formato.

El atacante también puede lanzar otros ataques, como algunos


de los ataques discutidos en el Módulo 7. Desde otra
perspectiva, puede identificar si se han modificado las rutas de
Internet. Imagine que a menudo se conecta a un servidor en
Nueva York desde una ubicación de Nueva York. Hoy, la
conexión parece anormalmente lenta. Puede usar tracert para
verificar la ruta. Si observa que el tráfico ahora está
pasando por direcciones IP en países extranjeros, esto indica un
problema.

Darle una oportunidad. Inicie un símbolo del sistema de


comandos y utilice los siguientes comandos para ver
algunos usos y resultados comunes del comando tracert :

• Escriba tracert blogs.getcertifiedgetahead.com y


presione Entrar.

Identifique cuántos saltos hay entre su sistema y este servidor


web. Identifique si los RTT son significativamente más largos que
otros.

• Escriba tracert –d blogs.getcertifiedgetahead.com y


presione Entrar. Observe que el modificador -d obliga a tracert a
no resolver las direcciones IP a los nombres de host, lo que
permite que el comando finalice más rápidamente.

Arp
Arp es una herramienta de línea de comandos que está
relacionada con el Protocolo de resolución de direcciones
(ARP); sin embargo, arp (el comando) y ARP (el protocolo) no
son lo mismo. El módulo 3 analiza ARP (el protocolo), pero como
una breve introducción, ARP resuelve las direcciones IP en
direcciones MAC y almacena el resultado en la caché ARP.

Puede usar el comando arp para ver y manipular el caché ARP.


Aquí hay algunos comandos de muestra:

• arp . Sin un interruptor, muestra ayuda en Windows

• arp . Sin un interruptor, muestra el caché ARP en Linux

• arp -a. Muestra el caché ARP en Windows

• arp -a 192.168.1.1. Muestra la entrada de caché ARP para


la dirección IP especificada

También puede usar arp para identificar la dirección MAC de


otros sistemas en su red local. Como ejemplo, imagine que desea
identificar la dirección MAC del servidor1. Puede hacer ping al
servidor1 y ARP identificará la dirección IP del servidor1. Luego
puede usar arp -a para mostrar el caché ARP, que incluye
la dirección MAC del servidor1.

El módulo 7 cubre varios ataques, incluido el envenenamiento de


caché ARP donde los atacantes manipulan el caché
ARP. Si sospecha un ataque de envenenamiento de caché ARP,
puede usar arp para verificar el caché.

También podría gustarte