+

lunes, 11 de septiembre de 2017

Atacar API de Hexonet mediante Curl

Buenas!

Hoy me ha tocado mirar de hacer una actualización en bulk de dominios para habilitar el Whois privado a unos dominios que hay registrados en Hexonet. Desde el propio panel de control no se puede hacer más que uno a uno, y siendo ciento y muy muchos, decidí tirar unas pocas líneas.

Echando un ojo, conseguí sacar la lista de los dominios mediante esta URL:

https://coreapi.1api.net/api/call.cgi?s_login=<USUARIO>&s_pw=<CONTRASEÑA>&command=QueryDomainList

Que nos devuelve la lista completa de dominios que hay asociados al usuario. Añadiento otro parámetro podemos filtrar mediante una expresión con comodines, así que lo usé para filtrar por TLD:

https://coreapi.1api.net/api/call.cgi?s_login=<USUARIO>&s_pw=<CONTRASEÑA>&command=QueryDomainList&domain=*.com

Una vez sacada la lista, me quedaba ver como modificar en concreto el tema del Whois que rebuscando conseguí encontrar el parámetro "x-accept-whoistrustee-tac" que se le puede pasar un 0 o un 1  para deshabilitar o habilitar (este parámetro es válido para el comando "AddDomain" y "ModifyDomain"). Con esto me quedaba una URL tal que así:

https://coreapi.1api.net/api/call.cgi?s_login=<USUARIO>&s_pw=<CONTRASEÑA>&command=ModifyDomain&domain=<DOMINIO>&x-accept-whoistrustee-tac=1

Con estas dos URLs y un par de bucles for ya se puede hacer la actualización en bulk de forma fácil*:
for TLD in "com" "net" "org" "biz" "info" "mobi" "name" "cc" "la" "tv" "fm" "me"; do
   for DOMINIO in $(curl "https://coreapi.1api.net/api/call.cgi?s_login=<USUARIO>&s_pw=<CONTRASEÑA>&command=QueryDomainList&domain=*.$TLD" 2>&1 | grep DOMAIN | awk -F"=" '{ print $2 }'); do
      curl "https://coreapi.1api.net/api/call.cgi?s_login=<USUARIO>&s_pw=<CONTRASEÑA>&command=ModifyDomain&domain=$DOMINIO&x-accept-whoistrustee-tac=1"
   done
done
* Para que quede un poco más claro voy a separar los for y los comandos en colores, cada uno una línea.

Con esto ya estaría, lo único que no he llegado a probarlo porque el servicio cuesta 0,35$ por cada dominio y al final me han dicho que no lo haga.

Hasta la proxima!

Referencias:
Enlace con info de la API de Hexonet: DOMAIN API Reference
Enlace info Whois Trustee: Hexonet - Private Registrations