Detectar si un proxy es HTTP o SOCKS

Detectar si un proxy es HTTP o SOCKS

Basándome en una larga búsqueda en la red, descubrí que SOCKS utiliza un protocolo de protocolo de enlace para informar al software proxy sobre la conexión que el cliente está intentando establecer y luego actúa de la manera más transparente posible, mientras que un proxy HTTP puede interpretar y reescribir encabezados. . Y también podemos usar ambos.

Lo que quiero saber es, ¿cómo podemos saber si el proxy es HTTP, SOCKS4, SOCKS4a o SOCKS5? Existe alguna manera de averiguarlo? Y puedo suponer que no podemos diferenciarlo según el número de puerto porque hay muchos números de puerto disponibles para cada uno de los tipos. Ayúdenme a diferenciar el proxy según HTTP o SOCKS.

Respuesta1

Pruebe este pequeño script en Python:

#!/usr/bin/python

import struct
import socket
import sys


try:
        server = sys.argv[1]
        port = sys.argv[2]
except:
        print "Usage: server port"

try:
        sen = struct.pack('BBB', 0x05, 0x01, 0x00)
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.connect(( server , int( port )  ))
        s.sendall(sen)
        data = s.recv(2)
        s.close()
        version, auth = struct.unpack('BB', data)
        print 'server : port  is  ', server, ':', port, '; varsion: ', version
except Exception as e:
        print e

Respuesta2

Podrías intentar usar la herramienta 'nmap' para intentar detectar la versión del servicio en ese puerto.

Por ejemplo:

nmap -sV -p{port} {server}

En el siguiente ejemplo, puede ver que es un proxy HTTP (a diferencia de SOCKS):

my-desktop ~ # nmap -sV -p8080 192.168.3.40

Starting Nmap 6.40 ( http://nmap.org ) at 2016-02-23 10:46 CST
Nmap scan report for 192.168.3.40
Host is up (0.00036s latency).
PORT     STATE SERVICE    VERSION
8080/tcp open  http-proxy Squid http proxy 3.3.8

Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 7.45 seconds

https://nmap.org/book/man-version-detection.html

información relacionada