Os invasores cibernéticos são conhecidos por utilizar várias técnicas para manter a persistência em endpoints comprometidos. Essas técnicas garantem que os invasores não repitam as fases de exploração quando os servidores da Web comprometidos reinicializam, alteram as credenciais ou encontram interrupções que podem causar perda de acesso. Instalar um shell da web em um servidor da web é uma maneira de obter persistência.
Shells da Web são scripts ou programas baseados na Web que fornecem aos invasores remotos acesso irrestrito aos servidores da Web. Atores mal-intencionados normalmente o usam para manter acesso furtivo e persistente a servidores da Web comprometidos, como Serviços de Informações da Internet (IIS), Apache, NGINX e sistemas de gerenciamento de conteúdo, como WordPress. Esses invasores cibernéticos podem se estabelecer em um servidor da Web explorando vulnerabilidades de aplicativos ou configurações incorretas do sistema por meio de ataques como injeção de SQL (SQLi), script entre sites (XSS), inclusão remota de arquivos (RFI) etc.
Quando os invasores cibernéticos comprometem um endpoint, eles injetam shells da Web no diretório do servidor da Web de destino e o executam por meio de navegadores da Web. Com isso, um backdoor permanente é configurado para os invasores realizarem atividades pós-exploração por meio de solicitações HTTP. Algumas dessas atividades pós-exploração incluem; executar comandos, exfiltrar informações confidenciais, fazer upload de malware e desfigurar sites.
A maioria dos web shells segue os mesmos conceitos em seu design e finalidade. Os shells da Web geralmente são escritos em linguagens de programação suportadas pelos servidores da Web da vítima. Exemplos de linguagens suportadas incluem scripts shell PHP , ASP , ASP.NET , Perl , Python , Ruby , Java e Unix .
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/108.0.0.0 Safari/537.36 |
Ele pode ser modificado para incluir um comando como User-Agent: ifconfig
. Isso pode indicar a presença de um shell da web.
base64()
e gzdeflate()
funções para ofuscar comandos, codificando-os e compactando-os em formatos ilegíveis. Em seguida, use a função eval()
ou assert()
para analisar os dados decodificados base64_decode()
e descompactados com gzinflate()
. Arquivos com essas funções que os administradores da web não adicionam explicitamente podem indicar um ataque de shell da web.
Os shells da Web existem em diferentes variantes e podem executar uma ampla gama de atividades, tornando-os difíceis de detectar. Usamos os seguintes recursos do Omni Secure para detectar a presença de shells da Web PHP e ASP.NET em pontos de extremidade comprometidos.
O módulo Omni Secure FIM pode detectar alterações de arquivos em diretórios acessíveis pela web quase em tempo real e alertar os administradores do sistema. Usamos este módulo para detectar quando os arquivos PHP e ASP.NET são criados ou modificados nos diretórios raiz da Web padrão do Ubuntu e do Windows, respectivamente /var/www/html/
. C:\inetpub\wwwroot
Além disso, o FIM verifica o conteúdo dos arquivos para monitorar assinaturas de web shells quando os arquivos são modificados.
O Omni Secure permite que você escreva regras personalizadas que acionam alertas quando condições específicas são detectadas nos logs. Integramos Omni Secure com auditd em terminais Linux e Sysmon no Windows para enriquecer as fontes de log para melhor segurança.
System Monitor (Sysmon) é um serviço do sistema Windows que monitora e registra a atividade do sistema no log de eventos do Windows. Ele enriquece os logs com informações detalhadas sobre criações de processos, conexões de rede e muito mais. Por exemplo, Sysmon revela o processo de trabalho do IIS w3wp.exe
que processa solicitações enviadas ao servidor da Web IIS. O IIS tem um recurso de segurança chamado identidade do pool de aplicativos que permite executar um pool de aplicativos em uma conta exclusiva.
Essa conta é chamada DefaultAppPool
por padrão. Com essa conta, o processo de trabalho do IIS é executado apenas com privilégios de usuário. Os invasores cibernéticos abusam desse processo para abrir programas PowerShell ou cmd para executar comandos shell.
No painel do Omni Secure, na seção Eventos de segurança e visualizamos os alertas acionados.
Os shells da Web geralmente seguem o mesmo conceito de manutenção da persistência em servidores da Web comprometidos. Ele se baseia na criação ou modificação de arquivos em diretórios acessíveis pela Web, realizando conexões de rede para uploads de arquivos e shells reversos e executando comandos para explorações posteriores.
Mostramos que o Omni Secure pode detectar quando invasores criam ou modificam arquivos PHP ou ASP.NET para incluir web shells usando FIM e monitoramento de comandos para detectar conexões de rede de web shells. Além disso, integramos auditd e Sysmon com o Omni Secure para enriquecer os logs do servidor web para detectar a execução de comandos e conexões de rede nos terminais comprometidos.
Apesar disso, recomendamos fortemente que as organizações evitem que as atividades pós-exploração aconteçam em primeiro lugar. Varredura e correção de vulnerabilidades de sistema e aplicativo e execução de monitoramento de política de segurança para configurações incorretas do sistema podem conseguir isso.