Ejecutando comandos desde consola con PIPE y leer su salida desde Python

No Comments

Buenas como saben ando con la certificación de Offensive Security, y entre uno de los propósitos personales es el de lograr desarrollar una herramienta "script" que permita realizar auditorias de seguridad en redes inalámbricas el nombre  de dicho proyecto anda entre OWTA o WTA aun pensando y viendo que hacer, así  que como se darán cuenta el lenguaje de programación decidido para implementar es Python, el lenguaje que mas me gusta y ademas del cual quiero aprender un poco mas de lo que se mejorando que por cierto algunas cosas no me ubico pero me defiendo, estos dias estuve aprendiendo sobre los diferentes estándares relacionados a WIFI, así que en ese proceso llegue al punto de listar redes inalámbricas desde la terminal el cual verán en una próxima entrada donde muestre ya algo de funcionalidad del script ademas de la presentacion de la herramienta y lo que se desea realizar ya un detalle mas técnico. 

Así que primero se me ocurrió ejecutar dichos comandos desde Python, para que se genere un pequeño "reporte"  y logremos visualizar los datos, ya que desde la terminal es sumamente sencillo, por ejemplo


$ ps -a | grep x11


La salida de dicho comando, nos permitirá encontrar el proceso x11 o identificar gracias a grep. Lo siguiente que toco realizar fue la implementación en el script primero como prueba de concepto el cual solo ejecutaría el comando ps -a tras un par de intentos que por cierto era fallidos por error de capa 9, donde logre equivocar al llamar a proccess con doble c. 



Y el resultado es el siguiente:


Ahora si toca complicarme un poquito mas agregar el grep, ahí note algo bonito Python no me dejo usar el PIPE LINE o Tuberia, algo raro en un principio ya que esta era la primera vez que quise implementar algo así, tras revisar información del tema llegue a dar al blanco, Python no deja lanzar un comando con un PIPE porque el interprete comprende que son dos comandos distintos dos procesos que deben de ser lanzados y enlazados de manera adecuada.

Tras ir probando y jugando ademas de renegando, ya que al terminar el pequeño script no me daba ningun resultado por una falla mía, que no estaba realizando el print del resultado "result" por lo tanto solo mostraba el mensaje de que era el Script.



Recuerden que python puede ser cambiado por el proceso que se quiera ver tras realizar el grep en este caso, para una prueba mas validadera lo que hice fue correr nmap en otra terminal y hacer los respectivo.


Ya con esto se puede decir que logre mi objetivo de implementar el PIPE desde Python, quizás aun falte algo para trabajar o mejorar así que los que andan mas tiempo con el lenguaje y puedan darme tips serán bienvenidos!

Regards,
Snifer

0 comentarios

Publicar un comentario en la entrada