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

  • Автор темы Gidroponika
  • Дата начала
G

Gidroponika


Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.



Всем привет, сегодня мы напишем 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 является прокси сервером.


6234512_stock-vector-hand-with-a-syringe-injection-vaccination-medicine-jpg.20343



Так вот, когда мы из 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.


060a40c2afe46ffb448e754d465d9381-png.20356



Думаю, что при конвертации этого из 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 - ресурсов, для сбора информации?



Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.

 
Последнее редактирование:
S

SecDet

пробив по телефону не работает, предполагаю на свою рукожопость или автора 50.50))
 
Название темы
Автор Заголовок Раздел Ответы Дата
G Python для хакера - Часть 4. Свой мини фреймворк. Другие ЯП 1
G Python для хакера - Часть 2. Другие ЯП 1
G Python для хакера - Часть 1. Начало. Другие ЯП 5
G Бомбер для ПК на Python Spam/DDOS/Malware 3
I Python программист для разных задач. Ищу работу. Предлагаю свои услуги. 1
S Интересно CrazyPy - Пак самых нужных модулей для создания вирусов на python Другие ЯП 6
M TBomb: Ещё один бомбер на python для termux Другие ЯП 0
M СЛИВ КУРСА Development Script-Python для Начинающих (2019) Корзина 4
A Эликсир для программистов на Python Полезные статьи 0
M Python скрипт для создания базы ip по диапазону Бруты/Парсеры/Чекеры 0
Little_Prince Программирование на Python для тестировщиков Другие ЯП 0
Elliot_service Закрыто Пишу web-проекты | Копии сайтов | Поднимаю сервера | Маркетплейсы | ТГ Боты | Скрипты | Крипта | python, php, js, MySql, html/css Корзина 1
Little_Prince Интересно Напишу проекты [Open Bullet 1|2/Python 3] Бруты/Парсеры/Чекеры 0
CRC29A Ищу работу кодером [C++, Assembler, Python] Услуги дизайнеров/веб-разработчиков 1
C Layer 4 DDOS Tool Python Спам / Флуд / Ддос 0
A Пишем свой RAT на Python > {Часть 1} Уязвимости и взлом 3
A Требуются программисты Python, PHP, C++ Продажа софта 2
L Интересно Реверсим APK (Python-Kivy) Вирусология 4
ВЛАД013 ByPassCaptcha Python Другие ЯП 0
L Интересно Шифруемся используя python (Крипто контейнеры и DPAPI) Другие ЯП 0
Eteriass Интересно Metasploit и Python Уязвимости и взлом 2
Anorali Свой мини кейлоггер на python. Часть 3 Вирусология 2
Anorali Свой мини кейлоггер на python. Часть 2 Вирусология 0
Anorali Свой мини кейлоггер на python Вирусология 4
_ZerO_ Интересно Python и LongPoll VK, или как запустить скрипт ВК и настроит Другие ЯП 2
G Команда разработчиков - php, python, веб дизайн, программирование Ищу работу. Предлагаю свои услуги. 0
B нужна помощь Python | автоматизация работы в браузере Вопросы и интересы 1
E Интересно Бот с автооплатой на Python Другие ЯП 10
S Интересно Свой мини-рат на python + стиллер хрома v80 Софт от наших юзеров 8
M Декомпиляция Python Другие ЯП 1
M Спам комментариями в ВК {PYTHON} Другие ЯП 2
B [Udemy] Полное руководство по Python. Python Programming Bootcamp (2019) Другие ЯП 4
M Защищаем свой Python скрипт за пару минут Другие ЯП 0
M Разные винлокеры,на VBS и PYTHON Другие ЯП 0
B Клиент-серверная игра на Python Полезные статьи 0
B Python. Полное руководство (2019) Полезные статьи 1
B Основы языка Python (2019) Полезные статьи 0
E Не могу запустить Python на Kali Вопросы и интересы 1
D Кодер ищет проекты/работу [Asm/C/Python] Ищу работу. Предлагаю свои услуги. 0
A Что нового в Python 3.8? Полезные статьи 0
A Веб-очистка с BeautifulSoup в Python Другие ЯП 0
R Не изучай синтаксис, изучай псевдокод и программирование! *Python* Другие ЯП 3
S Вирус на Python Софт для работы с текстом/Другой софт 7
S Курсы по c++ , c# , php , python , css , html и т.д. С/C++ 4
G Многопоточный сканер портов на python Полезные статьи 2
G Пишем парсер на Python - грабим Proxy ч.2 Бруты/Парсеры/Чекеры 0
G Пишем парсер на Python - грабим Proxy ч.1 Бруты/Парсеры/Чекеры 2
G Создаём полиалфавитный шифр на Python С/C++ 1
G Пишем шифровальщик на python Полезные статьи 0
Traven Пишем спамер Telegram, на Python Другое 0

Название темы