Autor Tema: Back Orifice 2000 [Historia]  (Leído 398 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Rock Lee

  • Administrador
  • *
  • Mensajes: 1118
    Ingreso: Enero de 2014
  • Sexo: Masculino
  • ar
  • Digitalizando tu Mundo
    • Ver Perfil
    • La nueva era del conocimiento
Back Orifice 2000 [Historia]
« on: 31 Octubre de 2016, 02:38 pm »
Bueno buscando viejas cosas encontré algo que me pareció bastante bueno y nunca esta de mas saber un poco de historia, lo se seguro dirán dame algo actual porque aprender algo ya no sirve para nada no vale la pena, pero tener una base como se fueron dando las cosas y por que llegamos hasta este punto. Parece algo tonto pero muchas veces genera ideas simples (aveces cuesta mucho realmente aunque no lo crea mas de uno) sobre varias cosas que capas le dábamos mil vueltas sin llegar a nada!


Back Orifice - Sistema de administración remota v1.20 30 de julio de 1998

Back Orifice es una aplicación cliente-servidor que permite al software cliente monitorizar, administrar, y realizar otras acciones de red y multimedia en la maquina que esta ejecutando el servidor. Para comunicarse con el servidor, tanto el cliente basado en texto como en gráficos pueden ejecutarse en cualquier maquina con Microsoft windows (El servidor solo funcionaba en Windows 95/98).

Este paquete contenía:
  • bo.txt (documentación en ingles)
  • bo_esp.txt (documentación en español)
  • Plugin.txt (documentación de programación de extensiones para el servidor)
  • boserve.exe (Servidor Auto-Instalable de Back Orifice)
  • bogui.exe (Cliente gráfico para BO)
  • bocliente (cliente en modo texto)
  • boconfig.exe (utilidad para configurar el nombre del ejecutable , el puerto,el password y la extensión predeterminada para el servidor BO)
  • melt.exe (un descompresor)
  • frezze.exe (un compresor)

Para instalar el servidor, este tan solo necesitaba ser ejecutado. Cuando el ejecutable del servidor se ejecuta, se instala a si mismo, y se borra.

Esto era útil en entornos de red, donde el servidor puede ser instalado en una maquina, simplemente copiando el ejecutable del servidor en el directorio Startup (o Inicio, en el caso español), donde era instalado y luego borrado. Una vez que el servidor estaba instalado en una maquina, se iniciara cada vez que la maquina re-arranque.

Para actualizar una copia de BO de forma remota, simplemente mandaba la nueva versión del servidor al host remoto, y usaba el comando Process spawn para ejecutarlo. Cuando se ejecutaba, el servidor automaticamente mataba cualquier proceso que se llame como el programa a instalar, e intentaba instalarse sobre la vieja versión, se auto ejecutaba desde su posición de instalación, y borraba el ".exe" que acaba de ejecutar.

Antes de la instalación, algunos de los aspectos del servidor podían ser configurados. El nombre de fichero que usaba el BO para instalarse a si mismo, el puerto en el que estará escuchando el servidor, y el password/contraseña usado para encriptar podían ser configurados con la utilidad boconf.exe. Si el servidor no se configuraba, usaría el puerto 31337, sin password (aunque las comunicaciones seguían estando encriptadas), y se instalaba a si mismo como ".exe" (espacio punto exe)

El cliente se comunicaba con el servidor vía paquetes UDP encriptados. Para una comunicación exitosa, el cliente necesitaba mandar al mismo puerto que estaba escuchando el servidor, y la password/contraseña del cliente debía ser la misma con la que esta configurado el servidor.

El puerto al que el cliente mandaba sus paquetes podía ser establecido con la opción -p tanto en el cliente gráfico como en el de texto. Si los paquetes estaban siendo filtrados o existía un firewall, puede que era necesario mandar desde un puerto que no era filtrado y/o bloqueado. Ya que las comunicaciones por UDP son sin conexión, los paquetes podían ser bloqueados tanto en su camino hacia el servidor como en la vuelta hacia el cliente.

Las acciones realizadas en el servidor mandando comandos desde el cliente a una dirección IP especifica. Si la maquina servidora no estaba en una dirección IP fija, puedes localizarla utilizando el barrido o los comandos de barrido "sweep" en los cliente usando el dialogo "ping..." o poniendo una dirección IP destino del tipo "1.2.3.*". Si se barre una lista de subredes, cuando una maquina con el servidor instalado responde, el cliente mirara en el mismo directorio que contiene la lista de subredes y mostrara la primera linea del primer archivo que encuentre con el nombre de archivo de la subred.

Las ordenes implementadas en BO se listaban abajo. Algunos de los nombres podían ser diferentes entre la versiones de texto y gráfica de los clientes, pero la sintaxis era misma para prácticamente todos los comandos. Se tenia mas informacion sobre cualquier orden usando el comando "help". El cliente gráfico ponía las etiquetas de los dos campos parámetros con una descripción de los argumentos que cada orden acepta, cuando se selecciona ese comando de la lista de ordenes Command List

Si parte de la informacion requerida no se proporciona con la orden, el servidor devolvería el error "Missing data". Las ordenes de BO son:

Cliente Gráfico/Cliente Texto
  • App add/appadd: Lanza una aplicación basada en texto en un puerto tcp. Esto permite que tengas el control de una aplicación de texto o MS-DOS desde una sesión de telnet por ejemplo, command.com
  • App del/appdel: Hace que una aplicación deje de esperar conexiones
  • Directory create/md: Crea un directorio
  • Directory list/dir: Lista los ficheros y directorios. Debes especificar un comodín si quieres que mas de un fichero sea listado
  • Directory remove/rd: Borra un directorio
  • Export add/shareadd: Crea una partición en el servidor. El icono de directorio o unidad exportado no se ve modificado por la el icono de la mano
  • Export delete/sharedel: Borra una partición
  • Exports list/sharelist: Lista los nombres de las particiones actuales, la unidad o directorio que esta siendo compartido, el acceso para esta partición, y el password/contraseña para esta partición
  • File copy/copy: Copia un fichero
  • File delete/del: Borra un fichero
  • File find/find: Busca en un árbol de directorios los ficheros que correspondan con los comodines especificados
  • File freeze/freeze: Comprime un fichero
  • File melt/melt: Descomprime un fichero
  • File view/view: Ver el contenido de un fichero de texto
  • HTTP Disable/httpoff: Deshabilita el servidor HTTP
  • HTTP Enable/httpon: Habilita el servidor HTTP
  • Keylog begin/keylog: Graba las pulsaciones de tecla en la maquina servidora a un fichero de texto. El log muestra el nombre de la ventana en la que fue introducido el texto
  • Keylog end: Parar la captura de teclado. Para terminar la captura desde el cliente texto, usa "keylog stop"
  • MM Capture avi/capavi: Captura vídeo y audio (si se puede) desde cualquier dispositivo de captura de vídeo disponible a un fichero avi
  • MM Capture frame/capframe: Captura un fotograma de vídeo y lo graba en un fichero bmp
  • MM Capture screen/capscreen: Captura una imagen de la pantalla de la maquina servidora en un fichero bmp
  • MM List capture devices/listcaps: Muestra una lista de los dispositivo de captura de vídeo.
  • MM Play sound/sound: Toca un fichero wav
  • Net connections/netlist: Muestra las conexiones de entrada y salidas a la red
  • Net delete/netdisconnect: Desconecta la maquina servidora de un recurso de red
  • Net use/netconnect: Conecta la maquina servidora a un recurso de red
  • Net view/netview: Ve todos los interfaces de red, dominios, servidores, y particiones accesibles desde la maquina servidora
  • Ping host/ping: Ping a la maquina. Devuelve el nombre de la maquina y el numero de versión del BO que tiene instalado
  • Plugin execute/pluginexec: Ejecuta una extensión BO. Ejecutar funciones que no se ajusten al interfaz de extensiones de BO ,causara el cuelgue del servidor
  • Plugin kill/pluginkill: Le dice a una extensión que pare y se retire
  • Plugins list/pluginlist: Lista las extensiones activas o el valor de retorno de una extensión que ha salido (terminado/matado)
  • Process kill/prockill: (Mata) Terminar un proceso
  • Process list/proclist: Muestra los procesos en ejecución
  • Process spawn/procspawn: Ejecuta un programa. Desde el gui, si el segundo parámetro se especifica,el proceso sera ejecutado como un proceso normal, visible. Si no, sera ejecutado escondido o camuflado
  • Redir add/rediradd: Redirecciona las conexiones TCP entrantes o paquetes UDP a otra dirección IP
  • Redir del/redirdel: Para la redireccion de puerto
  • Redir list/redirlist: Lista todas las redirecciones de puerto
  • Reg create key/regmakekey: Crea una clave en el registro. Nota: Para todos los comandos de registro, no especificar los \\ del final para los valores del registro
  • Reg delete key/regdelkey: Borra una clave del registro
  • Reg delete value/regdelval: Borra un valor del registro
  • Reg list keys/reglistkeys: Lista las subclaves de una clave del registro
  • Reg list values/reglistvals: Lista los valores de una clave de registro
  • Reg set value/regsetval: Establece un valor para una clave de registro. Los valores son especificados como un tipo seguidos de una coma, y después el dato del valor. Para valores binarios (Tipo B) el valor es una serie de dos dígitos con valores hexadecimales. Para valores "DWORD" (tipo D) el valor es un numero decimal. Para valores de cadena (tipo S) el valor es una cadena de texto
  • Resolve host/resolve: Resuelve la dirección IP de una maquina relativa a la maquina servidor. El nombre de la maquina puede ser un nombre Internet o de red local
  • System dialogbox/dialog: Crea una caja de dialogo en la maquina con el texto especificado , y un botón "ok". Puedes crear tantas cajas de dialogo como quieras, ellas sencillamente irán en cascada frente a la caja anterior
  • System info/info: Muestra informacion del sistema de la maquina servidora. La informacion mostrada incluye el nombre de la maquina, usuario actual, tipo de CPU, memoria total y disponible, informacion de la versión de Windows, e informacion sobre las unidades (fijas, CD-rom, removible, remota), y para las unidades fijas, el tamaño y espacio libre
  • System lockup/lockup: Bloquea la maquina servidora
  • System passwords/passes: Muestra las passwors/contraseña en cache para el usuario actual y la password/contraseña de su salvapantallas. Pueden tener basura enganchada al final
  • System reboot/reboot: Apaga la maquina y la reinicia
  • TCP file receive/tcprecv: Conecta el servidor a una dirección IP/Puerto y guarda cualquier dato recibido de esa conexión al fichero especificado
  • TCP file send/tcpsend: Conecta la maquina servidora a una IP/Puerto especifico y manda el contenido de un fichero especifico, luego desconecta.

Nota 2: Para transferencias TCP de ficheros, la dirección IP y el puerto deben estar escuchando antes de que el comando de fichero TCP sea mandado, o fallara. Un utilidad para transferencias de este tipo es netcat, que esta disponible tanto para Unix como para Win32 Los ficheros pueden ser transferidos desde el servidor usando el comando TCP dile send, y netcat con una sentencia del tipo: netcat -l -p 666 > fichero. Los ficheros pueden ser transferidos al servidor usando el comando TCP file receive command y netcat con una sentencia del tipo: netcat -l -p 666 < fichero.

La versión Win32 de netcat no desconecta ni sale cuando encuentra el fin del fichero de entrada. Después de que el contenido del fichero ha sido transferido, termina el netcat con ctrl-c o ctrl-break.


BOConfig
BOConfig.exe te permitía configurar las opciones para un servidor BO antes de que se instale. Te preguntaba el nombre del ejecutable, cual es el nombre que BO que usaría para instalarse en el directorio del sistema. No tiene porque terminar en .exe, pero no agregara .exe si no le das una extensión de fichero. Después te preguntaba por una descripción del fichero .exe si no le das una extensión exe que describirá el exe en el registro donde sera iniciado durante el arranque. Entonces preguntaba por el puerto por donde el servidor esperara los paquetes, y una password/contraseña para la encriptacion. Para comunicarse el servidor con el cliente, el cliente debía tener el/la mismo/a password/contraseña (Podia ser nula). Después preguntaba por la extensión para ejecutar al iniciar. Esto era una DLL y nombre de función, del tipo "DLL:_Funcion" de una extensión de BO que se ejecutara automaticamente cuando el servidor se inicie también podía ser nula. Entonces, te permitía entrar cualquier argumento que querías pasarle a la extensión en arranque. También podía ser nula. Y finalmente , te preguntaba por la localización del fichero que seria unido al servidor, que era escrito el directorio del sistema cuando el servidor se iniciaba; este puede ser una extensión del BO que se ejecutaba automaticamente. El servidor funcionaba sin ser configurado, por defecto, comunica al puerto 31337 sin password/contraseña, e instalandose como " .exe"


Back Orifice Eliminator
Era usualmente usado para poder eliminar el "Back Orifice" de la computadora y se realizaba instalando "Back Orifice Eliminator", se bajaba y ejecutaba este archivo ejecutable y autodescomprimible (boe.exe). Que extraía el "Back Orifice Eliminator" en el disco duro (se podia especificar donde hacerlo), y la aplicación era ejecutada automáticamente la documentación o guía. A partir de este momento, el "Back Orifice Eliminator" se ejecutaba automáticamente cada vez que iniciaba la computadora. El programa podía ser habilitado o deshabilitado a opción del usuario en cualquier momento usando el menú.


Back Orifice Eradicator 1.00
Para limpiar el Back Orifice con un simple click era necesario hacer click en "Memory Scan" para ver si el server está corriendo en la computadora. Si era así, el mismo era removido y detenido de inmediato. Se recomendaba revisar de inmediato el sistema y proceder a eliminarlo si existía, tal archivo ya que algunos lo usaban con otro tipo de intenciones.



Opinión personal: Bueno luego leer y tratar de explicar lo mejor posible de seguro lo notaron sino se los explicare fácilmente, el principio no cambio mucho ya que siempre hay un Cliente-Medio-Servidor aunque todo avance se sigue manteniendo la misma idea solo que el "medio" utilizado va mutando según la situación lo requiera y esta puede ser aprovechada de buena manera como utilizada para otros fines. Ahora seguro entenderán un poco mas que ya sea viejo en varios aspectos se puede tomar como una buena referencia para poder usarlo en nuestro propio beneficio :) quedando al libre albedrío de cada uno como usarlo!

Si quieren tener un poco mas de informacion pueden visitar Wikipedia siempre da un buen puntapié para cualquier investigación, no siempre es correcto lo que dice pero da un panorama general para saber por donde empezar a buscar ;D y luego ir buscando/encontrando paginas especializadas con buena reputación o con el conocimiento bien fundamentado, es decir, no es lo mismo lo que diga un abogado a una universidad de muchos años especializada en abogacía (medio raro mi comparación pero se comprende ¿no?). Bueno para ir cerrando espero les gustara este pequeño pedazo de historia y voy a ver que informacion mas puedo sacar del baúl que tenga un eco conceptual o practica 8)


Saludos Familia!