?>/script>'; } ?> Ejecutar consola y comandos en tiempo real vía Luci sin necesitar 1 PC Widgets Magazine

Autor Tema: Ejecutar consola y comandos en tiempo real vía Luci sin necesitar 1 PC  (Leído 13993 veces)

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

edudi

  • Visitante
Buenas noches a todos, la verdad que cada vez alucino más con OPENWRT y todo lo que se puede hacer....y lo que me falta por descubrir....os comento porque buscando no lo he visto:

Estoy con el típico HG556a (compilación "r37937") y lo que intento es tener una especie de consola que ejecute comandos/procesos largos en tiempo real tipo "Reaver", tal como ocurre cuando abrimos x PC una consola con "Putty/conexión SSH" que vamos viendo las salidas de cualquier comando que se ejecuta y no hay que esperar a que termine del todo para ir viendo la salida de fin del proceso, tal como ocurre con "Comandos Propios" vía Luci de esta compilación "r37937". La cual si ejecutas un comando, hasta que no termina del todo no te devuelve la respuesta y parece como si se hubiera quedado trabado, pero realmente es que no ha acabado con el proceso y por eso no muestra nada (chiquita incertidumbre una espera que no sabes si merece la pena esperar no?).

Todo esto es básicamente para ahorrar en máquinas encendidas y en WATIOS = EUROS (1x PC = 100 W hablando por lo bajo, 1x HG556a no llega a 24W ni por asomo, su transformador da como máximo 24W “12V 2A” o se quema), ya que si una máquina lo puede hacer sola, para que enciendo 2? Así que lo que busco es que el router sea autónomo y no tenga que tener un PC conectado vía SSH (putty) para que se ejecute un programa tipo el "Reaver" que puede ser muy largo (horas) su proceso y va dando salidas que si interesa saber su estado actual en tiempo real. Así cuando a mí me apetezca me conecto al router vía Luci x ejemplo con el móvil x WiFi (q tardo en hacerlo cero coma y el consumo de Watios es minúsculo) pueda ver cómo va el proceso.

Vaya, que busco una consola interna que la ejecute el propio Router y sea como un putty/SSH en tiempo real consultable vía Luci (algo así sucede con el transmission “gestor de torrents” y que podemos ver por Luci como van nuestras descargas de torrents. ¿Se imaginan poner a bajar torrents y que no te enteres de si están operativos, descargando o no, cuánto porcentaje llevan, cuales están bajados y cuales no, etc…..pues eso es lo que busco: una consola en tiempo real vía Luci, ¿Existe…?)

Creo que me he extendido más de la cuenta, pero es a ver si se me entiende. Espero que sí.


Un saludo y señores, esto del OPENWRT awita.....chiquita bomba.....(y eso que soy bastante principiante, pero ya he conseguido cosas que se cuentan y no se creen casi)


GURNAI a todos


Desconectado jar229

  • Moderador
  • *
  • Mensajes: 4608
Re:
« Respuesta #1 en: 22-03-2014, 10:49 (Sábado) »
Que yo sepa, eso que buscas no existe. Lo más cercano es lo que comentas de luci-app-commands.

Pero ... puedo estar equivocado.

Enviado desde mi CUBOT GT99


Pteridium

  • Visitante
Re: Ejecutar consola y comandos en tiempo real vía Luci sin necesitar 1 PC
« Respuesta #2 en: 22-03-2014, 11:34 (Sábado) »
Que yo sepa, eso que buscas no existe. Lo más cercano es lo que comentas de luci-app-commands.

Pero ... puedo estar equivocado.
jar229 tiene razón: de consola por web parece que de momento no hay nada.
Quizá lo que buscas sea screen, que se puede instalar o compilar.


edudi

  • Visitante
Re: Ejecutar consola y comandos en tiempo real vía Luci sin necesitar 1 PC
« Respuesta #3 en: 22-03-2014, 12:01 (Sábado) »
Muchas gracias a los dos, el screen parece q es lo q busco, en una respuesta del link de screen hablan tb del "tmux" como semejante. Tendré q exarle un rato bueno cuando vuelva de vacaciones. Ojalá tal como describen parece q se puede dejar una sesión SSH haciendo un proceso, dejar la sesión, reconectar a posteriori y ver como continúa el proceso en ejecución q dejamos anteriormente haciéndose. Habrá q lanzarse al charco. Ya lo reflipante es q si ese es su mecanismo, tb permite abrir varias "ventanas" y moverte entre ellas (esto es mucho más de lo q pido, pero más vale q sobre a q falte).

Les informaré sobre los avances y pruebas q vaya obteniendo.


Muchas gracias, me sacáis de cada duda q flipo con las rápidas respuestas y lo certeras q son, a parte de con las ganas q lo hacéis.

Saludos


Desconectado jar229

  • Moderador
  • *
  • Mensajes: 4608
Re: Ejecutar consola y comandos en tiempo real vía Luci sin necesitar 1 PC
« Respuesta #4 en: 22-03-2014, 12:17 (Sábado) »
Screen hace lo que pides y más, pero no puedes lanzarlo/recuperarlo desde LuCi.

Yo lo uso desde hace mucho tiempo para ejecutar mldonkey, rtorrent, etc.

Se comenta algo (sólo por encima) de su uso en el hilo del HG553

Bien visto, Pteridium  ;)


espeltron

  • Visitante
Re: Ejecutar consola y comandos en tiempo real vía Luci sin necesitar 1 PC
« Respuesta #5 en: 22-03-2014, 13:03 (Sábado) »
No es lo que buscas, pero es lo que te gustaria:
https://www.youtube.com/watch?v=cUwzZe2wocU
Este es el xwiterm, basado en PHP y ajax.
Se que estas buscando algo parecido para luci, el cual esta basado en lua a traves de cgi.

Solo con HTML no creo que haya nada, ya que la interactividad permanente la consiguen con javascript, php, etc.

Hay mas:
http://wterminal.appspot.com/

Hay otros basados en PHP y Javascript:
http://phpterm.sourceforge.net/

Y mas si buscas en google.

PHP:

EL "adecuado" para estos routers seria esto, que solo usa un archivo "terminal.php":
https://github.com/pedra/terminal
Puedes ver como funciona aqui:
https://www.youtube.com/watch?v=xNgSbIgFQro
Es simple y sencillo de instalar.

No se si te queda memoria suficiente para instalar PHP en el router, en tal caso tendrias que usar una memoria USB y extroot.
Tampoco se la lentitud del PHP, pero es posible que para aplicaciones sencillas te funcione bien.

Para instalar php mira esta pagina:
http://wiki.openwrt.org/doc/uci/uhttpd

Haserl:

Otras interfaces, como Gargoyle usan haserl y javascript en el lado del cliente:
http://wiki.openwrt.org/doc/howto/webinterface.overview
La funcionalidad es similar a lua:
http://haserl.sourceforge.net/
http://haserl.sourceforge.net/manpage.html
Un pequeño programa interesante escrito en haserl:
https://forum.openwrt.org/viewtopic.php?pid=6063#p6063

Haciendo funcionar el programa anterior sobre una RPi, sobre un router seria algo similar:
https://www.dropbox.com/s/93uw1xgzf9xyymo/modulos.cgi
Se ha tenido que editar manualmente "/lib/modules/2.4.0/" y poner la carpeta correspondiente de mi sistema operativo "/lib/modules/3.10.25+/".

En Apache2 la carpeta /cgi-bin/ esta normalmente redirecionada mediante un alias a /usr/lib/cgi-bin/
Y hay que darle permisos de ejecucion a modulos.cgi:
sudo chmod +x modulos.cgi

Abriendo el navegador se ve esto:


Lo bueno del haserl es su reducido tamaño:
Como paquete trunk:
http://downloads.openwrt.org/snapshots/trunk/brcm63xx/packages/haserl_0.9.29-1_brcm63xx.ipk

Asi que no seria complicado hacer un pequeño script que mostrara la informacion que buscas usando haserl, basandote en el ejemplo anterior y currandotelo un poco.
Tambien puedes trasladar el programa a lua, bash o lo que te de la gana compatible con cgi, si es que no quieres usar haserl.

No se:
- el tiempo que mantiene el apache, uhttp o el php la sesion abierta para que el mismo terminal te aparezca tras una apertura posterior de la pagina web, sin cerrar la aplicacion que se esta ejecutando y sin hacer logout.
- si la actualizacion de las paginas del terminal las realiza concurrentemente durante el proceso en ejecucion o cuando finaliza este.

Como posible solucion seria redireccionar la salida del terminal, en vez de a la pantalla, a un archivo de texto.
Y permitir la visualizacion de este archivo de texto temporal a traves de la pagina web.
 
./programilla > /tmp/programilla.log

Si consigues algo comenta resultados.

Saludos
espeltron

« Última modificación: 22-03-2014, 14:23 (Sábado) por espeltron »

edudi

  • Visitante
Re: Ejecutar consola y comandos en tiempo real vía Luci sin necesitar 1 PC
« Respuesta #6 en: 22-03-2014, 17:25 (Sábado) »
Buenas, ....antes q nada mil gracias x las implicaciones .......me acabáis de dar 27 vueltas y media en conocimientos.... He estado mirando todo lo q me habéis escrito y la verdad: todo es ponerse pero me da q se me escapa un poco el tema (no es xq pida q me lo deis todo mascadito y en bandeja).

Tengo q puntualizar dos cosas (veo q se me entendió anteriormente, pero comento para estrechar el cerco)

1° y más importante es que comenté Luci como GUI cómoda pero realmente sólo necesito un único terminal que haga el proceso (reaver) y que al desconectarme continúe haciendo su trabajo y pasado un tiempo volver a conectarme y ver como sigue (tipo un VNC viewer a un terminal del router).

2° Simple pero se aproxima bastante es lo q comenta "espeltron" de lanzar el programa y q vaya guardando su salida en un archivo de texto. Creo q una opción sería entonces, lanzar vía LUCI en "comandos propios" el reaver con sus parámetros y poner luego "> /tmp/reaver.log"

Sólo me falta probarlo a ver si cuando cierro sesión en LUCI el comando continúa ejecutándose y guardando su proceso en el archivo de texto indicado para poderlo ver pasado un tiempo, ya sea via LUCI  o realizando una sesion SSH y ver el contenido del archivo.........Os cuento desde q lo haga.


Si ven q me estoy yendo x las nubes o ven opciones más simples o eficaces.....comenten, yo la verdad q tp se tanto de programación, Linux u OPENWRT. Pero estoy abierto a probar de todo pero tengo que admitir que tengo mis limitaciones a nivel programación, como moverme por todo lo que me comentais, etc.

(Tuve que modificar este último párrafo xq el teclado virtual de la tablet se quedó pa lla....estoy modificandolo por el PC)


Si ven que me están diciendo exactamente lo que quiero y yo no lo veo (xq no me doy cuenta) no duden en decírmelo, puede que no sepa la magnitud y exactitud de la info que me dais.


Saludos y gracias de nuevo

« Última modificación: 22-03-2014, 17:42 (Sábado) por edudi »

edudi

  • Visitante
Re: Ejecutar consola y comandos en tiempo real vía Luci sin necesitar 1 PC
« Respuesta #7 en: 23-03-2014, 01:35 (Domingo) »
CONSEGUIDOOOOOOOOO !!!!!!!!!!!!!!   >:( >:( >:(


Ole, Ole y ole 40 veces....... con el "screen" vía SSH (no por LUCI como pretendía en un primer momento) se puede hacer perfectamente pudiendo cerrar la sesión y volver a conectar cuando se quiera, el proceso sigue en segundo plano.

INCREIBLE,,,,,con un canto en los dientes hasta quedarme cojo.

A ver, voy posteando la historia en el siguiente mensaje (no sé si esta noche me dará tiempo de subirla)...quería informarles del éxito.



Muchas gracias a todos!!!


miniyo88

  • Visitante
Re: Ejecutar consola y comandos en tiempo real vía Luci sin necesitar 1 PC
« Respuesta #8 en: 25-03-2014, 23:53 (Martes) »
Si tienes un movil androi hay un porron de clientes ssh, yo uso JuiceSSH que trae teclas especiales como las de funcion f1, f2, f3..  TABULADOR para autocompletar, flechas de direccion ... con eso y screen lo tienes todo hecho  ;D


edudi

  • Visitante
Re: Ejecutar consola y comandos en tiempo real vía Luci sin necesitar 1 PC
« Respuesta #9 en: 26-03-2014, 01:09 (Miércoles) »
Yeahhhh, .... ahí te vi fino. Estos días estoy fuera de vacaciones pero ya me estaba planteando cómo hacer por SSH algo semejante para las combinaciones de teclas q usa el screen. Por desgracia son CTRL+A y luego K si no recuerdo mal para desconectar y así un par de ellas. Ojalá q con el JuiceSSH pueda configurar para  esas teclas en concreto.

Me imagino q poniendo el router en modo AP wifi pueda acceder a el y poner la tarjeta wifi en modo monitor para poder usar el "Reaver"......todo será probar, pero me da q si.

Me alegra ver q se animan con la historia, yo me quedé tan agusto viendo q conseguí (con la ayuda de todos) lo q me proponía, q en estas vacaciones estoy "sin el rum rum en la cabeza"......como cuando aprobaba uno en Diciembre todas y sabías q te iba a caer la gorda en Reyes.

Por tanto, la próxima "misión" será manejar desde el móvil por SSH el screen para pilotar el router (en mi caso el HG556a pero me imagino q se extenderá a prácticamente todo lo q lleve OPENWRT)

Buenas noches señores.......chiquita jarta de cracks estáis hechos.......Saludos


Desconectado jar229

  • Moderador
  • *
  • Mensajes: 4608
Re: Ejecutar consola y comandos en tiempo real vía Luci sin necesitar 1 PC
« Respuesta #10 en: 26-03-2014, 08:26 (Miércoles) »
Si tienes un movil androi hay un porron de clientes ssh, yo uso JuiceSSH que trae teclas especiales como las de funcion f1, f2, f3..  TABULADOR para autocompletar, flechas de direccion ... con eso y screen lo tienes todo hecho  ;D

Es el que yo uso también. Y, la verdad, es que lo tiene todo  >:(


Me imagino q poniendo el router en modo AP wifi pueda acceder a el y poner la tarjeta wifi en modo monitor para poder usar el "Reaver"......todo será probar, pero me da q si.

En lugar de usar reaver, prueba con bully (busca en el foro, hay un  par de hilos que tratan el tema), obtendrás mejores resultados.

Eso sí, no esperes grandes cosas, sobre todo, si lo comparas con lo que puedes hacer con wifislax.


edudi

  • Visitante
Re: Ejecutar consola y comandos en tiempo real vía Luci sin necesitar 1 PC
« Respuesta #11 en: 28-03-2014, 18:09 (Viernes) »
 >:( >:( >:( >:( >:( >:( >:(

Vuelve el éxito a lo último que me proponía:

- El screen funciona perfectamente desde el móvil (android) con el JuiceSHH Client (x WiFi). Permite hacer combinaciones de teclas complejas como el "CTRL + A y luego D" para desengancharnos del screen y dejarlo en 2º plano haciendo el proceso que fuera que le hayamos dejado haciendo. Para pasar de 2º plano a 1º plano hay que poner:  screen -x

- El Router como AP funciona perfectamente proporcionando el WiFi al móvil y pudiendo iniciar sesión tanto por SSH como por web Luci. Así que, es posible facilitar la tarea haciendo escaneos por Luci para ver las ESSID´s y los BSSID´s para copiar y pegar en el JuiceSSH y usar el "Reaver" por ejemplo con más facilidad.

=========  CONCLUSIÓN:  TODO UN ÉXITO ========

Como esta tarde estoy con poco tiempo disponible, desde que pueda subo las capturas que prometí en su día realizando el uso del screen por SSH desde el PC (con el putty) y añadiré las que he hecho ahora mismo desde el móvil realizando el mismo proceso gracias al JuiceSSH y a todos los colaboradores en la causa de este hilo.


Pronto me pondré con el Bully para ver las mejoras que experimento con respecto al WPS, y les comento.

También no tan en breve, me podré con el aircrack y un diccionario de 100GB (alojado en un disco duro en NTFS conectado por USB al router) para ver si haya la clave de una captura de un "handshake".....esto son palabras mayores, tanto de tiempo en el proceso que requerirá el router como de ......a saber con qué me encuentro.


Les iré informado, saludos y gracias como siempre.


miniyo88

  • Visitante
Re: Ejecutar consola y comandos en tiempo real vía Luci sin necesitar 1 PC
« Respuesta #12 en: 29-03-2014, 00:45 (Sábado) »
No uses NTFS, usa una particion tipo linux ext3 o ext4 ganarás en rendimiento y no se sobrecargará tanto la cpu


edudi

  • Visitante
Re: Ejecutar consola y comandos en tiempo real vía Luci sin necesitar 1 PC
« Respuesta #13 en: 29-03-2014, 01:08 (Sábado) »
Ok, gracias, crearé una partición en EXT3 ó 4. Si he experimentado q lee muy lento el formato NTFS mi tablet android x ejemplo, no siendo así con el FAT32, pero no pensé q sobrecargara la CPU (tiene toda su lógica).

Gracias x la propuesta, saludos.


Desconectado jar229

  • Moderador
  • *
  • Mensajes: 4608
Re: Ejecutar consola y comandos en tiempo real vía Luci sin necesitar 1 PC
« Respuesta #14 en: 29-03-2014, 12:47 (Sábado) »
Ok, gracias, crearé una partición en EXT3 ó 4. Si he experimentado q lee muy lento el formato NTFS mi tablet android x ejemplo, no siendo así con el FAT32, pero no pensé q sobrecargara la CPU (tiene toda su lógica).

Gracias x la propuesta, saludos.

Pues está explica en las [FAQ] Preguntas más comunes sobre OpenWrt

Bien visto, miniyo88  ;)


edudi

  • Visitante
Re: Ejecutar consola y comandos en tiempo real vía Luci sin necesitar 1 PC
« Respuesta #15 en: 30-03-2014, 13:51 (Domingo) »
Buenas de nuevo, hoy me levanté con ganas de probar el "WASH" para que me muestre las redes con WPS activo (momentito antes de irme de comida familiar)

Usé el comando así: wash -i mon0   (x lo que he buscado esa es la sintaxis, si es no así, me podéis decir como es)

Pa mi sorpresa, me sale este error de forma repetitiva:

root@OpenWrt:~# airmon-ng


Interface       Chipset         Driver

mon0            Atheros         ath9k - [phy0]
wlan0           Atheros         ath9k - [phy0]

root@OpenWrt:~# wash -i mon0

Wash v1.4 WiFi Protected Setup Scan Tool
Copyright (c) 2011, Tactical Network Solutions, Craig Heffner <cheffner@tacnetsol.com>

BSSID              Channel  RSSI  WPS Version  WPS Locked  ESSID
--------------------------------------------------------------------------------------
[!] Found packet with bad FCS, skipping...
[!] Found packet with bad FCS, skipping...
[!] Found packet with bad FCS, skipping...



He visto en esta web, que lo usan así y al menos le sale una red y luego si le muestra el mismo error que a mi: http://www.taringa.net/comunidades/backtrack-5/5069748/Reaver-Tutorial-wpa-wpa2.html


¿Alguien me puede iluminar?

Saludos a todos.


Desconectado jar229

  • Moderador
  • *
  • Mensajes: 4608
Re: Ejecutar consola y comandos en tiempo real vía Luci sin necesitar 1 PC
« Respuesta #16 en: 30-03-2014, 14:12 (Domingo) »
wash -i mon0 -C  ;D


edudi

  • Visitante
Re: Ejecutar consola y comandos en tiempo real vía Luci sin necesitar 1 PC
« Respuesta #17 en: 30-03-2014, 20:06 (Domingo) »
Gracias jar229, el comando "wash -i mon0 -C" me funciona perfectamente con la consola en el XIAOPAN 0.4.7.2, aproveché y mirando los parámetros guardé la salida en un archivo de texto:   wash -i mon0 -C -o wps-scan.txt

Pero con el firmware r37937 del HG556a poniendo "wash -i mon0 -C" se queda así y no termina nunca de mostrar nada más:

root@OpenWrt:~# airmon-ng


Interface       Chipset         Driver

mon0            Atheros         ath9k - [phy0]
wlan0           Atheros         ath9k - [phy0]

root@OpenWrt:~# wash -i mon0 -C

Wash v1.4 WiFi Protected Setup Scan Tool
Copyright (c) 2011, Tactical Network Solutions, Craig Heffner <cheffner@tacnetsl.com>

BSSID              Channel  RSSI  WPS Version  WPS Locked  ESSID
-------------------------------------------------------------------------------------
^C

root@OpenWrt:~# wash -i mon0 -C

Wash v1.4 WiFi Protected Setup Scan Tool
Copyright (c) 2011, Tactical Network Solutions, Craig Heffner <cheffner@tacnetsol.com>

BSSID              Channel  RSSI  WPS Version  WPS Locked  ESSID
--------------------------------------------------------------------------------------
^C
root@OpenWrt:~# wash -i mon0 -C

Wash v1.4 WiFi Protected Setup Scan Tool
Copyright (c) 2011, Tactical Network Solutions, Craig Heffner <cheffner@tacnetsol.com>

BSSID              Channel  RSSI  WPS Version  WPS Locked  ESSID
--------------------------------------------------------------------------------------



Como veis he probado varias veces dejándolo que trabaje un tiempo, pero se obtiene como salida sólo el encabezado (me imagino que estará ocultando los checksum errors que mostraba sin el parámetro "-C"). ¿Alguien podría probarlo a ver si le funciona? no sé si en OPENWRT hay que poner algo más o es que está habiendo algún problema.

De todas formas, no es que me importe si o si que sea por el WASH, lo que quiero es cualquier otro comando que realice la misma función (ver los AP´s con WPS y de paso si están bloqueados o no).

Vi estas opciones en Mr. Google, siendo la 2ª bastante buena, que es mucho más resumida que la 1ª, pero no muestra si está bloqueado el WPS o no. Y es un poco follón de la forma que lo muestra. Pongan la 1ª y tiren del scroll un rato.

1ª  iw wlan0 scan

2ª iw wlan0 scan | egrep 'WPS|BSS|SSID' -w


2ª Opción --> su salida:

root@OpenWrt:~# iw wlan0 scan | egrep 'WPS|BSS|SSID' -w
BSS 00:xx:xx:xx:xx:xx(on wlan0)
        SSID: Impresora_xx
BSS 88:xx:xx:xx:xx:xx(on wlan0)
        SSID: VodafoneSharingDock_36Bxxx
        WPS:     * Version: 1.0
BSS 00:xx:xx:xx:xx:xx(on wlan0)
        SSID: ONOExxx
BSS 72:xx:xx:xx:xx:xx(on wlan0)
        SSID: vodafone6xxx
        WPS:     * Version: 1.0
        BSS Load:
        Overlapping BSS scan params:
                 * BSS width channel transition delay factor: 5
BSS d0:xx:xx:xx:xx:xx(on wlan0)
        SSID: WLAN_3xxx
        BSS Load:
        WPS:     * Version: 1.0
BSS 4c:xx:xx:xx:xx:xx(on wlan0)
        SSID: vodafone8xxx
BSS 30:xx:xx:xx:xx:xx(on wlan0)
        SSID: vodafone9xxx
        WPS:     * Version: 1.0
BSS 88:xx:xx:xx:xx:xx(on wlan0)
        SSID: Orange-Fxxx
        WPS:     * Version: 1.0
BSS 6a:xx:xx:xx:xx:xx(on wlan0)
        SSID: vodafone3xxx
        WPS:     * Version: 1.0
        BSS Load:
        Overlapping BSS scan params:
                 * BSS width channel transition delay factor: 5
BSS 68:xx:xx:xx:xx:xx(on wlan0)
        SSID: ONOCxxx
        BSS Load:
        Overlapping BSS scan params:
                 * BSS width channel transition delay factor: 5
BSS 2c:xx:xx:xx:xx:xx(on wlan0)
        SSID: ONODxxx
root@OpenWrt:~#


(Un poco fregado en comparación con la salida del WASH la verdad)


¿Alguna alternativa o alguien que pruebe el WASH en OPENWRT y si le funcione correctamente?.....no sé donde está el fallo.


Gracias para variar.


Desconectado jar229

  • Moderador
  • *
  • Mensajes: 4608
Re:
« Respuesta #18 en: 30-03-2014, 22:30 (Domingo) »
Ese comando debería funcionar.
Has puesto previamente la WiFi en modo monitor ?
Hazlo primero desde LuCi, y posteriormente con "airmon-ng start wlan0" y vuelve a probar.

Enviado desde mi CUBOT GT99