3.5 KiB
BProxy
BProxy (Bottler Proxy)
Tabla de contenidos
Requisitos
Debe instalar gcc y make. Estos se encuentran disponibles en el repositorio de la vasta mayoría de distribuciones de Linux/macOS.
Compilación
Para compilar todos los archivos se debe hacer:
make all
Ejecución
Ahora, tendrá dos ejecutables: client
y socks5d
.
El servidor por defecto utilizará un TOKEN que debe ser una env
variable. Por ejemplo, puede configurar una mediante:
export BPROXY_TOKEN=0x0FF1CEDEADB00B1E
Si no se encuentra una token al momento de ejecutar el server
el mismo terminará con error.
Ahora, puede correr el server
y luego, si desea hacer alguna configuración, conectarse con el client
.
./socks5d ${PARAMS}
y en otra terminal
./client ${PARAMS}
Casos de uso
Se mostrarán dos casos típicos de uso del servidor.
Aquí se tiene al servidor proxy corriendo en 127.0.0.1:1080 y se utiliza a este para conectarse a 192.168.10.120:110 (una PC en la misma subred corriendo un servidor POP3 local). Además, se está autenticando con el usuario user:pass
.
./socks5d -u user:pass
ncat -C -v --proxy 127.0.0.1:1080 --proxy-type socks5 192.168.10.120 110 --proxy-auth user:pass
Por otro lado, aquí se usó curl
para acceder a http://api.ipify.org mediante el proxy (también corriendo en la misma IP que el ejemplo anterior).
./socks5d -u user:pass
curl -x socks5://user:pass@127.0.0.1:1080 http://api.ipify.org
En este caso se quiere obtener la cantidad de páginas de usuarios que hay en el servidor proxy, mediante -L se especifica la direccion IP del servidor de configuración (por defecto 127.0.0.1), con -P se especifica el puerto (por defecto 8080). Una vez que se obtiene la cantidad de páginas se le pide el listado de usuarios pertenecientes a la 2da página, en caso de que el servidor no cuente con usuarios suficientes para tener 2 páginas, imprimirá un error especificando que el valor pasado no es válido. En cambio, si se cuentan con usuarios suficientes se listarán separados por un '\n'
./client 1148926835748244254 -L 192.168.10.119 -P 8100 -f
./client 1148926835748244254 -L 192.168.10.119 -P 8100 -u 2
Testeos
En orden de realizar un análisis estático del sistema usted debe tener instalado cppcheck y pvs-studio. Luego, puede correrlos con:
make test
Por último, si quiere hacer un análisis dinámico (usando valgrind) puede hacerlo mediante:
valgrind ./socks5d
Limpieza
Si desea borrar los archivos creados luego de la compilación (y los testeos si se hubiesen corrido) debe correr:
make clean
Documentación
Debe notar que el informe y el rfc del protocolo BCP se encuentran en la carpeta docs/
.
Autores
Bottler:
- Barmasch, Juan Martín (61033)
- Bellver, Ezequiel (61268)
- Lo Coco, Santiago (61301)