vulnerability_check.c 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <sys/system_properties.h>
  5. /**
  6. * Verificador de Vulnerabilidad HyperOS / Android (Marzo 2026)
  7. * Basado en el nivel de parche y estado del servicio mqsas/adbd.
  8. */
  9. void check_vulnerability() {
  10. char patch_date[PROP_VALUE_MAX];
  11. char adb_status[PROP_VALUE_MAX];
  12. char device_model[PROP_VALUE_MAX];
  13. // Obtener propiedades del sistema
  14. __system_property_get("ro.build.version.security_patch", patch_date);
  15. __system_property_get("init.svc.adbd", adb_status);
  16. __system_property_get("ro.product.model", device_model);
  17. printf("====================================================\n");
  18. printf(" DIAGNÓSTICO DE SEGURIDAD - %s\n", device_model);
  19. printf("====================================================\n");
  20. printf("[+] Nivel de parche actual: %s\n", patch_date);
  21. printf("[+] Estado de ADB (Daemon): %s\n", (strcmp(adb_status, "running") == 0) ? "ACTIVO" : "Inactivo");
  22. // Lógica de validación para marzo de 2026
  23. // Comparamos si la fecha es anterior a 2026-03-01
  24. if (strcmp(patch_date, "2026-03-01") < 0) {
  25. printf("\n[!] ESTADO: VULNERABLE\n");
  26. printf("[-] Tu sistema no incluye los parches críticos de este mes.\n");
  27. if (strcmp(adb_status, "running") == 0) {
  28. printf("[CRÍTICO] ADB está activo. El vector de ataque está ABIERTO.\n");
  29. } else {
  30. printf("[AVISO] El riesgo es latente si activas la Depuración USB.\n");
  31. }
  32. } else {
  33. printf("\n[OK] ESTADO: PROTEGIDO\n");
  34. printf("[+] Tienes el parche de seguridad de marzo de 2026 o superior.\n");
  35. }
  36. // Comprobación adicional del servicio mqsas (Xiaomi específico)
  37. printf("\n[+] Verificando servicio mqsas (Xiaomi-specific)...\n");
  38. if (system("service check mqsas | grep -q 'found'") == 0) {
  39. printf("[!] Servicio mqsas detectado. Asegúrate de revocar permisos ADB.\n");
  40. } else {
  41. printf("[i] Servicio mqsas no detectado o restringido.\n");
  42. }
  43. printf("====================================================\n");
  44. }
  45. int main() {
  46. check_vulnerability();
  47. return 0;
  48. }