Está en la página 1de 12

PowerShell.

Modulo 1: Fundamentos de PowerShell y seguridad informática.


1.1 Introducción a PowerShell y su entorno de ejecución.
Es un lenguaje de scripting y un entorno de Shell desarrollado por Microsoft, diseñado
específicamente para la administración y automatización de sistemas de Windows, aunque
también es compatible con sistemas operativos cómo Linux y macOS a través de versiones
específicas de PowerShell Core. Es una herramienta potente que permite a los
administradores de sistemas realizar una amplia gama de tareas, desde la administración
básica del sistema hasta la automatización avanzada de procesos.
Características principales de PowerShell:
1. Interfaz de línea de comandos: proporciona una interfaz de línea de comandos
interactiva que permite a los usuarios ejecutar comandos directamente en la consola.
2. Lenguaje de scripting: además de la interfaz de línea de comandos, también es un
lenguaje de scripting completo que permite a los usuarios escribir scripts para
automatizar tareas y procesos.
3. Basado en objetos: trata la información como objetos en lugar de texto simple, lo
que facilita el manejo y la manipulación de datos de forma programática.
4. Acceso a API y tecnologías de Microsoft: proporciona acceso a una amplia gama de
API y tecnologías de Microsoft, lo que permite a los administradores de sistemas
interactuar con servicios como Active Directory, Exchange Server, Share Point,
SQL Server y muchos más.
5. Integración con .NET: está integrado con Framework.NET, lo que significa que los
usuarios pueden acceder a todas las clases y funciones disponibles en .NET para
realizar tareas avanzadas.
Entorno de ejecución:
1. Consola de PowerShell: es la interfaz de línea de comandos donde los usuarios
interactúan con PowerShell, la consola proporciona un entorno interactivo donde los
usuarios pueden ejecutar comandos, scripts y ver salida.
2. Interprete de comandos: es el motor que ejecuta comandos y scripts de PowerShell,
es responsable de analizar y ejecutar el código escrito por el usuario.
3. Módulos y cmdlets: proporciona una amplia variedad de módulos y cmdlets, que
permiten a los usuarios realizar diversas tareas, como administrar archivos,
servicios, procesos, registros de sistema, etc.
4. Perfil de usuario: permite a los usuarios personalizar su entorno de trabajo mediante
la creación de perfiles de usuario, que son archivos de script que se ejecutan
automáticamente cada vez que se inicia una sesión de PowerShell.
1.2 Estructura de comandos, expresiones y variables en PowerShell.
Los comandos, expresiones y variables forman la base para realizar operaciones y
manipular datos.
Comandos:
Los comandos se componen de la siguiente manera “<verbo><nombre>”.

 <verbo>: es una acción que se desea realizar, como Get (obtener), Set
(establecer), New (crear), Remove (eliminar), etc.
 <nombre>: es el nombre del objeto o recurso con el que desea finalizar la
acción.
Ejemplos: “Get-Process”, “Get-ChildItem”, “New-Item”, “Remove-Item”.
Expresiones:
Las expresiones pueden ser simples o complejas y se utilizan para realizar operaciones
matemáticas, comparaciones y evaluaciones lógicas. La estructura de una expresión
depende del tipo de operación que se esté realizando:
Ejemplos:
Operaciones matemáticas:

Comparaciones:

Evaluaciones lógicas:

Variables:
Se definen procediendo el nombre de la variable con el signo “$”. La estructura básica es:

 <NombreVariable>: es el nombre que se le asigna a la variable.


 <valor>: es el valor que se asigna a la variable.

Ejemplo: ‘$nombre = “Juan”’, ‘$edad = 30’, ‘$numero = 10’.


1.3 Uso de operadores y tipos de datos en scripts.
Los operadores y tipos de datos son fundamentales para realizar operaciones y manipular
información de manera efectiva de scripts.
Operadores en PowerShell:
Operadores aritméticos: se utilizan para valores numéricos.

 Suma: +
 Resta: -
 Multiplicación: *
 División: /
 Modulo (resto de la división): %
 Incremento: ++
 Decremento: --

Operadores de comparación: se utiliza para comparar valores.

 Igual a: -eq
 No igual a: -ne
 Mayor que: -gt
 Menor que: -lt
 Mayor o igual que: -ge
 Menor o igual que: -le

Operadores de asignación: se usan para asignar valores a variables.

 Asignación simple: =
 Asignación con adición: +=
 Asignación con sustracción: -=
 Asignación con multiplicación: *=
 Asignación con división: /=

Operadores lógicos: se utilizan para combinar expresiones lógicas.

 Y lógico: -and
 lógico: -or
 Negación lógica: -not

Operadores de concatenación: se utilizan para unir cadenas de texto.

 Concatenación de cadenas de texto: +

Tipos de datos:
 Cadenas de texto (strings): se utilizan para almacenar texto (“Hola, mundo”).
 Números (Integers, doubles): se utilizan para almacenar valores numéricos
($numero = 10).
 Booleanos: se utilizan para representar valores de verdad (verdadero - falso)
($verdadero = $true)
 Arreglos (Arrays): se utilizan para guardar una colección de valores ($arreglo =
@(“Manzana”, “Naranja”, “Limón”)).
 Objetos (objects): se utiliza para representar estructuras de datos complejas ($objeto
= [PSCustomObject]@{ nombre = “Juan”; edad = 30 }).
 Nulo (Null): se utiliza para representar la ausencia de valor ($varibleNula = $null).
 Fecha y hora (date - time): se utiliza para almacenar fechas y horas ($fecha = Get-
Date).

1.4 Administración básica del sistema operativo.


Implica realizar tareas comunes de gestión de archivos, directorios, procesos, servicios y
usuarios, entre de más cosas.
Gestión de archivos y directorios.

 Listar archivos de un directorio:

 Crear un nuevo directorio:

 Eliminar un archivo:

Gestión de procesos:

 Listar procesos en ejecución:

 Finalizar un proceso:

Gestión de servicios:

 Listar servicios en ejecución:

 Detener un servicio:

 Iniciar un servicio:
Gestión de usuario:

 Listar usuarios del sistema:

 Crear un nuevo usuario: New-LocalUser -Name "Nuevo Usuario" -Full Ñame


"Nombre Completo" -Password (ConvertTo-SecureString "Contraseña" -
AsPlainText -Force).
 Eliminar un usuario:

1.5 Interacción con el sistema de archivos.


La interacción con el sistema de archivos es una tarea común y fundamental para la
administración del sistema.
Listar archivos y directorios:

 Listar archivos en un directorio:

 Mostrar archivos y directorios ocultos:

Crear, mover y eliminar archivos y directorios:

 Crear un nuevo directorio:

 Crear un nuevo archivo:

 Mover un archivo o directorio:

 Eliminar un archivo o directorio:

Copiar archivos y directorios:

 Copiar un archivo:
 Copiar un directorio y su contenido:

Obtener información detallada de archivos y directorios:

 Obtener la información detallada de un archivo:

 Obtener la información detallada de un directorio:

Filtrar archivos por tipo o nombre:

 Filtrar archivos por extensión:

 Filtrar archivos por nombre

1.6 Gestión de procesos y servicios.


En PowerShell, puedes administrar procesos y servicios de manera efectiva utilizando una
variedad de cmdlets específicos.
Gestión de procesos:

 Listar procesos de ejecución:

 Detener un proceso por nombre:

 Detener un proceso por ID:

 Obtener información detallada de un proceso:

 Iniciar un proceso:
Gestión de servicios:

 Listar servicios en ejecución:

 Detener un servicio:

 Iniciar un servicio:

 Reiniciar un servicio:

 Obtener información detallada de un servicio:

 Establecer un servicio en modo automático de inicio:

 Establecer un servicio en modo manual de inicio:

 Establecer un servicio en modo deshabilitado:

1.7 Configuración de entornos de red.


Para configurar un entorno de red mediante PowerShell, puedes utilizar varios cmdlets
específicos que te permiten realizar diversas tareas, como la configuración de direcciones
IP, la gestión de adaptadores de red, la configuración de conexiones VPN, entre otros.
Obtener información sobre adaptadores de red:

 Listar adaptadores de red:

 Obtener información detallada de un adaptador de red especifico:

Configuración de las direcciones IP:

 Obtener la configuración IP de un adaptador de red:

 Configurar una dirección IP estática en un adaptador de red:

 Configurar el servidor DNS en un adaptador de red:


Gestión de conexiones VPN:

 Conectar a una VPN:

 Desconectar de una VPN:

Configuración de firewall:

 Habilitar un puerto de firewall:

 Desactivar el firewall de Windows:

Diagnóstico de red:

 Realizar un ping a una dirección IP o nombre de dominio:

 Verificar la conectividad de red utilizando tracert:

1.7 Introducción y contexto de PowerShell en la seguridad informática.


PowerShell, como herramienta de administración y automatización de sistemas en entornos
Windows, también desempeña un papel importante en el ámbito de la seguridad
informática. Su versatilidad y potencia lo convierten en una herramienta valiosa tanto para
los administradores de sistemas como para los profesionales de la seguridad cibernética.
Aquí tienes una introducción y contexto sobre el uso de PowerShell en seguridad
informática:
1. Automatización de tareas de seguridad:
PowerShell permite automatizar tareas de seguridad como la configuración de políticas de
seguridad, la supervisión de eventos de seguridad, la detección de amenazas y la respuesta a
incidentes. Los scripts de PowerShell pueden ayudar a implementar mejores prácticas de
seguridad, como la aplicación de políticas de seguridad basadas en roles (RBAC), la
gestión de parches y actualizaciones, y la auditoría de configuraciones de seguridad.
2. Análisis forense y respuesta a incidentes:
PowerShell proporciona herramientas para realizar análisis forense y responder a incidentes
de seguridad. Los profesionales de seguridad pueden utilizar PowerShell para recolectar
información sobre actividades sospechosas, identificar malware, analizar registros y llevar a
cabo investigaciones de incidentes.
Los scripts de PowerShell pueden ayudar a recopilar evidencia digital, examinar archivos y
registros, y automatizar la respuesta a incidentes, como la eliminación de malware y la
contención de amenazas.
3. Detección de amenazas y monitoreo de seguridad:
PowerShell puede utilizarse para desarrollar scripts y herramientas de detección de
amenazas que ayuden a identificar actividades maliciosas, como la ejecución de comandos
sospechosos, la manipulación de archivos y la comunicación con servidores maliciosos.
Los scripts de PowerShell pueden integrarse con sistemas de gestión de eventos e
información de seguridad (SIEM) para proporcionar alertas tempranas sobre posibles
amenazas y anomalías en el entorno de red.
4. Pruebas de penetración y evaluación de seguridad:
Los profesionales de seguridad pueden utilizar PowerShell para llevar a cabo pruebas de
penetración, evaluaciones de seguridad y auditorías de sistemas. PowerShell proporciona
acceso a una amplia gama de funciones y API del sistema operativo que pueden utilizarse
para identificar vulnerabilidades, realizar pruebas de explotación, y evaluar la seguridad de
aplicaciones y sistemas.
5. Protección de PowerShell:
Aunque PowerShell es una herramienta poderosa, también puede ser utilizada por actores
malintencionados para llevar a cabo ataques cibernéticos. Por lo tanto, es importante
implementar medidas de protección para mitigar los riesgos asociados con el uso de
PowerShell. Esto incluye la aplicación de políticas de seguridad de ejecución de scripts, el
monitoreo de actividades de PowerShell, y la implementación de controles de acceso y
autenticación adecuados.
1.8 Configuración segura del entorno de ejecución de PowerShell.
La configuración segura del entorno de ejecución de PowerShell es esencial para prevenir
posibles riesgos de seguridad y mitigar posibles amenazas. Aquí hay algunas prácticas
recomendadas para configurar de manera segura el entorno de ejecución de PowerShell:
1. Configurar la ejecución de scripts de PowerShell:
Restringir la ejecución de scripts: Configura la directiva de ejecución de scripts de
PowerShell para restringir la ejecución de scripts no firmados o provenientes de fuentes no
confiables. Esto ayuda a prevenir la ejecución de scripts maliciosos.

Firmar scripts: Firma digitalmente los scripts de PowerShell utilizando un certificado de


confianza para garantizar su autenticidad e integridad. Esto permite que los scripts firmados
se ejecuten en sistemas que tienen la directiva de ejecución de scripts restringida.

2. Habilitar la auditoría de PowerShell:


Habilitar la auditoría de eventos de PowerShell: Configura la directiva de auditoría de
eventos de PowerShell para registrar y supervisar actividades relacionadas con PowerShell,
como la ejecución de comandos y scripts, la carga de módulos y la interacción con el
sistema de archivos.

3. Implementar controles de acceso y permisos:


Limitar los privilegios: Asigna privilegios mínimos necesarios para ejecutar scripts de
PowerShell y acceder a recursos del sistema. Evita ejecutar scripts de PowerShell con
privilegios de administrador si no es necesario. Restringir la ejecución remota: Configura la
ejecución remota de PowerShell para limitar el acceso a sistemas remotos solo a usuarios y
sistemas autorizados. Esto ayuda a prevenir ataques de abuso remoto de PowerShell.

4. Actualizar y mantener PowerShell:


Mantener actualizado PowerShell: Asegúrate de mantener actualizada la versión de
PowerShell instalada en tus sistemas para beneficiarte de las últimas mejoras de seguridad
y correcciones de vulnerabilidades.
5. Monitorear y revisar:
Monitorear la actividad de PowerShell: Implementa soluciones de monitoreo y detección de
amenazas que registren y analicen la actividad de PowerShell para detectar posibles
comportamientos maliciosos o anómalos.

Revisar y auditar regularmente: Realiza auditorías y revisiones periódicas del entorno de


ejecución de PowerShell para identificar posibles áreas de mejora en la configuración de
seguridad y garantizar el cumplimiento de las políticas de seguridad.
Modulo 2: Automatización de tareas con PowerShell.
2.1 Desarrollo de scripts para configurar políticas de seguridad
Configuración de la directiva de ejecución de scripts:

También podría gustarte