Статья для участия в Конкурсе программистов
У программы есть следующее возможности:
сканирование всех портов или 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.
это моя первая статья вообще поэтому прошу сильно помидорами не кидаться но критику принять готова как по самой статье так и по коду.