-
Enviar payload a un socket desde la terminal de Debian
Si desde Debian GNU/Linux queremos enviar un payload a un servicio que tiene un socket abierto debemos saber que podemos hacerlo directamente desde la terminal con printf (o echo) pipeados hacia netcat:
printf "\x00\x01\x00\x00\x00\x01\x01\x11" | nc 192.168.1.3 502echo -ne "\x00\x01\x00\x00\x00\x01\x01\x11" | nc 192.168.1.3 502Ambas líneas envían un payload binario en hexadecimal, pero si el envío del payload lo hacemos con echo -ne deberemos saber que echo no siempre maneja bien secuencias nulas (\x00). En el caso de que el payload lleve muchas secuencias nulas, es preferible enviar con printf.
Si no tenemos o no podemos instalar netcat, podemos hacer lo mismo con bash, dado que bash tiene habilitado /dev/tcp (sh no lo tiene):
exec 3<>/dev/tcp/192.168.1.3/502; echo printf "\x00\x01\x00\x00\x00\x01\x01\x11" >&3Si no tenemos bash ni netcat, pero tenemos python:
python3 -c 'import socket; s=socket.socket(); s.connect(("192.168.1.3",502)); s.send(bytes.fromhex("0001000000010111"))'Eso sí, todas estas opciones abren un socket y envían el payload, pero no lo cierran. Si el lado opuesto no lo cierra, el socket quedará abierto y deberemos cerrarlo con Ctrl + C.
Los hacks de hacks4geeks son minitutoriales rápidos pensados para geeks con conocimiento informático avanzado. Si no entiendes o no consigues ejecutar un hack de esta web considera suscribirte a Premium para solicitar asistencia sobre el mismo.