Статья для участия в Конкурсе программистов
У программы есть следующее возможности:
сканирование всех портов или 1 конкретного
получение IP по домену
получение имени сервера
получение whois информации
получение информации по номеру телефона
создание запросов с кастумным или дефолтным user-agentom
выполнение команд не выходя из скрипта
смена мак адреса или имени хоста
запуск airgeddona
запуск nmap в разных режимах сканирование
на написание программы меня вдохновили статьи питон для хакера но статьи к сожалению закончились а писать программу я продолжила и написала ещё несколько модулей а так-же немного изменила изначально привидений в статье код но продолжила использовать модули для выноса основных возможностей из главного файла, иначе он был-бы очень большим и трудно читаемым
	
	
	
	
		
теперь подробнее про модули
написанию этих модулей siteName, infoPhone, infoIP я разбирать не буду т. к. их написание описано в статьях питон для хакера я внесла туда несколько изменений но они минимальны в них каждый при желании сам разберется.
Так-же я не буду разбирать модуль scan в его написании мне помогла следующая статья в него внесены уже более крупные мои изменения но опять таки желающим разобраться статьи хватит
теперь пошли уже мои модули их я буду более подробно описывать
начну с модуля request
	
	
	
	
		
так же есть модуль os он позволяет выполнять команды не выходя из программы
код максимально простой
	
	
	
	
		
теперь пришло время модуля отвечающего за подмену мак адреса и имени хоста
	
	
	
	
		
Следующий модуль для запуска аиргедона
	
	
	
	
		
тут минимум кода поэтому перейдем к модулю с запуском нмапа тут уже интереснее
	
	
	
	
		
Для запуска программы нужны следующие библиотеки:
termcolor
socket
requests
urllib3
subprocess
json
os
urllib
для установки библиотек выполнить:
sudo pip install termcolor socket requests urllib3 subprocess json os urllib
или
sudo pip3 install termcolor socket requests urllib3 subprocess json os urllib
если нет pip то выполнить:
Debian:
sudo apt install python3-pip
or
sudo apt install python-pip
Fedora:
sudo dnf install python-pip
or
sudo dnf install python3-pip
Arch:
sudo pacman -S python-pip
название пакета содержащего pip может отличаться, я точно знаю его название только для арча.
Если не получаеться поставить библиотеки на 3 питон можно попробовать использовать 2 теоретически ошибок возникнуть не должно
как правило питон в linuxe установлен если нет то нужно выполнить следующею команду
Debian:
sudo apt install python3
or
sudo apt install python
Fedora:
sudo dnf install python
or
sudo dnf install python3
Arch:
sudo pacman -S python
также дополнительно нужно установить:
airgeddon
macchanger
nmap
Это можно сделать так:
Debian:
sudo apt install airgeddon macchanger nmap
Fedora:
sudo dnf install airgeddon macchanger nmap
Arch:
sudo pacman -S airgeddon macchanger nmap
если чего-то нет в репозиториях вот ссылка на сайт где можно это найти почти для любого дистрибутива:
 link removed
кроме airgeddona его устанавливать так:
git clone v1s1t0r1sh3r3/airgeddon
cd airgeddon/
sudo bash airgeddon.sh
сам фреймворк запускать так:
cd fraimwork
python main.py
or
python3 main.py
установка не требуется
при попытки сделать спойлер main получаю кучу ошибок видимо файл слишком большой поэтому я просто прикреплю паку с файлами содержащими исходный код
P.S.
это моя первая статья вообще поэтому прошу сильно помидорами не кидаться но критику принять готова как по самой статье так и по коду.
				
			У программы есть следующее возможности:
сканирование всех портов или 1 конкретного
получение IP по домену
получение имени сервера
получение whois информации
получение информации по номеру телефона
создание запросов с кастумным или дефолтным user-agentom
выполнение команд не выходя из скрипта
смена мак адреса или имени хоста
запуск airgeddona
запуск nmap в разных режимах сканирование
на написание программы меня вдохновили статьи питон для хакера но статьи к сожалению закончились а писать программу я продолжила и написала ещё несколько модулей а так-же немного изменила изначально привидений в статье код но продолжила использовать модули для выноса основных возможностей из главного файла, иначе он был-бы очень большим и трудно читаемым
		Код:
	
	from termcolor import colored
#тут идет подключение модулей 
import modules.siteName
import modules.scan
import modules.infoIp
import modules.infoPhone
import modules.request
#и создание функций которые я буду потом вызывать
getIPaddr = modules.siteName.getIP
getServer = modules.siteName.getServerName
scanPort = modules.scan.scaner
scanList = modules.scan.list
infIP = modules.infoIp.whois
infPhone = modules.infoPhone.infPhone
req = modules.request.GetRequest
#с помощью этой переменой потом можно будет вывести красивый список возможностей 
modulesList = r"""
            +-----------------------------------------+
            | [1] -- Get IP address.                  |
            | [2] -- Get Server Name.              |
            | [3] -- Scan port                           |
            | [4] -- Scan the list of ports          |
            | [5] -- Whois                                 |
            | [6] -- Info Phone                         |
            | [7] -- Request                             |
            +-----------------------------------------+
"""
def setModule ():
    #вызываем красивый список:)
    moduleNum = input(colored("Enter module num--> ", 'green'))
    #тут в зависимости от выбраной пользователем цифры исполняется одна из возможностей я не стола выводить весь код так как он длиный а по факту дальше тоже самое
    if moduleNum == "1":
        try:
            domain = input (colored("[Enter domain]: ", 'green'))
            #вызываем созданную нами функцию
            ipSite = getIPaddr(domain)
            #красиво выводим ответ
            print(colored("-" * 60,'yellow'))
            print(colored("[IP] == [{0}]".format(ipSite), 'green'))
            print(colored("-" * 60,'yellow'))
        #или пишем ошибку
        except:
            print(colored("[Error]: Domain or ip not found!", 'red'))
#================================================================================================================================================
    #и т. д. :)
    elif moduleNum == "2":
        try:
            site = input (colored("[Enter domain]: ", 'green'))
            url = "http://" + site
            server = getServer(url)
            print(colored("-" * 60,'yellow'))
            print(colored("[Server] == [{0}]".format(server), 'green'))
            print(colored("-" * 60,'yellow'))
        except:
            print(colored("[Error]: Domain or server not found!", 'red'))
	теперь подробнее про модули
написанию этих модулей siteName, infoPhone, infoIP я разбирать не буду т. к. их написание описано в статьях питон для хакера я внесла туда несколько изменений но они минимальны в них каждый при желании сам разберется.
Так-же я не буду разбирать модуль scan в его написании мне помогла следующая статья в него внесены уже более крупные мои изменения но опять таки желающим разобраться статьи хватит
теперь пошли уже мои модули их я буду более подробно описывать
начну с модуля request
		Код:
	
	#импортируем нужные библиотеки
import urllib3
from termcolor import colored
def GetRequest():
    #позволяем пользователю выбрать хочет-ли он использовать костумный или дефолтный user-agent
    quest = input(colored("Defoult useragent 1\n Castum useragent 2\n", 'yellow'))
    if(quest == "2"):
        castum = input(colored("Castum useragent: ", 'yellow'))
    elif(quest == "1"):
        castum = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Edge/15.15063"
    else:
        print(colored("Option not found", 'red'))
    #спрашиваем пользователя об IP или домене
    ip = input(colored("Enter IP or domain: ", 'yellow'))
    #и даем выбрать ему метод запроса
    met = input(colored("Enter metod: ", 'yellow'))
    #создаем запрос с заданными параметрами
    useragent = {'user-agent': castum,'connection':'keep-alive'}
    http = urllib3.PoolManager(headers=useragent)
    r = http.request(met,ip)
    
    #возвращаем данные запроса
    return r.data
	так же есть модуль os он позволяет выполнять команды не выходя из программы
код максимально простой
		Код:
	
	#импортируем библиотеку subprocess
import subprocess
def os(comand):
    #запускаем команду
    subprocess.call(comand, shell=True)
	теперь пришло время модуля отвечающего за подмену мак адреса и имени хоста
		Код:
	
	#вновь импортируем нужные библиотеки
import subprocess
#объявляем функция для смены мака
def mac(intr):
   #запускаем команду для смены мака
    subprocess.call("sudo ifconfig %s down; sudo macchanger -r %s; sudo ifconfig %s up" % (intr,intr, intr), shell=True)
#теперь  объявляем функция для смены имени хоста
def HostName(host):
    #выводим текущие имя
    subprocess.call("hostname", shell=True)
     #меняем его
    subprocess.call("sudo  hostname %s" % host, shell=True)
     #выводим новое
    subprocess.call("hostname", shell=True)
	Следующий модуль для запуска аиргедона
		Код:
	
	import subprocess
def airstart():
    subprocess.call("sudo airgeddon", shell=True)
	тут минимум кода поэтому перейдем к модулю с запуском нмапа тут уже интереснее
		Код:
	
	#импортируем библиотеки
from termcolor import colored
import subprocess
def scannmap():
#красиво выводим пользователю список возможностей
    print(colored(r"""
        *-------------------------------------*
        | [1] -- simple scan                 |
        | [2] -- scan all ports               |
        | [3] -- detailed scan of port 1 |
        | [4] -- detailed scan host       |
        | [5] -- ping scan                    |
        *-------------------------------------*
    """, "yellow"))
    #спрашиваем что он выбрал
    option = input(colored("Enter option num--> ", 'green'))
    #спрашиваем ip или домен
    IP = input(colored("Enter IP or domain: ", "yellow"))
    #в зависимости от выбора исполняем команду или выводим ошибку
    if option == "1":
        subprocess.call("sudo nmap %s" % IP, shell=True)
    elif option == "2":
        port = input(colored("Enter range in the format 0-100: ", "yellow"))
        subprocess.call("sudo nmap -p %s %s" % (port, IP), shell=True)
    elif option == "3":
        port = input(colored("Enter port: ", "yellow"))
        subprocess.call("sudo nmap -p %s -sV %s" % (port, IP), shell=True)
    elif option == "4":
        subprocess.call("sudo nmap -A -O %s" % IP, shell=True)
    elif option == "5":
        subprocess.call("sudo nmap -sn %s" % IP, shell=True)
    else:
        print (colored( "[Error]: option not found!", 'red'))
	Для запуска программы нужны следующие библиотеки:
termcolor
socket
requests
urllib3
subprocess
json
os
urllib
для установки библиотек выполнить:
sudo pip install termcolor socket requests urllib3 subprocess json os urllib
или
sudo pip3 install termcolor socket requests urllib3 subprocess json os urllib
если нет pip то выполнить:
Debian:
sudo apt install python3-pip
or
sudo apt install python-pip
Fedora:
sudo dnf install python-pip
or
sudo dnf install python3-pip
Arch:
sudo pacman -S python-pip
название пакета содержащего pip может отличаться, я точно знаю его название только для арча.
Если не получаеться поставить библиотеки на 3 питон можно попробовать использовать 2 теоретически ошибок возникнуть не должно
как правило питон в linuxe установлен если нет то нужно выполнить следующею команду
Debian:
sudo apt install python3
or
sudo apt install python
Fedora:
sudo dnf install python
or
sudo dnf install python3
Arch:
sudo pacman -S python
также дополнительно нужно установить:
airgeddon
macchanger
nmap
Это можно сделать так:
Debian:
sudo apt install airgeddon macchanger nmap
Fedora:
sudo dnf install airgeddon macchanger nmap
Arch:
sudo pacman -S airgeddon macchanger nmap
если чего-то нет в репозиториях вот ссылка на сайт где можно это найти почти для любого дистрибутива:
кроме airgeddona его устанавливать так:
git clone v1s1t0r1sh3r3/airgeddon
cd airgeddon/
sudo bash airgeddon.sh
сам фреймворк запускать так:
cd fraimwork
python main.py
or
python3 main.py
установка не требуется
при попытки сделать спойлер main получаю кучу ошибок видимо файл слишком большой поэтому я просто прикреплю паку с файлами содержащими исходный код
P.S.
это моя первая статья вообще поэтому прошу сильно помидорами не кидаться но критику принять готова как по самой статье так и по коду.