mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 20:53:37 +00:00
Translated ['forensics/basic-forensic-methodology/malware-analysis.md']
This commit is contained in:
parent
d7ea4185a3
commit
a9cc307977
1 changed files with 128 additions and 53 deletions
|
@ -1,122 +1,185 @@
|
|||
# Análisis de Malware
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
- ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
|
||||
|
||||
- Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
|
||||
- Obtén la [**oficial PEASS & HackTricks swag**](https://peass.creator-spring.com)
|
||||
|
||||
- **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
||||
|
||||
- **Comparte tus trucos de hacking enviando PRs al [repositorio de hacktricks](https://github.com/carlospolop/hacktricks) y al [repositorio de hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
|
||||
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
|
||||
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Obtén el [**swag oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
|
||||
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
|
||||
</details>
|
||||
|
||||
## Hojas de Trucos de Forensics
|
||||
|
||||
# Hojas de trucos de forense
|
||||
[https://www.jaiminton.com/cheatsheet/DFIR/#](https://www.jaiminton.com/cheatsheet/DFIR/)
|
||||
|
||||
[https://www.jaiminton.com/cheatsheet/DFIR/#](https://www.jaiminton.com/cheatsheet/DFIR/#)
|
||||
|
||||
# Servicios en línea
|
||||
## Servicios en Línea
|
||||
|
||||
* [VirusTotal](https://www.virustotal.com/gui/home/upload)
|
||||
* [HybridAnalysis](https://www.hybrid-analysis.com)
|
||||
* [Koodous](https://koodous.com)
|
||||
* [Intezer](https://analyze.intezer.com)
|
||||
* [Any.Run](https://any.run/)
|
||||
|
||||
# Herramientas de detección y antivirus sin conexión
|
||||
## Herramientas de Antivirus y Detección sin Conexión
|
||||
|
||||
## Yara
|
||||
### Yara
|
||||
|
||||
### Instalar
|
||||
#### Instalación
|
||||
```bash
|
||||
sudo apt-get install -y yara
|
||||
```
|
||||
### Preparar reglas
|
||||
#### Preparar reglas
|
||||
|
||||
Utilice este script para descargar y fusionar todas las reglas de malware yara desde Github: [https://gist.github.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9](https://gist.github.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9)\
|
||||
Cree el directorio _**rules**_ y ejecútelo. Esto creará un archivo llamado _**malware\_rules.yar**_ que contiene todas las reglas yara para malware.
|
||||
Utiliza este script para descargar y fusionar todas las reglas de malware de yara desde github: [https://gist.github.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9](https://gist.github.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9)\
|
||||
Crea el directorio _**rules**_ y ejecútalo. Esto creará un archivo llamado _**malware\_rules.yar**_ que contiene todas las reglas de yara para malware.
|
||||
```bash
|
||||
wget https://gist.githubusercontent.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9/raw/4ec711d37f1b428b63bed1f786b26a0654aa2f31/malware_yara_rules.py
|
||||
mkdir rules
|
||||
python malware_yara_rules.py
|
||||
```
|
||||
### Escaneo
|
||||
#### Escaneo
|
||||
|
||||
Before analyzing a malware sample, it is important to perform a thorough scan to identify any potential threats. This scan can be done using various antivirus tools and malware scanners. The purpose of the scan is to detect any known malware signatures or suspicious behavior that may indicate the presence of malware.
|
||||
|
||||
Antes de analizar una muestra de malware, es importante realizar un escaneo exhaustivo para identificar posibles amenazas. Este escaneo se puede realizar utilizando varias herramientas antivirus y escáneres de malware. El propósito del escaneo es detectar cualquier firma de malware conocida o comportamiento sospechoso que pueda indicar la presencia de malware.
|
||||
|
||||
During the scan, the antivirus tool or malware scanner will compare the files and processes on the system against a database of known malware signatures. If a match is found, the file or process will be flagged as potentially malicious. Additionally, the scanner may also look for suspicious behavior such as unauthorized network connections, unusual file modifications, or attempts to inject code into other processes.
|
||||
|
||||
Durante el escaneo, la herramienta antivirus o el escáner de malware compararán los archivos y procesos del sistema con una base de datos de firmas de malware conocidas. Si se encuentra una coincidencia, el archivo o proceso se marcará como potencialmente malicioso. Además, el escáner también puede buscar comportamientos sospechosos, como conexiones de red no autorizadas, modificaciones inusuales de archivos o intentos de inyectar código en otros procesos.
|
||||
|
||||
It is important to note that while a scan can help identify known malware, it may not be able to detect new or zero-day threats. Therefore, it is recommended to use multiple scanning tools and keep them up to date to ensure the best possible detection rate.
|
||||
|
||||
Es importante tener en cuenta que si bien un escaneo puede ayudar a identificar malware conocido, es posible que no pueda detectar amenazas nuevas o de día cero. Por lo tanto, se recomienda utilizar varias herramientas de escaneo y mantenerlas actualizadas para garantizar la mejor tasa de detección posible.
|
||||
```bash
|
||||
yara -w malware_rules.yar image #Scan 1 file
|
||||
yara -w malware_rules.yar folder #Scan the whole folder
|
||||
```
|
||||
### YaraGen: Verificar malware y crear reglas
|
||||
#### YaraGen: Verificar malware y crear reglas
|
||||
|
||||
Puedes utilizar la herramienta [**YaraGen**](https://github.com/Neo23x0/yarGen) para generar reglas yara a partir de un binario. Revisa estos tutoriales: [**Parte 1**](https://www.nextron-systems.com/2015/02/16/write-simple-sound-yara-rules/), [**Parte 2**](https://www.nextron-systems.com/2015/10/17/how-to-write-simple-but-sound-yara-rules-part-2/), [**Parte 3**](https://www.nextron-systems.com/2016/04/15/how-to-write-simple-but-sound-yara-rules-part-3/)
|
||||
Puedes utilizar la herramienta [**YaraGen**](https://github.com/Neo23x0/yarGen) para generar reglas yara a partir de un archivo binario. Echa un vistazo a estos tutoriales: [**Parte 1**](https://www.nextron-systems.com/2015/02/16/write-simple-sound-yara-rules/), [**Parte 2**](https://www.nextron-systems.com/2015/10/17/how-to-write-simple-but-sound-yara-rules-part-2/), [**Parte 3**](https://www.nextron-systems.com/2016/04/15/how-to-write-simple-but-sound-yara-rules-part-3/)
|
||||
```bash
|
||||
python3 yarGen.py --update
|
||||
python3.exe yarGen.py --excludegood -m ../../mals/
|
||||
python3 yarGen.py --update
|
||||
python3.exe yarGen.py --excludegood -m ../../mals/
|
||||
```
|
||||
## ClamAV
|
||||
### ClamAV
|
||||
|
||||
### Instalación
|
||||
#### Instalación
|
||||
|
||||
Para instalar ClamAV, sigue los siguientes pasos:
|
||||
|
||||
1. Abre una terminal en tu sistema operativo.
|
||||
2. Ejecuta el siguiente comando para actualizar los repositorios:
|
||||
|
||||
```
|
||||
sudo apt update
|
||||
```
|
||||
|
||||
3. Luego, ejecuta el siguiente comando para instalar ClamAV:
|
||||
|
||||
```
|
||||
sudo apt install clamav
|
||||
```
|
||||
|
||||
4. Durante la instalación, se te pedirá que configures ClamAV. Puedes seleccionar las opciones predeterminadas o personalizar la configuración según tus necesidades.
|
||||
|
||||
Una vez que la instalación se haya completado, tendrás ClamAV instalado en tu sistema y estarás listo para realizar análisis de malware.
|
||||
```
|
||||
sudo apt-get install -y clamav
|
||||
```
|
||||
### Escaneo
|
||||
#### Escaneo
|
||||
|
||||
Before analyzing a suspicious file, it is important to perform a thorough scan to identify any potential malware. Scanning the file with an up-to-date antivirus software can help detect known malware signatures and provide an initial assessment of the file's safety.
|
||||
|
||||
Antes de analizar un archivo sospechoso, es importante realizar un escaneo exhaustivo para identificar cualquier malware potencial. Escanear el archivo con un software antivirus actualizado puede ayudar a detectar firmas de malware conocidas y proporcionar una evaluación inicial de la seguridad del archivo.
|
||||
|
||||
```markdown
|
||||
**Note:** It is recommended to use multiple antivirus engines for a more comprehensive scan. Online malware scanning services and sandbox environments can also be used to further analyze the file.
|
||||
```
|
||||
|
||||
```markdown
|
||||
**Nota:** Se recomienda utilizar varios motores antivirus para un escaneo más completo. También se pueden utilizar servicios de escaneo de malware en línea y entornos de sandbox para analizar aún más el archivo.
|
||||
```
|
||||
```bash
|
||||
sudo freshclam #Update rules
|
||||
clamscan filepath #Scan 1 file
|
||||
clamscan folderpath #Scan the whole folder
|
||||
```
|
||||
## IOCs
|
||||
### [Capa](https://github.com/mandiant/capa)
|
||||
|
||||
IOC significa Indicador de Compromiso. Un IOC es un conjunto de **condiciones que identifican** algún software potencialmente no deseado o **malware** confirmado. Los equipos de seguridad (Blue Teams) utilizan este tipo de definición para **buscar este tipo de archivos maliciosos** en sus **sistemas** y **redes**.\
|
||||
Compartir estas definiciones es muy útil, ya que cuando se identifica malware en un equipo y se crea un IOC para ese malware, otros equipos de seguridad pueden utilizarlo para identificar el malware más rápidamente.
|
||||
**Capa** detecta posibles **capacidades maliciosas** en ejecutables: PE, ELF, .NET. Por lo tanto, encontrará cosas como tácticas de Att\&ck o capacidades sospechosas como:
|
||||
|
||||
* verificar errores de OutputDebugString
|
||||
* ejecutarse como un servicio
|
||||
* crear un proceso
|
||||
|
||||
Obténlo en el [**repositorio de Github**](https://github.com/mandiant/capa).
|
||||
|
||||
### IOC
|
||||
|
||||
IOC significa Indicator Of Compromise. Un IOC es un conjunto de **condiciones que identifican** algún software potencialmente no deseado o malware confirmado. Los equipos de seguridad utilizan este tipo de definición para **buscar este tipo de archivos maliciosos** en sus **sistemas** y **redes**.\
|
||||
Compartir estas definiciones es muy útil, ya que cuando se identifica malware en una computadora y se crea un IOC para ese malware, otros equipos de seguridad pueden utilizarlo para identificar el malware más rápidamente.
|
||||
|
||||
Una herramienta para crear o modificar IOCs es [**IOC Editor**](https://www.fireeye.com/services/freeware/ioc-editor.html)**.**\
|
||||
Puedes utilizar herramientas como [**Redline**](https://www.fireeye.com/services/freeware/redline.html) para **buscar IOCs definidos en un dispositivo**.
|
||||
|
||||
## Loki
|
||||
### Loki
|
||||
|
||||
[**Loki**](https://github.com/Neo23x0/Loki) es un escáner de Indicadores Simples de Compromiso.\
|
||||
La detección se basa en cuatro métodos de detección:
|
||||
```
|
||||
1. File Name IOC
|
||||
Regex match on full file path/name
|
||||
Regex match on full file path/name
|
||||
|
||||
2. Yara Rule Check
|
||||
Yara signature matches on file data and process memory
|
||||
Yara signature matches on file data and process memory
|
||||
|
||||
3. Hash Check
|
||||
Compares known malicious hashes (MD5, SHA1, SHA256) with scanned files
|
||||
Compares known malicious hashes (MD5, SHA1, SHA256) with scanned files
|
||||
|
||||
4. C2 Back Connect Check
|
||||
Compares process connection endpoints with C2 IOCs (new since version v.10)
|
||||
Compares process connection endpoints with C2 IOCs (new since version v.10)
|
||||
```
|
||||
## Linux Malware Detect
|
||||
### Linux Malware Detect
|
||||
|
||||
[**Linux Malware Detect (LMD)**](https://www.rfxn.com/projects/linux-malware-detect/) es un escáner de malware para Linux lanzado bajo la licencia GNU GPLv2, que está diseñado en torno a las amenazas que se enfrentan en entornos de alojamiento compartido. Utiliza datos de amenazas de sistemas de detección de intrusiones en el borde de la red para extraer malware que se está utilizando activamente en ataques y genera firmas para la detección. Además, los datos de amenazas también se derivan de las presentaciones de los usuarios con la función de pago de LMD y los recursos de la comunidad de malware.
|
||||
[**Linux Malware Detect (LMD)**](https://www.rfxn.com/projects/linux-malware-detect/) es un escáner de malware para Linux lanzado bajo la licencia GNU GPLv2, diseñado para enfrentar las amenazas en entornos de alojamiento compartido. Utiliza datos de amenazas de sistemas de detección de intrusos en el borde de la red para extraer malware que se está utilizando activamente en ataques y genera firmas para su detección. Además, los datos de amenazas también se derivan de las contribuciones de los usuarios con la función de verificación de LMD y los recursos de la comunidad de malware.
|
||||
|
||||
## rkhunter
|
||||
### rkhunter
|
||||
|
||||
Herramientas como [**rkhunter**](http://rkhunter.sourceforge.net) se pueden utilizar para comprobar el sistema de archivos en busca de posibles **rootkits** y malware.
|
||||
Herramientas como [**rkhunter**](http://rkhunter.sourceforge.net) se pueden utilizar para verificar el sistema de archivos en busca de posibles **rootkits** y malware.
|
||||
```bash
|
||||
sudo ./rkhunter --check -r / -l /tmp/rkhunter.log [--report-warnings-only] [--skip-keypress]
|
||||
```
|
||||
## PEpper
|
||||
### FLOSS
|
||||
|
||||
[FLOSS](https://github.com/mandiant/flare-floss) es una herramienta que intentará encontrar cadenas de texto ofuscadas dentro de ejecutables utilizando diferentes técnicas.
|
||||
|
||||
### PEpper
|
||||
|
||||
[PEpper](https://github.com/Th3Hurrican3/PEpper) verifica algunas cosas básicas dentro del ejecutable (datos binarios, entropía, URLs e IPs, algunas reglas yara).
|
||||
|
||||
## NeoPI
|
||||
### PEstudio
|
||||
|
||||
[**NeoPI**](https://github.com/CiscoCXSecurity/NeoPI) es un script de Python que utiliza una variedad de **métodos estadísticos** para detectar contenido **ofuscado** y **encriptado** dentro de archivos de texto / script. El propósito previsto de NeoPI es ayudar en la **detección de código de shell web oculto**.
|
||||
[PEstudio](https://www.winitor.com/download) es una herramienta que permite obtener información de ejecutables de Windows, como importaciones, exportaciones, encabezados, pero también verificará VirusTotal y encontrará posibles técnicas de Att\&ck.
|
||||
|
||||
## **php-malware-finder**
|
||||
### Detect It Easy(DiE)
|
||||
|
||||
[**PHP-malware-finder**](https://github.com/nbs-system/php-malware-finder) hace todo lo posible para detectar código **ofuscado**/**sospechoso** y archivos que utilizan funciones **PHP** a menudo utilizadas en **malwares**/shell web.
|
||||
[DiE](https://github.com/horsicq/Detect-It-Easy/) es una herramienta para detectar si un archivo está **encriptado** y también encontrar **empaquetadores**.
|
||||
|
||||
## Firmas binarias de Apple
|
||||
### NeoPI
|
||||
|
||||
Al verificar alguna muestra de **malware**, siempre debe **verificar la firma** del binario, ya que el **desarrollador** que lo firmó puede estar **relacionado** con **malware**.
|
||||
[NeoPI](https://github.com/CiscoCXSecurity/NeoPI) es un script de Python que utiliza una variedad de **métodos estadísticos** para detectar contenido **ofuscado** y **encriptado** dentro de archivos de texto o script. El propósito principal de NeoPI es ayudar en la **detección de código de shell web oculto**.
|
||||
|
||||
### **php-malware-finder**
|
||||
|
||||
[php-malware-finder](https://github.com/nbs-system/php-malware-finder) hace todo lo posible para detectar código **ofuscado**/**sospechoso** y archivos que utilizan funciones de **PHP** que a menudo se utilizan en **malwares**/shell web.
|
||||
|
||||
### Firmas Binarias de Apple
|
||||
|
||||
Cuando se verifica una **muestra de malware**, siempre se debe **verificar la firma** del binario, ya que el **desarrollador** que lo firmó puede estar **relacionado** con **malware**.
|
||||
```bash
|
||||
#Get signer
|
||||
codesign -vv -d /bin/ls 2>&1 | grep -E "Authority|TeamIdentifier"
|
||||
|
@ -127,16 +190,28 @@ codesign --verify --verbose /Applications/Safari.app
|
|||
#Check if the signature is valid
|
||||
spctl --assess --verbose /Applications/Safari.app
|
||||
```
|
||||
# Técnicas de Detección
|
||||
## Técnicas de Detección
|
||||
|
||||
## Apilamiento de Archivos
|
||||
### Apilamiento de Archivos
|
||||
|
||||
Si sabes que una carpeta que contiene los **archivos** de un servidor web fue **actualizada por última vez en alguna fecha**. **Verifica** la **fecha** en que todos los **archivos** del **servidor web fueron creados y modificados** y si alguna fecha es **sospechosa**, verifica ese archivo.
|
||||
Si sabes que una carpeta que contiene los **archivos** de un servidor web fue **actualizada por última vez en una fecha determinada**, **verifica** la **fecha** en la que todos los **archivos** del servidor web fueron creados y modificados, y si alguna fecha es **sospechosa**, verifica ese archivo.
|
||||
|
||||
## Baselines
|
||||
### Baselines
|
||||
|
||||
Si los archivos de una carpeta **no deberían haber sido modificados**, puedes calcular el **hash** de los **archivos originales** de la carpeta y **compararlos** con los **actuales**. Cualquier cosa modificada será **sospechosa**.
|
||||
Si los archivos de una carpeta **no deberían haber sido modificados**, puedes calcular el **hash** de los **archivos originales** de la carpeta y **compararlos** con los **actuales**. Cualquier modificación será **sospechosa**.
|
||||
|
||||
## Análisis Estadístico
|
||||
### Análisis Estadístico
|
||||
|
||||
Cuando la información se guarda en registros, puedes **verificar estadísticas como cuántas veces se accedió a cada archivo de un servidor web, ya que una shell web podría ser una de las más**.
|
||||
|
||||
<details>
|
||||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
||||
|
||||
* ¿Trabajas en una **empresa de ciberseguridad**? ¿Quieres ver tu **empresa anunciada en HackTricks**? ¿O quieres tener acceso a la **última versión de PEASS o descargar HackTricks en PDF**? ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
|
||||
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||||
* Obtén el [**merchandising oficial de PEASS y HackTricks**](https://peass.creator-spring.com)
|
||||
* **Únete al** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de Telegram**](https://t.me/peass) o **sígueme** en **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
|
||||
* **Comparte tus trucos de hacking enviando PRs al** [**repositorio de hacktricks**](https://github.com/carlospolop/hacktricks) **y al** [**repositorio de hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
|
||||
|
||||
</details>
|
||||
|
|
Loading…
Reference in a new issue