• Начинающий хакер, спасибо что зашли к нам! Для полного удобства рекомендуем Вам сразу же зарегистрироваться. Помните, необходимо придумать сложный пароль к своему логину, в котором будут присутствовать цифры, а так же символы. После регистрации вы сможете пользоваться чатом. Так же не забудьте активировать аккаунт через письмо, высланное вам на почту ! Администрация заботится о каждом из Вас...
  • Для просмотра разделов из категории PRIVATE INFORMATIONS & PROGRAMMS необходимо приобрести
  • Для просмотра разделов из категории ЗАКРЫТЫЙ ПОКАЗ необходимо купить
  • Для просмотра разделов из категории СЛИТЬ HIDE С ИСТОЧНИКА необходимо купить
  • Для просмотра разделов из категории ПОЛНЫЕ ДАМПЫ ФОРУМОВ необходимо купить

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

Статус
В этой теме нельзя размещать новые ответы.

Gidroponika

Ваши вопросы в Telegram: @Staykill
Команда форума
Регистрация
28 Янв 2017
Сообщения
549
Реакции
18
Баллы
3
*Прошлая часть*

Содержание:
  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.
Также создаем главный файл в котором будем, в скором использовать все наши модули. Должно получиться примерно так


060a40c2afe46ffb448e754d465d9381 (1).jpg

Для начала, составим не сложный алгоритм для 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())
В нашем не большом меню присутствует некоторый выбор команд и конечно, сами модули)
Первые уже подключены, давайте идти дальше!

060a40c2afe46ffb448e754d465d9381.png

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

_SecDet_

Пользователь
Регистрация
9 Фев 2018
Сообщения
9
Реакции
0
Баллы
1
Ip не прилетает
 

EgorData

Пользователь
Регистрация
14 Фев 2018
Сообщения
11
Реакции
0
Баллы
1
Где ссылка на продолжение?
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу