Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - WHK

#1
Hacking / Consultoría - Cómo solucionar un XSS
7 Noviembre 2021, 17:46 PM
Hola, para dedicarse a la seguridad de manera profesional no solamente basta con saber encontrar un XSS sino también es necesario saber porque se produce y como darle una solución, ya que en muchas ocasiones nos toca hablar con el dueño de la aplicación WEB y nos pide consejos y estos no pueden estar fundados en la ignorancia. Por eso quiero comentarles como aconsejar a alguien sobre como solucionar un XSS y como darle su importancia.


Estructura

Cuando encuentras un XSS es importante saber que el dueño de la aplicación no es el experto en seguridad sino tu mismo, por lo cual el dueño puede que entienda menos de la mitad de lo que le digas, por eso es importante ser muy claro y estructurado al momento de detallar un XSS:

  • Resumen del hallazgo
  • Cómo replicar el problema (PoC) (ojo, no te están pidiendo mostrar un alert, sino replicar un impacto real)
  • Porqué es un riesgo de seguridad (impacto)
  • Cuales son las mejores recomendciones

Generalmente en el resumen del hallazgo debes incluir el tipo de vulnerabilidad, normalmente categorizado junto al nivel de riesgo y esto lo puedes obtener a traves de diferentes estándares tales como la CVSS ( https://nvd.nist.gov/vuln-metrics/cvss ) y la CWE ( https://nvd.nist.gov/vuln/categories ) ya que será tu palabra contra el dueño de la aplicación, por lo cual siempre es buena idea apegarse a los estándares.


Recomendaciones

Acá va el problema: el cliente tiene un sitio WEB que cuenta con una vulnerabilidad de tipo XSS Reflejado ( CWE 80 https://cwe.mitre.org/data/definitions/80.html ) y el cliente necesita una recomendación. He escuchado a muchas personas recomendar lo siguiente de manera equivocada:

  • Impedir el ingreso de caracteres especiales en los campos
  • Filtrar los caracteres especiales evitando que en el input se ingresen etiquetas HTML
  • Crear una regla en el WAF para evitar los XSS

Pero, ¿Porqué están errados?: Para comenzar, impedir o filtrar el ingreso de caracteres especiales en los campos es una recomendación demasiado genérica y va a depender del tamaño y de la arquitectura de la aplicación. Como podemos observar, el CWE es 80 ( https://cwe.mitre.org/data/definitions/80.html ) y no 79 ( https://cwe.mitre.org/data/definitions/79.html ), hay una gran diferencia ya que el CWE-79 indica que es un problema de caracteres de entrada y el CWE-80 indica que es un problema de salida.

Cuando ingresas contenido HTML en un campo y este se refleja en el código fuente resolutante de la respuesta del sitio WEB (response) entonces tenemos un problema de datos de salida y no de entrada, pero ¿porqué no filtrar los caracteres en la entrada para evitar tener problemas en los datos de salida?: porque no todas las aplicaciones funcionan igual y esto dependerá de su arquitectura, por ejemplo: Supongamos que nuestro sistema tiene una versión WEB y una version movil, si filtro los caracteres especiales en la entrada de datos para convertirlos en entidades HTML para que se guarde en la base de datos entonces cuando la aplicación móvil vaya a solicitar estos datos vendrán con escapes HTML pero las aplicaciones móviles nativas no usan HTML asi que se verán caracteres extraños basura en el contenido. No todo lo que esté en una base de datos significa que se desplegará en una aplicación WEB o móvil o de escritorio, sea nativa o híbrida, por esto es muy importante tener en mente el siguiente concepto:

Ningún dato de entrada debe ser filtrado a menos que sea un filtro de datos por concepto de definición de capa de negocio y datos, o sea, si mi valor a ingresar debe ser siempre un número positivo entonces eso si se puede filtrar, si el nombre debe tener una longitud máxima entonces esto debe ser controlado y filtrado, pero si no hay nada que impida que alguien ingrese un caracter especial en una caja de descripción entonces para que filtrar, por lo contrario, un buen desarrollo debe poder funcionar de manera segura con cualquier tipo de caracter especial, por ejemplo, este foro permite caracteres especiales para el nombre de usuario o la caja del contenido del post y no quiere decir que se deban eliminar todos los caracteres especiales para hacerlo mas seguro.

Si eres un profesional y encontraste un buen XSS pero aconsejas filtrar los campos de entrada te puede hacer quedar como ignorante en el campo del desarrollo de la solución y puede que pierdan la confianza en ti y sin que te lo digan.

¿Porqué no es bueno recomendar que se solucione del lado del WAF creando reglas que impidan los XSS?: Porque un WAF es solamente un agente mitigante pero no un solucionador de problemas, puede que para alguien sea mas dificil llegar al XSS pero el agujero de seguridad con el riesgo aun van a seguir existiendo, los riesgos se reducen pero no se eliminan, por lo cual no se considera una solución sino una mitigación y esto es parte de dos planes de trabajo: La mitigación al corto plazo y la solución al mediano/largo plazo.


¿Cual es la mejor recomendación?

Crear un plan de mitigación al corto plazo sonde se mitigue a traves de diferentes agentes dependiendo los que tenga el dueño de la aplicación WEB (Web Application Firewall), por ejemplo, el WAF para mitigar los ataques WEB, un Firewall para evitar la llegada de paquetes maliciosos a la infraestructura, evitar pivoting y esas cosas.

Crear un plan de solución al mediano/largo plazo que incluya corrección de código fuente del lado del desarrollo y acá entra algo de conocimiento de Arquitectura aplicativa:

En el caso de ser una aplicatión WEB monolítica ( https://es.wikipedia.org/wiki/Aplicaci%C3%B3n_monol%C3%ADtica ) se debe recomendar crear un escapado de datos de salida en el punto vulnerable y ojo, existen varias maneras de hacerlo según sea el caso ya que va a depender en que lugar del código resultante se realiza la impresión de la variable vulnerable con el XSS, pero antes de explicar esto es necesario entender otra cosa: ¿Qué es una secuencia de escape de caracteres?.

Pues bien, digamos que tenemos un String entre comillas dobles así:

"Palabra acá"

¿Que sucede si el valor de esta palabra contiene una comilla doble?

"Palabra " acá"

Pues, lo que sucede es que se rompe la cadena de texto ya que las comillas dobles declaran el valor, todo lo que esté dentro es parte del texto, pero cuando le pones una comilla doble lo estás interrumpiendo indicando que se está cerrando la declaración, o sea, que la palabra ya ha terminado, entonces, que sucede con el texto restante, en este caso podrías hacer dos textos o inyectar algo entremedio, por ejemplo usando la frase: Palabra" + algo + "acá

"Palabra" + algo + "acá"

Y bueno, se produce una inyección de código malicioso entre una declaración de tipo texto. Esto mismo sucede en muchos lugares, como verán, no estoy hablando de un lenguaje de programación en particular ya que cada lenguaje utiliza su propia sintaxis y su propia manera de escapar los caracteres.

Entonces, para evitar que suceda una inyección se creó algo universal llamado "Secuencia de escape de caracteres" los cuales se añaden al caracter especial para que este forme parte de la cadena de texto y no que lo rompa, por ejemplo, en javascript es el backslash "\", por ejemplo:

"Palabra \" acá"

Esto le indica al motor interpretador de javascript que el caracter que sigue después del backslash será parte del texto en ves de interpretarse como un quiebre del string. En batch el caracter de escape es el "^" y el "%%", en bash es el backslash, en SQL es el backslash, en javascript es el backslash y en HTML es la Entidad HTML! ( https://dev.w3.org/html5/html-author/charref ).

Asi que, en nuestro XSS pueden haber dos situaciones muy comunes, que el código esté imprimiendose dentro de una etiqueta javascript o dentro del mismo HTML y en cambos casos se necesitarán usar diferentes tipos de secuencia de escape, por ejemplo:

<script>var x = '$valor_escapado';</script>

Donde $valor_escapado será igual al texto de salida escapado, esto quiere decir que cada caracter especial podrá ser reemplazado por valores de escape unicode o hexadecimal (definido por el estandar de javascript ES6), por ejemplo:

"Palabra \x22 ac\xc3\xa1"

Pero, ¿con que función se escapa?: Eso dependerá del lenguaje de programación o del framework que estés utilizando, cada lenguaje o framework tiene distintas maneras de aplicar este filtrado y de ahi la importancia de entender de desarrollo de software, comprender lo que estás analizando, mas allá de ver un simple XSS.

Ahora vamos con el código HTML, su secuencia de escape está definido por el estandar mismo de la W3C: https://dev.w3.org/html5/html-author/charref , por lo cual enocntramos las siguientes equivalencias:



Valor/Entidad que lo reemplaza
<&lt;
>&gt;
'&apos;
"&quot;

Entonces, si el problema estuviera en código HTML debería ser escapado de la siguiente manera:

<input type="text" value="Palabra &quot; acá" />

Hay personas que aplican un filtro html para todo el código, pero esto no escapa contenido javascript, por ejemplo, en javascrpt puedes inyectar código con un backslash, pero HTML no tiene un escape para backslash porque para HTML ese caracter no es peligroso pero para javascript si, lo mismo sucede cuando intentas romper una secuencia con un salto de línea, por otro lado un tag html en javascript no le pasa nada pero a HTML si. Asi que, cada lenguaje en cada trozo de código debe llevar su propia secuencia de escape de caracteres o podrás terminar abriendo una vulnerabilidad donde antes no lo había.

Pero, en aplicaciones con separación de capas (no monolíoticas) hay que indicar que esto se debe hacer del lado del código que expone la información, o sea la capa de presentación ( https://es.wikipedia.org/wiki/Programaci%C3%B3n_por_capas ), y ojo, no se les vaya a ocurrir decirle a alguien que debe escapar absolutamente todo, ya que va a depender de muchas cosas, por ejemplo, un servicio REST que expone datos a traves de código Json tiene su propia secuencia de escape de caracteres y esto generalmente se maneja de manera automática dependiendo del lenguaje y framework de programación.

Asi que, ahora si estamos medianamente listos para dar una buena recomendación:

CitarA modo de solución al mediano/largo plazo se recomienda aplicar la secuencia de escape de caracteres utilizando el estandar de Entidades HTML declarado por W3C en capa de presentación, únicamente sobre el parámetro afectado.

Como verán, la recomendación es corta, pero va al grano y con todo el tecnicismo que necesita el dueño de la aplicación, es muy diferente a decir "hay que filtrar los datos de entrada" y ya.

A modo de conocimiento general, en algunas ocasiones, a demás de recomendar solucionar el XSS también se le recomienda sobre migrar de tecnología a una mas segura, por ejemplo, si el desarrollo WEB no utiliza un framework, sino que está hecho a mano con archivos php o jsp tirados en el servidor, entonces se le dice que al largo plazo va a ser mejor migrar a un framework de desarrollo mas seguro como Codeigniter, Laravel o Spring boot ya que estos frameworks manejan de manera automática los problemas de tipo inyección como los XSS o Inyección SQL debido a que nunca programas código a mano, sino que te apoyas en clases y templates, donde las consultas SQL ya no se realizan directamente sino que usas clases y el framework traduce esas clases a consultas SQL parametrizadas y ya no programas variables directamente sobre HTML sino que programas sobre un sistema de plantillas que traduce tu código a código escapado de manera automática como es el caso de Jinja para Django de Python, Thymeleaf para Spring Boot de Java y Razor para MVC de .NET.

Como ya habrán notado, esto no solo aplica para los XSS sino para cualquier tipo de vulnerabilidad de tipo inyección, esto incluye Inyecciones SQL e Inyección de Comandos, Inyección XML, Inyección LDAP y similares.


Recomendaciones adicionales

Cuando el dueño de una aplicación pregunta como solucionar un problema, por lo general no se lo pregunta a la persona de al lado, sino que se lo pregunta al que encontró el problema y estará esperando a que entiendas como ayudarlo pero si no sabes en que lenguaje está hecho o no tienes los fundamentos básicos de desarrollo entonces va a ser dificil dar una recomendación certera, incluso puede que estés dando una recomendación erronea y que en el futuro tengan problemas aun mas graves y les hagas perder el tiempo, me ha tocado ver esos casos y no es muy agradable decirle a una persona que lo que hizo a modo de corrección realmente no sirve y que va a tener que volver a programar sus soluciones.


Espero les pueda ayudar un poco a ampliar el vocabulario se seguridad informática. Saludos.
#2
Buenas, si alguien juega War Robots podríamos juntarnos un día para hacer unas partidas 1 v/s1 o en escuadrón.

Mi id de usuario es HGKUDB y mi id de clan es 287768.



[youtube=640,360]https://www.youtube.com/watch?v=ZtquNPfg1yk[/youtube]

Saludos!
#3
Buenas, les dejé un asludo a toda la comunidad en la charla de la ekoparty por acá:
https://www.twitch.tv/videos/1103875842 (La charla comienza en 00:50:41 y termina en 1:35:00)

También les dejé otro saludo en una charla con Xecurelabs (algo más técnico) acá:
https://www.twitch.tv/videos/1104281456

Para los que quieran mas info sobre el tema:
https://foro.elhacker.net/foro_libre/iquestquien_dice_que_el_hacking_no_deja_dinero-t349117.0.html

Saludos.
#4
Las Reglas

Antes que nada, se debe recordar que antes de crear cualquier post se exige haber leido las reglas y evitar transgredirlas, siempre teniendo un buen sentido común en su interpretación:

https://foro.elhacker.net/reglas.htm


Temas eliminados

Si tu post ha sido eliminado es porque un moderador lo ha hecho con su criterio avalado por el staff y la administración, por lo cual, toda eliminación se realiza con un motivo y no por un antojo personal, asi que es importante comprender el porqué fue eliminado antes de volver a crear uno similar o podrás ser baneado. De todas maneras, recuerda que todos somos humanos y los moderadores podemos cometer errores, asi que si crees que tu eliminación fue injustificado, puedes apelar a ello. Si no hay reclamos se da por hecho que fue una eliminación totalmente justificada y asumida. Tienes derecho a que te notifiquen o exigir que te digan porqué ha sido eliminado tu post.


Usuarios baneados

La moderacion no es arbitraria ni por deseos personales, es totalmente imparcial y apela al bienestar del resto de los usuarios del foro. La mayoría de las veces que se banea a alguien es para evitar que este afecte la sana convivencia de una u otra manera. Tienes derecho a que te notifiquen o exigir que te digan porqué te han baneado. Si crees que tu baneo fue injustificado, puedes apelar a ello


Apelación

Toda sanción puede ser rebatida pero NO EN UN NUEVO POST, está totalmente prohibido comenzar a crear nuevas cuentas o nuevos post únicamente para reclamar, sobre los motivos ya que en la mayoría de las veces estos temas se salen de control y terminan causando mas problemas que soluciones, por lo cual, cualquier reclamo se debe realizar de manera directa al staff o a la administración a través de un mensaje privado o enviando un correo a: staff@elhacker.net o webmaster@elhacker.net

Cualquier usuario (ya sea por eonojo o lo que sea) que insulte a otro por la decisión de una moderación será sancionado con su expulción temporal o permanente.


¿Quien toma las decisiones?

Jerarquicamente, la decisión de cerrar temas, eliminarlos y banear usuarios, lo toman los moderadores o moderadores globales, pero al mismo tiempo cada moderador no es independiente, todos dependemos de "la voluntad del staff", esto quiere decir que tanto las normas como la decisión sobre que hacer con alguien la tomamos en conjunto entre miembros del staff.

Con respecto a la eliminación de un usuario, es un tema mas complicado y la decisión la tenemos entre la moderación global, coadministración y administración. En algunas ocasiones realizamos conversaciones internas para decidir si es una buena idea banear a alguien o no, se discuten los hechos y se toma una decisión, asi que, cuando seas baneado, recuerda que la decisión final pudo haber sido tomada en conjunto y no por una sola persona, asi que antes de descargarse contra algún moderador, piensen en que lo más probable es que la decisión no la tomó solo.

Con respecto a la expulsión total sin tiempo de expiración, generalmente la tomamos entre la coadministración y la administración, exceptuando spammers, bots y similares.

A veces nos equivocamos, es verdad, por eso la última palabra siempre la tiene el-brujo, aunque en ese sentido el-brujo confía en el criterio de sus moderadores, por lo cual, rebatir una sanción puede ser algo dificil excepto si tienes buenos argumentos.


Referencias

https://foro.elhacker.net/reglas.htm
https://foro.elhacker.net/sugerencias_y_dudas_sobre_el_foro/caren_v10_reglamento_de_convivencia_y_contenido-t17721.0.html
https://foro.elhacker.net/sugerencias_y_dudas_sobre_el_foro/reglas_del_foro_subforo_y_razon_por_lo_que_temas_podran_ser_eliminados-t424833.0.html
https://foro.elhacker.net/sugerencias_y_dudas_sobre_el_foro/161161posts_movidos_o_desaparecidos-t23762.0.html


Saludos.
#5
Hola, tengo una placa "xin mo controller" que tiene dos conectores macho de 18 pines (2 corridas de 9) los cuales los uso para conectar unos botones de unos mandos, en total son dos mandos y por eso tiene dos conectores. He decidido sacar todos los cables porque estaban desordenados y muy cortos, la placa estaba en el aire sin afirmar y le he cambiado el software al computador donde se conecta la placa, al hacerlo me di cuenta que todos los botones estaban mal conectados, el control 1 estaba conectado en el control 2 y donde van los botones tenia conectado los mandos, asi que desconecté todo e intenté reconectar todo nuevamente pero los terminales don de 4 en 4 y ya no coinciden con la distribución de la placa, asi que he decidido volver a comprar los pines hembra y los cables.

Pero, en ves de usar un manojo de cables o usar bloques de 4 o 5 pines he decidido buscar un solo conector hembra que transporte todos los cables hasta los botones, pero no se como buscarlo, no se si tiene un nombre específico o tendré que comprar algo para construirlo.

La placa es esta:



Tengo un conector de pc para el dock de audio y usb:



Pensaba conseguir algo similar pero de 18 pines en total para conectar todo de una sola ves y pasar todos los cables por un solo cordón y luego en la punta ponerle los conectores metálicos hacia los botones y demás.

¿Cómo los busco o como se arman?, he visto unas pinzas para armarlos pero de a uno no de a varios y tampoco se si existe un cordon hecho con los 18 cables. Intentaré comprar lo que pueda por amazon.

Saludos.
#6
A la venta datos de Eleven Paths y Telefónica.

No damos a basto a la hora de publicar noticias sobre filtraciones. En este caso, la afectada parece ser la división chilena de Eleven Paths y Telefónica que habría visto comprometida su información confidencial.

Un ciberdelincuente ha puesto a la venta en un conocido foro, cuatro bases de datos de datos de 480GB, 610GB, 1.6TB y 980GB que contienen información sobre Eleven Path y Telefónica Chile, así como, supuestamente, otros países.
venta datos de Eleven Paths y Telefónica

En la base de datos, supuestamente se encuentran todas las peticiones realizadas desde el SOC de Eleven Path, así como VPNs de diferentes compañías y clientes, bases de datos de bancos, incidentes de todos clientes de Telefónica y Eleven Paths. Como prueba de que la filtración es real, el vendedor ha compartido numerosos datos de los clientes de las compañías, así como un correo electrónico interno de este 17 de Abril.

Fuente: https://derechodelared.com/venta-datos-de-eleven-paths-y-telefonica/
#7
Foro Libre / Sobre la obsolescencia programada
21 Abril 2021, 20:31 PM
Hola, ¿que opionan sobre la obsolescencia programada?.

Acá les dejo un pequeño video interesante que habla sobre esta situación que ya muchos conociamos desde hace tiempo:

[youtube=640,360]https://www.youtube.com/watch?v=m8KqmgSPAtg[/youtube]
#8

Aunque siguen siendo dos de los lenguajes más usados y eficientes, C y C++ también son famosos por sus problemas de gestión de memoria. De hecho, el equipo que se encarga del desarrollo y mantenimiento de Android dentro de Google, ha expresado que los fallos de seguridad de memoria en C y C++ siguen siendo la fuente de errores en el código de Android más difíciles de abordar.

Esto es una de las razones por las que hace tiempo que Google no solo ha estado promoviendo el uso de lenguajes como Java y Kotlin, sino que ahora, AOSP (Android Open Source Project) soporta Rust como lenguaje para desarrollar el propio sistema operativo.

Desde el año 2017 que el equipo de desarrollo de Mozilla ya estaba realizando esfuerzos por incluir este soporte de manera no nativa pero con miras hacia el futuro.

Fuentes:

- https://www.genbeta.com/desarrollo/android-soporta-rust-oficialmente-como-lenguaje-programacion-para-su-desarrollo
- https://mozilla.github.io/firefox-browser-architecture/experiments/2017-09-21-rust-on-android.html
#9
Foro Libre / Sus Canales de Youtube
18 Octubre 2020, 05:33 AM
Hola a todos!, así como antiguamente contabamos con un post de capturas de pantalla con nuestros escritorios, con fotografías de nuestros pc, ahora abro este post para que compartamos nuestros canales de Youtube favoritos :D

Acá van los mios:


Videos random para reir y pasar el rato

UnusualVideos
https://www.youtube.com/channel/UCpnkp_D4FLPCiXOmDhoAeYA

I am Ritto
https://www.youtube.com/channel/UCRE95FqCdFTyRylWdjX57Lw

DirectCUBE
https://www.youtube.com/channel/UCFB0iTfLbt_W64_DAPeTtmw

131216
https://www.youtube.com/channel/UCUBdiAE5sIA9kNYyjU5xUqg/videos

VIRALES DE WHATSAPP
https://www.youtube.com/channel/UC8yC_6QlqkMvcqJTzx-ZcqA

NiñoGüero Studios
https://www.youtube.com/channel/UC75zyZ9GBqerwWvlMqqKlrg

Un Poco De Todo
https://www.youtube.com/channel/UCAB3buuWw0yMx9ca_rWwQiA

XpressTV
https://www.youtube.com/channel/UC0YFjwJc3b1otDerdv6CfWA

yovo68
https://www.youtube.com/channel/UCXX0RWOIBjt4o3ziHu-6a5A

Idiots On Wheels
https://www.youtube.com/channel/UCX7eDJqjZpFC4QT2C6duu5A

仮装大賞公式チャンネル / masquerade TV
https://www.youtube.com/channel/UCaCfi0KmVTnjhI8KEVWdR0g

colinfurze
https://www.youtube.com/channel/UCp68_FLety0O-n9QU6phsgw

Big Marvel
https://www.youtube.com/channel/UCgI8VzlDGsHCp0-9Een1eKw

SUSHI RAMEN【Riku】
https://www.youtube.com/channel/UCljYHFazflmGaDr5Lo90KmA

The Slow Mo Guys
https://www.youtube.com/channel/UCUK0HBIBWgM2c4vsPhkYY4w

Test Ex
https://www.youtube.com/channel/UCcPimqCjshfd3DLCZGzvbPw

Paolo fromTOKYO
https://www.youtube.com/channel/UCixD9UbKvDxzGNiPC_fgHyA

British Pathé
https://www.youtube.com/channel/UCGp4u0WHLsK8OAxnvwiTyhA

Agujeros de Guion
https://www.youtube.com/channel/UCffvdhj3nA0s2uN3NoWDQFA

Tito4re
https://www.youtube.com/channel/UC0k9PfNjEkzISBnSk43mzvQ


Hardware

David Lightman
https://www.youtube.com/channel/UCJZbmyjhKC63RoOXwcsn6oQ


Juegos

El Cofre de los Videojuegos
https://www.youtube.com/channel/UCKg62SeDyhapECOeQLRnakA

La Caverna del Gamer
https://www.youtube.com/channel/UClNSdNAqetoA97IG9zvscow

Arcade Players TV
https://www.youtube.com/channel/UCUSATM_OaRIamPnH6Rnyg2A

Masterjun3
https://www.youtube.com/channel/UCqPr3REqvxcBlYtZP4323wA


Ciencia / Estudios

QuantumFracture
https://www.youtube.com/channel/UCbdSYaPD-lr1kW27UJuk8Pw

El Robot de Platón
https://www.youtube.com/channel/UCaVPhFg-Ax873wvhbNitsrQ

julioprofe (Matemáticas)
https://www.youtube.com/user/julioprofe/videos

Academia Play
https://www.youtube.com/channel/UCv05qOuJ6Igbe-EyQibJgwQ


Restauraciones

Awesome Restorations
https://www.youtube.com/channel/UCsCCifMby57qV_UmrYGladQ

my mechanics
https://www.youtube.com/channel/UCMrMVIBtqFW6O0-MWq26gqw

Baumgartner Restoration
https://www.youtube.com/channel/UCvZe6ZCbF9xgbbbdkiodPKQ


Artes marciales

Wu Tang Collection
https://www.youtube.com/channel/UCUpbgPbDccjoB9PxI-nI7oA

kingofkungfu2002
https://www.youtube.com/channel/UCQHMIC-JOISHmO6lgfdZsrA


Hacking / Electrónica / Informática

LockPickingLawyer
https://www.youtube.com/channel/UCm9K6rby98W8JigLoZOh6FQ

The 8-Bit Guy
https://www.youtube.com/channel/UC8uT9cgJorJPWu7ITLGo9Ww

EEVblog
https://www.youtube.com/channel/UC2DjFE7Xf11URZqWBigcVOQ

ElectroBOOM
https://www.youtube.com/user/msadaghd

DanTheAwesomeMan
https://www.youtube.com/channel/UC2aEEZqSMq7cbX0DtFxo5nQ

Paweł Zadrożniak
https://www.youtube.com/channel/UCximsD7EJ38jzCNgfP_YTmA

FlyTech Videos (WTF's de Windows)
https://www.youtube.com/channel/UCEaEuLUvy4Y1DqpxiDvnxeQ

Retro Game Mechanics Explained
https://www.youtube.com/channel/UCwRqWnW5ZkVaP_lZF7caZ-g

フリスクP
https://www.youtube.com/channel/UCUDO5IaDaTtvF5YxhxxVcGg

Junkyard - Origin of Creativity
https://www.youtube.com/channel/UCwlJ2NJqX-_WG8rg6EjGSgA

Linus Tech Tips
https://www.youtube.com/channel/UCXuqSBlHAE6Xw-yeJA0Tunw


Autos (Carros) / Aviones / Motor / Etc

Top Gear
https://www.youtube.com/channel/UCjOl2AUblVmg2rA_cRgZkFg

1320video
https://www.youtube.com/channel/UC0PXqiud6dbwOAk8RvslgpQ

Salomundo
https://www.youtube.com/channel/UCu1Al_bQJxIWJv0OjW3eFlg

ChrisFix
https://www.youtube.com/channel/UCes1EvRjcKU4sY_UEavndBw

LowMileage
https://www.youtube.com/channel/UCOABx_lB4InzJyo5AnJAGXw

RCScaleAirplanes
https://www.youtube.com/channel/UC1QF2Z_FyZTRpr9GSWRoxrA

Игорь Негода (Ruso loco)
https://www.youtube.com/channel/UCb9_Bhv37NXN1m8Bmrm9x9w

Cars and Engines
https://www.youtube.com/channel/UCzaRja_k66jt-KoSBftRTgw

Alejandro Romero Medina
https://www.youtube.com/channel/UCgUnbgSzBct4my3d9NdXHLA


Cristianismo

UnRudoDespertar
https://www.youtube.com/channel/UCgWXo14acH5J_rHLu2A-DIg

BibleProject - Español
https://www.youtube.com/channel/UCsna10x6Sm-f_Yj6SxdALnQ

Viviendo Con Sentido Común con Randy Morrison
https://www.youtube.com/channel/UC_7A_bW2YThyBkxONOHqPRQ

Voz Ayuda
https://www.youtube.com/channel/UC1wiXqV1I5AGknZNu-7SyoA/videos


Otros

EmprendeAprendiendo
https://www.youtube.com/channel/UCyM-2pRapEv6V2q7UNO9icg

Bob Ross
https://www.youtube.com/channel/UCxcnsr1R5Ge_fbTu5ajt8DQ

EXX EXperiment
https://www.youtube.com/channel/UC0bodNftoJP9xWymOUZoTKQ

Marcello Barenghi
https://www.youtube.com/channel/UCcBnT6LsxANZjUWqpjR8Jpw

Taste Show
https://www.youtube.com/channel/UCkRBu0K655809AdvDajyJJA


Hay otros canales que también veo pero no vale la pena ponerlos o simplemente son canales de uno o dos videos, asi que los omití, como por ejemplo https://www.youtube.com/watch?v=5qap5aO4i9A .

Saludos.
#10
Hacking / Incinera tu sitio WEB!
28 Julio 2020, 05:04 AM
Hola a todos!, se me ha ocurrido una buena idea para que todos podamos aprender de seguridad de manera didáctica, real y sin meternos en problemas. La idea es la siguiente:

¿Eres dueño de un sitio WEB?

Haz pasar por el fuego a tu sitio WEB!



Danos la oportunidad de revisar la seguridad de tu sitio entregandonos de manera voluntaria la URL, claramente debes ser el dueño y para asegurarnos de ello debes crear un registro TXT en tu dominio con la palabra "elhacker.net", si lo haces, entonces entre los mismos usuarios del foro le daremos un vistazo a tu sitio web y eso nos permitrá intercambiar ideas y técnicas para aprender mutuamente, y de pasada podrás corregir tus vulnerabilidades antes de que alguien más las encuentre y las aproveche para un ataque real no controlado.


¿Quieres ser el Pentester?

O para los que no conozcan el término: El atacante.



Sólo se pide algo de sentido común, acá la idea no es botar un sitio o hacerle daño, la idea es demostrar una vulnerabilidad, publicarlo en este mismo hilo y demostrar como lo hizo. Asi que:

- No se permiten ataques DOS ni DDOS ni nada que indisponga al sitio WEB.
- No se permite robar información de la base de datos.
- No se deben modificar archivos o datos de la db.
- La vulnerabilidad debe ser comprobable más que teórica.
- Publicar vulnerabilidades reales, nada de que le faltan cabeceras x frame options y basuras similares.
- Solo se debe revisar mientras exista el registro TXT en su dominio.

Cómo revisar si el dominio contiene el registro TXT correcto?: Desde el bash se debe ejecutar:

$ dig -t txt dominio.com

Si usas windows puedes usar la PowerShell:

PS> Get-Dns -Name dominio.com -Type TXT


¿Reglas?

Se vale todo, menos afectar la integridad o privacidad del mismo sitio. Esto quiere decir que no solo debemos restringirnos a una revisión web, tambien se vale revisar subdominios, puertos, etc, todo aquello que sirva para poder llegar al sitio WEB en cuestión (si, incluyendo la del proveedor de hosting).


¿Entregables?

Vamos, esto es un foro, el que quiera puede publicar sus hallazgos en un simple post o puede hacer un pdf a modo de informe, todo dependerá de quien lo haga, acá no hay un "esperable" o un "entregable", eso depende de cada uno.

De todas maneras, si se recomienda poder dar posibles soluciones por cada vulnerabilidad que encuentre (dentro de lo posible).





Vamos, esto es bien fácil, si tienes un sitio WEB permítenos que le demos un vistazo, eso es todo y los que lo revisemos podremos aplicar técnicas reales sobre sistemas reales. Muchas veces nos encontramos con CTF que no reflejan la realidad o solo debes estar adivinando cosas, la idea es poder ganar experiencia real en sistemas reales con vulnerabilidades reales.

Alguien se apunta?, solo basta con entregar su URL y agregar el registro TXT, si el dominio no tiene el registro TXT entonces abtenerse de revisarlo porque puede que realmente no sea el dueño del sitio WEB.
#11
Hola, como están todos!, acabo de crear un script bien simple para extraer información de los archivos APK, por ejemplo en que Framework está hecho o que sistemas de protección contiene. Con el tiempo agregaré más sistemas de protección a detectar.

Acá les va la URL del repositorio para su descarga: https://github.com/WHK102/apk-package-detector , está hecha en Python 3 y no necesita tener Java o SDK instalado, sólo necesita la ejecución del script en python nada más, todas las validaciones las realiza a nivel binario sin la necesidad de extraer nada en archivos sueltos.

Acá va un ejemplo de la salida del script:

$ python3 apd.py
~ APK Package Detector v0.1.3-beta - whk@elhacker.net ~
Get extended info from APK file.
Use      : apd.py [options] [APK target file]
Options  :
  -h, --help         Print the help message.
  -o, --out-format   Out format: human, json
Examples :
  apd.py test.apk
  apd.py -o json test.apk

$ python3 apd.py test.apk
~ APK Package Detector v0.1.3-beta - whk@elhacker.net ~
+ Metadata
  - App name       : Example
  - Package        : com.example
  - Author         : WHK
  - Packer         : 1.8.0_181 (Oracle Corporation)
  - Compile SDK    : None
  - Platform Build : 8.0.0
+ Frameworks used
  - Apache Cordova - https://cordova.apache.org/
+ Protection systems :
  - Appcelerator Assets Obfuscation   : Yes
  - OkHttp3 Certificate Pinning       : No
  - Root and Virtual Machine detector : No


El script nos ahorra tiempo al momento de realizar revisiones de seguridad a las aplicaciones móviles ya que muchas veces debemos descompilar para saber en que está hecho o nos encontramos con sorpresas si el APK no funciona en máquinas virtuales o no se puede interceptar el tráfico HTTPS.

El script no elimina los sistemas de protección, sólo avisa de lo que contiene para saber de que manera proceder a una revisión.

Saludos.
#12
Corte suprema de Chile avala la entrega de todos los dominios registrados .cl al que lo pida

Noviembre de 2019, en Chile, un abogado conocido como Jorge Enrique Delgado Gunckel solicitó de manera legal al registrante de dominios .cl un archivo Excel con todos los registros realziados desde el inicio de los tiempos junto a sus respectivas fechas de expiración.


¿Qué sucedió?

El problema principal en Chile es que los registros de dominio .cl se encuentran centralizados por una única entidad registradora que es nic.cl el cual tiene la gran mayoría de todos los dominios .cl registrados hasta el momento.

Un correo llegó de manera masiva a todos los clientes de dominios .cl indicando la situación:

CitarNotificamos que NIC Chile ha recibido una solicitud de información en el marco de la Ley de Acceso a la Información Pública (N° 20,285), presentada por el señor JORGE DELGADO, mediante la cual se nos pide entregar:
"Una lista de todos los nombres de dominio comprados a través del portal nic.cl y actualmente en vigor. No necesito ningún dato privado, solo nombres de dominio en formato Excel, con su fecha de vencimiento"

De conformidad con la Ley, usted tiene DERECHO A OPONERSE de manera fundada a la entrega de la información, en caso que usted estime que se afecta su seguridad, privacidad, derechos económicos o comerciales u otra causa que deberá exponer.

A pesar de que es posible declinar la solicitud, es necesario argumentar muy bien el hecho de porqué no entregar dicha información por cada dominio registrado, a demás, el que no respondiera de manera directa a nic.cl a traves del correo enviado se declararía que los dominios reclamanos pueden ser publicados en dicha lista.

El reclamo legal se puede observar en la siguiente dirección URL: https://www.nic.cl/acerca/documentos/SLC%20N%20508-19%20Jorge%20Delgado%20G-1.pdf

Este abogado ya ha estado involucrado en la solicitud y revocación de otros dominios .cl, quitando así la propiedad del que lo registró a favor de si mismo: http://www.nic.cl/cgi-bin/get-fallo?f=scotia.html a demás, también ha participado de otros procesos donde su misma información personal tales como dirección comercial y correo electrónico están publicados de manera totalmente abierta en documentos públicos como por ejemplo https://www.sernac.cl/transparencia/archives/2017/10/pdf/resolucion_n_1046_2015.pdf

Otro gran problema es que nic.cl no tiene poder suficiente para rechazar dicha solicitud, desde la corte suprema se avaló la entrega de dicha información por lo que todos los dominios .cl quedarán expuestos no solo a la solicitud de este abogado sino también a todos los que en un futuro quieran solicitarlo quedando clara la vulnerabilidad de la privacidad de la información sobre dominios chilenos .cl hoy y en el futuro.


La oposición

Tal como se puede presentir utilizando el sentido común, solicitar todos los dominios registrados no es una situación normal o común y se puede prestar para la realización de fraudes, aparcamiento adelantado de dominios para su reventa, entre otras situaciones, afectando así el normal uso de internet y nombres dominios. Así lo dejó notar la ONG de Derechos digitales indicando los puntos claves legales sobre esta situación y el derecho a oponerse: https://www.biobiochile.cl/noticias/ciencia-y-tecnologia/internet/2019/11/29/ong-rechaza-fallo-que-obliga-a-entregar-datos-de-dominios-chilenos-y-asegura-personas-pueden-negarse.shtml


¿Cuál es el estado actual de este caso?

Frente a la publicación en los medios sociales y la presión sobre esta situación, el día Viernes 29, abogado Jorge Enrique Delgado Gunckel ha declinado esta solicitud, reflejado en el siguiente comunicado por parte de nic.cl :

CitarEn relación a la solicitud de acceso a la información presentada por el señor JORGE DELGADO por la entrega del listado de los dominios inscritos en .CL, informamos lo siguiente:

Con esta fecha hemos tomado conocimiento de la declaración de DESISTIMIENTO de dicha petición de acceso por parte del interesado.

Expresamos a nuestra comunidad de clientes y usuarios nuestro agradecimiento por la acogida que ha tenido la información que les hemos entregado para hacer ejercicio de su derecho legal a oponerse a la entrega de la información.

Hacemos presente que deberemos enviar otras comunicaciones similares frente a nuevas peticiones de acceso al listado de dominios que se han presentado, por lo que solicitamos anticipadamente que nos disculpen por las molestias que se pueda ocasionar con los mensajes que deberemos volver a enviar.

Consecuentemente, NIC Chile desea reiterar que hará uso de todos los medios legales a su alcance para evitar esta y cualquiera otra entrega masiva de datos de los dominios inscritos.

Está claro que Chile se ha salvado por hoy de esta solicitud, pero queda claro que existen otras solicitudes del mismo calibre.

En mi opinión personal como experto en seguridad de la información recomiendo que para servicios críticos y de bajo perfil no se haga el uso de dominios .cl debido a que este tipo de situaciones escapan de las manos del registrador nic.cl y de la propia ICANN.


Fuentes:
https://www.nic.cl/acerca/documentos/SLC%20N%20508-19%20Jorge%20Delgado%20G-1.pdf
https://www.biobiochile.cl/noticias/ciencia-y-tecnologia/internet/2019/11/28/suprema-ordena-a-nic-chile-entregar-listado-con-los-casi-600-000-dominios-cl.shtml
https://www.biobiochile.cl/noticias/ciencia-y-tecnologia/internet/2019/11/29/ong-rechaza-fallo-que-obliga-a-entregar-datos-de-dominios-chilenos-y-asegura-personas-pueden-negarse.shtml
https://www.sernac.cl/transparencia/archives/2017/10/pdf/resolucion_n_1046_2015.pdf
https://www.theclinic.cl/2019/05/15/nic-chile-gana-batalla-judicial-ante-particular-que-pidio-entregar-registros-de-todos-los-dominios-punto-cl-del-pais/
#13
Foro Libre / Términos extraños en inglés
6 Octubre 2019, 23:59 PM
Hola, estaba viendo un documento y tiene algunos términos que no entiendo y tampoco encuentro una equivalencia en ningún traductor o documento en español y mis contactos hace horas que no me responden xD asi que ustedes son mi última alternativa.

Este es el parrafo:

Citarrange of security assurance and verification

Este es otro:

CitarDeployment assurance

También este otro:

Citarsecurity assurance component, wifi assurance

Etc etc etc.

Que rayos es assurance? el traductor de google me dice que puede significar "garantía" o "seguridad" pero no calza para nada decir que se vende una garantía de revisión de wifi xD o que hay que revisar la seguridad de la seguridad. Si es seguridad, ¿porqué no le ponen simplemente security y ya?.

Alguien me puede dar luces por favor?

Saludos.
#14
Foro Libre / Busco un meme bien antiguo de windows 95
18 Septiembre 2019, 16:38 PM
Hola, estaba buscando un meme muy antiguo pero no lo encuentro, ¿alguien me puede ayudar a encontrarlo?

Se trata de un dibujo donde aparece una sala de operaciones (de medicina) con un robots desmembrando al paciente y una pantalla al costado con un computador con windows 95 xD

Saludos!
#15
Grupo de Telegram oficial ehacker.NET

Hola a todos! hemos abierto un grupo de telegram para todos los que se quieran unir, el grupo es "oficial" por lo cual las normas de elhacker.net rigen por igual y su moderación estará a cargo del staff del foro.

Acceso al Grupo Telegram
https://t.me/elhackerdotnet

He intentado contactarme con otros grupos no oficiales existentes para poder reutilizarlos pero no he conseguido ninguna respuesta, por lo cual hice el grupo desde cero.

Saludos.
#16
Hola, como están todos, hoy he publicado una herramienta que había hecho hace ya un par de años, se trata de un escaneador de subdominios hecho en python3.

Acá va la URL: https://github.com/WHK102/wss

Cualquier sugerencia es bienvenida :)

saludos.
#17
Criptografía / descifrar payload
6 Mayo 2019, 19:18 PM
Hola, me han enviado un payload a modo de reto pero soy muy malo para la criptografía, no lo he podido sacar, alguien me da una mano?

El payload es el siguiente:

aDs5OzloAloCFmgMXwBFaFtSU
kNoDkREVWgfVF5aaFcFRVRoXl
VCd2hFWAtdaFxWWFuJ5onnMcA
x2zHJMdIEBIDDAbIoAdeQkJDr
RFlvdSBhcmUgZ2V0dGluZyBjb
G9zZXIsIGJ1dCBub3QgdGhlcm
UgeWV0Li4uIEYyVEMgaXMgd2F
0Y2hpbmcgeW91ISEKuUwAAACy
RM2A65uQkJCBNjE3MTeDxgT+w
YP5CnXwieHNgOuCidjNgA==


El base64 saca un payload con texto binario y un mensaje, alguien me puede dar luces sobre lo que realmente existe dentro del mensaje?

whk@machine:~$ echo 'aDs...NgA==' | base64 -d | xxd
00000000: 683b 393b 3968 025a 0216 680c 5f00 4568  h;9;9h.Z..h._.Eh
00000010: 5b52 5243 680e 4444 5568 1f54 5e5a 6857  [RRCh.DDUh.T^ZhW
00000020: 0545 5468 5e55 4277 6845 580b 5d68 5c56  .ETh^UBwhEX.]h\V
00000030: 585b 89e6 89e7 31c0 31db 31c9 31d2 0404  X[....1.1.1.1...
00000040: 80c3 01b2 2801 d790 9090 eb44 596f 7520  ....(......DYou
00000050: 6172 6520 6765 7474 696e 6720 636c 6f73  are getting clos
00000060: 6572 2c20 6275 7420 6e6f 7420 7468 6572  er, but not ther
00000070: 6520 7965 742e 2e2e 2046 3254 4320 6973  e yet... F2TC is
00000080: 2077 6174 6368 696e 6720 796f 7521 210a   watching you!!.
00000090: b94c 0000 00b2 44cd 80eb 9b90 9090 8136  .L....D........6
000000a0: 3137 3137 83c6 04fe c183 f90a 75f0 89e1  1717........u...
000000b0: cd80 eb82 89d8 cd80                      ........


La pagina real es: http://f2tcmrxuoxmw7uvl.onion/

Saludos.
#18
Hola, hace unos días encontré un problema en el servicio de gmail el cual podría dar algunos problemas en el normal funcionamiento, lo reporté (con id 122580205) y me dijeron lo siguiente:

CitarEstado: no se solucionará (inviable).
Gracias por informar! Creemos que el problema podría no ser lo suficientemente grave como para que podamos rastrearlo como un error de seguridad.

Asi que, como para ellos no es un problema como para categorizarlo como un problema de seguridad, lo publicaré acá, para que los que se dediquen a la administración de servicios de correos como yo no tengan este tipo de problemas.


¿El problema?

Normalmente, gmail no acepta el envío de correos hacia dominios que puedan ser anormales, por ejemplo "localhost", así también la mayoría de los servicios de Google como lo era Google Plus, al momento de generar las miniaturas de las direcciones URL tenían especial cuidado de no resolver sitios locales como puntos de acceso 192.*, 127.*, etc.

En el caso de Gmail si intentas enviar un correo hacia demo@localhost este es rechazado diciendo que el formato del correo es incorrecto, pero esto puede ser evadido utilizando un dominio preparado para apuntar hacia direcciones locales.

En este punto existen dos problemas, el primero es que al enviar un correo hacia localhost, este comenzará a intentar conectarse múltiples veces durante varios días, provocando una carga innecesaria multiplicando la carga del envío por la cantidad de intentos, el segundo es que cabe la posibilidad de que en situaciones especiales sea posible determinar la existencia de rangos de direcciones ip internas.


¿La prueba?

He creado una prueba de concepto utilizando home1.pocs.oznet.cl el cual apunta a 127.0.0.1. El correo enviado fue demo@home1.pocs.oznet.cl, el cual provocó que me estuvieran llegando notificaciones durante 3 días diciendo que no es posible conectar a 127.0.0.1. Esto probablemente se deba a que el host local de envío de correos no es el mismo internamente el cual hace las recepciones (smtp).

Hice otra prueba de concepto utilizando el campo "cc" para copiar a 20 correos diferentes utilizando el mismo dominio, pero solo me llega 1 correo de notificación por día, desconozco si gmail agrupa los mensajes de error, pero si estoy seguro que internamente ha estado intentando conectarse multiples veces.

El problema principal es la carga de red a nivel de apertura de puertos de salida de tráfico y el uso de recursos de cpu y memoria para procesar dichos correos.



Es dificil poder realizar un ataque de denegación de servicio a los servicios de Gmail, pero para alguien con malas intenciones que quiera generar una interrupción importante, podrá multiplicar enormemente el tráfico de manera interna si llegase a utilizar una botnet para el envío masivo de correos hacia direcciones ip internas. También cabe mencionar que puede servir de distractor para inhundar de logs de ataques internos los appliance de coorelación de logs mientras se realiza un ataque real de fuga de información.


¿La solución?

Claramente la solución es detectar del lado del servidor si el host de la dirección de correos resuelve alguna dirección IP local utilizando los rangos estándares.


Saludos.
#19
Hola, hago público un script que hice en php para barrer direcciones IP que hacen solicitudes http a un sitio web sin que este haga solicitudes a archivos estáticos como hojas de estilo.

Normalmente si una persona entra a un sitio con un navegador web este cargará el sitio mas las imagenes, etc, pero si tiene repetidos accesos sin acceder a las imagenes es porque es un bot... lo detecta y lo banea a través de un htaccess (se puede eliminar o modificar esta funcionalidad).

El script funciona dandole la ruta del log de acceso de un log común de apache, no importa el tamaño porque no carga todo en variables sino que procesa linea por linea liberando el buffer del puntero vía fopen.

https://gist.github.com/WHK102/8e147473622f30fddd52c7f1cd85806b

Saludos.
#20
Hola, como están todos.

Hoy me he acordado de una película y se la quería mostrar a un amigo, pero no recuerdo como se llama xD, la he buscado en google según me acuerdo de algunas cosas pero nada.

¿Alguien se acuerda de esta película?... es un western, creo recordar que el año es superior al 2000, no es tan vieja, pero en la trama hay claramente pistoleros y hay uno vestido de negro del cual nadie se mete con el y en un enfrentamiento le disparan y esta medio moribundo y su amigo se debe enfrentar a un pistolero pero el moribundo se va primero a enfrentarlo y lo mata de un disparo en su cabeza de abajo hacia arriba, o sea, la bala entra por su mentón y sale por arriba de su cabeza o frente no recuerdo bien, y el moribundo estaba bien pálido.

Alguien lo recuerda? se que lo vi en netflix pero no lo encuentro.
#21
Hacking / Mi WebShell
11 Febrero 2018, 02:40 AM
WHK hShell

Hola, les comparto mi WebShell hecha en php: https://github.com/WHK102/hShell

La había hecho hace muchos años pero comenzaré a publicar algunos de mis proyectos.

Algunas ventajas


  • El núcleo de todo el código está en el cliente y no en el servidor.
  • No deja rastros de la ejecución en el servidor ya que el código no se guarda.
  • No necesita actualizaciones del lado del servidor o intervenir el código en cada cambio.
  • El código es transportado y no almacenado previniendo la detección de los antivirus.
  • El transporte del código está ofuscado evadiendo la detección de los WAF.
  • El transporte de datos se realiza vía HTTP / POST previniendo dejar rastros en los logs de accesos del servidor WEB.
  • Utilización de payloads al azar en el transporte del código para la prevención de la detección de los WAF.
  • Soporta grandes transferencias de datos utilizando el transporte multipart/form-data sin almacenamiento del buffer en memoria por más de 1024 bytes del lado del cliente y del servidor.


¿Cómo se usa?

Igual que cualquier Shell WEB, subes el servidor.php al servidor y luego te conectas utilizando cliente.php desde el terminal así:
php cliente.php


Comandos disponibles

hShell:/> help
     Command             | Description
    ──────────────────────────────────────────────────────────────
     connect [url]       : Connect to Server WebShell script.
     help                : Show help of the client.
     cat                 : Show the content of remote file.
     tail [file path]    : Read the last lines of specific file.
     cd [directory]      : Navigate to specific remote directory.
     shell [command]     : Execute a simple command in remote server using the           current remote path. Detect automatic available method on the server. See the call-exec command. Alias of exec and system commands.
     force-shell [method] [command] : Force execute a simple command in remote server using an specific php method in current path. Alias of force-exec and force-system commands. Available methods: system, exec, shell_exec, passthru, popen, proc_open, explicit (using double quotes `).
     edit [editor command] [file path] : Edit remote file with specific local command edtor, example: edit vi /etc/shadow
     nano [file path]    : Edit remote file with nano editor on the local system.
     vi [file path]      : Edit remote file with vi editor on the local system.
     vim [file path]     : Edit remote file with vim editor on the local system.
     gedit [file path]   : Edit remote file with gedit editor on the local system.
     notepad [file path] : Edit remote file with notepad editor on the local system.
     sublime [file path] : Edit remote file with sublime text editor on the local system.
     uninstall           : Uninstall the current WebShell on the server.
     install [file path] : Install the WebShell on the specific remote parh.
     mysql [host] [port] [user] [password] : Start an interative MySQL shell connection on the remote server.
     mysqldump [host] [port] [user] [password] [local file] : Make a dump from remote database to local file .sql
     download [remote path] [local path] : Download a backup of file or directory from server to local path.
     upload [local path] [remote path] : Upload a local file or directory to remote directory (maintains the same permits)
     rm [path]           : Delete the specific file or directory path.
     mkdir [path]        : Make a directory on the server.
     phpinfo             : Show the full info of the php, libraries and enviroments of the server.
     id                  : Show the full info of the current user and group on the server.
     ls                  : List files and folders of the current path on the server. Alias of ll and dir commands.
     shellpath           : Show the current local path of the WebShell server.
     pwd                 : Show the current local path on the server.
     uname               : Show the full info of the System Operative of the server.
     exit                : Exit of the client but not remove the WebShell on the server. See uninstall.  Alias of quit command.


Algunos comandos no están disponibles porque están en construcción continua.

Saludos.
#22
Hola, muy buenas tardes, hace dias que ando buscando un tema de música bastante bueno, no recuerdo de que año era pero por el ritmo creo que era de los años 90.

El tema comienza con un hombre britando y el todo el video aparece gente con ropa antigua y bebiendo cervezas, busque por internet y el estilo se llama "german beer music", pero busqué por ese nombre y similares en youtube y hay muchos videos que visualmente son muy parecidos o casi identicos pero la musica no.

Entremedio del tema aparece un dj haciendo scratch y un enano :-/ , ahh y aparece el sonido de un serrucho cortando madera xD

Alguien sabe como se llamaba ese tema?
#23
Hola, tengo algunos equipos con debian y otros en ubuntu, me gustaría crear un archivo de imagen de disco pero cifrado, cosa que cuando necesite acceder a el montando la imagen necesite poner una contraseña para cifrar su contenido, de esta manera puedo tener un storage local seguro sin mayores complicaciones utilizando el mismo sistema de archivos que el sistema operativo, también podré llevar este storage cifrado a acualquier lugar desde una memoria sd, disco, cd, etc. No quiero usar fat o ntfs, quiero hacerlo en ext4 o algun sistema de archivos que me puedan recomendar para hacer esto, la idea es mantener las propiedades de los archivos, permisos, enlaces simbolicos, ejecución, etc.

Alguien me podría dar luces sobre como hacer esto desde cero?, luego de crear el disco puedo redimencionarlo para aumentar su capacidad?, hay alguna alternativa mejor que me permita mantener segura la información de os equipos sin tener que usar el engorroso sistema de cifrados nativo de arranque?

Cuando vea bien como hacer esto voy a hacer un script automatizado que le pida la contraseña al usuario y monte su disco descifrado automaticamente y que quede asi hasta que lo explulse o apague el pc o laptop.

Saludos.
#24
Este es un post a modo de recopilatorio donde podemos encontrar todo tipo de información sobre el malware para su analisis.

¿Donde nace este ransomware?, Leak de 0days de la NSA es utilizado para crear la propagación de este ransomware
https://actualidad.rt.com/actualidad/238324-snowden-responsable-nsa-ataque-cibernetico

Contexto, sistemas afectados, estadisticas de infección y más
https://hackmd.io/s/H1HYNvmxW

Algunos afectados
http://foro.elhacker.net/noticias/ciberataque_contra_la_intranet_de_telefonica-t469301.0.html;msg2122786#msg2122786

Boletín de Microsoft con el parche de los agujeros
https://technet.microsoft.com/en-us/library/security/ms17-010.aspx

Prueba de concepto en python para la vulnerabilidad de ejecucion remota en Windows 10 y Windows Server 2016 para SMB
https://pastebin.com/raw/m4AP8YfS
https://gist.github.com/rain-1/989428fa5504f378b993ee6efbc0b168
https://github.com/RiskSense-Ops/MS17-010

Configurando el "Metasploit NSA" para correr EternalBlue + DoublePulsar
http://comunidad.dragonjar.info/discussion/9562/configurando-el-metasploit-nsa-para-correr-eternalblue-doublepulsar
http://www.semecayounexploit.com/?sec=bugs-y-exploits&nota=32


Hasta ahora aun se sigue propagando por una multitud de equipos y compañias debido a que se propaga utilizando por lo menos 6 0days diferentes para windows.

Si tienes mas info puedes postearlo en este lugar
#25
Hola! ya comenzaron las votaciones! , si quieres venir, el enlace es este: http://foro.elhacker.net/abril_negro/vota_por_el_ganador_del_evento_abril_negro_2017-t469029.0.html

Las bases y proyectos se encuentran dentro del mismo post.
#26
Bienvenidos a las votaciones del mejor proyecto para Abril Negro 1017 de Elhacker.NET !!!

Recuerden, solo pueden votar por un proyecto, los enlaces de cada uno se listan a continuación:


Recuerden, cuando hagan sus votaciones intenten no hacerlo solo porque fue un amigo del amigo del amigo, consideren la originalidad, complejidad, usabilidad, tipo de presentación, etc. Si piensas que un proyecto es el mas kool, merece ser ganador de Abril Negro y quieres tener una voz que te escuche, entonces vota por el.

Las votaciones terminan el día 31 de Mayo del 2017, asi que si tienes muchos amigos o una buena botnet, es tu momento de comenzar a votar yaaa!
#27
Hola a todos! ya falta poco para que finalice el evento de Abril Negro 2017!

Recuerden que el último día que se aceptarán participantes es este domingo 30. Vamos que aun quedan varios días. A partir del 1 de Abril comenzarán las votaciones para elegir al ganador del evento.

;-)

URL del evento: http://foro.elhacker.net/abril_negro/abril_negro_2017-t464563.0.html
#28
Foro Libre / Comienza Abril Negro 2017 !
7 Abril 2017, 17:17 PM
Hola usuarios! comenzó Abril Negro!, un evento donde puedes demostrar ser el mejor, este mes en este subforo no hay censura! (siempre y cuando lo que se postee tenga relación con abril negro).

Los esperamos a todos:

http://foro.elhacker.net/abril_negro/abril_negro_2017-t464563.0.html

#29
w.filebackup

Hola, hace unos 3 o 4 años atrás hice un script en php, lo que hace es disponerse para hacer un respaldo de todos los archivos del servidor sin tener las limitaciones de tamaño.


¿Cómo funciona?

* No comprime para descargar un solo comprimido, esto previene el uso de disco cuando hay poco espacio.
* Descargar archivo por archivo de manera recursiva, esto previene problemas de termino de ejecución por tiempo fuera cuando el archivo es muy grande.
* Utiliza streaming byte por byte, esto previene el uso desmedido de memoria ram cuando necesitas descargar archivos muy grandes.
* No es detectado por la mayoría de los Firewalls o WAF, gracias a que utiliza enlaces permanentes de apache, así previene el envío de parámetros.


¿Cómo lo ejecuto?

Primeramente, subes el script a un servidor web, por ejemplo http://example.com/w.filebackup.php , ahora cuando veas el script desde el navegador se verá igual que la navegación de archivos de apache, con la diferencia de que no interpretará nada, solo descargará. Ahora, basta con realizar una descarga recursiva con wget y tendrás la descarga de todo el servidor:

wget -r -x -nH -np --cut-dirs=1 --no-check-certificate --post-data 'token=1' -e robots=off -U 'User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101 Firefox/5.02011-10-16' http://example.com/w.filebackup.php

Enjoy y Feliz Abril Negro!

Código (php) [Seleccionar]
<?php
/* w.filebackup.php V1.0 for Administrators by WHK
 *
 * Email: whk@elhacker.net
 * Website: http://whk.elhacker.net/
 * 
 * Uso Bash:
 * --------
 *  mkdir page && cd page
 *  wget -r -x -nH -np --cut-dirs=1 --no-check-certificate --post-data 'token=1' -e robots=off -U 'User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:5.0) Gecko/20100101 Firefox/5.02011-10-16' http://example.com/w.filebackup.php
 *  rm -rf w.filebackup.php*
 * 
 * Uso WEB:
 * --------
 * http://web.page/w.filebackup.php
 * 
 * Al enviar la variable "token" via HTTP/POST restringe la visualización
 * de los directorios hasta la ruta actual del script, esto evita que el
 * respaldo salga fuera del directorio planeado y cause una sobrecarga.
 * Solo utilizar sin esta variable en caso de querer hacer una backup
 * extrema con mucho tiempo libre.
 * 
 * GoogleDork:
 * ----------
 * inurl:".php?do=/" + intitle:"index of"
 * 
 * Legal:
 * -----
 * Uso esclusivo sobre servidores propios, nunca utilizar en servidores sin el consentimiento del administrador.
 * El usuario es totalmente responsable de su utilización.
 * En caso de no aceptar este acuerdo no debe ser utilizado.
 * 
 * Compatible:
 * ----------
 * Este Script es compatible con servidores con safe mode en ON, servidores sin
 * zlib, sin gz, servidores que no tienen acceso a la shell del sistema, servdiores
 * con mod evasive y mod security, servdiores con firewalls y Antivirus antiShells.
 * No se asegura su funcionalidad al 100% debido a posibles reglas de protección que
 * impidan su normal funcionamiento.
 */
if($getPath substr($_SERVER['PHP_SELF'], strlen($_SERVER['SCRIPT_NAME']))){

/* Procesa el archivo */
if(is_file($getPath)){

/* Obtiene el tipo MIME */
if(function_exists('mime_content_type')) {
$mime mime_content_type($getPath);
}elseif(function_exists('finfo_file')){
$info finfo_open(FILEINFO_MIME);
$mime finfo_file($info$getPath);
finfo_close($info);
}
if(!$type)
$mime 'application/force-download';
/* Establece las cabeceras */
header('Content-Type: '.$mime);
header('Content-Disposition: attachment; filename='.basename($getPath));
header('Content-Transfer-Encoding: binary');
header('Content-Length: '.filesize($getPath));
/* Hacia el infinito y mas allá! */
if(!@ini_get('safe_mode'))
@set_time_limit(0);
/* readfile($getPath); que sucede cuando el archivo es mas grande que 
 * la capacidad de memoria ram asignada en php.ini como un iso, un gz
 * con una backup de cpanel o un video? */
if($handle fopen($getPath'r')){

/* utiliza bloques de 4kb en modo binario para no corromper el
 * contenido a descargar y evitar el uso desmedido de la memoria ram
 * y evitar el activado de alarmas de IDS y Firewalls */
while(($buffer fgets($handle4096)) !== false)
echo $buffer;
fclose($handle);
}
exit;
/* Procesa el directorio */
}elseif(is_dir($getPath)){
$absolutePath $getPath;
/* Si no es archivo ni directorio que es? */
}else /* 404 */
$err 'File not found or access denied ( '.$getPath.' ).';
}
/* Utiliza variables que no sean tan fáciles de incluir en un
 * mod security o alguna regla del firewall (do es utilizado
 * por vbulletin). */
if(isset($_GET['do']) and (is_dir($_GET['do'])))
$absolutePath $_GET['do'];
if((!isset(
$absolutePath)) or (!$absolutePath))
$absolutePath dirname(__file__).'/';
/* Restringe la URL si se solicita */
if(isset($_POST['token']) and (strlen($absolutePath) < strlen(dirname(__file__).'/')))
$absolutePath dirname(__file__).'/';
$items = array(
'glob' => array(),
'folders' => array(),
'files' => array()
);
// if($items['glob'] = glob($absolutePath.'*')){ glob() no encuentra los archivos ocultos como .htaccess
if($items['glob'] = scandir($absolutePath)){
foreach($items['glob'] as $item){
if(!in_array($item, array('.','..'))){
if(is_dir($absolutePath.$item))
$items['folders'][] = $absolutePath.$item.'/';
else
$items['files'][] = $absolutePath.$item;
}
unset($item);
}
}
unset(
$items['glob']);
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<head>
<title>Index of <?php echo htmlspecialchars($absolutePathENT_QUOTES); ?></title>
</head>
<body>
<h1>Index of <?php echo htmlspecialchars($absolutePathENT_QUOTES); ?></h1>
<?php if(isset($err)){ ?>
<p><b><i><?php echo htmlspecialchars($errENT_QUOTES); ?></i></b></p>
<?php ?>

<ul>
<?php if(!isset($_POST['token'])){ ?>
<li>
<a href="<?php echo $_SERVER['SCRIPT_NAME'].dirname(substr($absolutePath0, -1)); ?>/"> Parent Directory</a>
</li>
<?php ?>

<?php if($items['files']){ ?>
<?php foreach($items['files'] as $file){ ?>
<li>
<a href="<?php echo $_SERVER['SCRIPT_NAME'].$file?>"> <?php echo htmlspecialchars(basename($file), ENT_QUOTES); ?></a>
</li>
<?php ?>
<?php ?>

<?php if($items['folders']){ ?>
<?php foreach($items['folders'] as $folder){ ?>
<li>
<a href="<?php echo $_SERVER['SCRIPT_NAME'].'?do='.urlencode($folder); ?>"><?php echo htmlspecialchars(basename($folder), ENT_QUOTES); ?>/</a>
</li>
<?php ?>
<?php ?>

</ul>

<address>
<?php echo htmlspecialchars($_SERVER['SERVER_SOFTWARE'], ENT_QUOTES); ?> Server
at <?php echo htmlspecialchars($_SERVER['HTTP_HOST'], ENT_QUOTES); ?>
Port <?php echo (int)$_SERVER['SERVER_PORT']; ?>
</address>
</body>
</html>

<?php
/* Evita la ejecución arbitraria por un LFI o <preppendfile> */
exit;


Mirror: https://github.com/WHK102/w.filebackup/blob/master/w.filebackup.php
#30
Abril negro / Comienza Abril Negro 2017 !
1 Abril 2017, 18:09 PM
Hey!, hoy comienza el evento de Abril Negro del año 2017! recuerden, para poder participar solo debes crear un post y publicarlo en el hilo oficial del evento:

http://foro.elhacker.net/abril_negro/abril_negro_2017-t464563.0.html

No solo puedes postear códigos sino también documentación propia.

Saludos!

#31
Como algunos ya han podido observar, hoy se creó un nuevo subforo exclusivo para el evento de Abril Negro el cual junto a todos los usuarios del foro y al staff retomaremos nuevamente el posteo de tutoriales, appers y códigos fuentes junto a sus respectivas aplicaciones: http://foro.elhacker.net/abril_negro-b95.0/

Los esperamos a todos!
#32
Abril negro / Abril Negro 2017
4 Febrero 2017, 22:01 PM
Bienvenidos todos a Abril Negro 2017!




¿Que es Abril Negro?

El concurso de Abril negro es un proyecto de investigación creado por los propios usuarios del foro, que consiste en investigar y desarrollar acerca del tema de Malware a través de pappers, códigos fuente y/o sistemas de protección.

Varios aspectos de este tema están prohibidos en el foro, sin embargo se permite su discusión durante un periodo de un mes, en el mes de Abril. Dicho acontecimiento es conocido como "Abril Negro".

El objetivo, es obtener una idea de lo que ha cambiado en el ambiente del desarrollo de malware, ver lo que viene para el resto del año, y tratar de descubrir las principales amenazas latentes.

Este post se abrirá para que se puedan crear post el 1 de Abril de este año, atentos todos a esa fecha!


Bases del concurso

Para participar en el concurso hará falta presentar un trabajo ya sea un papper, una herramienta o un código, reaccionado con cualquier aspecto del malware, como puede ser una nueva técnica de infección, un método para eludir la heurística de un antivirus o una herramienta completa, sistemas de protección, por citar algunos ejemplos.


Trabajos/Proyectos que se recibirán


  • Desarrollos de Software (aplicación, ya sea de terminal, escritorio, web, móvil, etc).
  • Documentación (Tutoriales, Pappers, Informes, etc)

Todo trabajo debe de ser open source, para poder apreciar la verdadera calidad del mismo. El post de presentación del trabajo debe tener una estructura similar a la siguiente:


  • Nombre del autor
  • Nombre de la herramienta
  • Lenguaje(s) en los que está diseñado
  • Descripción del trabajo
  • Captura de pantalla (en el caso de tener interfaz)
  • Link de descarga que contendrá el código fuente y el archivo ejecutable


Método de calificación

Los principales jueces de este evento seréis vosotros mismos con vuestros votos, también será evaluado por el mismo Staff del foro. Para evitar que solo se valore el aspecto gráfico del trabajo (ya que es lo primero que se ve)  se incluirán dos criterios más de calificación:


  • Usabilidad
  • Utilidad
  • El trabajo más original
  • El mejor código

Los miembros de el staff de elhacker.net serán los encargados de valorar estos aspectos de los trabajos, quedando lógicamente excluidos de la valoración de sus propios trabajos.

La puntuación extra por obtener uno de estos dos títulos es el equivalente a obtener un +10% de los votos totales emitidos por los usuarios redondeados a la baja.

Dicho de otra forma, si en total los usuarios del foro han emitido 65 votos en total, una aplicación con uno de estos dos títulos obtendría 6 puntos extra.


Plazos

Los trabajos se recibirán desde el 1 hasta el 30 de Abril del 2017.


¿Cómo puedo participar y publicar mis proyectos?

Solamente se recibirán proyectos desde el 1 hasta el último día del mes del evento. Los pasos para presentar los proyectos son los siguientes:


  • Crear un nuevo post con el proyecto.
  • Publicar el enlace de su proyecto (su post) en el post de publicación del evento del año correspondiente.


Premios

Los premios serán dictados en cada post de publicación de cada evento, estos pueden variar cada año. De todas maneras los ganadores siempre aparecerán en el tablón principal de www.elhacker.net y en el listado de ganadores del post del evento.


Participantes



Votaciones

http://foro.elhacker.net/abril_negro/vota_por_el_ganador_del_evento_abril_negro_2017-t469029.0.html


Ganador

kub0x : S.P.O.K (Simple Production Of Keys)
#33
Abril negro / ¿Qué es Abril Negro?
4 Febrero 2017, 21:43 PM


Bienvenidos todos a Abril Negro!


¿Que es?

Abril negro es un proyecto de investigación creado por los propios usuarios del foro, que consiste en investigar y desarrollar acerca del tema de Malware.

Varios aspectos de este tema están prohibidos en el foro, sin embargo se permite su discusión durante un periodo de un mes, en el mes de Abril. Dicho acontecimiento es conocido como "Abril Negro".

El objetivo, es obtener una idea de lo que ha cambiado en el ambiente del desarrollo de malware, ver lo que viene para el resto del año, y tratar de descubrir las principales amenazas latentes.


¿Cómo lo hacemos?

Con el pasar de los años el evento de Abril Negro se transformó en un concurso, haciéndolo mas atractivo para los usuarios finales, entregando premios y reconocimientos.

El evento se realiza por lo menos una ves al año a partir del 1 de Abril hasta el último día del mismo mes.


Preguntas, bases y normas del evento: http://foro.elhacker.net/abril_negro/bases_y_normas_del_eventoconcurso_abril_negro-t464561.0.html
#34
Abril negro / Abril Negro 2010
4 Febrero 2017, 21:02 PM
Introducción

En Abril Negro 2010 no participaron muchos usuarios por lo cual nunca se finalizó el evento. En esta ocasión, también se realizó a modo de concurso.


Post de lanzamiento

http://foro.elhacker.net/analisis_y_diseno_de_malware/abril_negro_2010-t289363.20.html


Participantes





Ganadores

Por falta de participantes no hubieron ganadores.


Extras

#35
Abril negro / Abril Negro 2009
4 Febrero 2017, 20:44 PM
Introducción

En esta edición los usuarios del foro se salieron. Gracias a la instauración de las nuevas normas y del pertinente cambio del nombre del foro se acusó una interesante subida de nivel.

Y pese a que no se publicó ningún manual se publicaron un total de 24 herramientas/códigos.

A diferencia de los eventos pasados de Abril Negro, esta ves se realizó a modo de concurso.


Post de lanzamiento

http://foro.elhacker.net/analisis_y_diseno_de_malware/abril_negro_2009_concurso_de_desarrollo_de_malware-t252105.0.html


Ganadores

Post de la encuesta: http://foro.elhacker.net/analisis_y_diseno_de_malware/abril_negro_2009_encuesta_del_concurso_de_desarrollo_de_malware-t255183.0.html


  • Premio a mejor código: Hacker_Zero y hkm (Empate)
  • Premio a la aplicación más original: Hacker_Zero y Jubjub (Empate)
  • Ganador de la votación: Hacker_Zero (tras conseguir 14 puntos extra por los dos premios anteriores)


Participantes
























#36
Abril negro / Abril Negro 2008
4 Febrero 2017, 19:30 PM
Introducción

No con poca polémica, quizás por los resultados del año anterior, consiguió una vez más ver la luz este evento. Esta vez, el objetivo fue retomar el espíritu de los inicios del evento publicando más manuales, más herramientas y más códigos y se consiguió.


Post de lanzamiento

http://foro.elhacker.net/analisis_y_diseno_de_malware/black_april_2008-t205970.0.html


Participantes




#37
Abril negro / Abril Negro 2007
4 Febrero 2017, 19:16 PM
Introducción

Abril Negro del 2007 tomo desgraciadamente un tono más negro de lo deseado y no se hizo mucha cosa, un post en el que se pusieron scripts maliciosos y muchas preguntas de como usar troyanos en el foro, por suerte eso cambiaría en años posteriores.


Post de lanzamiento

http://foro.elhacker.net/analisis_y_diseno_de_malware/abril_negro_2007-t160386.0.html


Participantes


#38
Abril negro / Abril Negro 2006
4 Febrero 2017, 18:55 PM
Introducción

Abril Negro del 2006 fue la primera edición y se empezaría a lanzar a partir de este año, obviamente todos los meses de abril, para permitir a todos los usuarios hablar de los temas "tabú" del foro.

De igual manera se motiva a los usuarios a escribir toda clase de manuales, liberar códigos o diseñar herramientas de seguridad caseras, una muestra de lo que se hizo este año.


Post de lanzamiento

http://foro.elhacker.net/analisis_y_diseno_de_malware/abril_negro-t112698.0.html


Participantes






Extras

Pappers - http://foro.elhacker.net/analisis_y_diseno_de_malware/papers_abril_negro-t113673.0.html
#39
Hola, de que depende la capacidad que tenga un equipo para memoria sd externa?, por ejemplo tengo un equipo que acepta hasta 32gb de memoria externa, claramente al insertarle una de 64 no la reconoce y me dice si la quiero formatear, es un equipo con Android.

De que depende que solo soporte hasta 32? habrá alguna manera de hacer que acepte los 64gb? será un cambio en el firmware?, he buscado información por internet sin muchos resultados.
#40
Hola, actualmente tengo un centos 7 como host y una maquina virtual en kvm (virsh) también con centos 7, en la maquina virtual instalé un openvpn en modo tun por udp y quiero que sea accesible desde internet, por lo cual se me ocurrió que debo publicar el puerto udp:1194 usando el host principal.

He intentado con iptables y he hecho esto:

Citariptables -t nat -A PREROUTING -p udp --dport 1194 -j DNAT --to "192.168.122.2:1194"
iptables -I FORWARD -d "192.168.122.2/32" -p udp -m state --state NEW -m udp --dport 1194 -j ACCEPT

Hasta acá todo bien, hice correr el openvpn, el puerto se abre sin problemas, he testeado desde el host principal con:
Citar$ nc -v -u 192.168.122.2 1194

Y abre correctamente, ahora he probado el ruteo:
Citar$ nc -v -u 127.0.0.1 1194

y también conecta correctamente, el problema viene ahora, que quiero conectarme desde el exterior y no puedo, desde mi pc ejecuto:
Citar$ nc -v -u sitio.com 1194

Y no me conecta, por lo cual supuse que iptables me estaba restringiendo y he habilitado la apertura del puerto:
Citar$ iptables -A INPUT -i eth0 -p udp --destination-port 1194 -j ACCEPT

Pero aun sigo sin poder acceder y no se que pueda estar sucediendo :( ¿Qué hice mal?
#41
Hola, tengo un controlador y un template, estoy usando Spring boot y Thymeleaf.

Por lo que yo entiendo, para poder manipular formularios debo crear un modelo y este enviarselo como objeto al formulario, hasta aca todo bien, el problema está en la petición post ya que por un lado recibo el modelo como argumento de la función pero ya no tengo el modelo para poder enviar datos al template.

Controlador:
Código (java) [Seleccionar]
@Controller
public class Main {

    @GetMapping("/")
    public String httpGet(Model model){

        FormModel form_model = new FormModel();
        model.addAttribute("form_model", form_model);
        model.addAttribute("demo", "abc");

        return "main_template";
    }

    @PostMapping("/")
    public String httpPost(@ModelAttribute ModelForm form_model){

        FormModel form_model = new FormModel();

        // <-- Cómo envío model al template si no tengo model?
        model.addAttribute("form_model", form_model);
        model.addAttribute("demo", "abc");

        return "main_template";
    }
}


Mi template:
Código (html4strict) [Seleccionar]
<!DOCTYPE html>
<html>
    <head>
        <title>Demo</title>
    </head>
    <body>
        <form class="form-signin" action="#" method="post" th:action="@{/}" th:object="${form_model}">
            <input th:field="*{email}" required="required" type="email" />
            <input th:field="*{password}" type="password" />
            <p th:text="${demo}"></p>
            <button type="submit">Submit</button>
        </form>
    </body>
</html>


Lo que yo entiendo acá: https://spring.io/guides/gs/validating-form-input/ es que primero tengo una funcion para recibir la petición get, como argumento viene un objeto llamado model el cual se encarga de enviar variables al template, como por ejemplo el objeto encargado del formulario, despues en la petición post pasa un solo argumento de modelo el cual es el objeto del formulario mas un validador, hasta acá todo bien, digamos que hubo un error en el formulario y necesito volver a cargar el formulario, necesito pasar otraves el objeto, pero no tengo como mandarlo porque no tengo el objeto llamado model y tampoco puedo iniciarlo desde la función, entonces que hago?

¿cómo puedo recibir el modelo del formulario en una petición post y al mismo tiempo comunicarme con el contenido en html enviando variables?
#42
Hola, tengo una duda, me he dado muchas vueltas y no llego a puerto aun.

Tengo un plano de 100x100, tengo un objeto en la posición 30x30, ¿cómo lo puedo mover de posición x cantidad de espacios usando un grado de inclinación?.

Por ejemplo, quiero moverlo en dirección hacia arriba y a la derecha en 45 grados.

El problema central es el siguiente: Tengo un circulo y un objeto que se mueve al rededor de el en su superficie, ambos objetos se mueven de manera independiente pero necesito que el objeto se mueva de manera que simule estar unido al borde del circulo, despues de esto tengo una función que debiera aumentar la separación entre el circulo y el objeto sin perder la sincronización de rotación ya que este circulo va rotando en una dirección al azar (ccw o cw).

Actualmente hice sin problemas que el objeto esté centrado con respecto al circulo y que este rote en la misma velocidad del circulo usando su base y no su centro, ahora solo necesito establecer su distancia, pero esta distancia esta relacionada con la cantidad de grados de rotación del objeto y ahi es donde quedé.

Hice este post en programación general porque no necesito que me hagan el código, quiero entenderlo para aplicarlo en muchas situaciones. De todas maneras este es el código que uso para hacer rotar el objeto sobre el circulo:

Código (java) [Seleccionar]
// Cambia el tamaño
       this.matrix.setScale(1, 1);

       // Rota la imagen a partir de su centro
       this.matrix.postRotate(this.angle, this.image.getWidth() / 2, this.image.getHeight());

       // Posiciona la nave al centro del circulo
       this.matrix.postTranslate(
               this.start_circle.getLeft() + (this.start_circle.getWidth() / 2) - (this.image.getWidth() / 2),
               this.start_circle.getTop() + (this.start_circle.getHeight() / 2) - this.image.getHeight()
       );


Es código Java para Android + canvas.

Una solución que encontré fue tomar el punto de rotación vertical muy abajo, para que simulara la rotación sobre un circulo, pero esto significaba que a la posición final tenía que restarle pixeles y cuando tenia que mover el objeto se me hacia todo un desmadre incontrolable y para solucionarlo tenía que crear condicionales para saber si el opbjeto estaba rotando o habia que aumentar el espacio y tenia un código muy mal optimizado, asi que lo eliminé y ando en busca de algo mas óptimo.

El tema debiera quedar algo así:


  • Si el grado es 0 entonces se suma la distancia el 100% sobre vertical
  • Si el grado es 45 entonces se suma la distancia el 50% sobre vertical y 50% horizontal
  • Si el grado es 90 entonces se suma la distancia el 100% sobre horizontal
  • si el grado es 135 entonces se suma la distancia el 50% horizontal y se resta el 50% vertical
  • si el grado es 180 entonces se resta la distancia el 100% vertical
  • si el grado es 225 entonces se resta la distancia el 50% sobre vertical y 50% horizontal
  • si el grado es 270 entonces se resta la distancia 100% sobre horizontal
  • Si el grado es 315 entonces se resta la distancia 50% sobre horizontal y se suma 50% sobre vertical
  • Si el grado es 360 entonces se suma la distancia el 100% sobre vertical

Saludos.
#43
Foro Libre / Rick Astley’s en bash xD
16 Octubre 2016, 03:03 AM
He encontrado un proyecto en github que me ha hecho reir bastante, me ha cambiado el día xD

https://github.com/keroserene/rickrollrc

Los que usan Linux pueden ejecutar el script así:

curl -s -L http://bit.ly/10hA8iC | bash

No es nada malicioso. Enjoy.
#44
Java / ¿Es normal que un servicio inicie tan lento?
19 Septiembre 2016, 01:29 AM
Hola, tengo algunas apps instaladas en un servidor con centos7 como zimbra, confluence, bitbucket, etc, y cada app tardaa una ifinidad en iniciar, zimbra se que usa muchos servicios asi que es normal, pero hay otros en que despues de iniciar el servicio debo esperar por lo menos 15 minutos para que el sitio web pueda ser accesible.

Esto es normal en un proyecto java transaccional hecho con con hibernate? ya que quiero probar hacer algunos desarrollos, pero si realmente es tan lento en iniciar y es tan problemático como servicios, mejor prefiero usar otro lenguaje mas flexible y rápido como python.
#45
Foro Libre / Duda matemática
16 Septiembre 2016, 05:42 AM
Hola, tengo una duda...

Digamos que tengo un objeto que tiene un area de 33cm, esto quiere decir que tiene 3cm de ancho y 11cm de alto, de esta manera existen 33 cubos de 1cm cada uno dentro (3x11=33).

Ahora, tomo una cuerda y encierro este rectángulo, tengo 4 caras, dos caras son de 3cm (superior e inferior) y tengo dos caras de 11cm (laterales), si los sumo me da 3*2=6 y 11*2=22 asi que 6+22=28cm

En otras palabras ahora tengo una cuerda estirada de 28cm, si esta cuerda la uno en sus dos extremos obtengo un cuadrado de lados iguales, se supone que independientemente de la forma que le de a esta cuerda la cantidad del area no debiera variar verdad? si hago un rectangulo o un cuadrado o un triangulo o un circulo , si uso para todos la misma cuerda debiera tener la misma cantidad de cemento para todos no?

Ahora, si tengo esta cuerda de 28cm y la uno para formar un cuadrado perfecto obtengo 28/4=7, esto quiere decir que tengo un cuadrado de 7x7 (que debiera ser igual a uno de 11x3), pero al sacar el area 7x7=49 tengo 49cm de area vs 33cm con lo que comencé... ¿que sucedió?, ¿donde se fueron los otros 16cm cuadrados de cemento?

Por otro lado realizando lo inverso puedo concluir de buena manera que la raiz cuadrada de 33 es 5,744562647... asi que la cuerda debiera ser de ese valor multiplicado por 4, o sea ~22,97...cm y no 28, pero si al principio tengo un rectangulo de 3x11 eso es 28 y no 22, ¿que pasó?