Total Pageviews

Saturday, September 4, 2021

pentesting powershell Windows

 M4T1. PowerShell 1


Módulo4:

Reconocimiento y enumeración

Máster en Ciberseguridad ofensiva

Ildefonso González Sánchez

3-101. ENUNCIADO

Enunciado:

La actividad consiste en crear un script de Powershell con el que se pueda obtener

información de un sistema comprometido en una fase de post-explotación.

Para ello, se debe crear un objeto en el script de Powershell el cual disponga de las

siguientes propiedades:

•OS. Esta propiedad almacenará la versión del Sistema operativo dónde se ejecuta

el script.

•SystemInfo. Esta propiedad almacenará la información del nombre de equipo.

•Revisiones. Esta propiedad almacenará las revisiones de seguridad instaladas

(parches). Deben ser almacenadas en formato lista, ya que un Sistema puede tener

muchas revisiones de seguridad instaladas, las famosas KB de Windows.

•UsersAdmin. Esta propiedad almacenará el listado de usuarios del grupo

administradores.

•Procesos. Esta propiedad almacenará, solo, el nombre de los procesos que están en

ejecución en la máquina.

Se pide crear el objeto con estas propiedades e ir ejemplificando paso a paso dicha

creación. Además, crear un script dónde podáis ejemplificar el uso de vuestro ejemplo y

mostrar que vuestro script va recogiendo todos los valores y almacenándolos en las

distintas propiedades.

Módulo4:

Reconocimiento y enumeración

Máster en Ciberseguridad ofensiva

Ildefonso González Sánchez

4-102. EXPLICACIÓN DEL CÓDIGO

A continuación se detallan cada uno de los puntos solicitados en la práctica:

•OS. Esta propiedad almacenará la versión del Sistema operativo dónde se ejecuta

el script.

•SystemInfo. Esta propiedad almacenará la información del nombre de equipo.

•Revisiones. Esta propiedad almacenará las revisiones de seguridad instaladas

(parches). Deben ser almacenadas en formato lista, ya que un Sistema puede tener

muchas revisiones de seguridad instaladas, las famosas KB de Windows.

•UsersAdmin. Esta propiedad almacenará el listado de usuarios del grupo

administradores.


5-10•Procesos. Esta propiedad almacenará, solo, el nombre de los procesos que están en

ejecución en la máquina.

Se pide crear el objeto con estas propiedades e ir ejemplificando paso a paso dicha

creación. Además, crear un script dónde podáis ejemplificar el uso de vuestro ejemplo y

mostrar que vuestro script va recogiendo todos los valores y almacenándolos en las

distintas propiedades.

Invocando cada función y obteniendo el objeto desde el main del script:

6-103. EJECUCIÓN DEL CÓDIGO

#Powershell recognition system post-exploitation base script

#

############

function get_os($computerInfo){

$os=@{}

$os['WindowsCurrentVersion']=$computerInfo.WindowsCurrentversion

$os['WindowsVersion']=$computerInfo.Windowsversion

$os['OsVersion']=$computerInfo.Osversion

$os['WindowsProductName']=$computerInfo.WindowsProductName

return $os

}

function get_systeminfo($computerinfo){

return $computerinfo.csname

}

function get_patchs($computerinfo){

return $computerinfo.OSHotfixes.HotFixID

}

function get_useradmins(){

return (Get-LocalGroup |Select-Object "Name") | ForEach-Object -Process

{if( $_.Name.contains("Admin")){ $_.Name;Get-LocalGroupMember -Group $_.Name}}


function get_procs(){

return Get-Process | Select-Object ProcessName

}

function show_data($psobject){

echo "POST-EXPLOITATION OBJECT: "

$psobject

$psobject.system

$psobject.os

$psobject.patch

$psobject.useradmins

$psobject.procs

}

function get_info($computerinfo){

$object.os=get_os($computerinfo)

$object.system=get_systeminfo($computerinfo)

$object.procs=get_procs

$object.patch=get_patchs($computerinfo)

$object.useradmins=get_useradmins

return $object

}

Módulo4:

Reconocimiento y enumeración

Máster en Ciberseguridad ofensiva

Ildefonso González Sánchez

9-10####################

#Main

#####################

$object=@{}

$computerinfo = Get-ComputerInfo

$object=get_info($computerinfo)

$psobject = New-Object PSCustomObject -Property $object

show_data($psobject)


No comments:

Post a Comment

Mi primera experiencia en una conferencia:

En la jornada posterior a un evento importante toca analizar, en este caso me centro en mi participación como speaker en #librecon2022. ¿Cóm...