Статья Infoga - Сбор информации о почте. Доменах

Привет! Хочу представить инструмент, который может помочь в проведении тестирования на проникновения какой либо компании. Целью инструменты будет собрать информацию о почтовых ящиках, а так же об ip адресах (если это представляется возможным) Информация берется из поисковых систем и данных в публичном доступе.

Итак, Infoga:

upload_2017-3-3_22-40-57.png


Зависимости:

· All Operating System/Platform support.

· Python 2.7.x

· requests, urllib3 python Module

Установим себе, система Kali Linux 2016.2:

> git clone https://github.com/m4ll0k/infoga

upload_2017-3-3_23-0-20.png


Выбрав, интересующий нас домен, запустим программу.

> python infoga.py -t mit.edu -s all (example)

upload_2017-3-3_23-26-13.png


Результат довольно таки неплох, помимо данных о сотрудниках (а там были имена и фамилии в названиях), я получил IP адреса, страну и город, название компании. И по времени у меня заняло это не более 3-х минут.

Список опций программы:

upload_2017-3-3_23-28-5.png


Резюме: в общем, для конкретных целей вполне подходит, плюсую.

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

На этом все, спасибо за внимание.
 

ghostphisher

местный
07.12.2016
2 602
3 413
BIT
0
Привет! Хочу представить инструмент, который может помочь в проведении тестирования на проникновения какой либо компании. Целью инструменты будет собрать информацию о почтовых ящиках, а так же об ip адресах (если это представляется возможным) Информация берется из поисковых систем и данных в публичном

Удобно, быстро. Тестил сегодня на десятке разных компаний. Итог таков: если компания крупная, то инфы очень много и очень интересной, к примеру ищем на домене site.com, а результатми получим и почты формата it-site.com ( к примеру ) - домены связанные с нашим тестируемым. Быть может иногда будут попадаться просто похожие результаты не связанные с собой, по мне так лучше больше информации - разобрать и выбрать, чем недобор по ней :) На мелких компаниях не очень - инфы очень мало, даже не смог опознать вторые ящики, только info@site.com, при этом пропустил другие почты, видимо по причине отсутствия в поисковике.

Утилита однозначно маст хев - за 2 минуты много инфорцмаии. Если использовать в комплексных мероприятиях своб задача исполнить.
Респект автру,!
 
Последнее редактирование:
  • Нравится
Реакции: Apton и Vander

Петручо

Green Team
27.11.2016
115
12
BIT
1
Дима , а какое тебе еще описание нужно для программы с 2 ключами ?
может тебе еще видео накатать?
ЗЫ на небольших конторках реально пашет не ахти , не находит даже то что на страничке шараги открытым текстом лежит .
а вот крупные компании, те реально ручками чекать долго. для таких случае программа толковая.
 
  • Нравится
Реакции: Vander

ghostphisher

местный
07.12.2016
2 602
3 413
BIT
0
Связка dnsenum + infoga дают хорошие результаты. Получаются интересные адреса найти, причем часто не совсем массовые, например от хэлпдеска, или от высшего звена руководства. Пример: контора kontora.com, мы прошлись инфогой, нашли некоторые адреса, далее dnsenum онаружили dd.kontora.com, проходим infogoga - видим адреса, которые принадлежат высшему звену компании ( компания иностранная - действует нка территории РФ ). Уже есть повод строить атаку по СИ более глобально.
 
Последнее редактирование:
  • Нравится
Реакции: dominikanec и Vander
F

Force

Бесолезная прога . Потому что выводит IP адрес провайдера или хоста. город тоже провайдера или хоста. Фигня полная
 

ghostphisher

местный
07.12.2016
2 602
3 413
BIT
0
Бесолезная прога . Потому что выводит IP адрес провайдера или хоста. город тоже провайдера или хоста. Фигня полная

Учитесь правильно использовать полученные данные. Автоматизация процесса, возможность запуска из консоли большой плюс. Лично мне эта утилита на самом деле пинесла пользу, за что благодарность автору.
 
  • Нравится
Реакции: N1ck и Vander

Black Diver

Green Team
24.01.2017
36
62
BIT
0
Неплохо работает. Имеет смысл совмещать с остальными средствами поиска.
 
  • Нравится
Реакции: Vander

valerian38

Grey Team
20.07.2016
662
764
BIT
77
Установил, запустил, вот что пишет:
/usr/local/lib/python2.7/dist-packages/urllib3/connectionpool.py:843: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See:
InsecureRequestWarning)
Traceback (most recent call last):
File "./infoga.py", line 206, in <module>
start(sys.argv[1:])
File "./infoga.py", line 190, in start
print "\t\t\t|__ %s%s%s (%s)"% (g,new[d],t,con[0])
UnboundLocalError: local variable 'con' referenced before assignment

Что за сертификат тут просят? Сходил по указанной ссылке, но так и не смог разобраться как побороть.

Снимок экрана от 2017-03-07 21-45-54.png
 

z3RoTooL

Grey Team
28.02.2016
803
697
BIT
9
Установил, запустил, вот что пишет:
/usr/local/lib/python2.7/dist-packages/urllib3/connectionpool.py:843: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See:
InsecureRequestWarning)
Traceback (most recent call last):
File "./infoga.py", line 206, in <module>
start(sys.argv[1:])
File "./infoga.py", line 190, in start
print "\t\t\t|__ %s%s%s (%s)"% (g,new[d],t,con[0])
UnboundLocalError: local variable 'con' referenced before assignment

Что за сертификат тут просят? Сходил по указанной ссылке, но так и не смог разобраться как побороть.

Всё же написано английским по белому, по ссылке

Посмотреть вложение 9312

Если сильно напрягает найди в коде строку import urllib3 и допиши там где-то рядом
urllib3.disable_warnings()
 

valerian38

Grey Team
20.07.2016
662
764
BIT
77
Если сильно напрягает найди в коде строку import urllib3 и допиши там где-то рядом
urllib3.disable_warnings()
Спасибо. А ведь по этой ссылке было написано это, но я не врубился, пользуюсь машинным переводом. Английского к сожалению не знаю. Однако ваш совет полностью не решил проблему, ошибки в 191 и 207 строчках кода.

Снимок экрана от 2017-03-08 01-22-15.png
 

ghostphisher

местный
07.12.2016
2 602
3 413
BIT
0
Спасибо. А ведь по этой ссылке было написано это, но я не врубился, пользуюсь машинным переводом. Английского к сожалению не знаю. Однако ваш совет полностью не решил проблему, ошибки в 191 и 207 строчках кода.

Посмотреть вложение 9314

А если python или python2 infoga.py попробовать?
 

z3RoTooL

Grey Team
28.02.2016
803
697
BIT
9
Спасибо. А ведь по этой ссылке было написано это, но я не врубился, пользуюсь машинным переводом. Английского к сожалению не знаю. Однако ваш совет полностью не решил проблему, ошибки в 191 и 207 строчках кода.

Посмотреть вложение 9314

попробуй запустить этот скрипт питоном 2.7
потому что мой питон 2.7 не показывает ошибки в коде на этих строках, видимо не с той версии стартует. Если хочешь стартовать этот файл как исполняемый - добавь в начале кода вместо
#!/usr/bin/env python
#!/usr/bin/env python2.7
 

valerian38

Grey Team
20.07.2016
662
764
BIT
77
А если python или python2 infoga.py попробовать?

попробуй запустить этот скрипт питоном 2.7
потому что мой питон 2.7 не показывает ошибки в коде на этих строках, видимо не с той версии стартует. Если хочешь стартовать этот файл как исполняемый - добавь в начале кода вместо
#!/usr/bin/env python
#!/usr/bin/env python2.7

Спасибо за советы, завтра буду дома обязательно попробую, потом отпишусь.
 
S

Sniff

Таак, криворукий я чайник. Автор, вам всёравно спасибо.
 

ghostphisher

местный
07.12.2016
2 602
3 413
BIT
0
Для тех, кто еще не совсем потенциал оценил: можно доработать софтину, внести туда больше поисковиков, причем есть поисковые машины узконаправленные ( к примеру на гос.сайтах ). Ко всему прочему, утилита завязана с shodan - еще есть вектор для рамышления.
 

valerian38

Grey Team
20.07.2016
662
764
BIT
77
Сделал запуск с Python2.7
Код:
#!/usr/bin/python2.7
# -*- coding: utf-8 -*-
# infoga - Gathering Email Information Tool
# by M0M0 (m4ll0k) - (c) 2017


__license__ = """
Copyright (c) 2017, {M0M0 (m4ll0k)}
All rights reserved.

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

    * Redistributions of source code must retain the above copyright notice,
      this list of conditions and the following disclaimer.
    * Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
    * Neither the name of EnableSecurity or Trustwave nor the names of its contributors
      may be used to endorse or promote products derived from this software
      without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE.
"""


from lib import color, parser
from recon import *
from lib import info

# simple list colors 
r = color.incolor.RED 
y = color.incolor.YELLOW 
w = color.incolor.WHITE
t = color.incolor.RESET
g = color.incolor.GREEN
b = color.incolor.BLUE
c = color.incolor.CRIMSON
y = color.incolor.CYAN
i = color.incolor.IND
try:
    import sys
    import urllib3
        urllib3.disable_warnings()
    import os
    import string
    import json 
    import re
    import getopt
    import requests
    import socket
    from urlparse import urlparse
    from time import strftime 
except Exception as err:
    print r+"[!] "+t+w+str(err)+t
    sys.exit(0)

def banner():
    print r+"  ___        ___                     "+t                  
    print r+" |   .-----.'  _.-----.-----.---.-.  "+t
    print r+" |.  |     |   _|  _  |  _  |  _  |  "+t
    print r+" |.  |__|__|__| |_____|___  |___._|  "+t
    print r+" |:  |                |_____|        "+t
    print r+" |::.|"+t+y+" Infoga %s - %s         "% (info.__version__,info.__info__)
    print r+" |:..|"+t+y+" Codename\t- %s         "% (info.__codename__)
    print r+" |...|"+t+y+" Coded by\t- %s         "% (info.__author__)
    print r+" | - |"+i+" https://github.com/m4ll0k/infoga"+t+t
    print r+" `---'                               \n"+t

def usage():
    scr = os.path.basename(sys.argv[0])
    banner()
    print w+"Usage: Infoga -t [target] -s [source]:\n"+t
    print w+"\t-t\tDomain to search or company name"+t
    print w+"\t-s\tData source: all, google, bing, pgp"+t
    print w+"\t-h\tShow this help and exit\n"+t
    print w+"Examples:"+t
    print w+"\t"+scr+" -t site.com -s all"+t
    print w+"\t"+scr+" -t site.com -s [google, bing, pgp]\n"+t


def start(argv):
    if len(sys.argv) < 4:
        usage()
        sys.exit()
    try:
        opts,args = getopt.getopt(argv, "t:s:h:")
    except getopt.GetoptError: 
        usage()
        sys.exit(0)
    for opt,arg in opts:
        if opt == "-t":
            keyword = arg 
        elif opt == "-h":
            usage()
        elif opt == "-s":
            engine = arg
            if engine not in ("all, google, bing, pgp"):
                usage()
                print r+"[!] "+t+w+"Invalid search engine, try with: all, google, bing or pgp\n"+t 
                sys.exit(0) 
            else:
                pass

    o = urlparse(keyword)
    if o[0] in ['http','https', 'www']:
        usage()
        print r+"[!] "+t+w+"Try without: http://, https:// or www.[site]\n"+t
        sys.exit(0)
    else:
        pass
    _allemails = []
    strf = "[%s] "%(strftime('%H:%M:%S'))
    if engine == "google":
        banner()
        print w+strf+t+y+"Searching \""+keyword+"\" in google..."+t 
        _search = googlesearch.google_search(keyword)
        _search.process()
        _allemails = _search.get_emails()

    elif engine == "bing": 
        banner()
        print w+strf+t+y+"Searching \""+keyword+"\" in bing..."+t
        _search = bingsearch.bing_search(keyword)
        _search.process()
        _allemails = _search.get_emails()

    elif engine == "pgp":
        banner()
        print w+strf+t+y+"Searching \""+keyword+"\" in pgp..."+t
        _search = pgpsearch.pgp_search(keyword)
        _search.process()
        _allemails = _search.get_emails()

    elif engine == "all":
        banner()
        print w+strf+t+y+"Searching \""+keyword+"\" in google..."+t
        _search = googlesearch.google_search(keyword)
        _search.process()
        _emails = _search.get_emails()
        _allemails.extend(_emails)
        print w+strf+t+y+"Searching \""+keyword+"\" in bing..."+t
        _search = bingsearch.bing_search(keyword)
        _search.process()
        _emails = _search.get_emails()
        _allemails.extend(_emails)
        _allemails = sorted(set(_allemails))
        print w+strf+t+y+"Searching \""+keyword+"\" in pgp..."+t
        _search = pgpsearch.pgp_search(keyword)
        _search.process()
        _emails = _search.get_emails()
        _allemails.extend(_emails)
        _allemails = sorted(set(_allemails))

    if _allemails == []:
        print "\n"+w+strf+t+r+"Not found emails!!\n"+t
        sys.exit(0)
    else:
        print "\n"+w+strf+t+y+"Email found: \n"+t
        for x in xrange(len(_allemails)):
            data={'lang':'en'}
            data['email'] = _allemails[x]
            req = requests.post('http://www.mailtester.com/testmail.php', data=data)
            _re = re.compile(r"[0-9]+(?:\.[0-9]+){3}")
            _findip = _re.findall(req.content)
            new = []
            for q in _findip:
                if q not in new:
                    new.append(q)
            print r+"Email: "+t+"%s"%(_allemails[x])
            for d in range(len(new)):
                v = '\n'.join(new)
                try:
                    con = socket.gethostbyaddr(v)
                except socket.error:
                    pass
                rf = urllib3.PoolManager()
                res = rf.request('GET', "https://api.shodan.io/shodan/host/%s?key=UNmOjxeFS2mPA3kmzm1sZwC0XjaTTksy"% (new[d]))
                h = json.loads(res.data, 'utf-8')

                if 'country_code' and 'country_name' in h:
                    print "\t\t\t|__ %s%s%s (%s)"% (g,new[d],t,con[0])
                    print "\t\t\t|\t|"
                    print "\t\t\t|\t|__ Country: %s (%s) - City: %s (%s)"% (h['country_code'],h['country_name'],h['city'],h['region_code'])
                    print "\t\t\t|\t|__ ISP: %s"% (h['isp'])
                    print "\t\t\t|\t|__ Latitude: %s - Longitude: %s"% (h['latitude'],h['longitude'])
                    print "\t\t\t|\t|__ Hostname: %s - Organization: %s"% (h['hostnames'],h['org'])
                    print ""
                elif 'No information available for that IP.' or 'error' in h:
                    print "\t\t\t|__ %s (%s)"% (new[d],con[0])
                    print "\t\t\t|\t|__"+r+"No information available for that IP!!"+t
                    print ""
                else:
                    print "\t\t\t|__ %s (%s)"% (new[d],con[0])

if __name__ == "__main__":
    try:
        start(sys.argv[1:])
    except KeyboardInterrupt as err:
        print r+"\n[!] By... :)"+t
        sys.exit(0)

Инфога вроде как работет, так как мейлы находит, но похоже что возникает проблема с выводом на экран
строка 191, что то локальная ошибка переменная 'con', на которую ссылается перед присваиванием

Снимок экрана от 2017-03-09 22-40-45.png


Ну это всё на домашнем компе.

Поставил Инфогу на ноут, запустилась без проблем. Все ОС и настройки на домашнем компе и на ноуте идентичны.
Может ли эта проблема возникать из за железа?
 

z3RoTooL

Grey Team
28.02.2016
803
697
BIT
9
Сделал запуск с Python2.7
Код:
#!/usr/bin/python2.7
# -*- coding: utf-8 -*-
# infoga - Gathering Email Information Tool
# by M0M0 (m4ll0k) - (c) 2017


__license__ = """
Copyright (c) 2017, {M0M0 (m4ll0k)}
All rights reserved.

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

    * Redistributions of source code must retain the above copyright notice,
      this list of conditions and the following disclaimer.
    * Redistributions in binary form must reproduce the above copyright notice,
      this list of conditions and the following disclaimer in the documentation
      and/or other materials provided with the distribution.
    * Neither the name of EnableSecurity or Trustwave nor the names of its contributors
      may be used to endorse or promote products derived from this software
      without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE.
"""


from lib import color, parser
from recon import *
from lib import info

# simple list colors
r = color.incolor.RED
y = color.incolor.YELLOW
w = color.incolor.WHITE
t = color.incolor.RESET
g = color.incolor.GREEN
b = color.incolor.BLUE
c = color.incolor.CRIMSON
y = color.incolor.CYAN
i = color.incolor.IND
try:
    import sys
    import urllib3
        urllib3.disable_warnings()
    import os
    import string
    import json
    import re
    import getopt
    import requests
    import socket
    from urlparse import urlparse
    from time import strftime
except Exception as err:
    print r+"[!] "+t+w+str(err)+t
    sys.exit(0)

def banner():
    print r+"  ___        ___                     "+t                 
    print r+" |   .-----.'  _.-----.-----.---.-.  "+t
    print r+" |.  |     |   _|  _  |  _  |  _  |  "+t
    print r+" |.  |__|__|__| |_____|___  |___._|  "+t
    print r+" |:  |                |_____|        "+t
    print r+" |::.|"+t+y+" Infoga %s - %s         "% (info.__version__,info.__info__)
    print r+" |:..|"+t+y+" Codename\t- %s         "% (info.__codename__)
    print r+" |...|"+t+y+" Coded by\t- %s         "% (info.__author__)
    print r+" | - |"+i+" https://github.com/m4ll0k/infoga"+t+t
    print r+" `---'                               \n"+t

def usage():
    scr = os.path.basename(sys.argv[0])
    banner()
    print w+"Usage: Infoga -t [target] -s [source]:\n"+t
    print w+"\t-t\tDomain to search or company name"+t
    print w+"\t-s\tData source: all, google, bing, pgp"+t
    print w+"\t-h\tShow this help and exit\n"+t
    print w+"Examples:"+t
    print w+"\t"+scr+" -t site.com -s all"+t
    print w+"\t"+scr+" -t site.com -s [google, bing, pgp]\n"+t


def start(argv):
    if len(sys.argv) < 4:
        usage()
        sys.exit()
    try:
        opts,args = getopt.getopt(argv, "t:s:h:")
    except getopt.GetoptError:
        usage()
        sys.exit(0)
    for opt,arg in opts:
        if opt == "-t":
            keyword = arg
        elif opt == "-h":
            usage()
        elif opt == "-s":
            engine = arg
            if engine not in ("all, google, bing, pgp"):
                usage()
                print r+"[!] "+t+w+"Invalid search engine, try with: all, google, bing or pgp\n"+t
                sys.exit(0)
            else:
                pass

    o = urlparse(keyword)
    if o[0] in ['http','https', 'www']:
        usage()
        print r+"[!] "+t+w+"Try without: http://, https:// or www.[site]\n"+t
        sys.exit(0)
    else:
        pass
    _allemails = []
    strf = "[%s] "%(strftime('%H:%M:%S'))
    if engine == "google":
        banner()
        print w+strf+t+y+"Searching \""+keyword+"\" in google..."+t
        _search = googlesearch.google_search(keyword)
        _search.process()
        _allemails = _search.get_emails()

    elif engine == "bing":
        banner()
        print w+strf+t+y+"Searching \""+keyword+"\" in bing..."+t
        _search = bingsearch.bing_search(keyword)
        _search.process()
        _allemails = _search.get_emails()

    elif engine == "pgp":
        banner()
        print w+strf+t+y+"Searching \""+keyword+"\" in pgp..."+t
        _search = pgpsearch.pgp_search(keyword)
        _search.process()
        _allemails = _search.get_emails()

    elif engine == "all":
        banner()
        print w+strf+t+y+"Searching \""+keyword+"\" in google..."+t
        _search = googlesearch.google_search(keyword)
        _search.process()
        _emails = _search.get_emails()
        _allemails.extend(_emails)
        print w+strf+t+y+"Searching \""+keyword+"\" in bing..."+t
        _search = bingsearch.bing_search(keyword)
        _search.process()
        _emails = _search.get_emails()
        _allemails.extend(_emails)
        _allemails = sorted(set(_allemails))
        print w+strf+t+y+"Searching \""+keyword+"\" in pgp..."+t
        _search = pgpsearch.pgp_search(keyword)
        _search.process()
        _emails = _search.get_emails()
        _allemails.extend(_emails)
        _allemails = sorted(set(_allemails))

    if _allemails == []:
        print "\n"+w+strf+t+r+"Not found emails!!\n"+t
        sys.exit(0)
    else:
        print "\n"+w+strf+t+y+"Email found: \n"+t
        for x in xrange(len(_allemails)):
            data={'lang':'en'}
            data['email'] = _allemails[x]
            req = requests.post('http://www.mailtester.com/testmail.php', data=data)
            _re = re.compile(r"[0-9]+(?:\.[0-9]+){3}")
            _findip = _re.findall(req.content)
            new = []
            for q in _findip:
                if q not in new:
                    new.append(q)
            print r+"Email: "+t+"%s"%(_allemails[x])
            for d in range(len(new)):
                v = '\n'.join(new)
                try:
                    con = socket.gethostbyaddr(v)
                except socket.error:
                    pass
                rf = urllib3.PoolManager()
                res = rf.request('GET', "https://api.shodan.io/shodan/host/%s?key=UNmOjxeFS2mPA3kmzm1sZwC0XjaTTksy"% (new[d]))
                h = json.loads(res.data, 'utf-8')

                if 'country_code' and 'country_name' in h:
                    print "\t\t\t|__ %s%s%s (%s)"% (g,new[d],t,con[0])
                    print "\t\t\t|\t|"
                    print "\t\t\t|\t|__ Country: %s (%s) - City: %s (%s)"% (h['country_code'],h['country_name'],h['city'],h['region_code'])
                    print "\t\t\t|\t|__ ISP: %s"% (h['isp'])
                    print "\t\t\t|\t|__ Latitude: %s - Longitude: %s"% (h['latitude'],h['longitude'])
                    print "\t\t\t|\t|__ Hostname: %s - Organization: %s"% (h['hostnames'],h['org'])
                    print ""
                elif 'No information available for that IP.' or 'error' in h:
                    print "\t\t\t|__ %s (%s)"% (new[d],con[0])
                    print "\t\t\t|\t|__"+r+"No information available for that IP!!"+t
                    print ""
                else:
                    print "\t\t\t|__ %s (%s)"% (new[d],con[0])

if __name__ == "__main__":
    try:
        start(sys.argv[1:])
    except KeyboardInterrupt as err:
        print r+"\n[!] By... :)"+t
        sys.exit(0)

Инфога вроде как работет, так как мейлы находит, но похоже что возникает проблема с выводом на экран
строка 191, что то локальная ошибка переменная 'con', на которую ссылается перед присваиванием

Посмотреть вложение 9324

Ну это всё на домашнем компе.

Поставил Инфогу на ноут, запустилась без проблем. Все ОС и настройки на домашнем компе и на ноуте идентичны.
Может ли эта проблема возникать из за железа?
да ну брось ) при чём тут железо
 

valerian38

Grey Team
20.07.2016
662
764
BIT
77
Сегодня подключил домашний комп к другой сети Инфога заработала.

Снимок экрана от 2017-03-10 09-46-08.png


Значит дело не в питоне. Где копать - роутер? провайдер? У кого какие соображения. Очень хочется разобраться в этом вопросе.
[doublepost=1489142593,1489116455][/doublepost]
Для тех, кто еще не совсем потенциал оценил: можно доработать софтину, внести туда больше поисковиков, причем есть поисковые машины узконаправленные ( к примеру на гос.сайтах ). Ко всему прочему, утилита завязана с shodan - еще есть вектор для рамышления.

Доработал немного. Добавил Яндекс и Yahoo. Сканирование оказалось в разы результативнее нежели в авторском варианте.

Снимок экрана от 2017-03-10 16-59-55.png

Снимок экрана от 2017-03-10 17-00-03.png Снимок экрана от 2017-03-10 17-00-18.png Снимок экрана от 2017-03-10 17-00-25.png Снимок экрана от 2017-03-10 17-00-34.png Снимок экрана от 2017-03-10 17-00-45.png Снимок экрана от 2017-03-10 17-00-45.png Снимок экрана от 2017-03-10 17-00-49.png Снимок экрана от 2017-03-10 17-00-57.png Снимок экрана от 2017-03-10 17-01-02.png Снимок экрана от 2017-03-10 17-01-07.png Снимок экрана от 2017-03-10 17-01-14.png

ghostphisher Что за узконаправленные поисковые машины? Можно подробнее?
 
  • Нравится
Реакции: Air7771 и ghostphisher

ghostphisher

местный
07.12.2016
2 602
3 413
BIT
0
Бросил список поисковиков разных под хайд
 
  • Нравится
Реакции: Vander
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!