
conexão simples de socket python para testar se o exim é vulnerável ao CVE-2019-10149. O payload simplesmente executa touch em um arquivo em /tmp/eximrce.
Conexão simples de socket Python para testar se o exim é vulnerável ao CVE-2019-10149. O payload simplesmente cria um arquivo em /root/lweximtest. A saída será lenta dependendo da resposta do servidor e de não saber como usar corretamente o módulo socket do Python. Adoraria uma lição sobre como acelerar isso. Testado apenas em servidores cPanel.
Execute localmente no servidor suspeito. Isso verifica se há indicação de comprometimento.
curl -s https://raw.githubusercontent.com/cowbe0x004/eximrce-CVE-2019-10149/master/eximioc.sh |bash
Execute remotamente. Testando execução remota de código.
git clone https://github.com/cowbe0x004/eximrce-CVE-2019-10149
cd eximrce-CVE-2019-10149
python eximrce.py <HOST> <PORT>
Se /root/lweximtest existir no servidor, a execução remota de código é possível.
Se você não conseguir atualizar o exim, pelo menos coloque esta ACL no exim.conf para que ${run{ não possa ser executado.
## change
acl_smtp_rcpt = acl_smtp_rcpt
## to
acl_smtp_rcpt = acl_check_rcpt
## after "begin acl"
acl_check_rcpt:
deny message = Restricted characters in address
domains = +local_domains
local_parts = ^[.] : ^.*[@%!/|] : ^.*\N\${run{\N.*}}
deny message = Restricted characters in address
domains = !+local_domains
local_parts = ^[./|] : ^.*[@%!] : ^.*/\\.\\./ : ^.*\N\${run{\N.*}}
accept