d4redevil
  • whoami
  • Active Directory
    • Enumeración
    • PowerShell para gestionar Active Directory
    • PowerView & SharpView
    • Ataques a Kerberos
    • Ataque de contraseñas
    • SMB Relay
    • Token Impersonation
    • Golden Ticket
    • LLMNR Poisoning
    • Mimikatz
    • Grupos privilegiados
    • LAPS
  • Linux
    • Enumeración
    • Escalación de privilegios
    • Transferencia de Archivos
  • Windows
    • Enumeración
    • Escalación de privilegios
      • SeImporsonate
      • SeDebugPrivilege
      • SeTakeOwnershipPrivilege
      • Backup Operators
      • DnsAdmins
    • Transferencia de Archivos
  • Scripting
    • Powershell
      • Introducción
      • Cmdlet
      • Alias
      • Comentarios
      • Comandos utiles
      • Variables
      • Tuberías (Pipes)
      • Operaciones
      • Estructuras Condicionales
  • OWASP TOP 10 y Vulnerabilidades Web
    • Inyecciones SQL
      • ¿Qué son las Inyecciones SQL?
      • Laboratorio
      • Inyecciones SQL basada en Uniones
      • Inyecciones SQL basadas en booleanos
      • Inyecciones SQL basadas en tiempo
  • Writeups
    • Hack The Box
      • Linux
        • 🟢Easy
        • 🟡Medium
          • Zipping
        • 🔴Hard
        • ⚫Insane
      • Windows
        • 🟢Easy
          • Devel
          • Grandpa
          • Granny
          • Jerry
          • Optimum
          • Legacy
          • Active
          • Sauna
        • 🟡Medium
        • 🔴Hard
        • ⚫Insane
    • The Hackers Labs
      • Linux
        • 🟢Principiante
          • Papaya
          • Can You Hack Me?
        • 🟡Avanzado
          • Runners
          • El Candidato
          • El Cliente
        • 🔴Profesional
        • ⚫Experto
          • ⚫Thlcppt_v16
      • Windows
        • 🟢Principiante
          • Cocido Andaluz
          • Ensalá Papas
        • 🟡Avanzado
        • 🔴Profesional
          • BlackGold
        • ⚫Experto
    • Dockerlabs
      • 🔵Muy fácil
      • 🟡Fácil
      • 🟠Medio
        • Database
      • 🔴Difícil
    • VulnHub
      • Linux
        • 🟢Easy
        • 🟡Medium
        • 🔴Hard
      • Windows
        • 🟢Easy
        • 🟡Medium
        • 🔴Hard
    • HackMyVM
      • Linux
        • 🟢Easy
        • 🟡Medium
        • 🔴Hard
        • ⚫Insane
      • Windows
        • 🟢Easy
        • 🟡Medium
        • 🔴Hard
        • ⚫Insane
  • Servicios Comunes
    • TCP
    • UDP
    • FTP (21)
    • SMB (445)
    • MySQL (3306)
    • MSSQL (1433)
  • Cheatsheet
    • Reconocimiento
    • Enumeración
    • Enumeración Web
    • Enumeración de CMS
    • Fuerza Bruta
    • Pivoting
    • Msfvenom
    • Utilidades
    • Fuerza bruta
    • Transferencia de Archivos
  • Contenedores
    • Docker
Con tecnología de GitBook
En esta página
  • Estructura condicional if
  • Estructura condicional else
  • Estructura condicional elseif
  • Estructura condicional switch
  • Referencias
  1. Scripting
  2. Powershell

Estructuras Condicionales

AnteriorOperacionesSiguienteInyecciones SQL

Última actualización hace 5 meses

¡Hola, hacker! Bienvenid@ a un nuevo posts. En este artículo, estaremos viendo las Estructuras Condicionales en PowerShell.

En PowerShell, podemos utilizar las estructuras condicionales para controlar el flujo de la aplicación, es decir, ejecutar bloques de código basados en la evaluación de una expresión booleana. Estas condicionales permiten tomar decisiones dentro de un script o línea de comandos dependiendo de ciertas condiciones. Existen principalmente tres tipos de estructuras condicionales en PowerShell: if, else y elseif.

Estructura condicional if

La estructura condicional if ejecuta un bloque de código si la condicion que evalúa es verdadera. La sintaxos es la siguiente:

if ( condición ) {
	# Aquí va el bloque de código a ejecutar si la condición se cumple
}

Ejemplo:

$age = 18
if ($age -ge 18) {
    Echo "Eres mayor de edad."
}

Estructura condicional else

La estructura condicional else se usa en conjunto con if para ejecutar un bloque de código cuando la condición evaluada en el if es falsa. Su sintaxis es la siguiente:

if ( condición ) {
	# Aquí va el bloque de código a ejecutar si la condición se cumple (verdadera)
} else {
	# Aquí va el bloque de código a ejecutar si la condición no se cumple (falsa)
}

Ejemplo:

$age = 18
if ($age -ge 18) {
    Echo "Eres mayor de edad."
} else {
	Echo "Eres menor de edad."
}

Estructura condicional elseif

La estructura condicional elseif se utiliza cuando se tiene varias condiciones que se desean evaluar de manera secuencial. Si la condición if es falsa, PowerShell evalúa las condiciones del elseif en orden. Si una de ellas es verdadera, ejecuta el bloque de código correspondiente. La sintaxis es la siguiente:

if (condición1) {
    # Aquí va el bloque de código a ejecutar si la condición 1 se cumple (verdadera)
} elseif (condición2) {
    # Aquí va el bloque de código a ejecutar si la condición 2 se cumple (verdadera)
} else {
    # Aquí va el bloque de código a ejecutar si las condiciones anteriores no se cumplen.
}

Ejemplo:

$grade = 85
if ($grade -ge 90) {
    Echo "Excellent"
} elseif ($grade -ge 80) {
    Echo "Very good"
} elseif ($grade -ge 70) {
    Echo "Good"
} else {
    Echo "You need to improve"
}

Estructura condicional switch

El condicional switch es útil cuando tienes múltiples valores posibles para una sola variable y quieres comparar contra varios valores. Su sintaxis es la siguiente:

switch ($variable) {
    "value1" { # Bloque de código si la variable es igual a "value1" }
    "value2" { # Bloque de código si la variable es igual a "value2" }
    default { # Bloque de código si la variable no coincide con ningún valor anterior }
}

Ejemplo:

Podemos utilizar el ejemplo anterior, pero usando la condicional switch.

$grade = 75

switch ($grade) {
    {$_ -ge 90} {Echo "Excellent"; break}
    {$_ -ge 80} {Echo "Very good"; break}
    {$_ -ge 70} {Echo "Good"; break}
    default {Echo "You need to improve"}
}

En el ejemplo anterior, el switch evalúa condiciones específicas para determinar el valor de $grade. Cada case dentro del switch utiliza una expresión que compara el valor de $grade con un número determinado, y el símbolo $_ se refiere al valor actual que está siendo evaluado en cada caso. Cuando se cumple una condición, el bloque correspondiente se ejecuta y el break asegura que el switch termine, evitando que se evalúen otros casos innecesarios. Si ninguna de las condiciones anteriores es verdadera, se ejecuta el bloque default, que maneja el caso cuando el valor de $grade no cumple con las condiciones especificadas (es decir, si no es mayor o igual a 90, 80 o 70).

Espero que los conceptos hayan quedado claros. Si aún tienes dudas, te sugiero considerar volver a leer el artículo y poner en práctica los ejemplos para reforzar tu comprensión.

¡Happy Hacking!


Referencias

Everything you wanted to know about the if statement
Everything you ever wanted to know about the switch statement