Python для хакера - Часть 4. Свой мини фреймворк.

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

HHIDE_DUMP

Гость
H

HHIDE_DUMP

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


Содержание:
  1. 1.--- Предисловие автора.
  2. 2.--- Краткое введение.
  3. 3.--- Поговорим о функционале.
  4. 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. Вывод полученных данных
Первым модулем, который на вход будет получать доменное имя ресурса, будет модуль по определению 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())
В нашем не большом меню присутствует некоторый выбор команд и конечно, сами модули)
Первые уже подключены, давайте идти дальше!

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

Думаю, что на этом можно и закончить, а завтра займемся поиском CMS, whois lookup и сканированием портов. Рекомендую повторить вам тему, про регулярки т.к. завтра они вам понадобятся. (Из-за нехватки времени, статья не получилась более обширней). Всем пока!)
 

О нас

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

    Dark-Time 2015 - 2022

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

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

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