Содержание:
1. Предисловие автора.
Всех приветствую, дорогие друзья) Начну с не большого предисловия. Я конечно очень люблю критику, так как с ее помощью можно стать еще сильнее. Но все таки, цель данного цикла, показать, что особо сложного ничего нет и основываясь на простом мы можем создать что-либо интересное. Т.е. зная всего основы такого языка, как Python, уже можно написать много чего интересного. И я придерживаюсь этой цели цикла, стараясь не затрагивать сложности (хотя они интереснее).
2. Краткое введение.
Сегодня мы напишем весьма не большой, так сказать фреймворк) Думаю, такая работа может и растянуться на несколько статей. Все попытаюсь объяснять простым языком. И, как я упомянул ранее, к сложностям прибегать не будем (а если и прибегнем, то попытаюсь разжевать).
3. Поговорим о функционале.
Во-первых, наш мини фреймворк будет в основном упрощать многие действия. Думаю, что напишем мы несколько модулей. Некоторые из них, как например сканирование портов, к ним можно пристроить nmap, а например, при поиске интересных файлов, субдоменов, написать уже самим. Разнообразие еще никому не вредило. Для начала, давайте, разберемся, какие модули будем писать. Исходя из теории, мы должны будем узнать
Со временем, возможно и дополним данный список. А теперь, конечно, приступаем к работе.
4. Приступаем к работе.
Наш фреймворк будет написан на python3 и чуть выше Для начала, создайте 2-е папки. Одна из которых будет modules, а другая wordlists.
Также создаем главный файл в котором будем, в скором использовать все наши модули. Должно получиться примерно так
Для начала, составим не сложный алгоритм для main.py
Первым модулем, который на вход будет получать доменное имя ресурса, будет модуль по определению IP адреса. Конечно, стоит узнать и сервер.
Создаем файл siteName.py в папке modules с следующим содержимым
Давайте, теперь, начнем работу и с main.py - первым делом подключим наши модули. Так как файл main.py не находиться в папке с модулями, то нам придется указывать путь, до первого модуля. Делается это через точку.
Теперь, давайте напишем не большое, основное меню. Но перед этим я, также написал вывод уже существующих модулей
В нашем не большом меню присутствует некоторый выбор команд и конечно, сами модули)
Первые уже подключены, давайте идти дальше!
Думаю, что на этом можно и закончить, а завтра займемся поиском CMS, whois lookup и сканированием портов. Рекомендую повторить вам тему, про регулярки т.к. завтра они вам понадобятся. (Из-за нехватки времени, статья не получилась более обширней). Всем пока!)
- --- Предисловие автора.
- --- Краткое введение.
- --- Поговорим о функционале.
- --- Приступаем к работе.
1. Предисловие автора.
Всех приветствую, дорогие друзья) Начну с не большого предисловия. Я конечно очень люблю критику, так как с ее помощью можно стать еще сильнее. Но все таки, цель данного цикла, показать, что особо сложного ничего нет и основываясь на простом мы можем создать что-либо интересное. Т.е. зная всего основы такого языка, как Python, уже можно написать много чего интересного. И я придерживаюсь этой цели цикла, стараясь не затрагивать сложности (хотя они интереснее).
2. Краткое введение.
Сегодня мы напишем весьма не большой, так сказать фреймворк) Думаю, такая работа может и растянуться на несколько статей. Все попытаюсь объяснять простым языком. И, как я упомянул ранее, к сложностям прибегать не будем (а если и прибегнем, то попытаюсь разжевать).
3. Поговорим о функционале.
Во-первых, наш мини фреймворк будет в основном упрощать многие действия. Думаю, что напишем мы несколько модулей. Некоторые из них, как например сканирование портов, к ним можно пристроить nmap, а например, при поиске интересных файлов, субдоменов, написать уже самим. Разнообразие еще никому не вредило. Для начала, давайте, разберемся, какие модули будем писать. Исходя из теории, мы должны будем узнать
Код:
1. IP адрес ресурса
2. CMS
3. Whois
4. Сканирование портов
5. Поиск интересных файлов
6. Содержимое robots.txt (если будет)
7. DNS lookup)
8. Поиск email'а администратора
9. Server
Со временем, возможно и дополним данный список. А теперь, конечно, приступаем к работе.
4. Приступаем к работе.
Наш фреймворк будет написан на python3 и чуть выше Для начала, создайте 2-е папки. Одна из которых будет modules, а другая wordlists.
Также создаем главный файл в котором будем, в скором использовать все наши модули. Должно получиться примерно так
Для начала, составим не сложный алгоритм для main.py
Код:
1. Получает на вход доменное имя ресурса
2. Отсылает его на вход различным модулям
3. Записывает в переменные результаты работы наших модулей
4. Вывод полученных данных
Первым модулем, который на вход будет получать доменное имя ресурса, будет модуль по определению IP адреса. Конечно, стоит узнать и сервер.
Создаем файл siteName.py в папке modules с следующим содержимым
Python:
import socket # импортируем библиотеки
import requests
def getIP ( domainName ): # данная функция использует библиотеку сокет для получения IP
try:
ip = socket.gethostbyname(domainName)
return ip
except:
return "[Error]: ip not found!"
def getServerName ( siteName ): # данная функция, берет из HTTP заголовков имя сервера по средством requests
try:
content = requests.get( siteName )
server = content.headers['Server']
return server
except:
return "[Error]: Server not found!"
Давайте, теперь, начнем работу и с main.py - первым делом подключим наши модули. Так как файл main.py не находиться в папке с модулями, то нам придется указывать путь, до первого модуля. Делается это через точку.
Python:
import modules.siteName
Теперь, давайте напишем не большое, основное меню. Но перед этим я, также написал вывод уже существующих модулей
Python:
import modules.siteName # инициализация нашего модуля
getIPaddr = modules.siteName.getIP
getServer = modules.siteName.getServerName
# список модулей
modulesList = r"""
+-----------------------------------------+
| [1] -- Get IP address. |
| [2] -- Get Server Name. |
+-----------------------------------------+
"""
# выводим список некоторых команд
print(r"""
+-----------------------------------------+
| [exit] -- exit ;) |
| [back] -- back on main menu |
| [modules] -- show modules |
+-----------------------------------------+
""")
def setModule (): # функция направлена на выбор и использование модулей
moduleNum = input("[Enter module num]: ")
if moduleNum == "1":
try:
domain = input ( "[Enter domain]: " ) # запрашиваем у пользователя имя сайта
ipSite = getIPaddr(domain) # отправляем имя нашему модулю
print("-" * 60)
print("[IP] == [{0}]".format(ipSite))
print("-" * 60)
except:
print( "[Error]: Domain or ip not found!" )
elif moduleNum == "2":
try:
site = input ( "[Enter domain]: " )
url = "http://" + site
server = getServer(url)
print("-" * 60)
print("[Server] == [{0}]".format(server))
print("-" * 60)
except:
print( "[Error]: Domain or server not found!" )
comand()
def comand (): # функция направлена на исполнение выбранной пользователем команды
comand = input("[$] --> ")
if comand == "exit": exit( "Close program... " )
elif comand == "back": print(comand())
elif comand == "modules":
print ( modulesList )
print ( setModule () )
else:
print ( "[Error]: Comand not found!" )
print ( comand () )
print(comand())
В нашем не большом меню присутствует некоторый выбор команд и конечно, сами модули)
Первые уже подключены, давайте идти дальше!
Думаю, что на этом можно и закончить, а завтра займемся поиском CMS, whois lookup и сканированием портов. Рекомендую повторить вам тему, про регулярки т.к. завтра они вам понадобятся. (Из-за нехватки времени, статья не получилась более обширней). Всем пока!)
Последнее редактирование: