Tutoriales y Manuales
Entradas Mensuales
-
►
2024
(Total:
1110
)
- ► septiembre (Total: 50 )
-
►
2023
(Total:
710
)
- ► septiembre (Total: 65 )
-
►
2022
(Total:
967
)
- ► septiembre (Total: 72 )
-
►
2021
(Total:
730
)
- ► septiembre (Total: 56 )
-
►
2020
(Total:
212
)
- ► septiembre (Total: 21 )
-
►
2019
(Total:
102
)
- ► septiembre (Total: 14 )
-
►
2017
(Total:
231
)
- ► septiembre (Total: 16 )
-
►
2016
(Total:
266
)
- ► septiembre (Total: 38 )
-
►
2015
(Total:
445
)
- ► septiembre (Total: 47 )
-
►
2014
(Total:
185
)
- ► septiembre (Total: 18 )
-
►
2013
(Total:
100
)
- ► septiembre (Total: 3 )
-
►
2011
(Total:
7
)
- ► septiembre (Total: 1 )
- Trump restó importancia a la filtración de planes militares de EEUU en un chat
- Corea del Norte prepara un ejército de hackers: especializados en IA para espiar a Occidente
- Elon Musk cobra la API de Twitter (X) a precio de oro: esta app te permite usarla gratis
- Microsoft cerrará Skype en mayo y lo reemplazará por Teams
- Corea del Norte consiguió subir apps espía a la Play Store saltándose las medidas de seguridad de Google
Etiquetas
seguridad
(
402
)
google
(
378
)
privacidad
(
369
)
ransomware
(
357
)
vulnerabilidad
(
332
)
Malware
(
279
)
tutorial
(
267
)
Windows
(
263
)
cve
(
263
)
android
(
261
)
manual
(
252
)
hardware
(
227
)
software
(
209
)
linux
(
132
)
twitter
(
117
)
ddos
(
100
)
WhatsApp
(
97
)
Wifi
(
87
)
cifrado
(
79
)
herramientas
(
77
)
hacking
(
76
)
nvidia
(
75
)
sysadmin
(
70
)
app
(
69
)
Networking
(
63
)
ssd
(
58
)
youtube
(
52
)
firmware
(
45
)
adobe
(
43
)
office
(
43
)
hack
(
41
)
firefox
(
36
)
contraseñas
(
34
)
eventos
(
32
)
antivirus
(
31
)
juegos
(
31
)
cms
(
30
)
MAC
(
28
)
apache
(
28
)
flash
(
28
)
anonymous
(
27
)
programación
(
25
)
exploit
(
24
)
multimedia
(
23
)
javascript
(
22
)
Kernel
(
21
)
ssl
(
19
)
SeguridadWireless
(
17
)
Forense
(
16
)
documental
(
16
)
conferencia
(
15
)
Debugger
(
14
)
lizard squad
(
14
)
técnicas hacking
(
13
)
auditoría
(
12
)
delitos
(
11
)
metasploit
(
11
)
Virtualización
(
10
)
adamo
(
9
)
reversing
(
9
)
Rootkit
(
8
)
Ehn-Dev
(
7
)
MAC Adress
(
6
)
antimalware
(
6
)
oclHashcat
(
5
)
Entradas populares
-
Kali Linux sigue siendo la distribución de referencia para pentesters, hackers éticos y especialistas en seguridad informática en 2025. Co...
-
El sitio para adultos OnlyFans carece de controles efectivos para evitar que menores de edad aparezcan en videos explícitos puestos a ...
-
Kali Linux es la distribución de Linux más conocida relacionada con la seguridad informática. Estamos acostumbrados a que lancen cuatro ve...
Envío de comandos vía VNC
viernes, 23 de julio de 2010
|
Publicado por
Antonio Sánchez
|
Editar entrada
Bueno, pues haciendo el PFC, me ha surgido un obstáculo a la hora de crear/inicializar las VMs, el problema es que para conectarte a una VM (más en concreto un LiveCD DVL) por ssh, hay que tener el servicio levantado, y para levantarlo hace falta conectarte...
Dándole vueltas, se me ocurrió que se podría usar el Servidor VNC que gestiona libvirt a la hora de crear VMs con virsh para simular la pulsación de teclas y así conseguir nuestro propósito, levantar el interfaz de red y el servicio ssh.
Leyendo las especificaciones del protocolo que usa VNC para acceder a las interfaces gráficas (RFB), se ve que es bastante sencillo, así que me he hecho un miniprograma en python que simula pulsaciones de teclado y las manda, y parece que funciona de lujo!
Su uso es sencillo, recibe 3 argumentos: servidor VNC, puerto, y archivo de órdenes
En el archivo de órdenes se le pueden especificar 3 tipos de orden, aquí un ejemplo:
En este caso se enviaría el ifconfig eth0..., se esperaría 4 segundos, y finalmente simularía la pulsación de Return
Os dejo el code (seguro que se puede mejorar, pero cumple su propósito):
Dándole vueltas, se me ocurrió que se podría usar el Servidor VNC que gestiona libvirt a la hora de crear VMs con virsh para simular la pulsación de teclas y así conseguir nuestro propósito, levantar el interfaz de red y el servicio ssh.
Leyendo las especificaciones del protocolo que usa VNC para acceder a las interfaces gráficas (RFB), se ve que es bastante sencillo, así que me he hecho un miniprograma en python que simula pulsaciones de teclado y las manda, y parece que funciona de lujo!
Su uso es sencillo, recibe 3 argumentos: servidor VNC, puerto, y archivo de órdenes
En el archivo de órdenes se le pueden especificar 3 tipos de orden, aquí un ejemplo:
send_string ifconfig eth0 192.168.2.50 netmask 255.255.255.0
sleep 4
send_key Return
En este caso se enviaría el ifconfig eth0..., se esperaría 4 segundos, y finalmente simularía la pulsación de Return
Os dejo el code (seguro que se puede mejorar, pero cumple su propósito):
import socket import time import struct import sys class RFBClient: # usar /usr/include/X11/keysymdef.h keycodes = { 'BackSpace' : 0xff08, 'Tab' : 0xff09, 'Return' : 0xff0d, 'Escape' : 0xff1b, 'Insert' : 0xff63, 'Delete' : 0xffff, 'Home' : 0xff50, 'End' : 0xff57, 'PageUp' : 0xff55, 'PageDown' : 0xff56, 'Left' : 0xff51, 'Up' : 0xff52, 'Right' : 0xff53, 'Down' : 0xff54, 'F1' : 0xffbe, 'F2' : 0xffbf, 'F3' : 0xffc0, 'F4' : 0xffc1, 'F5' : 0xffc2, 'F6' : 0xffc3, 'F7' : 0xffc4, 'F8' : 0xffc5, 'F9' : 0xffc6, 'F10' : 0xffc7, 'F11' : 0xffc8, 'F12' : 0xffc9, 'F13' : 0xFFCA, 'F14' : 0xFFCB, 'F15' : 0xFFCC, 'F16' : 0xFFCD, 'F17' : 0xFFCE, 'F18' : 0xFFCF, 'F19' : 0xFFD0, 'F20' : 0xFFD1, 'ShiftLeft' : 0xffe1, 'ShiftRight' : 0xffe2, 'ControlLeft' : 0xffe3, 'ControlRight' : 0xffe4, 'MetaLeft' : 0xffe7, 'MetaRight' : 0xffe8, 'AltLeft' : 0xffe9, 'AltRight' : 0xffea, 'Scroll_Lock' : 0xFF14, 'Sys_Req' : 0xFF15, 'Num_Lock' : 0xFF7F, 'Caps_Lock' : 0xFFE5, 'Pause' : 0xFF13, 'Super_L' : 0xFFEB, 'Super_R' : 0xFFEC, 'Hyper_L' : 0xFFED, 'Hyper_R' : 0xFFEE, 'KP_0' : 0xFFB0, 'KP_1' : 0xFFB1, 'KP_2' : 0xFFB2, 'KP_3' : 0xFFB3, 'KP_4' : 0xFFB4, 'KP_5' : 0xFFB5, 'KP_6' : 0xFFB6, 'KP_7' : 0xFFB7, 'KP_8' : 0xFFB8, 'KP_9' : 0xFFB9, 'KP_Enter' : 0xFF8D, } def __init__(self, address): # conectamos self.s = s = socket.socket() s.connect(address) # negociamos version version = s.recv(12) print version.strip() s.sendall(version) # negociamos seguridad security_types = ord(s.recv(1)) for i in range(security_types): s.recv(1) s.sendall(chr(1)) struct.unpack('!I', s.recv(4)) # iniciamos cliente (compartido) s.sendall(chr(1)) def __send_keycode(self, keycode): self.s.sendall(struct.pack("!BBxxI", 4, 1, keycode)) time.sleep(0.05) self.s.sendall(struct.pack("!BBxxI", 4, 0, keycode)) def send_string(self, string): for c in string: self.__send_keycode(ord(c)) def send_key(self, key): self.__send_keycode(self.keycodes[key]) if(len(sys.argv) != 4): print "\n\t[+] Uso: " + sys.argv[0] + " servidor_VNC puerto archivo_ordenes\n" else: #abrimos archivo de ordenes fd = open(sys.argv[3], "r") #conectamos con los datos suministrados client = RFBClient((sys.argv[1], int(sys.argv[2]))) #leemos linea por linea y parseamos el tipo de orden fileList = fd.readlines() for fileLine in fileList: parsed=fileLine.partition(' ') print "\nComando: " + parsed[0] + " argumento: " + parsed[2] if(parsed[0]=="send_string"): client.send_string(parsed[2]) elif(parsed[0]=="send_key"): client.send_key(parsed[2].replace('\n','')); elif(parsed[0]=="sleep"): time.sleep(int(parsed[2])) else: print "\n\t[!] Comando invalido\n" #cerramos el descriptor fd.close()
Entradas relacionadas:

Remmina: cliente de escritorio remoto para Linux

mRemoteNG, un terminal avanzado conexiones remotas en Windows

MobaXterm: terminal para Windows con cliente SSH y SFTP

Escritorio Remoto de Chrome para controlar tu PC desde cualquier lugar

Las 20 mejores herramientas de Kali Linux para 2025

La primera versión de Kali Linux de 2025
Enviar por correo electrónico
Escribe un blog
Compartir en X
Compartir con Facebook
Compartir en Pinterest
9 comentarios :
Ya te lo dije, es un bonito código, aunque yo le agregaría algún try/except, por si las moscas :)
Saludos
Excelente!! Lo pruebo otro día xD
Pero como dice Nov, por si acaso y try catch xD
El intérprete de python es sabio y si algo muere te avisa, para que molestarme yo!?!? :p
Buen código ;) A ver si lo puedo usar algún día.
Y sí, el intérprete de python es muy sabio :)
Saludos,
Farresito
sos un genio te admiro mucho tus cosas la ago siempre sos un genio genio idolo
Esta buena la info... trate de conseguir una version de DVL pero de la web oficial no pude. Sabes de donde puedo hacer DD?
ola
Publicar un comentario
Los comentarios pueden ser revisados en cualquier momento por los moderadores.
Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.
Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.