Uma vez mais o especialista SandboxEscaper faz manchete. Desta vez ele (ou ela) disponibilizou o código de exploração de uma vulnerabilidade de dia zero que afeta o Windows Task Scheduler no Windows 10.
Desde agosto de 2018, o especialista já revelou outras quatro vulnerabilidades zero-day no Windows sem comunicá-las previamente à Microsoft antes de partilhar os seus POCs na Internet.
A nova descoberta foi divulgado uma semana depois de a Microsoft divulgar o seu patch mensal de atualizações: Patch Tuesday Security.
Tal como na vulnerabilidade divulgada em agosto, este novo zero-day também afeta diretamente o Task scheduler do Windows.
SandboxEscaper demonstrated that is possible to trigger the Windows zero-day by using malformed legacy tasks (.JOB format) and importing them in the Task Scheduler utility. and they can still be added to newer versions of the operating system.
In the old days (i.e windows xp) tasks would be placed in c:\windows\tasks in the “.job” fileformat.
O investigador explica que, para acionar a falha, é necessário importar ficheiros de tarefa legados para o Windows Task Scheduler no Windows 10. É possível copiar fiucheiros .job antigos para c:\windows\tasks executando um comando e utilizando executáveis ‘schtasks.exe ‘e’ schedsvc.dll ‘copiados do sistema antigo.
Isso leva a uma chamada de procedimento remoto (RPC) para “_SchRpcRegisterTask.” Essa função permite registar uma tarefa com o servidor exposto pelo serviço.
“If on windows 10 you want to import a .job file into the task scheduler you have to copy your old .job files into c:\windows\tasks and run the following command using “schtasks.exe and schedsvc.dll” copied from the old system: “schtasks /change /TN “taskname” /RU username /RP password”
(found this here: https://social.technet.microsoft.com/Forums/windowsserver/en-US/467e5cab-2368-42de-ae78-d86b644a0e71/transfer-scheduled-tasks-to-server-2008?forum=winserverMigration)
This will result in a call to the following RPC “_SchRpcRegisterTask”, which is exposed by the task scheduler service. (I assume that to trigger this bug you can just call into this function directly without using that schtasks.exe copied from windows xp.. but I am not great at reversing )” wrote the expert.
“It starts out by impersonating the current user. But when it hits the following function:
int __stdcall tsched::SetJobFileSecurityByName(LPCWSTR StringSecurityDescriptor, const unsigned __int16 *, int, const unsigned __int16 *)
It starts impersonating itself (NT AUTHORITY\SYSTEM)! And then calls SetSecurityInfo on a task it created in c:\windows\system32\tasks.” he added.
Resumindo, o especialista descobriu que, mesmo começando com privilégios limitados, é possível obter privilegios de sysadmin invocando uma função específica do SO. SandboxEscaper publicou um vídeo PoC do dia zero do Windows que mostra como explorar a vulnerabilidade no Windows 10 x86.
Will Dormann, analista de vulnerabilidades da CERT / CC, confirmou que o dia zero do Windows funciona num sistema Windows 10 x86 totalmente corrigido (maio de 2019).
Would you look at this. No hype. No logos just a zeroday https://t.co/YChXnzf2As
— ㅤ (@fouroctets) May 21, 2019
Infelizmente para a Microsoft, os problemas não terminaram aqui. O investigador SandboxEscaper anunciou pelo menos outras quatro vulnerabilidades de dia zero no Windows, Três problemas de escalonamento de privilégios locais (LPE) levando à execução de código e uma fuga de sandbox.
O SandboxEscaoer quer vender os exploits a compradores não ocidentais e solicita os bugs de escalonamento de privilégios locais por pelo menos $60.000 cada.