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