elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Personaliza-Escoge el diseño del foro que más te guste.


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  Web-Bot detection
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Web-Bot detection  (Leído 1,412 veces)
alvaca

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Web-Bot detection
« en: 19 Julio 2020, 15:25 »

En el desarrollo de juegos online se hace un gran esfuerzo por detectar si se están inclumpliendo las normas, especialmente con el uso de bots. Estoy intentando crear un bot en Android que simule la navegación a través de un juego online que funciona con js. El caso es que como se menciona antes este debe evitar ser detectado.

Por ese motivo me gustaría saber que formas tiene el servidor de detectar el uso de bot-scripts.
Hasta ahora he valorado las siguientes casuisticas:
  • Conexión mediante una librería que usa de forma síncrona javascrpit para obtener la información deseada y realizar clics, tal y como haría una persona en el navegador
  • Configurado el User Agent para que muestre un acceso desde un móvil y en caso de ser necesario el uso de un proxy
  • Simulación de comportamiento humano con tiempos de espera aleatorios y conexiones periódicas también con rangos aleatorios

Estos pasos me parecen importantes a la hora de evitar ser detectado. Sin embargo, el juego hizo una actualización y en el propio navegador se resaltan ciertos campos cliqueables cuando el puntero se situa sobre ellos. Esto me hace pensar que puede que en las cookies o en algún request se envien las coordenadas del clic. En ese caso el uso de javascripts haría que el bot fuese detectado, ya que una persona rara vez clica siempre en el mismo punto de los botones o ni los clica (tengo mis dudas al ejecutar el js).
No sé muy bien si me estoy preocupando en exceso pero es esencial que el bot no sea detectable. Cualquier cosa que se me pueda escapar agradecería muchisimo que me lo comentasen. Incluso alguna fuente donde se explique en detalle la información necesaria para entender las comunicaciones cliente - servidor.

Muchas gracias

Alvaca


En línea

@XSStringManolo
Colaborador
***
Desconectado Desconectado

Mensajes: 2.033


Turn off the red ligth


Ver Perfil WWW
Re: Web-Bot detection
« Respuesta #1 en: 20 Julio 2020, 14:43 »

Captura el tráfico y analízalo hasta que lo entiendas.

El servidor no es una entidad mágica que adivina cuando le das a un botón. Se lo dices tú. Monta un esquema MITM.


En línea

alvaca

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: Web-Bot detection
« Respuesta #2 en: 20 Julio 2020, 21:57 »

Lo siento pero soy medianamente nuevo en esto. He leído los Request que se rwlaixna durante el juego y se resumen en unos recursos almacenados en la cache y un GET o POST en cada cambio de página. El caso es que no sé leer muy bien los headers y no se si el propio browser enviar información que diferencia entre un js de la línea de comandos y un click manual.

El MITM que es?? He intentado buscar información pero no entiendo casi nada. Si pudieses orientarme un pcoo te lo agradecería.

Muchas gracias
En línea

el-brujo
ehn
***
Desconectado Desconectado

Mensajes: 19.534


La libertad no se suplica, se conquista


Ver Perfil WWW
Re: Web-Bot detection
« Respuesta #3 en: 20 Julio 2020, 22:29 »

en los juegos no tengo ni ideas de cómo detectar un bot, lo siento.

Pero en páginas web si domino el tema y hay varias cosas a tener en cuenta. Pero vaya, si usa User-Agent es que son peticiones vía web, entiendo yo.

Lo ideal es montar un servidor de juegos igual, hacer las peticiones y mirar los logs, para saber todo lo que captura de ti.

Por ejemplo CloudFlare tiene una cosa que se llama "IP reputation", que sólo viendo la IP ya "sabe" si esta Ip es usada por bots o no, si es un proxy, red de tor, etc.


Citar
Configurado el User Agent para que muestre un acceso desde un móvil y en caso de ser necesario el uso de un proxy

User Agent es muy importante, y recuerda una IP, un User Agent, si vas cambiando de User-Agent con la misma IP resultará siempre fallido. Y si el User-Agent pues que sea actual y real.

Tendrás que analizar si el servidor manda cookies y aceptarlas. Pueden tener muchos otros métodos de detección de bots.


CloudFlare (web) mira:

- JS Challenge (si el navegador acepta e interpreta javascript) aunque es fácil saltárselo
- User-Agent
- HTTP Method (GET, POST, OPTIONS, PUT DELETE)
- HTTP Version (1.1 1.0 2.0)
En línea

Since 2001, still kicking hard
alvaca

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: Web-Bot detection
« Respuesta #4 en: 20 Julio 2020, 23:00 »

Hola el-brujo,

Sí, se trata de un browser game que se ejecuta en Internet como una web más. Por ese motivo quería conocer como saber que tipo de información se envía al servidor.

Al querer automatizar la navegación por dicha web uso javascript para recoger textos, rellenar formularios y clicsr botones (por ej. Document.getElementById("s1").click()) No se si el servidor puede detectar si ha sido automatizado o si lo ve igual que un click normal.
De ser así donde me tendría que fijar para ver si lo detecta??

Respexti a montar un servidor de juegos igual, que es eso?? Osea puedo replicar el html y el js que veo desde mi navegador y ejecutarlo de forma local?? O desde el propio navegador hay forma de ver eso??




En línea

[u]nsigned


Desconectado Desconectado

Mensajes: 2.372

Vue SSr


Ver Perfil WWW
Re: Web-Bot detection
« Respuesta #5 en: 24 Julio 2020, 08:40 »

Por ejemplo la app web de wsp https://web.whatsapp.com/ tiene proteccion contra bots, yo intente hacer un scripts de automatización de envío de mensajes con greasemonkey pero no funcionaba, creo que para hacer eso lo que hacen es meter el código dentro de funciones auto-ejecutables de js y asi se encapsula el scope de forma que no se puede acceder desde afuera, por ejemplo con greasemonkey o 'inyectando' código por la consola del navegador.

Asi que fui un paso mas allá y me cree un bot que usa puppeteer para lanzar el chrome de mi sistema (no la modalidad headless, con esa tampoco funciono), con mis sesiones, cookies y toda mi data se usuario, en lugar de interactuar por js directamente con el dom (tampoco funciono) lo que hago es simular pulsaciones de teclado o clicks de ratón reales, puppeteer tiene esa feature por suerte, y ahi si ya no pudo defenderse y ahí tengo a mi bot spameando a dos manos  :xD

y si wsp no pudo lograrlo nadie puede defenderse de eso, mas allá de poner un captcha, pero eso solo agregaria un paso de intervención humana, una vez resuelto el mismo podría dársele el control de las tareas al bot de todas formas, ya que poner un capta para cada acción (enviar un mensaje en mi caso) haria que la app en si sea inútil para un humano por se poco practica.

Como lo tuyo es a nivel de movil, te recomiendo que mientras corres tu bot (no se que metodo usaras) uses la aplicación HTTP Canary que es un sniffer para Android, asi luego vas a poder ver con lujo de detalle todo lo que el juego le esta mandando a sus servidores y viceversa. Esta es la unica app de este tipo que puede snifar ppor https y http2, al menos asi lo era hace dos meses cuando yo estuve con ese tema, te la recomiendo porque ya se que funciona, lo unico malo es que tiene un trial de 14 dias en su version free.

Por ultimo si investigas en google sobre como protegerte contra bots (o mejor dicho web-scrapping) veras que no existe una forma optima de hacerlo al dia de hoy, asi que si usas tiempos de respuesta aleatorios y humanos, un user-agent consistente y un proxy no deberias preocuparte. Ademas esto no es un delito per se y siempre tendras la excusa de que lo haces con "fines didácticos o de investigación".

PD: no se molesten en pedirme el bot de wsp web porque no lo comparto ni está a la venta,  ya les di todo los detalles para hacer el suyo propio.  :xD
En línea

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!
rub'n


Desconectado Desconectado

Mensajes: 1.079


(e -> λ("live now")); tatuar -> λ("α");


Ver Perfil WWW
Re: Web-Bot detection
« Respuesta #6 en: 24 Julio 2020, 13:09 »

Por ejemplo la app web de wsp https://web.whatsapp.com/ tiene proteccion contra bots, yo intente hacer un scripts de automatización de envío de mensajes con greasemonkey pero no funcionaba, creo que para hacer eso lo que hacen es meter el código dentro de funciones auto-ejecutables de js y asi se encapsula el scope de forma que no se puede acceder desde afuera, por ejemplo con greasemonkey o 'inyectando' código por la consola del navegador.

Asi que fui un paso mas allá y me cree un bot que usa puppeteer para lanzar el chrome de mi sistema (no la modalidad headless, con esa tampoco funciono), con mis sesiones, cookies y toda mi data se usuario, en lugar de interactuar por js directamente con el dom (tampoco funciono) lo que hago es simular pulsaciones de teclado o clicks de ratón reales, puppeteer tiene esa feature por suerte, y ahi si ya no pudo defenderse y ahí tengo a mi bot spameando a dos manos  :xD

y si wsp no pudo lograrlo nadie puede defenderse de eso, mas allá de poner un captcha, pero eso solo agregaria un paso de intervención humana, una vez resuelto el mismo podría dársele el control de las tareas al bot de todas formas, ya que poner un capta para cada acción (enviar un mensaje en mi caso) haria que la app en si sea inútil para un humano por se poco practica.

Como lo tuyo es a nivel de movil, te recomiendo que mientras corres tu bot (no se que metodo usaras) uses la aplicación HTTP Canary que es un sniffer para Android, asi luego vas a poder ver con lujo de detalle todo lo que el juego le esta mandando a sus servidores y viceversa. Esta es la unica app de este tipo que puede snifar ppor https y http2, al menos asi lo era hace dos meses cuando yo estuve con ese tema, te la recomiendo porque ya se que funciona, lo unico malo es que tiene un trial de 14 dias en su version free.

Por ultimo si investigas en google sobre como protegerte contra bots (o mejor dicho web-scrapping) veras que no existe una forma optima de hacerlo al dia de hoy, asi que si usas tiempos de respuesta aleatorios y humanos, un user-agent consistente y un proxy no deberias preocuparte. Ademas esto no es un delito per se y siempre tendras la excusa de que lo haces con "fines didácticos o de investigación".

PD: no se molesten en pedirme el bot de wsp web porque no lo comparto ni está a la venta,  ya les di todo los detalles para hacer el suyo propio.  :xD

Hola por casualidad tendras un bot de wuasap web ? lo necesito, estoy comenzando en informática. quiero ser crackJuanker.
En línea

KNOWLEDGE  SHOULD BE FREE!!!
If you don't have time to read, you don't have the time (or the tools) to write, Simple as that. Stephen King.
FFernandez

Desconectado Desconectado

Mensajes: 44


Ver Perfil
Re: Web-Bot detection
« Respuesta #7 en: 28 Julio 2020, 00:11 »

Si yo quisiera detectar un boot, que maneje el ratón, pondría esas trampas que detecten el paso del ratón de un punto a otro. por la media recibida de los usuarios banearía a los que estén por debajo del umbral.

Al utilizar las pulsaciones por codigo de un botón a otro no hay rastro……………..jeje
« Última modificación: 13 Agosto 2020, 22:23 por FFernandez » En línea

alvaca

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: Web-Bot detection
« Respuesta #8 en: 8 Agosto 2020, 13:53 »

Muchas gracias unsigned, me ha sido de mucha ayuda. Aún así no se como ves fácil el modo de hacer web-scraping sin ser detectado. No hago más que ver nuevas formas de detectar un bot (aunque algunas veces no explican como  :-()

Citar
en lugar de interactuar por js directamente con el dom (tampoco funciono) lo que hago es simular pulsaciones de teclado o clicks de ratón reales, puppeteer tiene esa feature por suerte,

Entiendo que lo óptimo es simular clicks con coordenadas como haces tu  con puppeteer, aunque yo no se como podría hacerlo desde una app de móvil. En mi caso solo he encontrado una forma de navegar de forma automatizada. Esta forma es mediante un WebView que una vez ha cargado la página ejecuta un javascript como este:

Código:
javascript: document.getElementsById('id').click()

De esta forma entiendo que navego como un usuario normal con sus tiempos y demás. Aún así tengo mis dudas ya que no se si estoy inyectando scripts detectables al crear en java un JavascriptInterface para guardar los datos obtenidos en la aplicación.

Me he metido ya en mucho detalle pero a lo mejor alguno sabe sobre el tema.
Muchas gracias de adelantado
En línea

alvaca

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: Web-Bot detection
« Respuesta #9 en: 8 Agosto 2020, 13:59 »

[

Muchas gracias unsigned, me ha sido de mucha ayuda. Aún así no se como ves fácil el modo de hacer web-scraping sin ser detectado. No hago más que ver nuevas formas de detectar un bot (aunque algunas veces no explican como  :-()

en lugar de interactuar por js directamente con el dom (tampoco funciono) lo que hago es simular pulsaciones de teclado o clicks de ratón reales, puppeteer tiene esa feature por suerte

Entiendo que lo óptimo es simular clicks con coordenadas como haces tu  con puppeteer, aunque yo no se como podría hacerlo desde una app de móvil. En mi caso solo he encontrado una forma de navegar de forma automatizada. Esta forma es mediante un WebView que una vez ha cargado la página ejecuta un javascript como este:

Código:
javascript: document.getElementsById('id').click()

De esta forma entiendo que navego como un usuario normal con sus tiempos y demás. Aún así tengo mis dudas ya que no se si estoy inyectando scripts detectables al crear en java un JavascriptInterface para guardar los datos obtenidos en la aplicación.

Me he metido ya en mucho detalle pero a lo mejor alguno sabe sobre el tema.
Muchas gracias de adelantado
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
detection
Hacking Wireless
mariosky63 0 1,486 Último mensaje 17 Octubre 2011, 14:45
por mariosky63
detection de modem wireless
Hacking Wireless
pierini1 8 1,789 Último mensaje 10 Noviembre 2012, 18:06
por HdM
On-Body Detection, tu móvil Android se bloqueará cuando no lo tengas encima
Noticias
wolfbcn 0 518 Último mensaje 22 Marzo 2015, 01:35
por wolfbcn
deshabilitar la funcion monitor detection
GNU/Linux
gAb1 2 777 Último mensaje 27 Agosto 2015, 19:43
por gAb1
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines