Bottler Proxy
Go to file
Santiago Lo Coco b503ad1204 Finish server + client implementation (and fix bugs)
Co-authored-by: Ezequiel Bellver <ebellver@itba.edu.ar>
Co-authored-by: Juan Barmasch <jbarmasch@itba.edu.ar>
2022-06-20 20:55:57 -03:00
docs Finish server + client implementation (and fix bugs) 2022-06-20 20:55:57 -03:00
include Finish server + client implementation (and fix bugs) 2022-06-20 20:55:57 -03:00
src Finish server + client implementation (and fix bugs) 2022-06-20 20:55:57 -03:00
.gitignore Fix lots of bugs and add dissector 2022-06-18 16:50:57 -03:00
LICENSE.md Add initial files 2022-05-28 15:34:03 -03:00
Makefile Finish server + client implementation (and fix bugs) 2022-06-20 20:55:57 -03:00
README.md Finish server + client implementation (and fix bugs) 2022-06-20 20:55:57 -03:00

README.md

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

Autores

Bottler:

  • Barmasch, Juan Martín (61033)
  • Bellver, Ezequiel (61268)
  • Lo Coco, Santiago (61301)