Python для хакера - Часть 3. Сбор информации об IP и пробиваем номер сотового.

  • Автор темы HHIDE_DUMP
  • Дата начала
  • Просмотры 3K
  • На форуме работает ручное одобрение пользователей. Это значит, что, если Ваша причина регистрации не соответствует тематике форума, а также Вы используете временную почту, Ваша учётная запись будет отклонена без возможности повторной регистрации. В дальнейшем - пожизненная блокировка обоих аккаунтов за создание мультиаккаунта.
  • Мы обновили Tor зеркало до v3!
    Для входа используйте следующий url: darkv3nw2...bzad.onion/
  • Мы вновь вернули telegram чат форуму, вступайте, общайтесь, задавайте любые вопросы как администрации, так и пользователям!
    Ссылка: https://t.me/chat_dark_time

HHIDE_DUMP

Гость
H

HHIDE_DUMP

Гость
Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!


Всем привет, сегодня мы напишем 2 не больших скрипта на Python, которые не много облегчат вам сбор информации. Первый скрипт получает информацию об IP, а второй не много о номере сотового.

[1] - Сбор информации об IP.

Для начала определимся с тем, какую информацию хотим получить. В основном, это будет город, страна, континент (а вдруг) и провайдер. Также не плохо было бы получить информацию whois. Для написания нашего скрипта, я составил простенький алгоритм.

Код:
1. Взять на вход IP адрес
2. Составить URL адрес по типу: http://ipinfo.io/<IP>/json
3. Запросить JSON данные обратившись по этому адресу
4. Изменяем из JSON формата в словарь на языке Python
5. По средством Python выполним команду в терминале whois <IP>
6. Прочтем данные из пункта выше
7. В читабельном виде выведем полученную информацию
Для начала разберемся с сервисом ipinfo.io - он предоставляет нам информацию об указанном вами IP адресе. Но что же такое JSON? Это всего то один из способов ранения данных. Мы же этот способ переформируем в словарь. Чтобы лучше понять, давайте пропишем в адресной строке вашего браузера следующий URL

Код:
https://ipinfo.io/101.50.1.2/json
Прописав этот URL, вы как будто говорите серверу "Предоставь мне информацию об IP адресе 101.50.1.2 в виде JSON". Данный IP является прокси сервером.





Так вот, когда мы из JSON переформируем данные в словарь, то чтобы получить, например информацию о городе, существует ключ "city". Более обширная информация о регионе, то ключ "region". Надеюсь, что на этом моменте все понятно. Приступим к написанию непосредственно кода.

Первым делом импортируем необходимые библиотеки. Мы воспользуемся библиотеками json - для обработки информации, urllib.request - для отправки запросов на ресурс и получении данных и os - для выполнения команд в терминале Linux.

Python:
import urllib.request
import json
import os
Теперь же, нам необходимо запросить у пользователя IP адрес, о котором собственно и будет собрана информация.

Код:
getIP = input("[+] Enter IP --> ")
Составляем необходимый URL, дабы в дальнейшем запросить с него информацию.

Код:
url = "https://ipinfo.io/" + getIP + "/json"
Запрашиваем информацию и записываем ее в переменную getInfo. Но, для выявления ошибок, заключаем наш запрос в конструкцию try --> except

Код:
try:
    getInfo = urllib.request.urlopen( url )
except:
    print( "\n[!] - IP not found! - [!]\n" )
Как раз, после выполнения данной строки, если IP был найден в базе сайта и мы корректно подключились к нему, нужно преобразовать данные из JSON в словарь. Для этого воспользуемся опять таки одной строкой))

Код:
infoList = json.load(getInfo)
Данные получены, но не спешите выводить всю информацию, это мы сделаем в последнюю очередь. А теперь получаем whois информацию. Здесь все еще проще.

Код:
myComand = "whois " + getIP
whoisInfo = os.popen( myComand ).read()
После того, как мы собрали всю информацию, нам необходимо красиво вывести ее.


Код:
print( "-" * 60 )

print( "IP: ", infoList["ip"] )
print( "City: ", infoList["city"] )
print( "Region: ", infoList["region"] )
print( "Country: ", infoList["country"] )
print( "Hostname: ", infoList["hostname"] )

print( "-" * 60 )
print( whoisInfo )
print( "-" * 60)
Код я не много видоизменил и "продекорировал". Вот, что получилось в итоге


Код:
import urllib.request
import json
import os

getIP = input("[+] Enter IP --> ")
url = "https://ipinfo.io/" + getIP + "/json"

try:
    getInfo = urllib.request.urlopen( url )

except:
    print( "\n[!] - IP not found! - [!]\n" )

infoList = json.load(getInfo)

def whoisIPinfo(ip):

    try:

        myComand = "whois " + getIP
        whoisInfo = os.popen( myComand ).read()
        return whoisInfo

    except:

        return "\n [!] -- Error -- [!] \n"

   
print( "-" * 60 )

print( "IP: ", infoList["ip"] )
print( "City: ", infoList["city"] )
print( "Region: ", infoList["region"] )
print( "Country: ", infoList["country"] )
print( "Hostname: ", infoList["hostname"] )

print( "-" * 60 )
print( whoisIPinfo ( getIP ) )
print( "-" * 60)
Посмотреть вложение 8818


[2] - Пробиваем номер сотового.

Здесь, все строиться практически на таком же алгоритме. За исключением whois))) В число интересующей нас информации входит город, страна, сотовый оператор.
Брать информацию мы будем в виде JSON. Для начала, посмотрим на ее "внешний вид". Для этого пропишите какой-либо номер используя следующий URL.


Код:
https://htmlweb.ru/geo/api.php?json&telcod=<ТЕЛЕФОН>
Я возьму телефон с ресурса onlinesim.





Думаю, что при конвертации этого из JSON получится многомерный словарь)) Т.е. нужно будет использовать ключи 2 раза. Например словарь[key1][key2]
Приступим конечно же к кодингу. Ничего не меняется, мы импортируем все те же библиотеки, за исключением os.


Код:
import urllib.request
import json
Далее, запрашиваем у пользователя номер сотового телефона

Код:
phone = input("Enter phone: ")
Формируем URL для запроса

Код:
getInfo = "https://htmlweb.ru/geo/api.php?json&telcod=" + phone
Запрашиваем у ресурса информацию о сотовом в json формате
Код:
try:
    infoPhone = urllib.request.urlopen( getInfo )
except:
    print( "\n[!] - Phone not found - [!]\n" )
Из полученной информации, которая храниться в виде json создаем многомерный словарь)
Код:
infoPhone = json.load( infoPhone )
И, конечно, красиво выводим все полученную информацию.
Код:
print( u"Номер сотового --->", "+" + phone )
print( u"Страна ---> ", infoPhone["country"]["name"] )
print( u"Регион ---> ", infoPhone["region"]["name"] )
print( u"Округ ---> ", infoPhone["region"]["okrug"] )
print( u"Оператор ---> ", infoPhone["0"]["oper"] )
print( u"Часть света ---> ", infoPhone["country"]["location"] )
На вход программе давайте номер сотового, но без +


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


А на этом, друзья, все)

P.S: А не начать ли нам, в следующей части, писать свой сканер web - ресурсов, для сбора информации?


Пожалуйста, Вход или Регистрация для просмотра содержимого URL-адресов!
 
Последнее редактирование:

HHIDE_DUMP

Гость
H

HHIDE_DUMP

Гость
пробив по телефону не работает, предполагаю на свою рукожопость или автора 50.50))
 

О нас

  • Наше сообщество существует уже много лет и гордится тем, что предлагает непредвзятое, критическое обсуждение различных тем среди людей разных слоев общества. Мы работаем каждый день, чтобы убедиться, что наше сообщество является одним из лучших.

    Dark-Time 2015 - 2022

    При поддержке: XenForo.Info

Быстрая навигация

Меню пользователя