
Carregador Refletivo de PE/DLL x64 implementado usando Syscalls Indiretas Dinâmicas
Atlas é um carregador reflexivo x64 que possui os seguintes recursos:
O Atlas requer os seguintes parâmetros para funcionar corretamente:
Usage: atlas_x64.exe [Process name / PID] [Cleanup] [Server] [Port] [AtlasPatcher DLL] [DLL/PE to inject] <Entrypoint>
| Parâmetro | Descrição |
|---|---|
| Nome / PID | O nome ou PID do processo de destino |
| Limpeza | Indica se deseja remover as DLLs injetadas do processo de destino ao concluir (Cleanup aceita 1 ou 0 como valores) |
| Servidor | O endereço IP do servidor remoto onde você tem as DLLs |
| Porta | A porta usada pelo seu servidor |
| DLL AtlasPatcher | O nome da DLL AtlasPatcher (por padrão atlas_patcher.dll) hospedada no seu servidor (você pode encontrar a DLL em /AtlasLdr/bin após compilar) |
| DLL/PE para injetar | O nome da DLL ou PE que deseja injetar, hospedado no seu servidor |
| Ponto de entrada | Um argumento opcional; o nome da função exportada que deseja usar como ponto de entrada quando a DLL for injetada |

A abordagem convencional de um carregador geralmente envolve um injetor responsável por injetar uma DLL contendo o carregador no processo remoto que estamos atacando. Uma vez injetado, a execução é passada para o carregador, que é responsável por mapear a DLL maliciosa. Em contraste, o Atlas adota uma abordagem ligeiramente diferente ao realizar todo o processo de mapeamento dentro do seu próprio contexto, exceto pelo patch na Import Address Table (IAT), que é adiado.
Depois que a DLL maliciosa é mapeada no contexto do Atlas, ela é copiada para a memória anteriormente reservada no processo remoto. Nesse ponto, a DLL maliciosa está mapeada no processo remoto, mas a IAT ainda não foi corrigida. Para resolver isso, o AtlasLdr injeta uma DLL (atlas_patcher.dll) com dependências mínimas no processo malicioso, que se encarrega de corrigir a IAT da DLL maliciosa e, em seguida, transfere o contexto de execução para ela.
Essa abordagem ajuda a reduzir o tamanho e a complexidade da DLL do carregador a ser injetada no processo remoto e minimiza as chances de o injetor ser detectado, pois podemos carregar a DLL com o próprio carregador.
O Atlas precisa ser compilado usando x86_64-w64-mingw32-g++; depois de tê-lo no seu sistema, basta executar make (ou mingw32-make.exe) na pasta do projeto
