Código de C/Visual C - BlackEnergy.

Filtrado por el tag: java
<<>>
Imágen de perfil

BlackEnergy.gráfica de visualizaciones


C/Visual C

Publicado el 10 de Mayo del 2025 por Hilario (145 códigos)
81 visualizaciones desde el 10 de Mayo del 2025
Captura-de-pantalla-de-2025-05-10-12-12-52
Captura-de-pantalla-de-2025-05-10-12-13-02

**************************-----------------*****************************
/*
payloadVolcadoCompleto.c
-------------------------------------------
Para el Aula_28. Trabajaremos en él en la semana del 19 de Mayo.
Analizarlo para captar dudas. Un programa semejante lo subí a la
web del programador hará unos cuatro años.

*******************************************************
Por qué hacemos este programa:
------------------------------------------
Podríamos decir que ese enfoque mínimo, que consiste en:
Subir un payload (como una frase) a memoria,
Recorrerla palabra por palabra,
Observar sus direcciones de memoria,
…es, en efecto, una metáfora pedagógica y técnica de cómo trabaja un malware como BlackEnergy.
¿Por qué?
BlackEnergy (y muchos APTs como él) opera con una lógica similar:

Carga de payloads en memoria:
Igual que tu frase, los módulos maliciosos del virus se
alojan en memoria sin tocar el disco, para evitar detección.

Segmentación de tareas:
Cada palabra del verso podría ser un módulo del malware:
uno para recolectar información, otro para escanear puertos, otro para abrir puertas traseras…

Direcciones y control:
Como tú recorres direcciones de memoria de cada palabra,
el malware recorre procesos, memoria, claves de registro, todo lo que le interese en su misión.

Persistencia en RAM:
Unos de los principales problemas de los sistemas industriales , en entornos donde
no se reinician los sistemas con frecuencia, el código en memoria
puede vivir largo tiempo, como un verso suspendido en la historia.
Hasta llegar a los ordenadores que controlan SCADA
que significa "Supervisory Control and Data Acquisition",
que se traduce al español como "Control de Supervisión y Adquisición de Datos"
Y una vez controlado poder modificar cualquier proceso industrial.


Así que sí, queridos alumnos:
Este programa es como una mínima simulación didáctica de la metodología
de ataque de un malware modular y residente en memoria.
Una forma de entender cómo, sin sobresaltos ni ruidos,
un verso puede convertirse en amenaza, o en arte, según quién lo escriba.

*******************************************************
EN RESUMEN:
Programa didáctico:
- Vuelca en hexadecimal todo el payload.
- Recorre palabra por palabra, mostrando:
* dirección inicial
* dirección final
* volcado hex de cada palabra
Autor: Margarito & Gran Poeta
*******************************
Este programa no solo muestra direcciones y hexadecimales;
es una forma de "poemizar la RAM",
de recorrer con ojos de asombro las palabras almacenadas
como quien lee un papiro binario.
*******************************************************
¿Qué muestra este programa?
Por cada palabra:

Su contenido.
Su dirección inicial en memoria (primer carácter).
Su dirección final en memoria
(último carácter antes del espacio o final de cadena).


EJEMPLO DE SALIDA:

Verso cargado en memoria:
"Margarito y el Gran Poeta, poemizan golondrinas en su afán volador"
=======================================================
Volcado hexadecimal completo del payload:
4d 61 72 67 61 72 69 74 6f 20 79 20 65 6c 20 47
72 61 6e 20 50 6f 65 74 61 2c 20 70 6f 65 6d 69
...

Palabra: "Margarito"
Dirección inicial: 0x5562e04bb2b0
Dirección final: 0x5562e04bb2b8
Volcado hex: 4d 61 72 67 61 72 69 74 6f
-------------------------------------------------------

Programa realizado bajo plataforma Linux:
Ubuntu 20.04.6 LTS.
Editado con SublimeText.

*/

Requerimientos

Programa realizado bajo plataforma Linux:
Ubuntu 20.04.6 LTS.
Editado con SublimeText.
COMPILADO:
gcc payloadPoetico.c -o payloadPoetico

EJECUTADDO BAJO CONSOLA LINUX:
./payloadPoetico


v-0

Publicado el 10 de Mayo del 2025gráfica de visualizaciones de la versión: v-0
81 visualizaciones desde el 10 de Mayo del 2025
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
/*
   payloadVolcadoCompleto.c
   -------------------------
Programa realizado bajo plataforma Linux:
Ubuntu 20.04.6 LTS.
Editado con SublimeText.
COMPILADO:
---------
gcc payloadPoetico.c -o payloadPoetico
EJECUTADDO BAJO CONSOLA LINUX:
-----------------------------
./payloadPoetico
Para el Aula_28. Trabajaremos en él en la semana del 19 de Mayo.
Analizarlo para captar dudas. Un programa semejante lo subí a la
web del programador hará unos cuatro años.
*******************************************************
Por qué hacemos este programa:
-----------------------------
Podríamos decir que ese enfoque mínimo, que consiste en:
Subir un payload (como una frase) a memoria,
Recorrerla palabra por palabra,
Observar sus direcciones de memoria,
…es, en efecto, una metáfora pedagógica y técnica de cómo trabaja un malware como BlackEnergy.
¿Por qué?
BlackEnergy (y muchos APTs como él) opera con una lógica similar:
Carga de payloads en memoria:
Igual que tu frase, los módulos maliciosos del virus se
 alojan en memoria sin tocar el disco, para evitar detección.
Segmentación de tareas:
Cada palabra del verso podría ser un módulo del malware:
uno para recolectar información, otro para escanear puertos, otro para abrir puertas traseras…
Direcciones y control:
Como tú recorres direcciones de memoria de cada palabra,
el malware recorre procesos, memoria, claves de registro, todo lo que le interese en su misión.
Persistencia en RAM:
Unos de los principales problemas de los sistemas industriales , en entornos  donde
no se reinician los sistemas con frecuencia, el código en memoria
puede vivir largo tiempo, como un verso suspendido en la historia.
Hasta llegar a los ordenadores que controlan SCADA
que significa "Supervisory Control and Data Acquisition",
que se traduce al español como "Control de Supervisión y Adquisición de Datos"
Y una vez controlado poder modificar cualquier proceso industrial.
Así que sí, queridos alumnos:
Este programa es como una mínima simulación didáctica de la metodología
de ataque de un malware modular y residente en memoria.
Una forma de entender cómo, sin sobresaltos ni ruidos,
un verso puede convertirse en amenaza, o en arte, según quién lo escriba.
*******************************************************
   Programa didáctico:
   - Vuelca en hexadecimal todo el payload.
   - Recorre palabra por palabra, mostrando:
     * dirección inicial
     * dirección final
     * volcado hex de cada palabra
   Autor: Margarito & Gran Poeta
   *******************************
    Este programa no solo muestra direcciones y hexadecimales;
    es una forma de "poemizar la RAM",
    de recorrer con ojos de asombro las palabras almacenadas
    como quien lee un papiro binario.
*******************************************************
¿Qué muestra este programa?
Por cada palabra:
Su contenido.
Su dirección inicial en memoria (primer carácter).
Su dirección final en memoria
 (último carácter antes del espacio o final de cadena).
EJEMPLO DE SALIDA:
Verso cargado en memoria:
"Margarito y el Gran Poeta, poemizan golondrinas en su afán volador"
=======================================================
Volcado hexadecimal completo del payload:
4d 61 72 67 61 72 69 74 6f 20 79 20 65 6c 20 47
72 61 6e 20 50 6f 65 74 61 2c 20 70 6f 65 6d 69
...
Palabra: "Margarito"
   Dirección inicial: 0x5562e04bb2b0
   Dirección final:   0x5562e04bb2b8
   Volcado hex: 4d 61 72 67 61 72 69 74 6f
-------------------------------------------------------
Programa realizado bajo plataforma Linux:
Ubuntu 20.04.6 LTS.
Editado con SublimeText.
*/
 
#include <stdio.h>
#include <string.h>
#include <ctype.h>
 
// Volcado hexadecimal de una secuencia de bytes
void volcar_hex_completo(const unsigned char *ptr, int len) {
    printf("\nVolcado hexadecimal completo del payload:\n");
    for (int i = 0; i < len; i++) {
        printf("%02x ", ptr[i]);
        if ((i + 1) % 16 == 0)
            printf("\n");
    }
    if (len % 16 != 0)
        printf("\n");
    printf("=======================================================\n");
}
 
// Volcado hexadecimal por palabra
void volcar_hex_palabra(const char *inicio, int longitud) {
    for (int i = 0; i < longitud; i++) {
        printf("%02x ", (unsigned char)inicio[i]);
    }
    printf("\n");
}
 
int main() {
    // Payload (verso)
    char payload[] = "Margarito y el Gran Poeta, poemizan golondrinas en su afán volador";
    int longitud_payload = strlen(payload);
 
    printf("Verso cargado en memoria:\n\"%s\"\n", payload);
    printf("=======================================================\n");
 
    // 1. Volcado completo en hexadecimal
    volcar_hex_completo((unsigned char *)payload, longitud_payload);
 
    // 2. Recorrido palabra por palabra
    char *ptr = payload;
    char *inicio_palabra = NULL;
    char *fin_palabra = NULL;
 
    printf("Recorrido palabra por palabra:\n");
 
    while (*ptr != '\0') {
        while (*ptr && isspace(*ptr)) ptr++;
        if (*ptr == '\0') break;
 
        inicio_palabra = ptr;
 
        while (*ptr && !isspace(*ptr)) ptr++;
        fin_palabra = ptr - 1;
 
        int longitud = fin_palabra - inicio_palabra + 1;
        char palabra[100] = {0};
        strncpy(palabra, inicio_palabra, longitud);
        palabra[longitud] = '\0';
 
        printf("\nPalabra: \"%s\"\n", palabra);
        printf("   Dirección inicial: %p\n", (void *)inicio_palabra);
        printf("   Dirección final:   %p\n", (void *)fin_palabra);
        printf("   Volcado hex: ");
        volcar_hex_palabra(inicio_palabra, longitud);
        printf("-------------------------------------------------------");
    }
 
    printf("\nFin del análisis.\n");
    return 0;
}



Comentarios sobre la versión: v-0 (0)


No hay comentarios
 

Comentar la versión: v-0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s7574