stamin4
  • whoami
  • HTB Academy
    • Introduction to Academy
    • Learning Process
    • Vulnerability Assessment
    • Web Requests
    • Introduction to Networking
    • Linux Fundamentals
    • Brief Intro to Hardware Attacks
    • Setting Up
    • Using the Metasploit Framework
    • Security Incident Reporting
    • Introduction to Web Applications
    • JavaScript Deobfuscation
    • Attacking Web Applications with Ffuf
    • Windows Fundamentals
    • File Inclusion
  • HTB Machines
    • Windows
      • 🟢Easy
      • 🟠Medium
      • 🔴Difficult
      • 🟣Insane
    • Linux
      • 🟢Easy
        • Cap
      • 🟠Medium
      • 🔴Difficult
      • 🟣Insane
  • OverTheWire
    • Bandit
      • Nivel 0
      • Nivel 1
      • Nivel 2
      • Nivel 3
      • Nivel 4
      • Nivel 5
      • Nivel 6
      • Nivel 7
      • Nivel 8
      • Nivel 9
      • Nivel 10
  • Base de datos
    • SQL
      • SELECT queries 101
      • Queries with constraints (Pt. 1)
      • Queries with constraints (Pt. 2)
      • Filtering and sorting Query results
      • Simple SELECT Queries
      • Multi-table queries with JOINs
      • OUTER JOINs
      • A short note on NULLs
      • Queries with expressions
      • Queries with aggregates (Pt. 1)
      • Queries with aggregates (Pt. 2)
      • Order of execution of a Query
      • Inserting rows
      • Updating rows
      • Deleting rows
      • Creating tables
      • Altering tables
      • Dropping tables
  • PortSwigger
    • Path Traversal
  • Dockerlabs
    • Trust
    • Firsthacking
    • Upload
Powered by GitBook
On this page
  • Overview
  • Introduction to Windows
  • Operating System Structure
  • File System
  • NTFS vs. Share Permissions
  • Windows Services & Processes
  • Interacting with the Windows Operating System
  • Windows Management Instrumentation (WMI)
  • Windows Security
  • Skills Assessment - Windows Fundamentals
  1. HTB Academy

Windows Fundamentals

Overview

Este módulo cubre conceptos básicos para empezar a trabajar con Windows y la línea de comandos. Entre los temas que más se destacan se encuentran los siguientes:

  • Estructura del sistema operativo

  • El sistema de archivos

  • Gestión de permisos

  • Servicios

  • Procesos

  • Seguridad de Windows

  • Windows Task Manager

  • Microsoft Management Console (MMC)

  • Windows Subsystem for Linux (WSL)

Buenísimo el Skills Assessment del final para repasar todo lo visto. Además, me sirvió para complementar lo que había aprendido en el curso 'Operating Systems Basics' de Cisco Networking Academy porque hay una buena cantidad de conceptos que se repiten.


Introduction to Windows

Desplegamos el target y la Pwnbox.

Nos conectamos por RDP (Remote Desktop Protocol) como el usuario "htb-student" con la contraseña "Academy_WinFun!".

xfreerdp /v:10.129.201.57 /u:htb-student /p:Academy_WinFun!

Se va a abrir una nueva ventana donde vamos a ver la interfaz gráfica de la máquina remota:

La sección cuenta con dos preguntas:

  • ¿Cuál es el número de compilación o Build Number de la máquina? 19041

Cada versión de Windows tiene un número de compilación único que se utiliza para identificar y distinguir las diferentes iteraciones del sistema operativo.

  • ¿Cuál es la versión de Windows NT instalada? Windows 10

Obtuve las respuestas a través del cmdlet Get-WmiObject en PowerShell que se utiliza para encontrar información sobre el sistema operativo.

Get-WmiObject -Class win32_OperatingSystem  

SystemDirectory : C:\WINDOWS\system32       
Organization    :            
BuildNumber     : 19041                   
RegisteredUser  : mrb3n                   
SerialNumber    : 00329-10280-00000-AA938           
Version         : 10.0.19041      

Operating System Structure

Tenemos que encontrar el directorio no estándar en la unidad C y proporcionar el contenido de la flag que se encuentra almacenada en ese directorio.

Entonces, primero listamos los recursos del directorio C:.

PS C:\Users\htb-student> dir c:\


    Directory: C:\


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----         8/23/2021  10:20 AM                75afac25577675a9bfafd2405602
d-----          9/7/2020   1:41 PM                Academy
d-----         12/7/2019   1:14 AM                PerfLogs
d-r---         1/31/2022   4:05 PM                Program Files
d-r---         1/31/2022   3:01 PM                Program Files (x86)
d-r---         1/31/2022   3:02 PM                Users
d-----         2/14/2024   8:42 AM                Windows

Nos movemos al directorio Academy y listamos los archivos que se encuentran dentro.

PS C:\Users\htb-student> cd C:\Academy
PS C:\Academy> ls


    Directory: C:\Academy


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----          9/7/2020  12:17 PM             32 flag.txt

Finalmente mostramos el contenido del archivo flag.txt.

PS C:\Academy> type flag.txt
c8fe8d977d3a0c655ed7cf81********

File System

Pregunta: ¿Qué usuario del sistema tiene control total sobre el directorio c:\users?

La respuesta es bob.smith.

Como podemos ver con el comando icacls, que sirve para listar los permisos NTFS de un directorio específico, el usuario bob.smith tiene asignado el permiso F de full access.

PS C:\Academy> icacls c:\users
c:\users Everyone:(OI)(CI)(RX)
         NT AUTHORITY\SYSTEM:(OI)(CI)(F)
         BUILTIN\Administrators:(OI)(CI)(F)
         WS01\bob.smith:(OI)(CI)(F)
         BUILTIN\Users:(OI)(CI)(RX)

Successfully processed 1 files; Failed processing 0 files

NTFS vs. Share Permissions

  • ¿Qué protocolo discutido en esta sección se utiliza para compartir recursos a nivel de red usando Windows? SMB

  • ¿Cuál es el nombre de la utilidad que se usa para ver logs de un sistema Windows? Event Viewer

  • ¿Cuál es la ruta absoluta de la carpeta Company Data que creamos? C:\Users\htb-student\Desktop\Company Data

A lo largo de la sección, se explica cómo crear y compartir una carpeta a nivel de red. Veámoslo paso a paso:

Hacemos click derecho sobre el escritorio y creamos una nueva carpeta llamada Company Data.

Hacemos click derecho sobre la carpeta y seleccionamos la opción Properties.

Vemos información general sobre la carpeta; nos dirigimos a la pestaña Sharing.

Seleccionamos Advanced Sharing y tildamos la opción de 'Share this folder'.

En Permissions podemos ver los permisos asignados por defecto (grupo Everyone con permiso de lectura).

Con el comando net share podemos ver los recursos que estamos compartiendo a nivel de red; ahí mismo se puede visualizar la ruta absoluta de la carpeta Company Data.

PS C:\Users\htb-student> net share

Share name   Resource                        Remark

-------------------------------------------------------------------------------
C$           C:\                             Default share
IPC$                                         Remote IPC
ADMIN$       C:\WINDOWS                      Remote Admin
Company Data C:\Users\htb-student\Desktop\Company Data

Users        C:\Users
The command completed successfully.

Windows Services & Processes

El ejercicio consiste en identificar un servicio de actualización no estándar que está corriendo en el host y proporcionar el nombre completo del ejecutable. En la pista podemos ver que se trata de un servicio relacionado a la edición de PDFs, por lo que podemos intuir que el software contendrá alguna palabra como pdf, reader, editing, etc.

Para ello, usamos el cmdlet Get-Service y filtramos por un servicio que en su nombre contenga alguna de estas palabras. Vamos probando hasta que encontramos el servicio:

PS C:\Users\htb-student> Get-Service | Where-Object {$_.Name -like "*reader*"}

Status   Name               DisplayName
------   ----               -----------
Running  FoxitReaderUpda... Foxit Reader Update Service

Para ver el nombre completo, es necesario pipearlo con fl: FoxitReaderUpdateService.exe

PS C:\Users\htb-student> Get-Service | Where-Object {$_.Name -like "*reader*"} | fl

Name                : FoxitReaderUpdateService
DisplayName         : Foxit Reader Update Service
Status              : Running
DependentServices   : {}
ServicesDependedOn  : {}
CanPauseAndContinue : False
CanShutdown         : True
CanStop             : True
ServiceType         : Win32OwnProcess, InteractiveProcess

Le añadimos la extensión .exe porque es un ejecutable de Windows.


Interacting with the Windows Operating System

El alias para el comando ipconfig.exe es ifconfig. Lo encontramos con el comando Get-Alias.

La política de ejecución establecida para el alcance de LocalMachine es Unrestricted.


Windows Management Instrumentation (WMI)

Utilizar WMI para encontrar el número de serie o 'Serial Number' del sistema.

Se refiere al código alfanumérico único asignado a una licencia o producto de software de Windows para identificarlo de manera única. Este número de serie se utiliza para activar y validar la autenticidad de la licencia de Windows.

Para encontrarlo, usamos el siguiente comando: wmic os list brief.

El Serial Number es 00329-10280-00000-AA938.


Windows Security

El SID del usuario bob.smith es S-1-5-21-2614195641-1726409526-3792725429-1003.

PS C:\Users\htb-student> wmic useraccount get name,sid
Name                SID
Administrator       S-1-5-21-2614195641-1726409526-3792725429-500
bob.smith           S-1-5-21-2614195641-1726409526-3792725429-1003
DefaultAccount      S-1-5-21-2614195641-1726409526-3792725429-503
defaultuser0        S-1-5-21-2614195641-1726409526-3792725429-1000
Guest               S-1-5-21-2614195641-1726409526-3792725429-501
htb-student         S-1-5-21-2614195641-1726409526-3792725429-1002
mrb3n               S-1-5-21-2614195641-1726409526-3792725429-1001
WDAGUtilityAccount  S-1-5-21-2614195641-1726409526-3792725429-504

La aplicación de seguridad de terceros que está deshabilitada al inicio para el usuario actual es NordVPN.

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run cuenta con las aplicaciones que están corriendo bajo el usuario actual mientras está logueado en el sistema.


Skills Assessment - Windows Fundamentals

  1. Crear una carpeta compartida llamada Company Data.

Similar a lo que ya habíamos hecho en la sección de NTFS vs. Share Permissions, hacemos click derecho sobre el escritorio y creamos una nueva carpeta llamada Company Data.

Hacemos click derecho sobre la carpeta recién creada y seleccionamos Properties.

Vamos a la pestaña Sharing y luego a la opción de Advanced Sharing.

Ahí habilitamos la opción para compartir la carpeta.

  1. Crear una subcarpeta llamada HR dentro de Company Data.

Hacemos doble click sobre Company Data.

Hacemos click derecho y creamos una nueva carpeta llamada HR.

  1. Crear un usuario llamado Jim.

  • Desactivar la opción que indica que el usuario debe cambiar su contraseña la próxima vez que inicie sesión.

Buscamos por Computer Management en el inicio de Windows.

Nos dirigimos a Local Users and Groups. Hacemos click derecho sobre Users y seleccionamos 'New User...'

Completamos los datos y desactivamos la opción enmarcada en rojo.

Le damos a Create. En Users podemos verificar que efectivamente el usuario Jim ha sido creado.

  1. Crear un grupo de seguridad llamado HR.

Hacemos click derecho sobre Groups y seleccionamos 'New Group...'

Completamos el nombre del grupo y lo creamos.

Vemos que se ha creado un grupo llamado HR.

  1. Añadir a Jim al grupo HR.

En las propiedades del grupo HR, seleccionamos la opción de añadir miembros e introducimos el nombre de Jim. Luego apretamos en Check Names y finalmente en OK.

Ya añadimos a Jim al grupo HR.

  1. Asignar el grupo HR a la carpeta compartida Company Data.

  • Eliminar el grupo por defecto.

  • Asignar permisos: Allow Change & Read

  • Deshabilitar la herencia.

  • Permisos NTFS: Modify, Read & Execute, List folder contents, Read, Write`

Click derecho sobre Company Data -> Properties -> Sharing -> Advanced Sharing... -> Permissions

Eliminamos el grupo por defecto con Remove.

Seleccionamos Add y añadimos el grupo HR.

Habilitamos los permisos Change y Read.

Luego vamos a la pestaña Security para configurar los permisos NTFS. Seleccionamos Advanced.

Deshabilitamos la herencia.

Al clickear sobre Disable inheritance se presentará la siguiente ventana, tenemos que seleccionar la primera opción:

Luego presionamos en Add, y una vez se abra la nueva ventana, en Select a principal.

Allí añadimos al grupo HR.

Seleccionamos los permisos que se pueden ver a continuación:

  1. Asignar el grupo HR a la subcarpeta HR.

Acá hay que repetir exactamente el mismo procedimiento del punto anterior, pero con la subcarpeta HR.

  1. Usar PowerShell para ver detalles de un servicio.

Una vez que completamos todos los pasos, ya estamos listos para responder las preguntas:

  • ¿Cuál es el nombre del grupo que está presente en los permisos ACL de Company Data por defecto? Everyone

  • ¿Cuál es el nombre de la pestaña que nos permitió configurar los permisos NTFS? Security

  • ¿Cuál es el nombre del servicio asociado con Windows Update? wuauserv

Get-Service | Where-Object {$_.DisplayName -like "*Windows Update*"}
  • Lista el SID asociado con la cuenta del usuario Jim que creamos: S-1-5-21-2614195641-1726409526-3792725429-1006

Usamos el siguiente comando: wmic useraccount get name,sid

  • Lista el SID asociado con el grupo HR que creamos: S-1-5-21-2614195641-1726409526-3792725429-1007

Lo obtenemos a través de este otro comando: wmic group get name,sid

PreviousAttacking Web Applications with FfufNextFile Inclusion

Last updated 1 year ago