elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [Python-CGI] PC Control Remoto - JaAViEr
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Python-CGI] PC Control Remoto - JaAViEr  (Leído 3,653 veces)
0x5d

Desconectado Desconectado

Mensajes: 241



Ver Perfil WWW
[Python-CGI] PC Control Remoto - JaAViEr
« en: 30 Octubre 2014, 08:51 am »

¿ Qué es PC Control Remoto ?

PC Control Remoto es un programa/web desarrollado bajo el lenguaje de programación Python en conjunto con su librería CGI, la cuál nos permitirá montar un servidor CGI y poder llevar acabo nuestro cometido.

Este programa nos permitirá acceder a nuestro computador forma remota, con tu Navegador favorito, conectado vía LAN o a Internet (configuración aparte), desde cualquier navegador. Las funciones que nos brinda son las siguiente:
  • Consola - Terminal remota: Puedes ejecutar cualquier comando y obtener su salida desde tu navegador.
  • Comándos rápidos: Entre estos comándos rápidos tenemos las posibilidad de:
  • Apagar PC. (60 segundos).
  • Reiniciar PC. (60 segundos).
  • Cancelar Apagado/Reinicio.
  • Matar un proceso.
  • Iniciar un proceso.

[/list]
El programa en general se compone de:
  • Server.py - Programa encargado de crear el servidor bajo el puerto que queramos.
  • Index.py - Login e inicio del Panel de Control.
  • Terminal.py - Consola remota.
  • Comando_rapido.py - Comandos rápidos.
  • Logout.py - Cerrar sesión
Además de otros componentes como Topcoat (CSS), jQuery (JS).

Solo extraer en una carpeta y ejecutar server.py PUERTO

Adjunto el código de cada archivo Python mencionado anteriormente

server.py

Código
  1. '''
  2. Autor: JaAViEr
  3. Twitter: @javieresteban__
  4. Website: http://codigo.ga
  5. '''
  6. from CGIHTTPServer import CGIHTTPRequestHandler
  7. from BaseHTTPServer import HTTPServer
  8. import socket
  9. import sys
  10.  
  11. try:
  12.  
  13. port = int(sys.argv[1])
  14.  
  15. if port:
  16.  
  17. ip_interna = socket.gethostbyname(socket.gethostname())
  18. print "Panel de control: http://%s:%s/cgi-bin/index.py" % (ip_interna, port)
  19. server_address=('', port)
  20. httpd = HTTPServer(server_address, CGIHTTPRequestHandler)
  21. httpd.serve_forever()
  22.  
  23. except:
  24.  
  25. print "-"*40
  26. print "Uso:"
  27. print sys.argv[0], "PUERTO"
  28. print "-"*40
  29. print "Ejemplo de uso:"
  30. print sys.argv[0], "5050"
  31. print "-"*40
  32.  
Luego de server.py, deben pasar como parámatro el puerto al cual estará asociado el servidor.



index.py

Código
  1. #-*- encoding:utf-8 -*-
  2. '''
  3. Autor: JaAViEr
  4. Twitter: @javieresteban__
  5. Website: http://codigo.ga
  6. '''
  7. import cgi
  8. import os
  9. import Cookie
  10. import md5
  11.  
  12. lista_usuarios = ["admin", "JaAViEr"] #Usuarios
  13. lista_passwords = ["root", "toor"] # Contraseñas
  14. method = os.environ.get("REQUEST_METHOD")
  15. logueado = False
  16. contenido_cookies = os.environ.get('HTTP_COOKIE')
  17.  
  18. tag_head = ''' <meta charset="UTF-8">
  19. <link rel="stylesheet" type="text/css" href="/topcoat/css/topcoat-mobile-dark.min.css" class="uib-framework-theme">
  20. <link rel="stylesheet" type="text/css" href="/css/index_main.less.css" class="main-less">
  21. <meta http-equiv="Content-type" content="text/html; charset=utf-8">
  22. <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0">
  23. <style type="text/css">
  24. /* Prevent copy paste for all elements except text fields */
  25. *  { -webkit-user-select:none; -webkit-tap-highlight-color:rgba(255, 255, 255, 0); }
  26. input, textarea  { -webkit-user-select:text; }
  27. </style>
  28. <script type="application/javascript" src="/js/jquery.min.js"></script>
  29. <script type="application/javascript" src="/js/index_user_scripts.js"></script>'''
  30.  
  31. def code_login(accion=False):
  32.  
  33. if accion == 'error':
  34.  
  35. mensaje_error = '''
  36.  <div class="topcoat-navigation-bar widget uib_w_1 d-margins" data-uib="topcoat/nav" data-ver="0">
  37. <div class="topcoat-navigation-bar__item center full">
  38. <h1 class="topcoat-navigation-bar__title">Verifica tus credenciales por favor[/size][/center]
  39. </div>
  40.  </div>
  41. '''
  42.  
  43. else:
  44.  
  45. mensaje_error = ''
  46.  
  47. return '''
  48. <!DOCTYPE html>
  49. <html>
  50.  
  51.  <head>
  52. ''' + tag_head + '''
  53. <title>Indetif&#237;cate en el sistema</title>
  54.  </head>
  55.  
  56.  <body>
  57.    <div class="uwrap">
  58.      <div class="upage" id="mainpage">
  59.        <div class="upage-outer">
  60.          <div class="upage-content" id="mainsub">
  61.  
  62.            <div class="grid grid-pad urow uib_row_2 row-height-2" data-uib="layout/row" data-ver="0">
  63.              <div class="col uib_col_2 col-0_12-12" data-uib="layout/col" data-ver="0">
  64.                <div class="widget-container content-area vertical-col">
  65.  
  66.                  <div class="topcoat-navigation-bar widget uib_w_1 d-margins" data-uib="topcoat/nav" data-ver="0">
  67.                    <div class="topcoat-navigation-bar__item center full">
  68.                      <h1 class="topcoat-navigation-bar__title">Indentif&#237;cate[/size][/center]
  69.                    </div>
  70.                  </div>
  71.                  <span class="uib_shim"></span>
  72.                </div>
  73.              </div>
  74.              <span class="uib_shim"></span>
  75.            </div>
  76.  
  77.            <div class="grid grid-pad urow uib_row_3 row-height-3" data-uib="layout/row" data-ver="0">
  78.  
  79. <form action="" method="POST">
  80. <div class="col uib_col_3 col-0_12-12" data-uib="layout/col" data-ver="0">
  81. <div class="widget-container content-area vertical-col">
  82. <div class="table-thing widget uib_w_2 d-margins" data-uib="topcoat/input" data-ver="0">
  83. <label class="narrow-control label-top-left">Usuario</label>
  84. <input class="wide-control topcoat-text-input" type="text" placeholder="Usuario" name="usuario">
  85. </div>
  86. <div class="table-thing widget d-margins" data-uib="topcoat/input" data-ver="0">
  87. <label class="narrow-control label-top-left">Contrase&#241;a</label>
  88. <input class="wide-control topcoat-text-input" type="password" placeholder="Contrase&#241;a" name="password">
  89. </div>
  90. <button class="widget d-margins topcoat-button--cta" data-uib="topcoat/button" data-ver="0">Ingresar</button><span class="uib_shim"></span>
  91. </div>
  92. ''' +mensaje_error+ '''
  93. </form>
  94.              </div>
  95.              <span class="uib_shim"></span>
  96.            </div>
  97.          </div>
  98.          <!-- /upage-content -->
  99.  
  100.        </div>
  101.        <!-- /upage-outer -->
  102.  
  103.      </div>
  104.      <!-- /upage -->
  105.  
  106.    </div>
  107.    <!-- /uwrap -->
  108.  </body>
  109.  
  110. </html>'''
  111.  
  112. code = '''<!DOCTYPE html>
  113. <!--HTML5 doctype-->
  114. <html>
  115.  
  116. <head>
  117. ''' + tag_head + '''
  118. <title>Control Remoto :: 2014</title>
  119. </head>
  120.  
  121. <body>
  122. <!-- content goes here-->
  123. <div class="uwrap">
  124. <div class="upage" id="mainpage">
  125. <div class="upage-outer">
  126. <div class="upage-content" id="mainsub">
  127.  
  128. <div class="grid grid-pad urow uib_row_1 row-height-1" data-uib="layout/row" data-ver="0">
  129. <div class="col uib_col_2 col-0_12-12" data-uib="layout/col" data-ver="0">
  130. <div class="widget-container content-area vertical-col">
  131.  
  132. <div class="topcoat-navigation-bar widget uib_w_2 d-margins" data-uib="/topcoat/nav" data-ver="0">
  133. <div class="topcoat-navigation-bar__item center full">
  134. <h1 class="topcoat-navigation-bar__title">Panel de Control Remoto[/size][/center]
  135. </div>
  136. </div>
  137. <button class="widget uib_w_4 d-margins topcoat-button--large--cta" data-uib="/topcoat/button" data-ver="0">Consola - Terminal</button>
  138. <button class="widget uib_w_3 d-margins topcoat-button--large--cta" data-uib="/topcoat/button" data-ver="0">Enviar comando r&#225;pido</button>
  139. <button class="widget uib_w_5 d-margins topcoat-button--large" onclick='location.href="logout.py"' data-uib="/topcoat/button" data-ver="0">Salir</button>
  140. <span class="uib_shim"></span>
  141. </div>
  142. </div>
  143. <span class="uib_shim"></span>
  144. </div>
  145.  
  146. </div>
  147. <!-- /upage-content -->
  148.  
  149. </div>
  150. <!-- /upage-outer -->
  151.  
  152. </div>
  153. <div class="upage hidden" id="uib_page_3">
  154. <div class="upage-outer">
  155. <div id="uib_page_3sub" class="upage-content ">
  156. </div>
  157. </div>
  158. <!-- /upage-outer -->
  159. te </div>
  160. <div class="upage hidden" id="uib_page_2">
  161. <div class="upage-outer">
  162. <div id="uib_page_2sub" class="upage-content ">
  163. </div>
  164. </div>
  165. <!-- /upage-outer -->
  166. </div>
  167. <div class="upage hidden" id="uib_page_1">
  168. <div class="upage-outer">
  169. <div id="uib_page_1sub" class="upage-content ">
  170. </div>
  171. </div>
  172. <!-- /upage-outer -->
  173. </div>
  174.  
  175. <!-- /upage -->
  176.  
  177. </div>
  178. <!-- /uwrap -->
  179. </body>
  180.  
  181. </html>'''
  182.  
  183. def verificar_login(u, p):
  184.  
  185. if u in lista_usuarios and p in lista_passwords:
  186.  
  187. session = u + p
  188. session = md5.md5(session).hexdigest()
  189. return True
  190.  
  191. else:
  192.  
  193. return False
  194.  
  195. if contenido_cookies: #Si hay cookies...
  196.  
  197. valores_cookie = Cookie.SimpleCookie(contenido_cookies)
  198. session_actual = valores_cookie['sess'].value # session_actual = cookie "sess"
  199.  
  200. if session_actual == "false": # No logueado
  201.  
  202. logueado = False
  203.  
  204. else: # Verifica login
  205.  
  206. for a, b in zip(lista_usuarios, lista_passwords):
  207.  
  208. session_temporal = a + b
  209. session_temporal = md5.md5(session_temporal).hexdigest()
  210.  
  211. if session_actual == session_temporal:
  212.  
  213. logueado = True # Login coincide
  214. break
  215.  
  216. else:
  217.  
  218. pass
  219.  
  220. else: #No logueado, sess = false
  221.  
  222. print "Set-Cookie:sess=false"
  223.  
  224. print "Content-Type: text/html"
  225.  
  226. if method == "POST":
  227.  
  228. form = cgi.FieldStorage()
  229. usuario = form.getvalue('usuario')
  230. password = form.getvalue('password')
  231.  
  232. if verificar_login(usuario, password):
  233.  
  234. session = usuario + password
  235. session = md5.md5(session).hexdigest()
  236. print "Set-Cookie:sess=%s" % session
  237. print
  238. print code
  239.  
  240. else:
  241.  
  242. print
  243. print code_login('error')
  244.  
  245. elif method == "GET":
  246.  
  247. if not logueado:
  248.  
  249. print code_login()
  250.  
  251. else:
  252.  
  253. print code

terminal.py

Código
  1. #-*- encoding:utf-8 -*-
  2. '''
  3. Autor: JaAViEr
  4. Twitter: @javieresteban__
  5. Website: http://codigo.ga
  6. '''
  7. import cgi
  8. import os
  9. import Cookie
  10. import md5
  11.  
  12. print "Content-Type: text/html"
  13. print
  14.  
  15. code_terminal = '''
  16. <!DOCTYPE html>
  17. <html>
  18.  
  19.  <head>
  20.    <link rel="stylesheet" type="text/css" href="/topcoat/css/topcoat-mobile-dark.min.css" class="uib-framework-theme">
  21.    <link rel="stylesheet" type="text/css" href="/css/terminal_main.less.css" class="main-less">
  22.    <meta charset="UTF-8">
  23.    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0">
  24. <title>Terminal</title>
  25.    <script src="/js/jquery.min.js"></script>
  26.  </head>
  27.  
  28.  <body>
  29.    <div class="uwrap">
  30.      <div class="upage" id="mainpage">
  31.        <div class="upage-outer">
  32.          <div class="upage-content" id="mainsub">
  33.  
  34.            <div class="grid grid-pad urow uib_row_1 row-height-1" data-uib="layout/row" data-ver="0">
  35.              <div class="col uib_col_1 col-0_12-12" data-uib="layout/col" data-ver="0">
  36.                <div class="widget-container content-area vertical-col">
  37.  
  38.                  <div class="topcoat-navigation-bar widget uib_w_1 d-margins" data-uib="/topcoat/nav" data-ver="0">
  39.                    <div class="topcoat-navigation-bar__item center full">
  40.                      <h1 class="topcoat-navigation-bar__title">Consola - Terminal[/size][/center]
  41.                    </div>
  42.                  </div>
  43.                  <div class="table-thing widget uib_w_2 d-margins" data-uib="/topcoat/textarea" data-ver="0">
  44.                    <label class="narrow-control label-inline"></label>
  45.                    <textarea class="wide-control topcoat-textarea" type="text" placeholder="Comandos" name="comando"></textarea>
  46.                  </div>
  47. <button class="widget uib_w_2 d-margins topcoat-button--cta" data-uib="topcoat/button" data-ver="0" onclick='execute();'>&#161;Ejecutar!</button>
  48. <button class="widget uib_w_2 d-margins topcoat-button" data-uib="topcoat/button" data-ver="0" onclick='location.href="index.py"'>Volver</button>
  49. <hr>
  50. Salida:
  51. <span id="loader"></span>
  52.                  <span class="uib_shim"></span>
  53.                </div>
  54.              </div>
  55.              <span class="uib_shim"></span>
  56.            </div>
  57.          </div>
  58.          <!-- /upage-content -->
  59.  
  60.        </div>
  61.        <!-- /upage-outer -->
  62.  
  63.      </div>
  64.      <!-- /upage -->
  65.  
  66.    </div>
  67.    <!-- /uwrap -->
  68. <script language="javascript">
  69.  
  70. function execute(){
  71.  
  72. comando = $("textarea[name=comando]").val();
  73. $("#loader").load("terminal.py", {"comando":comando});
  74.  
  75. }
  76. </script>
  77.  </body>
  78.  
  79. </html>'''
  80.  
  81. logueado = False
  82. lista_usuarios = ["admin", "JaAViEr"] #Usuarios
  83. lista_passwords = ["root", "toor"] # Contrase&#241;as
  84. method = os.environ['REQUEST_METHOD']
  85. lectura_cookies = os.environ.get('HTTP_COOKIE')
  86.  
  87. if lectura_cookies:
  88.  
  89. valores_cookie = Cookie.SimpleCookie(lectura_cookies)
  90. session_actual = valores_cookie['sess'].value # session_actual = cookie "sess"
  91.  
  92. if session_actual != "false":
  93.  
  94. for a, b in zip(lista_usuarios, lista_passwords):
  95.  
  96. session_temporal = a + b
  97. session_temporal = md5.md5(session_temporal).hexdigest()
  98.  
  99. if session_actual == session_temporal:
  100.  
  101. logueado = True # Login coincide
  102. break
  103.  
  104. else:
  105.  
  106. pass
  107. else:
  108.  
  109. pass
  110.  
  111. if logueado:
  112. if method == "GET":
  113.  
  114. print code_terminal
  115.  
  116. elif method == "POST":
  117.  
  118. form = cgi.FieldStorage()
  119. comando = form.getvalue("comando")
  120. lineas = comando.split("\n")
  121. print '''
  122. <span  style="font-family:Trebuchet Ms; color: #fff;" class="wide-control">
  123. <br />
  124. '''
  125. for l in lineas:
  126.  
  127. try:
  128.  
  129. run = os.popen(l, "r")
  130. run_content = run.read()
  131. run_content = run_content.replace("\n", "<br>")
  132. run_content = run_content.replace(" ", "&nbsp;")
  133. print run_content
  134. run.close()
  135.  
  136. except:
  137.  
  138. print "Error al ejecutar comando %s" % (l)
  139.  
  140. print "</span>"
  141. else:
  142. print "<script>location.href='index.py';</script>"
comando_rapido.py
Código
  1. #-*- encoding:utf-8 -*-
  2. '''
  3. Autor: JaAViEr
  4. Twitter: @javieresteban__
  5. Website: http://codigo.ga
  6. '''
  7. import cgi
  8. import os
  9. import subprocess
  10. import Cookie
  11. import md5
  12.  
  13. print "Content-Type: text/html"
  14. print
  15. code_terminal = '''
  16. <!DOCTYPE html>
  17. <html>
  18.  
  19.  <head>
  20.    <link rel="stylesheet" type="text/css" href="/topcoat/css/topcoat-mobile-dark.min.css" class="uib-framework-theme">
  21.    <link rel="stylesheet" type="text/css" href="/css/terminal_main.less.css" class="main-less">
  22.    <meta charset="UTF-8">
  23.    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=0">
  24. <title>Comandos r&#225;pidos</title>
  25.    <script src="/js/jquery.min.js"></script>
  26.  </head>
  27.  
  28.  <body>
  29.    <div class="uwrap">
  30.      <div class="upage" id="mainpage">
  31.        <div class="upage-outer">
  32.          <div class="upage-content" id="mainsub">
  33.  
  34.            <div class="grid grid-pad urow uib_row_3 row-height-3" data-uib="layout/row" data-ver="0">
  35.              <div class="col uib_col_3 col-0_12-12" data-uib="layout/col" data-ver="0">
  36.                <div class="widget-container content-area vertical-col">
  37.  
  38.                  <div class="topcoat-navigation-bar widget uib_w_1 d-margins" data-uib="topcoat/nav" data-ver="0">
  39.                    <div class="topcoat-navigation-bar__item center full">
  40.                      <h1 class="topcoat-navigation-bar__title">Comandos r&#225;pidos[/size][/center]
  41.                    </div>
  42.                  </div>
  43.                  <span class="uib_shim"></span>
  44.                </div>
  45.              </div>
  46.              <span class="uib_shim"></span>
  47.            </div>
  48.  
  49.            <div class="grid grid-pad urow uib_row_4 row-height-4" data-uib="layout/row" data-ver="0">
  50.              <div class="col uib_col_4 col-0_12-12" data-uib="layout/col" data-ver="0">
  51.                <div class="widget-container content-area vertical-col">
  52.  
  53. <button class="widget uib_w_2 d-margins topcoat-button--cta" data-uib="topcoat/button" data-ver="0" onclick="comando('apagar'); return false;">Apagar</button>
  54. <button class="widget uib_w_3 d-margins topcoat-button--cta" data-uib="topcoat/button" data-ver="0" onclick="comando('reiniciar'); return false;">Reiniciar</button>
  55. <button class="widget uib_w_4 d-margins topcoat-button--cta" data-uib="topcoat/button" data-ver="0" onclick="comando('cancelar salida'); return false;">Cancelar Apagado/Rein.</button>
  56. <button class="widget uib_w_5 d-margins topcoat-button--cta" data-uib="topcoat/button" data-ver="0" onclick="matar_proceso('mostrar'); return false;">Matar proceso</button>
  57. <span id="matar_proceso" style="display:none">
  58. <hr>
  59. <input class="wide-control topcoat-text-input" type="text" placeholder="proceso.ext" name="proceso">
  60. <button class="widget uib_w_6 d-margins topcoat-button wide-control" data-uib="topcoat/button" data-ver="0" onclick="matar_proceso('kill'); return false;">&#161;Matar ahora!</button>
  61. <hr>
  62. </span>
  63. <button class="widget uib_w_6 d-margins topcoat-button--cta" data-uib="topcoat/button" data-ver="0" onclick="iniciar_proceso('mostrar'); return false;">Iniciar proceso</button>
  64. <span id="iniciar_proceso" style="display:none">
  65. <hr>
  66. <input class="wide-control topcoat-text-input" type="text" placeholder="proceso.ext" name="iniciar_proceso">
  67. <button class="widget uib_w_6 d-margins topcoat-button wide-control" data-uib="topcoat/button" data-ver="0" onclick="iniciar_proceso('iniciar'); return false;">&#161;Iniciar ahora!</button>
  68. <hr>
  69. </span>
  70. <button class="widget uib_w_2 d-margins topcoat-button" data-uib="topcoat/button" data-ver="0" onclick='location.href="index.py"'>Volver</button>
  71.  <span class="uib_shim"></span>
  72.  
  73.                </div>
  74.              </div>
  75.              <span class="uib_shim"></span>
  76.            </div>
  77.          </div>
  78.          <!-- /upage-content -->
  79.  
  80.        </div>
  81.        <!-- /upage-outer -->
  82.  
  83.      </div>
  84.      <!-- /upage -->
  85.  
  86.    </div>
  87.    <!-- /uwrap -->
  88.  </body>
  89.  <span id="loader" style="display:none;"></span>
  90.  <script language="javascript">
  91.  
  92.  function comando(cmd){
  93.  
  94. $("#loader").load("comando_rapido.py", {"comando":cmd});
  95.  
  96.  }
  97.  function matar_proceso(param){
  98.  
  99. if(param == 'mostrar'){
  100. $("#matar_proceso").fadeIn();
  101. $("#iniciar_proceso").fadeOut();
  102. }else if(param == 'kill'){
  103. proceso = $("input[name=proceso]").val();
  104. $("#loader").load("comando_rapido.py", {"kill": proceso});
  105. $("#matar_proceso").fadeOut();
  106. $("input[name=proceso]").val("");
  107. }
  108.  }
  109.  
  110.  function iniciar_proceso(accion){
  111.  
  112.  if (accion == "mostrar"){
  113.  
  114. $("#matar_proceso").fadeOut();
  115. $("#iniciar_proceso").fadeIn();
  116.  
  117.  }else if(accion == "iniciar"){
  118.  
  119.  
  120. nuevo_proceso = $("input[name=iniciar_proceso]").val();
  121. $("#loader").load("comando_rapido.py", {"correr": nuevo_proceso});
  122. $("#iniciar_proceso").fadeOut();
  123. $("input[name=iniciar_procesoproceso]").val("");
  124.  
  125.  }
  126.  
  127.  }
  128.  </script>
  129.  
  130.  
  131. </html>'''
  132.  
  133. logueado = False
  134. lista_usuarios = ["admin", "JaAViEr"] #Usuarios
  135. lista_passwords = ["root", "toor"] # Contrase&#241;as
  136. method = os.environ['REQUEST_METHOD']
  137. lectura_cookies = os.environ.get('HTTP_COOKIE')
  138. if lectura_cookies:
  139. valores_cookie = Cookie.SimpleCookie(lectura_cookies)
  140. session_actual = valores_cookie['sess'].value # session_actual = cookie "sess"
  141.  
  142. if session_actual != "false":
  143. for a, b in zip(lista_usuarios, lista_passwords):
  144.  
  145. session_temporal = a + b
  146. session_temporal = md5.md5(session_temporal).hexdigest()
  147.  
  148. if session_actual == session_temporal:
  149. logueado = True # Login coincide
  150. break
  151.  
  152. else:
  153.  
  154. pass
  155. else:
  156.  
  157. pass
  158.  
  159. if logueado:
  160. if os.name == "nt":
  161.  
  162. so = "windows"
  163.  
  164. else:
  165.  
  166. so = "unix"
  167.  
  168. if method == "GET":
  169.  
  170. print code_terminal
  171.  
  172. elif method == "POST":
  173.  
  174. form = cgi.FieldStorage()
  175. comando = form.getvalue("comando")
  176. kill = form.getvalue("kill")
  177. correr = form.getvalue("correr")
  178. iniciar_proceso = ""
  179. matador = ""
  180.  
  181. try:
  182.  
  183. if correr:
  184.  
  185. if so == "windows":
  186.  
  187. iniciar_proceso = "start %s" % (correr)
  188.  
  189. elif so == "unix":
  190.  
  191. iniciar_proceso = "%s" % (correr)
  192.  
  193. subprocess.call(iniciar_proceso)
  194.  
  195. if kill:
  196.  
  197. if so == "windows":
  198.  
  199. matador = "taskkill /F /IM %s" % (kill)
  200.  
  201. elif so == "unix":
  202.  
  203. matador = "pkill -9 %s" % (kill)
  204.  
  205. kill = subprocess.call(matador)
  206. kill.close()
  207.  
  208. if comando == "apagar":
  209.  
  210. if so == "windows":
  211.  
  212. accion = "shutdown /S /T 60"
  213.  
  214. elif so == "unix":
  215.  
  216. accion = "sudo poweroff"
  217.  
  218.  
  219. elif comando == "reiniciar":
  220.  
  221. if so == "windows":
  222.  
  223. accion = "shutdown /R /T 60"
  224.  
  225. elif so == "unix":
  226.  
  227. accion = "sudo reboot"
  228.  
  229. #accion = ""
  230.  
  231. elif comando == "cancelar salida":
  232.  
  233. if so == "windows":
  234.  
  235. accion = "shutdown /A"
  236.  
  237. elif so == "unix":
  238.  
  239. accion = ""
  240.  
  241. #accion = ""
  242.  
  243.  
  244. action = subprocess.call(accion)
  245. action.close()
  246. except:
  247.  
  248. pass
  249.  
  250. else:
  251. print "<script>location.href='index.py';</script>"
logout.py

Código
  1. import cgi
  2. '''
  3. Autor: JaAViEr
  4. Twitter: @javieresteban__
  5. Website: http://codigo.ga
  6. '''
  7. print "Content-Type: text/html"
  8. print "Set-Cookie: sess=false"
  9. print "Location:index.py"
  10. print
  11. print "<script>location.href='index.py';</script>"

Un par de Screenshots de como luce el programa...
Identificación

Panel de control

Consola-Terminal Remota

Comando rápidos

Comandos rápidos - Iniciar Proceso

Comandos rápidos - Matar Proceso


« Última modificación: 30 Octubre 2014, 09:03 am por 0x5d » En línea

WIитX


Desconectado Desconectado

Mensajes: 1.024


WINTX


Ver Perfil WWW
Re: [Python-CGI] PC Control Remoto - JaAViEr
« Respuesta #1 en: 30 Octubre 2014, 09:33 am »

O.O que bueno lo probaré!


En línea

"Es más divertido hacerse pirata que unirse a la marina." (Steve Jobs)
0x5d

Desconectado Desconectado

Mensajes: 241



Ver Perfil WWW
Re: [Python-CGI] PC Control Remoto - JaAViEr
« Respuesta #2 en: 30 Octubre 2014, 10:05 am »

O.O que bueno lo probaré!
Muchísimas gracias !
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Python]Localizador IP - JaAViEr(0x5d)
Scripting
0x5d 2 3,377 Último mensaje 30 Diciembre 2011, 15:11 pm
por Novlucker
[Código-Python-Android]Calculadora por secuencia - JaAViEr(0x5d)
Scripting
0x5d 0 3,147 Último mensaje 27 Diciembre 2011, 02:22 am
por 0x5d
[Código-Python]Cliente FTP V2 - JaAViEr | 0x5d
Scripting
0x5d 5 3,362 Último mensaje 4 Mayo 2012, 17:25 pm
por 0x5d
[Código-Python]Bruteforce logins - JaAViEr (0000x5d)
Scripting
0x5d 0 1,735 Último mensaje 20 Marzo 2013, 21:31 pm
por 0x5d
Tools Python CGI + Source | JaAViEr::0x5d
Scripting
0x5d 2 2,522 Último mensaje 25 Abril 2013, 20:00 pm
por 0x5d
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines