HHIDE_DUMP
Гость
H
HHIDE_DUMP
Гость
Пожалуйста,
Вход
или
Регистрация
для просмотра содержимого URL-адресов!
Содержание:
- 1.--- Предисловие автора.
- 2.--- Краткое введение.
- 3.--- Поговорим о функционале.
- 4.--- Приступаем к работе.
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 и чуть выше Для начала, создайте две папки. Одна из которых будет modules, а другая wordlists.
Также создаем главный файл в котором будем, в скором использовать все наши модули. Должно получиться примерно так
Посмотреть вложение 8826
Для начала, составим не сложный алгоритм для main.py
Код:
1. Получает на вход доменное имя ресурса
2. Отсылает его на вход различным модулям
3. Записывает в переменные результаты работы наших модулей
4. Вывод полученных данных
Создаем файл 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!"
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())
Первые уже подключены, давайте идти дальше!
Посмотреть вложение 8827
Думаю, что на этом можно и закончить, а завтра займемся поиском CMS, whois lookup и сканированием портов. Рекомендую повторить вам тему, про регулярки т.к. завтра они вам понадобятся. (Из-за нехватки времени, статья не получилась более обширней). Всем пока!)