Respuestas extrañas de un servidor HTTP desconocido

8

Noté un dispositivo desconocido al escanear mi red inalámbrica local. Tenía dos puertos TCP abiertos (¿escuchando?); TCP/80 ( http ?) & TCP/443 ( https ?).

En un esfuerzo por identificar el dispositivo desconocido; Ejercí algunas técnicas básicas para capturar pancartas, que proporcionaron algunos comentarios extraños:

root@localhost:~# telnet 10.1.1.28 80
Trying 10.1.1.28...
Connected to 10.1.1.28.
Escape character is '^]'.
HEAD / HTTP/1.1
@Q�0�njs-k��'Y���s��N��E2R�S������d���aw��
s�Y�/u"�'QN���I�eRA~W

Connection closed by foreign host.

- - -

root@localhost:~# telnet 10.1.1.28 80
Trying 10.1.1.28...
Connected to 10.1.1.28.
Escape character is '^]'.
GET / HTTP/1.1

HTTP/1.0 404 Not Found

Connection closed by foreign host.

- - -

root@localhost:~# telnet 10.1.1.28 80
Trying 10.1.1.28...
Connected to 10.1.1.28.
Escape character is '^]'.
HEAD / HTTP/1.1
"�))!���]D�7�ב�����┴�IL&�┬��#�-�zp�,o�������c��D����ל]�h����
                                                                @�.GLMC��2{���

Connection closed by foreign host.

¿Cuáles son estas respuestas extrañas?
¿Qué significan?

    
pregunta tjt263 07.05.2016 - 10:19
fuente

1 respuesta

5

Si insiste en hablar HTTP a través de telnet, un servidor HTTP adecuado no le responderá antes de que le envíen dos líneas de línea consecutivas, lo que finalizará su solicitud de manera efectiva:

GET / HTTP/1.0
<empty line>

Si el servicio comienza a responderle antes de enviar la línea vacía, no habla el HTTP correcto y puede ser algo completamente distinto. Yo sugeriría usar una herramienta como cURL para asegurar el uso correcto del protocolo. Aquí hay un ejemplo:

[root@vostok ~]# curl --dump-header - --silent http://127.0.0.1/
HTTP/1.1 404
Server: nginx
Date: Wed, 11 May 2016 07:16:15 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
Expires: Sat, 26 Jul 1997 05:00:00 GMT
Last-Modified: Wed, 11 May 2016 07:16:15 GMT
Cache-Control: no-store, no-cache, must-revalidate
Cache-Control: post-check=0, pre-check=0
Pragma: no-cache

También puede ser un servicio HTTPS escuchando en un puerto no estándar (como el puerto 80, el puerto HTTP estándar). Pruebe el comando cURL anterior con el protocolo y el puerto especificados explícitamente en la URL de esta manera: enlace

Puede que no sea HTTP o HTTPS en absoluto, sino algún otro servicio habilitado para SSL. Si quiere probar eso, podría usar OpenSSL para abrir una conexión tipo telnet habilitada para SSL:

openssl s_client -host 127.0.0.1 -port 443

Si de hecho está habilitado para SSL, obtendrás todo tipo de información, incluyendo detalles sobre el certificado utilizado.

¡Buena caza! :-)

    
respondido por el Saustrup 11.05.2016 - 09:22
fuente

Lea otras preguntas en las etiquetas