Skip to content

Øvelse 15 - Powershell script

Forfatter: Mathias Greisen

Dato: 2026-10-05

Fag/modul: Introduktion til IT-Sikkerhed

Status: Færdig


1. Beskrivelse af øvelsen

At kunne læse, forstå, tilrette, oprette og udarbejde powershell scripts.


2. Reproduktion trin for trin

Forudsætninger

  • windows med nmap installeret

Trin

  1. Oversæt bash script til psuedo kode

        START
    
        # Sæt farver op til brug i terminalen
        Sæt RØD, HVID og INGEN_FARVE til farvekoder
    
        # Vis advarsel om at scriptet kræver sudo
        SKRIV ud: "Kør dette script som sudo-bruger" (i rødt)
    
        # Tjek om brugeren har angivet et argument
        HVIS antal_argumenter er lig med 1 SÅ
    
            SKRIV ud: "Mål IP: [argument]" (med farver)
    
        ellers
    
            SKRIV ud: "Din kommandolinje er forkert"
            SKRIV ud: "Eksempel: sudo ./nmapScans.sh 10.10.10.121"
            STOP programmet med fejlkode 1
    
        SLUT HVIS STATEMENT
    
        # Hent dagens dato til brug i filnavnet
        Sæt DATO til dagens dato i formatet ÅÅÅÅ-MM-DD
        Sæt FILNAVN til "[IP-adresse]_[DATO]"
    
        # Kør selve scanningen
        SKRIV ud: "Kører et hurtigt scan..." (med farver)
        KØR nmap med hurtig-tilstand (-T4 -F) mod målet
        GEM resultatet i filen "quick_nmapscan_[FILNAVN].txt"
    
        # Fortæl brugeren hvor resultatet er gemt
        SKRIV ud: "Resultater -> quick_nmapscan_[FILNAVN].txt" (i rødt)
    
        STOP programmet med succeskode 0
    
    SLUT
    
  2. Opret powershell script

    New-Item nmapScans.ps1
    
  3. Åben script i notepad (eller evt. andet program)

    notepad nmapScans.ps1
    
  4. Omskriv scriptet til et powershell script

    nmapScans.ps1
    if ($args.Count -eq 1)
    {
        Write-Host "IP: $($args[0])" -ForegroundColor Red
    }
    else
    {
        Write-Host "Din kommandolinje er forkert" -ForegroundColor Red
        Write-Host "Eksempel: nmapScans.ps1 10.10.10.121" -ForegroundColor Red
        exit 1
    }
    
    $date = Get-Date
    
    $filename = "quick_nmapscan_$($args[0])_$($date.ToString("yyyy-MM-dd-HH-mm-ss")).txt"
    
    Write-Host "Running a quick scan..." -ForegroundColor Red
    
    #nmap -T4 -F $args[0] > $filename
    
    nmap -T4 -F $args[0] | Out-File -FilePath $filename
    
    Write-Host "Results -> $($filename)" -ForegroundColor Red
    
    exit 0
    
  5. Evt anden version med bedre argument håndtering

    param(
        [Parameter(Mandatory=$true)]
        [System.Net.IPAddress]$Ip
    )
    
    Write-Host "IP: $($Ip)" -ForegroundColor Red
    
    $date = Get-Date
    
    $filename = "quick_nmapscan_$($Ip)_$($date.ToString("yyyy-MM-dd-HH-mm-ss")).txt"
    
    Write-Host "Running a quick scan..." -ForegroundColor Red
    
    #nmap -T4 -F $args[0] > $filename
    
    nmap -T4 -F $Ip | Out-File -FilePath $filename
    
    Write-Host "Results -> $($filename)" -ForegroundColor Red
    
    exit 0
    

3. Problemer og løsninger

Jeg oplevede ikke problemer under denne øvelse.


4. Anvendte ressourcer


5. Opsummering af erfaringer

Jeg har fået praktisk erfaring med at læse, forstå, tilrette, oprette og udarbejde powershell scripts.