
Return Address Spoofing
Rule Elastic
┌─────────────────────────────────────────────────────────────────────────────┐
│ ELASTIC ENDPOINT RULE │
│ Network Module Loaded from Suspicious Unbacked Memory │
└─────────────────────────────────────────────────────────────────────────────┘
name = "Network Module Loaded from Suspicious Unbacked Memory"
query = '''
sequence by process.entity_id
# EVENTO 1: Processo inicia
[process where event.action == "start" and
# Exceção: ignora processos assinados em Program Files
not (process.executable : "?:\\Program Files\\*" and
process.code_signature.trusted == true)
]
# EVENTO 2: DLL de rede carregada (TRIGGER)
[library where
# DLLs monitoradas
dll.name : ("ws2_32.dll", "wininet.dll", "winhttp.dll") and
# Call stack contém região UNBACKED
process.thread.Ext.call_stack_contains_unbacked == true and
# Padrões suspeitos de call stack
process.thread.Ext.call_stack_summary : (
"ntdll.dll|kernelbase.dll|Unbacked",
"ntdll.dll|kernelbase.dll|Unbacked|kernel32.dll|ntdll.dll"
)
]
until [process where event.action:"end"]
'''
# Ação quando detecta
[[actions]]
action = "kill_process"Por que monitorar DLLs legitmas?


Como Contornar isso?
Registradores principais no fluxo de execução:
Fluxo de Execução
Pula para a função alvo:
Função termina com ret
Spoofing em ação
Retorna ao código Spoof (cleanup)
Finalização
Retorna ao chamador original
Código Main
Resultado


Last updated