Como faço uma exceção para o Cscript.exe no Windows Server 2008 R2?

4

Estou tentando adicionar o CSCRIPT.exe como uma exceção à DEP (Data Execution Prevention) no Windows Server 2008 R2. CSCRIPT.exe vive em dois locais: C: \ Windows \ System32 e C: \ Windows \ SysWOW64. O local do System32 é a versão de 64 bits do aplicativo e os aplicativos de 64 bits não podem ser adicionados à DEP de acordo com a Microsoft (e a mensagem de aviso ao tentar adicioná-lo à DEP.) Tentar adicionar a versão do SysWOW64 é totalmente mensagem de erro / aviso diferente. "Este programa deve ser executado com o DEP ativado, você não pode desativá-lo".

Eu tentei renomear e mover o CSCRIPT.exe para um local diferente e / ou renomeá-lo sem diferença. Para este caso de uso, a DEP deve estar ativada e, para os fins desta questão específica, preciso desabilitar a DEP apenas para esse aplicativo.

Uma coisa que fiz foi usar o CSCRIPT.exe do Windows Server 2003. Eu posso adicionar esse arquivo ao DEP com êxito. No entanto, algo realmente me incomoda sobre como usar a versão antiga. Eu sinto que poderia estar introduzindo um risco de segurança ou um problema de versão.

Existe um método diferente que eu poderia usar para obter a versão SysWOW64 do CSCRIPT.exe na lista DEP? Ou a solução para a versão do Windows Server 2003 é uma correção adequada?

EDIT: Eu entendo que algo pode precisar "dar" com essa questão em particular. Eu posso não ser capaz de chegar a um terreno comum. Se for esse o caso, que assim seja. Eu não quero gastar tempo e esforço para reinventar a roda se for desnecessária. Obrigado!

    
por Ben Campbell 19.09.2013 / 16:25

1 resposta

7

Pergunta muito interessante. Eu já vi algumas falhas de DEP do cscript.exe antes. É irritante.

O VBScript é anterior à DEP no Windows e, como tal, não foi originalmente desenvolvido com a DEP em mente. Além disso, quando você começa a interagir com interfaces COM e OLE antigas e de terceiros em seus scripts, elas podem causar falhas do NX e o cscript.exe é responsabilizado por isso. Este último geralmente é o caso.

However, something really bothers me about using the old version. I feel like I could be introducing a security risk or a version issue.

É um pouco engraçado para mim que você diria isso, porque desabilitar a DEP para um programa como cscript.exe será way mais um risco de segurança do que usar a versão 2003.

Você não pode desabilitar a DEP para processos de 64 bits, ponto final.

For the purposes of application compatibility when DEP is set to the OptOut policy level, it is possible to selectively disable DEP for individual 32-bit applications. However, DEP is always enabled for 64-bit applications.

link

Então, isso deixa você com a versão de 32 bits, "SysWOW64" do cscript.exe ... no entanto, executáveis modernos podem e geralmente são marcados com um "você não pode desligar a DEP em mim,"

Tecnicamente, é o /NXCOMPAT sinalizador com o qual o executável foi compilado. É um interruptor de linker. A versão antiga de 2003 do executável não foi compilada com essa opção, e é por isso que você pode colocá-la na lista de isenções de DEP, mas não na versão de 2008.

Mas espere mais! Se você ainda quiser usar a versão 2008 do SysWoW64 \ cscript.exe, tudo o que você precisa fazer é copiar o arquivo executável e, em seguida, executar:

editbin /NXCOMPAT:NO C:\cscript.exe

Agora você pode adicioná-lo à lista de isenções de DEP. Editbin.exe vem com o Visual Studio, o Windows SDK, etc.

Divirta-se injetando código na pilha ou memória heap e ramificando o ponteiro de instruções para executá-lo!

    
por 19.09.2013 / 21:22