Mostrar Mensajes

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

Temas - ANTRAX

Páginas: [1] 2 3 ... 67
1
Phreak / Rastrear telefonos moviles
« en: Julio 04, 2020, 06:43:54 pm »

Hola lectores del blog!! Hago este post a raiz de algo que pasó en la SEDE de Mendoza de Underc0de. Resulta que uno de nuestros integrantes se perdió y su familia y amigos estaban muy preocupados por el. Por suerte apareció y esta bien. (Casualmente le dicen Wally y por eso la imagen principal de este post).

Seguramente más de una vez alguien se pierde, o no saben su paradero y demás, es por ello que decidí hacer este post para ubicarlos rastreando su teléfono móvil.

También sirve para cuando nos roban el móvil, con esta aplicación podremos bloquearlo o borrarle nuestros datos a la distancia.

El proceso es muy sencillo. La gran mayoría de teléfonos tienen Android, y estos funcionan con una cuenta de Google. Mientras la cuenta de Google este vinculada al teléfono, esta constantemente manda datos de nuestra ubicación a Google devices Manager, que es un servicio de Google para rastrear móviles.

Para aquellos que no lo conozcan, Google lanzó este servicio, con el fin de rastrear dispositivos móviles robados con android, que tengan asociado una cuenta de Google (Gmail) y que por supuesto tengan el Administrador de dispositivos Android activado (que por defecto viene activado)

Para saber como funciona este servicio, lo activaremos en nuestro dispositivo de la siguiente forma:

Configuraciones >> Ubicación

Una vez dentro, veremos algo como lo siguiente:


Una vez activado, entramos a la página del servicio de Google: You are not allowed to view links. Register or Login

Nos pedirá loguearnos con nuestra cuenta de Google, y podremos ver nuestro dispositivo en Google Maps, a demás veremos la siguiente información


Como se puede observar, la aplicación a demás de proveernos información sobre la ubicación, nos deja:

Hacer sonar el movil: Sonará durante 5 minutos con el maximo volumen aunque el telefono esté en silencio o en vibrador
Bloquear el telefono: Le coloca una clave nueva
Borrar: Borra permanentemente todos los datos del teléfono

En caso de que robaran nuestro móvil, con este servicio, podríamos mantener a salvo nuestros datos. Pero también, sirve como arma de doble filo y les enseñaré por que… Si alguien supiera nuestra contraseña o lograra entrar a nuestra cuenta de Gmail, podría apoderarse de todos los dispositivos que tengamos vinculados. Por lo tanto podría borrar nuestros datos, bloquear nuestro dispositivo o también saber nuestra ubicación..

Para saber la ubicación de un dispositivo móvil, Google utiliza estas tres cosas:

1.- Wifi
2.- GPS
3.- Red de datos


Si el dispositivo se encuentra apagado, el Administrador de dispositivo no funcionaria, por lo que no podrían usar ninguna de las funcionalidades que nombramos anteriormente. Quizás si rastrearlo ya que guarda la ultima ubicación en la que el teléfono estuvo encendido, pero no podrán ni bloquearlo, ni borrar los datos y mucho menos hacerlo sonar remotamente.

Finalmente, he descubierto que entrando a los Settings de Google Play: You are not allowed to view links. Register or Login se puede ocultar la visibilidad del dispositivo y de esta forma no apareceríamos en el administrador de dispositivos


Pero está claro que si alguien tuvo la contraseña para acceder a nuestra cuenta de Gmail, también podría volver a habilitar la visibilidad..

A demás de esta versión web, el administrador de dispositivos cuenta con una versión móvil, la cual pueden descargar de Google Play:


You are not allowed to view links. Register or Login

Saludos,
ANTRAX

2
Hacking / Fallas de seguridad en el codigo fuente
« en: Julio 04, 2020, 05:28:07 pm »

Hola lectores! El día de hoy quiero mostrarles algo curioso que encontré al hacer una auditoría a una plataforma web, se trata de una falla de seguridad en el código fuente, y de paso enseñarles una nueva herramienta que encontré que me pareció muy útil a la hora de recolectar información de un dominio.

Una de las primeras cosas que hice, fue utilizar Acunetix para listar todos los directorios de la web. Acunetix cuenta con un Crawler muy potente que recolecta toda la estructura de la web y así poder ver archivos o directorios ocultos. Como no vi nada raro, pasé a enumerar el dominio, viendo si ese dominio tenía o no subdominios. Para esto se pueden usar varias herramientas, pero encontré una que no había usado nunca y se las quiero presentar.

Se trata de una web que presta servicio de enumeración de dominios, dns, entre otras cosas: You are not allowed to view links. Register or Login

Al escanear la web, me topé con un subdominio que llevaba a un backoffice


Al ingresar a este subdominio me topé con un formulario de login simple, en donde solo pedía usuario y contraseña


No había mucho que hacer acá, hasta que se me dió por revisar el código fuente y fue cuando encontré algo muy curioso.


La web tenía código comentado, como por ejemplo, un link para resetear la password y otro para crear nuevas cuentas. Lo que hice, fue borrar el código comentado con el inspector de elementos del browser para hacer aparecer esos elementos, aunque también servía copiar y pegar la url en una nueva pestaña.


El resultado fue el siguiente:


Como se puede ver en la imagen, apareció un link para reestablecer la contraseña, para crear nuevas cuentas y para recordar la sesion.

Al querer crear una nueva cuenta, me topé con lo siguiente:


Errores del servidor por todos lados y tiró muchos datos de directorios, configuraciones, usuarios, etc. Y por otro lado teniamos el link de reestablecer contraseña:


Y desde acá, podemos resetearle las contraseña a todos los usuarios.

Con esto podemos concluir 2 cosas:
1- Jamás dejen de revisar el código fuente de las aplicaciones
2- Nunca contraten programadores que dejan código comentado en producción!!

Espero que les haya gustado! Nos leemos en otro post!
ANTRAX

3
Batch - Bash / Antivirus en Bash para servidores
« en: Junio 11, 2020, 10:40:44 am »

Código: Bash
  1. #!/bin/bash
  2.  
  3. case $1 in
  4.         -p)     echo "####################################################################################";
  5.                 echo "ATENCION: NO CORRER ESTO EN LA RAIZ DEL CLIENTE, SOLO DENTRO DE HTDOCS O RUTA PUBLICA";
  6.                 echo "####################################################################################";
  7.                 echo "Aplicando permisos 755 a directorios...";
  8.                         find . -type d -exec chmod 755 {} \;
  9.                 echo "Aplicando permisos 644 a ficheros...";
  10.                         find . -type f -exec chmod 644 {} \;
  11.         exit;
  12.         ;;
  13. esac
  14.  
  15. echo -e "************************";
  16. echo -e "Buscando symlinks....";
  17. echo -e "************************";
  18.  
  19.  
  20. #find . -type l -exec ls -lad {} \;
  21. echo -e "\nBuscando nuevos ofuscamientos ....";
  22. egrep . -iRle "\\\\057|\\\\157|\\\\151|\\\\141|\\\\145|\\\\144|\\\\164|\\\\160|\\\\156|\\\\150|\\\\163|\\\\060|\\\\055"
  23. #grep . -iRle "\\057" -e "\\157" -e "\\151" -e "\\141" -e "\\145" -e "\\144" -e "\\164" -e "\\160" -e "\\156" -e "\\150" -e "\\163" -e "\\060" -e "\\055"
  24.  
  25. echo -e "\nArchivos probabilidad > 80% (los js puede que no sean virus, revisar a mano):";
  26.  
  27. grep . -iRle "function.*strlen.*base64_decode" -e "gzinflate(base64_decode" -e "s21=strtolower" -e "s20=strtoupper" -e "gzuncompress(base64_decode" -e "strtoupper.*eval" -e "@eval($_POST" -e "_REQUEST.*chr" -e "\?php.*.chr(" -e "\$GLOBALS.*eval.*echo" -e "file_get_contents.*fwrite.*fclose" -e "gzinflate.*str_rot13"| egrep -v "phpmailer|.js";
  28.  
  29. #echo -e "\nArchivos probabilidad > 80% tipo nombre##.php común en virus";
  30. #find . -iname [a-z][a-z]*[0-9][0-9].php;
  31. #echo -e "";
  32.  
  33. echo -e "\n****************************************************";
  34. echo -e "Deseas correr busquedas con Probabilidad < 50% ?";
  35. echo -e "(yes = y / no = n): ";
  36. echo -e "****************************************************";
  37. read permisos
  38. if [ "$permisos" = "y" ]; then
  39.         echo "Archivos probabilidad < 50% OJO: Puede incluir falsos positivos:";
  40.         grep . -R -l -e "return base64" -e "base64_decode" -e "md5(\$_REQUEST"  | grep -v "phpmailer";
  41.         #grep . -iR -l -e "file_get_contents" -e "shell_exec";
  42.         echo -e "";
  43. else
  44.         echo "Siguiente \n"
  45. fi
  46.  
  47.  
  48. echo -e "\n****************************************************";
  49. echo -e "Deseas correr busquedas de ofuscamiento hexadecimal ";
  50. echo -e "Probabilidad < 50%";
  51. echo -e "(yes = y / no = n): ";
  52. echo -e "****************************************************";
  53. read permisos
  54. if [ "$permisos" = "y" ]; then
  55.         echo -e "Buscando PHP ofuscado en hexadecimal...";
  56.         grep '\\x[0-9]\{1\}[0-9a-f]\{1\}\\x[0-9]\{1\}[0-9a-f]\{1\}*\\x[0-9]\{1\}[0-9a-f]\{1\}*\\x[0-9]\{1\}[0-9a-f]\{1\}*' . -ilr | grep -v jquery;
  57.         echo -e "";
  58. else
  59.         echo "Siguiente\n";
  60. fi
  61.  
  62.  
  63. echo -e "\n***********************************************";
  64. echo -e "Deseas correr otras busquedas no tan efectivas? ";
  65. echo -e "(yes = y / no = n): ";
  66. echo -e "***********************************************";
  67. read permisos
  68. if [ "$permisos" = "y" ]; then
  69.         echo "Buscando Xploit Pattern\n";
  70.         sploitpattern='r0nin|m0rtix|upl0ad|r57shell|cFaTaLisTiCz_Fx|Tukulesto|99shell|shellbot|phpshell|void\.ru|phpremoteview|directmail|bash_history|\.ru/|brute *force|multiviews|cwings|vandal|bitchx|eggdrop|guardservices|psybnc|dalnet|undernet|vulnscan|spymeta|raslan58|Webshell'
  71.         find ./ \( -regex '.*\.php$' -o -regex '.*\.cgi$' -o -regex '.*\.inc$' \) -print0 | xargs -0 egrep -il "$sploitpattern" | sort
  72. else
  73.         echo "Siguiente \n.";
  74. fi
  75. #echo -e "";
  76. #echo -e "Buscando posible SPAM...";
  77. #echo -e "************************"
  78.  
  79. #grep . -R -l -e "$GLOBALS\[";
  80.  
  81.  
  82. echo -e "\n************************";
  83. echo -e "Deseas aplicar permisos ";
  84. echo -e "seguros a archivos y directorios? ";
  85. echo -e "(yes = y / no = n): ";
  86. echo -e "**************************";
  87. read permisos
  88. if [ "$permisos" = "y" ]; then
  89.         #echo -e "Aplicando permisos 755 a directorios...";
  90.                 echo "Ejecuta manualmente no en la ra▒z sino ruta publica: find . -type d -exec chmod 755 {} \;";
  91.         #echo -e "Aplicando permisos 644 a ficheros...";
  92.                 echo "Ejecuta manualmente no en la raíz sino ruta publica:  find . -type f -exec chmod 644 {} \;";
  93. else
  94.         echo "Terminamos.";
  95. fi

Dedicado a mi amigo @Gn0m3

Saludos,
ANTRAX

4
Hacking ShowOff / [SQLi] Crom.co.uk
« en: Abril 22, 2020, 09:57:05 am »

URL: You are not allowed to view links. Register or Login
Vulnerabilidad: SQLi
Vector: You are not allowed to view links. Register or Login
Reportado: NO

5
Hola a todos,

Estoy intentando montar una "red" de cursos por torrent para ustedes.
He estado googleando y buscando información al respecto, pero no he visto nada útil aún. Quería saber si alguno de ustedes había montado uno de esto antes y como (en un raspberry pi)

La idea es poner el servidor de torrents conectado a un hdd de 2tb lleno de cursos para que puedan descargar.

Espero que puedan ayudarme!
Saludos,
ANTRAX

6
Impresiones 3D / Mascara Protectora - Covid19 - v1 MZA
« en: Marzo 21, 2020, 04:51:28 pm »

Por la actual contingencia mundial debido al coronavirus COVID-19, el material sanitario y de protección se ha convertido en una problemática tanto para el personal de salud como para las personas ya sea por la escasez o por el costo tan elevado es por eso que aquí les compartimos un modelo de Visera Protectora que se está distribuyendo en Mendoza, Argentina por el equipo de Underc0de Mendoza

Protegiendo la cara de salpicaduras, además las láminas de acetato pueden ser recambiadas ya sea otra lámina o incluso por placas de radiografías desteñidas con lavandina, ya que el diseño de la visera lo permite, es útil también para los servidores públicos que se ven expuestos al contacto cara a cara con aglomeración de personas.

Para quienes tengan impresoras 3D y deseen sumarse como voluntarios para elaboración y donación de material sanitario como: mascaras o viseras de protección.

Aspectos Generales:
Este modelo se presentó ante el Comité de Infectología en Mendoza, conformado entre otros por el Doctor Pablo Melonari - Jefe de infectología del Hospital Notti y la Doctora Carolina Membrives, Jefa del Servicio de Anestesiología y parte del comité de Crísis. Ha sido validado, por lo que estamos en condiciones de empezar a producir.

Materiales de Producción:
En cuanto al filamento para impresión 3D, por ahora hemos validado su funcionamiento con PET-G y con PLA.
Para la máscara se esta usando acetato de 24x24cm. En caso de no contar con acetato, se estan utilizando las tapas transparetes de las carpetas para CV (Curriculum Vitae u Hoja de vida) o placas de radiografía desteñidas con lavandina.

Instrucciones de impresión

DESCARGA Archivo de Impresión (archivo .stl):
You are not allowed to view links. Register or Login


Recomendaciones de Impresión

> PLA o PETG para que sea lo suficientemente flexible para el ensamble y uso final.
> Con pico de 0.4mm usar 3 perímetros, con pico 0.8mm usar 2 perímetros.
> No usar soportes.
> No requiere adherencia tipo “balsa” o similar, pero hay que cuidar que no se despeguen las puntas. Se recomienda fijador abundante, al menos en la zona de las puntas y temperatura de cama alta.
> No es necesario reducir la velocidad de los perímetros exteriores ya que la terminación a velocidad máxima es adecuada para el uso que se le dará. (Nota: por defecto los slicers reducen a la mitad la velocidad de la pared exterior, se puede modificar).
> Relleno 0% (o muy bajo), ya que la mayor parte del cuerpo, y lo que termina dando resistencia, son perímetros. En caso de que sea 0% se puede agregar un perímetro más para las zonas donde debería haber.
> En caso de que se despeguen los extremos, no es necesario descartar la impresión. Se puede lijar/gastar/cortar la rugosidad que se genera (que está en contacto con la cara del usuario) y el producto sigue siendo funcional.

Ejemplo de impresión con PETG en una impresora Ender CR10

> Nozzle de 0.8mm
> Temperatura de nozzle: 240ºC
> Temperatura de cama: 85ºC
> 2 perímetros (queda 100% rellena con eso)
> 0.32mm altura de capa (máxima recomendada)
> 50mm/s (se podría experimentar con más)
> Ajustes en retracción para reducir “hilos”

Ejemplo de impresión con PLA en una impresora Ender 3

> Nozzle de 0.4mm
> Temperatura de nozzle: 210ºC
> Temperatura de cama: 70ºC
> 3 perímetros
> 0.2mm altura de capa
> 50mm/s (relleno, perímetros interiores y exteriores, piso y techo)

Ejemplo de posicionamiento en cama de 300 x 300

Ejemplo de posicionamiento cama de 200 x 200
Coordenadas (-25, -25) y (25, 25), girando 180º el de abajo.

Como agujerear el acetato o máscara transparente
Casi todos estamos agujereando el acetato con un cautin (soldador de estaño). Pero recientemente un colaborador mencionó que le sirvió haciendolo con una perforadora de papel. Dejo los detalles a continuación.


Consideraciones importantes para su fabricación
● Actuar como si estuvieras infectado por el virus COVID-19. Use barbijo, máscara-escudo y un par de guantes nuevos cuando recolecte cada lote de piezas impresas. Almacene las piezas inmediatamente en una bolsa con cierre hermético.
● Hable con quien sea que esté haciendo las máscaras-escudo, hágales saber sobre su entorno de fabricación
● Todavía se debate sobre cuánto tiempo sobrevive el virus en el plástico, pero la mayoría de las fuentes mencionan 2-3 días. Eso significa que al dejar reposar los protectores faciales durante 2-3 días antes de distribuirlos, reducirá en gran medida el riesgo de transmisión
● No almacene todo el stock en un solo lugar, minimice el riesgo de contaminación cruzada

Esterilización
Después de hablar con varios profesionales de la salud, nos comentaron que ellos lo desinfectan con alcohol al 70% antes de utilizalos. Pero de igual forma se recomienda tenerlos 90 horas aislado en una bolsa o en algo sellado.

Ya está en uso en hospitales de Mendoza - Argentina

Fuente Oficial: You are not allowed to view links. Register or Login

7
Impresiones 3D / Respirador artificial funcional
« en: Marzo 20, 2020, 10:47:05 pm »

8
Impresiones 3D / Valvula de Venturi para los respiradores
« en: Marzo 20, 2020, 08:56:16 pm »

Por la actual contingencia mundial debido al coronavirus COVID-19, el material sanitario y de protección se ha convertido en una problemática tanto para el personal de salud como para las personas ya sea por la escasez o por el costo tan elevado es por eso que aquí les compartimos una Válvula de Venturi para los respiradores.
Equipamiento médico elemental y vital para asistir mecánicamente en la respiración a los pacientes con más complicaciones y fallas agudas respiratorias.
Para quienes tengan impresoras 3D y deseen sumarse como voluntarios para elaboración y donación de material sanitario como: mascaras o viseras de protección.


Descarga: You are not allowed to view links. Register or Login

9
Impresiones 3D / Mascara Facial reutilizable
« en: Marzo 20, 2020, 08:51:22 pm »

Por la actual contingencia mundial debido al coronavirus COVID-19, el material sanitario y de protección se ha convertido en una problemática tanto para el personal de salud como para las personas ya sea por la escasez o por el costo tan elevado es por eso que aquí les compartimos un modelo Mascara Facial Reutilizable
**Utilizar solo en caso de extrema urgencia
Solo como último recurso, cuando no se disponga de máscaras protectoras adecuadas. La toalla de papel se utiliza sólo para fines de demostración y no es aconsejable como material para las mascarillas.
 Para quienes tengan impresoras 3D y deseen sumarse como voluntarios para elaboración y donación de material sanitario como: mascaras o viseras de protección.

Descarga: You are not allowed to view links. Register or Login

10
Impresiones 3D / Mascara COVID-19 (Requiere filtro)
« en: Marzo 20, 2020, 08:47:47 pm »


Por la actual contingencia mundial debido al coronavirus COVID-19, el material sanitario y de protección se ha convertido en una problemática tanto para el personal de salud como para las personas ya sea por la escasez o por el costo tan elevado es por eso que aquí les compartimos un modelo Mascara COVID-19 (sin soporte Requiere filtro)
**Utilizar solo en caso de extrema urgencia
Solo consta de 3 piezas, pero no incluye el filtro necesario para bloquear eficazmente la propagación del virus.
Para quienes tengan impresoras 3D y deseen sumarse como voluntarios para elaboración y donación de material sanitario como: mascaras o viseras de protección.



Descarga: You are not allowed to view links. Register or Login

11
Impresiones 3D / Mascarilla Facial con filtros
« en: Marzo 20, 2020, 08:40:21 pm »



Por la actual contingencia mundial debido al coronavirus COVID-19, el material sanitario y de protección se ha convertido en una problemática tanto para el personal de salud como para las personas ya sea por la escasez o por el costo tan elevado es por eso que aquí les compartimos un modelo de Mascarilla Facial con filtros
Para uso común, en lugar de las mascarillas desechables, es una mascarilla reutilizable, permite cambiar el filtro después de usarla y desinfectar para volver a utilizar.
*Hay que tener en cuenta que esta mascarilla no es para uso médico

Para quienes tengan impresoras 3D y deseen sumarse como voluntarios para elaboración y donación de material sanitario como: mascaras o viseras de protección.


Descarga: You are not allowed to view links. Register or Login

12
Impresiones 3D / Adaptador para abrir puertas con el brazo
« en: Marzo 20, 2020, 08:28:32 pm »

Piezas:

Colocar Cinta en el picaporte



Descarga: You are not allowed to view links. Register or Login

13
Impresiones 3D / Visera Fija Curva v0.4 - sin logo
« en: Marzo 20, 2020, 08:17:52 pm »

Quienes tengan impresoras 3D y deseen sumarse como voluntarios para elaboración y donación de material sanitario como: mascaras o viseras de protección.

Modelo realizado en España.

Descarga: You are not allowed to view links. Register or Login

14
Impresiones 3D / Mascarilla anti-COVID19
« en: Marzo 20, 2020, 08:04:52 pm »

Por la actual contingencia mundial debido al coronavirus COVID-19, el material sanitario y de protección se ha convertido en una problemática tanto para el personal de salud como para las personas ya sea por la escasez o por el costo tan elevado es por eso que aquí les compartimos una Mascarilla anti-COVID19.
Reutilizable y reciclable, con un sistema modular de filtración de partículas finas fabricado con un material que utiliza un nanocompuesto de cobre de probada eficacia para desactivar virus
Para quienes tengan impresoras 3D y deseen sumarse como voluntarios para elaboración y donación de material sanitario como: mascaras o viseras de protección.

NOTA: Según leí, se puede usar almohadillas desmaquillantes de algodón como filtro.


Descarga: You are not allowed to view links. Register or Login

15
QA (Quality Assurance) / SCRUM – Metodología Ágil
« en: Febrero 09, 2020, 04:25:39 pm »

Antes de meternos en las tareas del día a día de un QA, vamos a aprender o repasar lo que es Scrum.
Existen muchas metodologías ágiles, Scrum es una de ellas, y decidí escribir sobre ella, debido a que es la más utilizada hoy en día.

Las metodologías ágiles, son la evolución de las metodologías tradicionales, tales como la de cascada. Para aquellos que no sepan lo que es, les dejo un gráfico representativo


Vamos a suponer que un cliente llamado Carlos, tiene una tienda de computadoras y vende insumos informáticos.
Carlos nos llama al teléfono y pide reunirse para que le desarrollemos un sistema de stock.
En esta reunión, nos explica que necesita llevar un inventario de todos los insumos, clientes, proveedores y ventas de su negocio.

Con esta información, ya tenemos los requisitos del sistema, que es el primer paso del gráfico que les mostré anteriormente.

Llegamos a nuestra casa, y diseñamos en papel como debería ser el sistema. En el papel escribimos que será un sistema web, en donde al ingresar a la URL de su negocio se topará con un panel de login, al ingresar podrá ver un menú con cada uno de los módulos. En el módulo de productos podrá dar de alta sus insumos y al realizar una venta, descontará automáticamente el stock… Y así con cada una de los módulos a desarrollar (Etapa de diseño)

Una vez que ya tenemos en mente como será la plataforma, comenzamos a desarrollarla… (Etapa de implementación)

Después de 3 largos meses de desarrollo, logramos tener todo lo que nuestro cliente Carlos nos pidió (Etapa de verificación). Regresamos victoriosos a su tienda, ansiosos de cobrar el dinero por la plataforma y al enseñar el sistema, Carlos comenta que es muy distinto a lo que el quería realmente.
El se imaginaba otros colores distintos a los que pusimos en su sistema, al formulario del inventario le faltan campos como el del código de producto, el precio de costo y que automaticamente calcule un precio de venta, entre varias otras cosas más.
Teniendo estos nuevos requisitos, volvemos a nuestra casa y nos situamos nuevamente encima de la cascada para volver a comenzar. Y esto no quiere decir que la próxima presentación quede todo solucionado, sino que corremos riesgos de que vuelva a pasar lo mismo

Seguramente dirán… ¿Qué tiene que ver todo esto con SCRUM?

La respuesta es fácil. Hubiesemos utilizado alguna metodología ágil como lo es SCRUM, nos ahorrabamos esos ida y vuelta.

Pero… ¿Cómo funciona SCRUM?

Para entenderlo de forma fácil, también lo explicaré con una imagen característica de esta metodología.


Busqué una imagen en inglés a propósito, ya que son los términos que se suelen utilizar en las empresas de software. Otra cosa a tener en cuenta, es que esta metodología se usa cuando trabajamos con equipos de trabajos y ahora veremos por que.
Product Owner (Dueño del producto) nos da los requerimientos del sistema que debemos realizar (Product Backlog).
Seguido a esto, separamos las tareas que podemos realizar en un lapso de 1 a 4 semanas. (Este ciclo se define antes de arrancar el proyecto). Supongamos que los ciclos o sprints son de 2 semanas, entonces en la Planning Meeting debemos tomar tareas que nos lleven 2 semanas o menos y esas tareas son colocadas en el Sprint Backlog. Por ejemplo, en el primer sprint (primeras 2 semanas), haremos el Login y el módulo de productos. Al siguiente sprint (sprint 2), haremos el módulo de clientes, y así con todos los módulos. El orden de desarrollo, suele ser por prioridad. Esto quiere decir que si desarrollarmos primero el el login y el módulo de productos, el dueño del negocio podrá utilizar la plataforma mientras desarrollamos el resto de los módulos.
Una vez que ya esta todo definido en el Sprint Backlog (3er dibujo en la imagen), comienza el ciclo de desarrollo.
Si prestan atención, por fuera del círculo del sprint, hay otro más chico que dice «Daily Scrum», también conocido como «Daily Meeting» o «Stand Up Meeting», esto es una reunión diaria que se tiene con todos los miembros del equipo, y debe ser sumamente corta, lo suficiente como para poderla tener de pie, de ahí viene el «Stand Up Meeting».
En esta reunión, que suele ser al principio de cada día, debemos responden las siguientes preguntas:

– ¿Qué hice ayer?
– ¿Qué estoy haciendo ahora?
– Si estoy bloqueado con algo


Ejemplo:

– Ayer comencé con el diseño del login
– Hoy voy a finalizar toda la interface del login
– Estoy bloqueado para hacer el backend porque mi compañero aún no termina de crear las tablas en la base de datos del login.

Si prestan atención, sale una figura en la imagen llamada Scrum Master, esta persona es la encargada de solucionar los problemas o bloqueos que podamos tener. En este caso, hablaría con esa persona que esta atrasada y vería cual es el motivo, o intentaría ayudarlo para que avance más rápido y así desbloquear a su compañero.
En caso de no tener ningún problema, solo mencionan que no estan bloqueado con nada y le pasan la voz a su compañero para que diga su status.

Una vez finalizadas las 2 semanas de desarrollo, se presenta una DEMO al cliente para que vea lo desarrollado.
Lo bueno de esto, es que si tiene algún comentario, ejemplo colores, formas, posiciones, etc. Las puede mencionar y no solo se arregla en lo que ya está hecho, sino que se tiene en cuenta para el resto de los módulos.

Por ultimo, podemos ver 2 figuras más en la imagen como el Sprint Review y Retrospective, que basicamente en estas reuniones se suelen mencionar que cosas salieron bien y que cosas salieron mal durante ese sprint para aplicarlo o corregirlo en el siguiente.

Ya sabemos que es SCRUM, pero ¿En dónde entran los QA?

Voy a responder en detalle esta pregunta en otro post, pero para no dejarlos con la duda, podemos decir que en el QA esta presente en todo el proceso del desarrollo.

Cuando el cliente define el backlog, debemos ayudarlo a pasar todos los requerimientos a un issue tracker y asegurarnos de que quede todo lo suficientemente claro como para que luego los desarrolladores puedan leerlos y comenzar a programar sin problemas.

Mientras los programadores se encuentran en fase de desarrollo, los QA tenemos que comenzar a escribir los casos de prueba y a organizar nuestras suites para luego someter a esa plataforma a los diferentes tests que preparemos.
No me voy a meter mucho en detalle ahora, porque tengo pensado dedicarle un post completo a esto.

Quiero aclarar que todo esto que he redactado es en base a mi experiencia personal. SCRUM es una metodología muy flexible, puede que tenga más reuniones que solo son necesarias en ciertos proyectos. El gráfico que expliqué en este post, es lo más común de ver en las empresas de software factory.

Dejen en los comentarios, que otros tipos de metodologías conocen, o cual es las que más les gusta!

16
QA (Quality Assurance) / Quiero ser QA ¿Por dónde empiezo?
« en: Febrero 09, 2020, 04:23:15 pm »

Siguiendo con los posts orientados a aquellos que quieran iniciarse como QAs, quiero responder a esta pregunta que suelen hacerme bastante seguido.
 
¿Por dónde empiezo?

Vamos a empezar explicando lo que es un BUG, que de ahora en más será nuestro aliado o enemigo…
Un bug, es básicamente un error (comportamiento no esperado, error visual, entre otros)
 
¿Por qué digo que es un enemigo o un aliado?
Una de las formas de saber si estamos haciendo bien nuestro trabajo, es porque estamos encontrando errores en una plataforma. Y se puede decir que es un enemigo, porque mientras más errores tenga una plataforma, más tiempo tardaremos en salir a producción.

Para entender mejor el tema, vamos a poner el siguiente ejemplo. Tenemos un sistema de Stock (supongo que todos saben lo que es), en dicho sistema, tenemos un CRUD de productos, en donde podemos crear, editar, eliminar y ver los items cargados.
Nuestra tarea como QAs, es probar cada campo, cada función, de hecho hasta todo lo visual que podamos llegar a notar en la pantalla que estamos testeando.
Supongamos que estamos dando de alta un producto y que los campos son:
 
Título
Cantidad
Precio

 
Podemos probar cosas como:
 
Título: Caracteres especiales, colocar más de 500 caracteres, dejarlo vacío, etc
Cantidad: Colocar un numero muy grande, numero negativo, numero con decimales, letras, etc
Precio: Ingresar letras, numeros negativos, caracteres especiales, etc.

La idea de esto, es intentar romper la aplicación como sea, si el campo es de cantidad, no tiene sentido que se ingresen letras.

Parece un poco obvio, pero no se dan idea de la cantidad de errores así que se encuentran en las aplicaciones.
Muchas veces por apurarse, los desarrolladores olvidan poner validaciones en los campos.
 
Bien… Ya se lo que es un BUG.. ¿Y ahora que hago?
 
Esto varía mucho dependiendo del proyecto en el que estemos trabajando, los tiempos que tengamos y demás. Pero suponiendo que es un mundo feliz, en donde el testing inicia junto con el proyecto, es decir, que el desarrollo este comenzando junto con nuestro testing, entonces se comienza creando un plan de pruebas (test plan) con casos de pruebas (test cases). Esto tiene como ventaja generar una documentación de que alcance tiene el testing y sobre que cosas se prueban y que no.

En caso de que el proyecto ya esté desarrollado y necesitan un test en un corto lapso de tiempo, se puede optar por otras estrategias de testing, como por ejemplo un testing exploratorio. Que consiste en navegar la aplicación en busca de errores. Lo malo de esto, es que no tenemos como documentar lo que hemos probado y lo que no.

En otro post comentaré más en detalle que son los test plan y como armarlos, lo mismo que los test cases y las diferentes estrategias de testing.
 
Encontré un bug! ¿Con qué se come?
 
En todo proceso de desarrollo de software, es muy necesario contar con un issue tracker (Redmine, Jira, etc)

Los issues trackers no solo sirven para documentar las funcionalidades de la aplicación, sino también para reportar cada bug que nosotros encontremos.

Siempre que reportemos un error, debemos ser lo más claros posibles a la hora de reportarlo, es decir, debemos documentar bien que tipo de bug es, pasos para reproducirlo, etc.

A continuación les voy a compartir una plantilla que suelo utilizar yo a la hora de reportar un bug.

ID #: ID únuco de cada bug. Los issue tracker los colocan de forma automática
Título: Título descriptivo. Suelo poner entre corchetes el nombre del módulo que posee el error
Descripción: Una breve descripción sobre el error encontrado
Precondiciones: Si necesito tener ciertos accesos o permisos para poder reproducir el bug
Pasos para reproducirlo: Detalle paso por paso de que acciones debo realizar para reproducir el bug
Resultado Actual: Explicar que está pasando actualmente
Resultado Esperado: Explicar como debería funcionar
Screenshot/Video: Alguna captura de pantalla o video mostrando el error
Prioridad: Que tipo de prioridad tiene este issue (Los explicaré más adelante en otro post)
Asignación: Asignarle el issue al desarrollador que hizo esa funcionalidad
 
Ejemplo con Redmine:


Esto es todo lo que necesitan saber por ahora sobre bugs y como reportarlos. Pronto subiré otra entrada sobre más metodologías o estrategias de testing y poco a poco iremos encadenando los conceptos.

Cualquier duda que tengan o sugerencias para un futuro post, pueden dejarlo en la caja de comentarios

17
QA (Quality Assurance) / ¿Por qué es fundamental el QA en un proyecto?
« en: Febrero 09, 2020, 04:19:27 pm »

Ultimamente se ha estado hablando mucho del tema de los QA en uno de los grupos de Underc0de, y como actualmente me desempeño como QA en una empresa de Software, voy a comentar mi experiencia personal en esta área

¿Qué es un QA?

Para resumir en un par de lineas, QA (Quality Assurance) o Aseguramiento de Calidad hace referencia a la forma de medir la calidad, no solo del producto, sino también del proceso de desarrollo.

Muchas empresas para abaratar costos, dejan de lado el área de QA, quizás lo ven innecesario o una pérdida de tiempo, pero a la larga se nota la diferencia. Es imposible que una aplicación o proyecto sea perfecto, siempre va a tener defectos, la misión de un QA no es simplemente encontrarlos, sino también ayudar a prevenirlos.

Tester vs QA

Mucha gente confunde los términos de Tester y QA, o simplemente los mete dentro de la misma bolsa, pero son 2 perfiles totalmente diferentes.

Tester: Es aquel que se encarga de detectar y reportar fallas en un sistema durante la fase de desarrollo.
QA: Se encarga de asegurar la calidad no solo del producto en si, sino también de todas los procesos del desarrollo.

Para resumir, un QA realiza las tareas de un Tester, pero un tester no realiza las tareas de un QA. En otras palabras, un QA es un tester evolucionado.

Tareas de un QA

Análisis
Ayuda al Product Owner a definir tareas y criterios de aceptación. el QA suele tener una visión más horizontal del producto y el desarrollo, por lo que puede ayudar a definir las User Stories y que queden claras para los desarrolladores.

Desarrollo de un plan de pruebas
En base a los criterios de aceptación, elabora un plan de prueba (test plan) que va a contener distintos casos de pruebas (test cases) teniendo en cuenta los diferentes flujos de la aplicación

Estrategias de testing
Dependiendo del estado del proyecto, los tiempos, el tamaño de la aplicación, entre otros factores, dependerá de la estrategia de testing que se empleará

Elaboración de reportes
No se si lo harán todos los QA, pero yo envío reportes semanales para que el PO tenga conocimiento del estado de la plataforma (bugs existentes y fixeados)

Scripts Automatizados
No quiero meterme mucho en este tema porque va a dar mucho de que hablar en otro post, pero los QA pueden ser manuales o automatizadores. En este segundo caso, elaboran scripts que ejecuten cierta tarea de forma automática. Para poder automatizar, obviamente es necesario saber programar.

Como para concluir el post, se puede decir que un QA le otorga calidad al producto, al desarrollo y al proceso. No es una pérdida de dinero, ya que al cliente final le llega un producto listo para usar.
Muchos desarrollos que no tienen área de QA, entregan productos sin probar y terminan fallando en producción, gastando dinero en arreglar las fallas y perdiendo tiempo para la puesta en marcha.

18
Dudas y pedidos generales / Enviar variables desde Ajax a PHP
« en: Febrero 05, 2020, 10:22:15 pm »
Estuve mirando por todo Stackoverflow, pero no encuentro forma de que funcione mi código.
Básicamente es un formulario de contacto y quiero enviar las variables a un PHP por medio de ajax.

Javascript

Código: Javascript
  1. <script>
  2.  
  3.     $('#template-contactform-submit').click(function(){
  4.  
  5.         var email = $('#template-contactform-email').val();
  6.         var nombre = $('#template-contactform-name').val();
  7.         var telefono = $('#template-contactform-phone').val();
  8.         var mensaje = $('#template-contactform-message').val();
  9.         var asunto = $('#template-contactform-subject').val();
  10.         var datos = 'email=' + email + '&nombre=' + nombre + '&telefono=' + telefono + '&mensaje=' + mensaje + '&asunto=' + asunto;
  11.  
  12.         $.ajax({
  13.             url: 'include/contact-form.php',
  14.             type: 'POST',
  15.             data: datos
  16.         })
  17.  
  18.         .done(function(res){
  19.             $('#respuesta3').html(res)
  20.         })
  21.  
  22.         .fail(function(fail_resp){
  23.             Swal.fire({
  24.                 title: 'Error!',
  25.                 text: 'No se ha podido realizar la suscripción. Intentelo nuevamente más tarde..',
  26.                 icon: 'error',
  27.                 confirmButtonText: 'Cerrar'
  28.                 })
  29.         })
  30.  
  31.     });
  32.  
  33. </script>

y acá el PHP que lo recibe

Código: PHP
  1. $nombre = $_POST['nombre'];
  2. $email = $_POST['email'];
  3. $telefono = $_POST['telefono'];
  4. $asunto = $_POST['asunto'];
  5. $mensaje = $_POST['mensaje'];

El error que recibo es un error 500

Espero que puedan ayudarme!
ANTRAX

19
Seguridad Wireless / Hackeando redes WiFi en 2 minutos!
« en: Diciembre 07, 2019, 03:29:25 pm »

Hola a todos los lectores! Antes que nada, quiero aclarar que esto solo sirve para routers de DirecTV que tienen la password que viene por default.

El día de ayer tuvimos una juntada de todos los miembros de Underc0de de Mendoza y la pasamos genial! Entre pizzas y cervezas, uno de los miembros notó que el lugar en donde estabamos, tenía una red Wireless de DirecTV y apostó una jarra de cervezas que podía hackearla en menos de 2 minutos… Algunos miraron sorprendidos, y de hecho uno de los chicos aceptó la apuesta.

Para sorpresa de todos, logró hacerlo y en este post comentaré como lo hizo.

La red en cuestión se llama DTV_08472361

Los pasos son muy simples, consiste en tomar el numero que aparece en la red «08472361» y debemos cnvertirlo de DECIMAL a HEXADECIMAL


Como resultado obtuvimos «814729«. Lo que debemos hacer ahora, es usar ese numero para armar la contraseña.
Las contraseñas de los routers de DirecTV tienen el siguiente formato:

NET03814729

Es decir: la palabra NET (en mayúsculas) + 03 + numero hexadecimal que generamos


Colocamos la password, damos a conectar y…


INTERNET GRATIS!!!!

Espero que les guste y les sirva a todos!

20
Hola a todos,
Mientras sigo googleando e investigando, dejo la duda acá en el foro...
Un colega que tiene un bar, necesita poner algún tipo de sistema, que para poder navegar utilizando su Wifi, previamente el cliente tenga que dejar sus datos.
Alguien tiene información al respecto?

Saludos,
ANTRAX

Páginas: [1] 2 3 ... 67