Behinder's traffic has passed through AES encryption to bypass WAF.
This method can decrypt the encrypted traffic and detect IceRat.
In the PHP && ASP versions of iceRat, the encryption method for payload is:
Divide plaintext string into segments, each segment XORed with key
That is, use cipher[i] = payload[i] ^ key as the ciphertext cipher.

According to the associative property of XOR operation, if there is a cipher and payload, the key can be obtained.
By reverse engineering the IceRat client, you can find the malicious Class template of payload. All functions of the IceRat client are implemented by adding parameters to the malicious Class.

IceRat 4.0 has a total of 12 templates. Therefore, all possible payloads have a fixed beginning as follows:
payloads = [
b'<?\\n@error_reporting(0);\\n\\nfunctio',
b'<?\\nfunction main($action, $remot',
b'<?\\n@error_reporting(0);\\nset_time',
b'\\nerror_reporting(0);\\n\\nfunction m',
b'<?\\n@error_reporting(0);\\n\\n\\nfuncti',
b'<?\\nerror_reporting(0);\\nfunction ',
b'@error_reporting(0);\\nfunction ma',
b'<?php\\n\\n$taskResult = array();\\n$p',
b"<?\\nerror_reporting(0);\\nheader('C",
b'@error_reporting(0);\\n\\nfunction g',
b'<?\\n@error_reporting(0);\\n@set_tim'
]
The cipher can be obtained from the HTTP message.

But at this time, it is not yet known that this cipher is the IceRat ciphertext, only knowing that it is a pile of bytes.
We try all possible payload beginnings,
If cipher[0] ^ payload[0] == cipher[1] ^ payload[1]
it can be determined that the bytes did use the same key XOR encryption for cipher[0] and cipher[1]