Incident Response, Security and Forensics"

.

lunes, 15 de diciembre de 2008

Busqueda de ficheros y procesos con POWERSHELL

No lo negare. LLevo con retraso el estudio de PowerShell, me imagino que conforme se acercan las navidades le podré dedicar más tiempo, pero la verdad es que se me atraganta un poco el volver a estudiar un pseudolenguaje del tipo Bash para Windows.

No obstante en estos días me ha surgido un problemilla en servidor W2008 en el que he tenido que buscar ficheros y ver qué archivos han cambiado.
Si conoces las fechas del incidente y con la ayuda de la siguiente secuencia de comandos de PowerShell, podemos disponer de un listado de estos ficheros.

El siguiente Script se puede ejecutar en un sistema remoto y te pedirá la búsqueda de fechas (desde y hasta) y guardar los resultados en un fichero.

Aquí está la secuencia de comandos.

#Busca_ficheros.ps1

$1 = (read-Host "Fecha de inicio - dd/mm/aaaa")
$2 = (read-Host "Fecha Fin - dd/mm/aaaa")
$path = (Read-Host "Entra la ruta de destino e.j \\server1\c$\windows\")
$resultados = (Read-Host "Donde quieres guardar los resultados? e.j c:\temp\")
$inicio = [datetime]$1
$fin = [datetime] $2
$periodo = {$_.lastwritetime -gt $inicio -and $_.lastwritetime -lt $fin}
gci $path -Recurse | where {!$_.psiscontainer -and (.$periodo)} | Out-File -Width 255 $resultados


El siguiente script recupera los procesos de un host remoto.

Get-WmiObject win32_process -192.168.1.1 . | Select-Object CSName,Description,Processid,WS,Path | Sort-Object WS -Descending | Format-Table * -AutoSize

Y la salida sería algo como esto.




En el foro de www.powershellcommunity.org existe muchisima documentación al respecto y gracias a ello he aprendido a realizar diferentes scripts que iré poniendo en el blog.

0 comentarios: