• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Статья Sacrifice - URL обфускатор

Приветствую всех! Я искал в интернете инструменты для обфускации url адресов, но я не нашел таких, и решил написать свой.
Найти вы его сможете тут
Код:
https://git.codeby.net/Tayrus/Sacrifice/
Или внизу статьи.

Обычно я объясняю свой код, но не сегодня)

Для работы нужен python3 версии, библиотеки colorama и termcolor.

Запустим скрипт:

2018-11-08_13-06-34.png


Пока что я добавил 2 метода обфускации, но если этот проект будет пользоваться спросом, то ВОЗМОЖНО добавлю еще пару методов.

Я выбираю 1 метод, далее нас просят ввести адрес сайта куда будет вести ссылка:

2018-11-08_13-07-11.png


Я выбрал facebook.com. Теперь мы можем смешать наш адрес с адресом google.com(можете изменить на свой):

2018-11-08_13-07-21.png


Скрипт нам выдал ссылку. Вставим ее в адресную строку и посмотрим куда она нас приведет:

2018-11-08_13-07-38.png


Жмем "Enter":

2018-11-08_13-07-49.png


Открылся facebook.com.

Теперь давайте попробуем 2-ой метод, ссылка будет вести на github и миксовать мы не будем:

2018-11-08_13-08-27.png


Вставляем ссылку в адресную строку:

2018-11-08_13-08-44.png


Жмем "Enter":

2018-11-08_13-08-54.png


На этом все!)
Код:
#Добавил еще метод
from termcolor import *
import colorama
import socket
import math

colorama.init()

select = 0
res = 0
payload = 0
addr = 0
mixing = 0

def banner():
    s = """
      _____  ____    __  ____   ____  _____  ____   __    ___
     / ___/ /    |  /  ]|    \ |    ||     ||    | /  ]  /  _]
    (   \_ |  o  | /  / |  D  ) |  | |   __| |  | /  /  /  [_
     \__  ||     |/  /  |    /  |  | |  |_   |  |/  /  |    _]
     /  \ ||  _  /   \_ |    \  |  | |   _]  |  /   \_ |   [_
     \    ||  |  \     ||  .  \ |  | |  |    |  \     ||     |
      \___||__|__|\____||__|\_||____||__|   |____\____||_____|
                                                            
    """

    cprint(s,'green')
    cprint('                             Author: @Tayrus','red')

def selector():
    global select
    global payload
    global mixing
    print ('\n')
    cprint('Выберите тип обфускации:','green')
    print ('\n')
    cprint('[1] Hexadecimal','green')
    cprint('[2] Octal','green')
    cprint('[3] Decimal','green')
    select = input(': ')
    if not select == '1' and not select == '2' and not select == '3':
        cprint ('Ты выбрал неправильные значения!','red')
        exit()
    print ('\n')
    cprint('Введите адресс сайта:','green')
    payload = input(': ')
    print ('\n')
    cprint('Миксовать наш payload(1 или 0)?:','green')
    mixing = input(': ')

def check():
    global select
    if select == '1':
        Hexadecimal()
    if select == '2':
        Octal()
    if select == '3':
        Decimal()
    if mixing == '1':
        mix()

def getIp():
    global addr
    addr = socket.gethostbyname(payload)


def Hexadecimal():
    global res
    addr2 = addr.split('.')
    numbers = [int(c) for c in addr2]
    res = 'http://' + '.'.join(map(hex, numbers))
    print('\n')
    if mixing == '0':
        cprint(res,'green')

def Octal():
    global res
    addr2 = addr.split('.')
    numbers = [int(c) for c in addr2]
    res = 'http://' + '.'.join(map(oct, numbers))
    res = res.replace('o','')
    if mixing == '0':
        cprint(res,'green')

def Decimal():
    global res
    count = 0
    addr2 = addr.split('.')
    numbers = [int(c) for c in addr2]
    for x in numbers:
        if count == 0:
            res = x * math.pow(16,6)
        if count == 1:
            res += x * math.pow(16,4)
        if count == 2:
            res += x * math.pow(16,2)
        if count == 3:
            res += x
        count += 1
    res = 'http://' + str(int(res))
    if mixing == '0':
        cprint(res,'green')


def mix():
    res3 = 'http://google.com@' + res[7:]
    cprint(res3,'green')

def main():
    banner()
    selector()
    getIp()
    check()

if __name__ == '__main__':
    main()

PS github и facebook были для примера, вместо них возможно должны быть ваши сайты или C2 и т.п
 
Последнее редактирование:
T

TPOH

Может кто знает С# библу для такой же реализации?
 

Bypass

Green Team
02.02.2018
451
579
BIT
0
если юзать payload хром нормально хавает ссылку

а панда уже предупреждает )

ffe0680956.jpg
 

Tayrus

Red Team
13.04.2017
365
787
BIT
6
Обновил скрипт!
Что нового?:
- Возможность работы с списком URL
- Добавление незначительных фишек

Код:
Код:
import socket
import math
import colorama
colorama.init(autoreset=True)


class Bcolors:
    GN = '\033[32m'
    R = '\033[91m'


select = 0
res = 0
buf = []
addrlist = []
payload = 0
addr = str(0)
mixing = 0
spisok = str(0)
path = str(0)


def banner():
    s = """
      _____  ____    __  ____   ____  _____  ____   __    ___
     / ___/ /    |  /  ]|    \ |    ||     ||    | /  ]  /  _]
    (   \_ |  o  | /  / |  D  ) |  | |   __| |  | /  /  /  [_
     \__  ||     |/  /  |    /  |  | |  |_   |  |/  /  |    _]
     /  \ ||  _  /   \_ |    \  |  | |   _]  |  /   \_ |   [_
     \    ||  |  \     ||  .  \ |  | |  |    |  \     ||     |
      \___||__|__|\____||__|\_||____||__|   |____\____||_____|
                                                              
    """

    print(Bcolors.GN + s)
    print(Bcolors.R + '                          Author: @Tayrus') # Также спасибо @explorer
    print(Bcolors.R + '                            Version 1.2')


def selector():
    global select
    global payload
    global mixing
    global spisok
    global path
    print('\n')
    print(Bcolors.GN + 'Выберите тип обфускации:')
    print('\n')
    print(Bcolors.GN + '[1] Hexadecimal')
    print(Bcolors.GN + '[2] Octal')
    print(Bcolors.GN + '[3] Decimal')
    select = input(': ')
    if not select == '1' and not select == '2' and not select == '3':
        print(Bcolors.R + 'Ты выбрал неправильные значения!')
        exit()
    print('\n')
    print(Bcolors.GN + 'Миксовать наш payload(1 или 0)?:')
    print('\n')
    mixing = input(': ')
    print('\n')
    print(Bcolors.GN + '[0]Список или один адрес[1]?:')
    print('\n')
    spisok = input(': ')
    if spisok == '0':
        print('\n')
        print(Bcolors.GN + 'Путь до .txt файла:')
        print('\n')
        path = input(': ')
    if spisok == '1':
        print('\n')
        print(Bcolors.GN + 'Введите адрес сайта:')
        payload = input(': ')


def check():
    global select
    if select == '1':
        Hexadecimal()
    if select == '2':
        Octal()
    if select == '3':
        Decimal()
    if mixing == '1':
        mix()

def listurl():
    global buf
    handle = open(path)
    for x in handle:
        buf.append(x)
    handle.close()
    buf = map(lambda buf: buf.strip(), buf)
    buf = list(buf)


def getIp():
    global addr
    addr = socket.gethostbyname(str(payload))

def getipforlist(ip):
    global addrlist
    temp = socket.gethostbyname(str(ip))
    temp = temp.split('.')
    addrlist += list(temp)





def Hexadecimal():
    global res
    if spisok == '0':
        numbers = [int(c) for c in addrlist]
        all_numbers = numbers
        if mixing == '0':
            for i in range(0, len(all_numbers), 4):
                numbers = all_numbers[i: i + 4]
                wr = 'http://' + '.'.join(map(hex, numbers))
                handle = open('result.txt','a')
                handle.write(wr)
                handle.write('\n')
        if mixing == '1':
            for i in range(0, len(all_numbers), 4):
                numbers = all_numbers[i: i + 4]
                wr = 'http://google.com@' + '.'.join(map(hex, numbers))
                handle = open('result.txt','a')
                handle.write(wr)
                handle.write('\n')
        print('\n')
        print(Bcolors.GN + 'Результаты сохранены в result.txt')
        handle.close()
        input()
    addr2 = addr.split('.')
    numbers = [int(c) for c in addr2]
    res = 'http://' + '.'.join(map(hex, numbers))
    print('\n')
    if mixing == '0':
        print(Bcolors.GN + res)
        input()


def Octal():
    global res
    if spisok == '0':
        numbers = [int(c) for c in addrlist]
        all_numbers = numbers
        if mixing == '0':
            for i in range(0, len(all_numbers), 4):
                numbers = all_numbers[i: i + 4]
                wr = 'http://' + '.'.join(map(oct, numbers))
                wr = wr.replace('o', '')
                handle = open('result.txt','a')
                handle.write(wr)
                handle.write('\n')
        if mixing == '1':
            for i in range(0, len(all_numbers), 4):
                numbers = all_numbers[i: i + 4]
                wr = 'http://google.com@' + '.'.join(map(oct, numbers)).replace('o', '')
                handle = open('result.txt','a')
                handle.write(wr)
                handle.write('\n')
        print('\n')
        print(Bcolors.GN + 'Результаты сохранены в result.txt')
        handle.close()
        input()
    addr2 = addr.split('.')
    numbers = [int(c) for c in addr2]
    res = 'http://' + '.'.join(map(oct, numbers))
    res = res.replace('o', '')
    if mixing == '0':
        print(Bcolors.GN + res)
        input()


def Decimal():
    global res
    count = 0
    cnt = 0
    if spisok == '0':
        handle = open('result.txt','a')
        numbers = [int(c) for c in addrlist]
        all_numbers = numbers
        if mixing == '0':
            for x in numbers:
                if count == 0:
                    res = 0
                    res = x * math.pow(16, 6)
                if count == 1:
                    res += x * math.pow(16, 4)
                if count == 2:
                    res += x * math.pow(16, 2)
                if count == 3:
                    res += x
                    res8 = 'http://' + str(int(res))
                    handle.write(res8)
                    handle.write('\n')
                    #print(res8)
                count += 1
                if count == 4:
                    count = 0
            print('\n')
            print(Bcolors.GN + 'Результаты сохранены в result.txt')
            input()
        if mixing == '1':
            for x in numbers:
                if count == 0:
                    res = 0
                    res = x * math.pow(16, 6)
                if count == 1:
                    res += x * math.pow(16, 4)
                if count == 2:
                    res += x * math.pow(16, 2)
                if count == 3:
                    res += x
                    res8 = 'http://google.com@' + str(int(res))
                    handle.write(res8)
                    handle.write('\n')
                    #print(res8)
                count += 1
                if count == 4:
                    count = 0
            print('\n')
            print(Bcolors.GN + 'Результаты сохранены в result.txt')
            input()
    addr2 = addr.split('.')
    numbers = [int(c) for c in addr2]
    for x in numbers:
        if cnt == 0:
            res = x * math.pow(16, 6)
        if cnt == 1:
            res += x * math.pow(16, 4)
        if cnt == 2:
            res += x * math.pow(16, 2)
        if cnt == 3:
            res += x
        cnt += 1
    res = 'http://' + str(int(res))
    if mixing == '0':
        print(Bcolors.GN + res)
        input()


def mix():
    res3 = 'http://google.com@' + res[7:]
    print(Bcolors.GN + res3)
    input()


def main():
    banner()
    selector()
    if spisok == '0':
        try:
            listurl()
        except FileNotFoundError:
            print('\n')
            print(Bcolors.R + "Файл не найден!")
            exit()
        for x in buf:
            getipforlist(x)
        check()
        input()
    try:
        getIp()
    except socket.gaierror:
        print('\n')
        print(Bcolors.R + "Ошибка получения IP адреса!")
        exit()
    check()


if __name__ == '__main__':
    try:
        main()
    except KeyboardInterrupt:
        exit()
 

explorer

Platinum
05.08.2018
1 080
2 470
BIT
0
Обновил скрипт!
Охохо... вся моя правка насмарку...

kosyak.png


Нельзя так программы делать. Если предупреждения это лишь несоответствие стандартам, то ошибки делать непростительно.
Хотел сначала всё исправить, но так я и буду тогда ходить по пятам исправлять что ли?

os.png


Чуть почистил, но ошибки сами исправьте

os2.png


Python:
import socket
import math
import colorama
colorama.init(autoreset=True)


class Bcolors:
    GN = '\033[32m'
    R = '\033[91m'


select = 0
res = 0
buf = []
addrlist = []
payload = 0
addr = str(0)
mixing = 0
spisok = str(0)
path = str(0)


def banner():
    s = """
      _____  ____    __  ____   ____  _____  ____   __    ___
     / ___/ /    |  /  ]|    \ |    ||     ||    | /  ]  /  _]
    (   \_ |  o  | /  / |  D  ) |  | |   __| |  | /  /  /  [_
     \__  ||     |/  /  |    /  |  | |  |_   |  |/  /  |    _]
     /  \ ||  _  /   \_ |    \  |  | |   _]  |  /   \_ |   [_
     \    ||  |  \     ||  .  \ |  | |  |    |  \     ||     |
      \___||__|__|\____||__|\_||____||__|   |____\____||_____|
                                                              
    """

    print(Bcolors.GN + s)
    print(Bcolors.R + '                          Author: @Tayrus')  # Также спасибо @explorer
    print(Bcolors.R + '                            Version 1.2')


def selector():
    global select
    global payload
    global mixing
    global spisok
    global path
    print('\n')
    print(Bcolors.GN + 'Выберите тип обфускации:')
    print('\n')
    print(Bcolors.GN + '[1] Hexadecimal')
    print(Bcolors.GN + '[2] Octal')
    print(Bcolors.GN + '[3] Decimal')
    select = input(': ')
    if not select == '1' and not select == '2' and not select == '3':
        print(Bcolors.R + 'Ты выбрал неправильные значения!')
        exit()
    print('\n')
    print(Bcolors.GN + 'Миксовать наш payload(1 или 0)?:')
    print('\n')
    mixing = input(': ')
    print('\n')
    print(Bcolors.GN + '[0]Список или один адрес[1]?:')
    print('\n')
    spisok = input(': ')
    if spisok == '0':
        print('\n')
        print(Bcolors.GN + 'Путь до .txt файла:')
        print('\n')
        path = input(': ')
    if spisok == '1':
        print('\n')
        print(Bcolors.GN + 'Введите адрес сайта:')
        payload = input(': ')


def check():
    global select
    if select == '1':
        hexadecimal()
    if select == '2':
        octal()
    if select == '3':
        decimal()
    if mixing == '1':
        mix()


def listurl():
    global buf
    handle = open(path)
    for x in handle:
        buf.append(x)
    handle.close()
    buf = map(lambda buf: buf.strip(), buf)
    buf = list(buf)


def getip():
    global addr
    addr = socket.gethostbyname(str(payload))


def getipforlist(ip):
    global addrlist
    temp = socket.gethostbyname(str(ip))
    temp = temp.split('.')
    addrlist += list(temp)


def hexadecimal():
    global res
    if spisok == '0':
        numbers = [int(c) for c in addrlist]
        all_numbers = numbers
        if mixing == '0':
            for i in range(0, len(all_numbers), 4):
                numbers = all_numbers[i: i + 4]
                wr = 'http://' + '.'.join(map(hex, numbers))
                handle = open('result.txt', 'a')
                handle.write(wr)
                handle.write('\n')
        if mixing == '1':
            for i in range(0, len(all_numbers), 4):
                numbers = all_numbers[i: i + 4]
                wr = 'http://google.com@' + '.'.join(map(hex, numbers))
                handle = open('result.txt', 'a')
                handle.write(wr)
                handle.write('\n')
        print('\n')
        print(Bcolors.GN + 'Результаты сохранены в result.txt')
        handle.close()
        input()
    addr2 = addr.split('.')
    numbers = [int(c) for c in addr2]
    res = 'http://' + '.'.join(map(hex, numbers))
    print('\n')
    if mixing == '0':
        print(Bcolors.GN + res)
        input()


def octal():
    global res
    if spisok == '0':
        numbers = [int(c) for c in addrlist]
        all_numbers = numbers
        if mixing == '0':
            for i in range(0, len(all_numbers), 4):
                numbers = all_numbers[i: i + 4]
                wr = 'http://' + '.'.join(map(oct, numbers))
                wr = wr.replace('o', '')
                handle = open('result.txt', 'a')
                handle.write(wr)
                handle.write('\n')
        if mixing == '1':
            for i in range(0, len(all_numbers), 4):
                numbers = all_numbers[i: i + 4]
                wr = 'http://google.com@' + '.'.join(map(oct, numbers)).replace('o', '')
                handle = open('result.txt', 'a')
                handle.write(wr)
                handle.write('\n')
        print('\n')
        print(Bcolors.GN + 'Результаты сохранены в result.txt')
        handle.close()
        input()
    addr2 = addr.split('.')
    numbers = [int(c) for c in addr2]
    res = 'http://' + '.'.join(map(oct, numbers))
    res = res.replace('o', '')
    if mixing == '0':
        print(Bcolors.GN + res)
        input()


def decimal():
    global res
    count = 0
    cnt = 0
    if spisok == '0':
        handle = open('result.txt', 'a')
        numbers = [int(c) for c in addrlist]
        all_numbers = numbers
        if mixing == '0':
            for x in numbers:
                if count == 0:
                    res = 0
                    res = x * math.pow(16, 6)
                if count == 1:
                    res += x * math.pow(16, 4)
                if count == 2:
                    res += x * math.pow(16, 2)
                if count == 3:
                    res += x
                    res8 = 'http://' + str(int(res))
                    handle.write(res8)
                    handle.write('\n')
                    # print(res8)
                count += 1
                if count == 4:
                    count = 0
            print('\n')
            print(Bcolors.GN + 'Результаты сохранены в result.txt')
            input()
        if mixing == '1':
            for x in numbers:
                if count == 0:
                    res = 0
                    res = x * math.pow(16, 6)
                if count == 1:
                    res += x * math.pow(16, 4)
                if count == 2:
                    res += x * math.pow(16, 2)
                if count == 3:
                    res += x
                    res8 = 'http://google.com@' + str(int(res))
                    handle.write(res8)
                    handle.write('\n')
                    # print(res8)
                count += 1
                if count == 4:
                    count = 0
            print('\n')
            print(Bcolors.GN + 'Результаты сохранены в result.txt')
            input()
    addr2 = addr.split('.')
    numbers = [int(c) for c in addr2]
    for x in numbers:
        if cnt == 0:
            res = x * math.pow(16, 6)
        if cnt == 1:
            res += x * math.pow(16, 4)
        if cnt == 2:
            res += x * math.pow(16, 2)
        if cnt == 3:
            res += x
        cnt += 1
    res = 'http://' + str(int(res))
    if mixing == '0':
        print(Bcolors.GN + res)
        input()


def mix():
    res3 = 'http://google.com@' + res[7:]
    print(Bcolors.GN + res3)
    input()


def main():
    banner()
    selector()
    if spisok == '0':
        try:
            listurl()
        except FileNotFoundError:
            print('\n')
            print(Bcolors.R + "Файл не найден!")
            exit()
        for x in buf:
            getipforlist(x)
        check()
        input()
    try:
        getip()
    except socket.gaierror:
        print('\n')
        print(Bcolors.R + "Ошибка получения IP адреса!")
        exit()
    check()


if __name__ == '__main__':
    try:
        main()
    except KeyboardInterrupt:
        exit()

Это поможет
 
Последнее редактирование:
  • Нравится
Реакции: Tihon49

Tayrus

Red Team
13.04.2017
365
787
BIT
6
Охохо... вся моя правка насмарку...

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

Нельзя так программы делать. Если предупреждения это лишь несоответствие стандартам, то ошибки делать непростительно.
Хотел сначала всё исправить, но так я и буду тогда ходить по пятам исправлять что ли?

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

Чуть почистил, но ошибки сами исправьте

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

Python:
import socket
import math
import colorama
colorama.init(autoreset=True)


class Bcolors:
    GN = '\033[32m'
    R = '\033[91m'


select = 0
res = 0
buf = []
addrlist = []
payload = 0
addr = str(0)
mixing = 0
spisok = str(0)
path = str(0)


def banner():
    s = """
      _____  ____    __  ____   ____  _____  ____   __    ___
     / ___/ /    |  /  ]|    \ |    ||     ||    | /  ]  /  _]
    (   \_ |  o  | /  / |  D  ) |  | |   __| |  | /  /  /  [_
     \__  ||     |/  /  |    /  |  | |  |_   |  |/  /  |    _]
     /  \ ||  _  /   \_ |    \  |  | |   _]  |  /   \_ |   [_
     \    ||  |  \     ||  .  \ |  | |  |    |  \     ||     |
      \___||__|__|\____||__|\_||____||__|   |____\____||_____|
                                                             
    """

    print(Bcolors.GN + s)
    print(Bcolors.R + '                          Author: @Tayrus')  # Также спасибо @explorer
    print(Bcolors.R + '                            Version 1.2')


def selector():
    global select
    global payload
    global mixing
    global spisok
    global path
    print('\n')
    print(Bcolors.GN + 'Выберите тип обфускации:')
    print('\n')
    print(Bcolors.GN + '[1] Hexadecimal')
    print(Bcolors.GN + '[2] Octal')
    print(Bcolors.GN + '[3] Decimal')
    select = input(': ')
    if not select == '1' and not select == '2' and not select == '3':
        print(Bcolors.R + 'Ты выбрал неправильные значения!')
        exit()
    print('\n')
    print(Bcolors.GN + 'Миксовать наш payload(1 или 0)?:')
    print('\n')
    mixing = input(': ')
    print('\n')
    print(Bcolors.GN + '[0]Список или один адрес[1]?:')
    print('\n')
    spisok = input(': ')
    if spisok == '0':
        print('\n')
        print(Bcolors.GN + 'Путь до .txt файла:')
        print('\n')
        path = input(': ')
    if spisok == '1':
        print('\n')
        print(Bcolors.GN + 'Введите адрес сайта:')
        payload = input(': ')


def check():
    global select
    if select == '1':
        hexadecimal()
    if select == '2':
        octal()
    if select == '3':
        decimal()
    if mixing == '1':
        mix()


def listurl():
    global buf
    handle = open(path)
    for x in handle:
        buf.append(x)
    handle.close()
    buf = map(lambda buf: buf.strip(), buf)
    buf = list(buf)


def getip():
    global addr
    addr = socket.gethostbyname(str(payload))


def getipforlist(ip):
    global addrlist
    temp = socket.gethostbyname(str(ip))
    temp = temp.split('.')
    addrlist += list(temp)


def hexadecimal():
    global res
    if spisok == '0':
        numbers = [int(c) for c in addrlist]
        all_numbers = numbers
        if mixing == '0':
            for i in range(0, len(all_numbers), 4):
                numbers = all_numbers[i: i + 4]
                wr = 'http://' + '.'.join(map(hex, numbers))
                handle = open('result.txt', 'a')
                handle.write(wr)
                handle.write('\n')
        if mixing == '1':
            for i in range(0, len(all_numbers), 4):
                numbers = all_numbers[i: i + 4]
                wr = 'http://google.com@' + '.'.join(map(hex, numbers))
                handle = open('result.txt', 'a')
                handle.write(wr)
                handle.write('\n')
        print('\n')
        print(Bcolors.GN + 'Результаты сохранены в result.txt')
        handle.close()
        input()
    addr2 = addr.split('.')
    numbers = [int(c) for c in addr2]
    res = 'http://' + '.'.join(map(hex, numbers))
    print('\n')
    if mixing == '0':
        print(Bcolors.GN + res)
        input()


def octal():
    global res
    if spisok == '0':
        numbers = [int(c) for c in addrlist]
        all_numbers = numbers
        if mixing == '0':
            for i in range(0, len(all_numbers), 4):
                numbers = all_numbers[i: i + 4]
                wr = 'http://' + '.'.join(map(oct, numbers))
                wr = wr.replace('o', '')
                handle = open('result.txt', 'a')
                handle.write(wr)
                handle.write('\n')
        if mixing == '1':
            for i in range(0, len(all_numbers), 4):
                numbers = all_numbers[i: i + 4]
                wr = 'http://google.com@' + '.'.join(map(oct, numbers)).replace('o', '')
                handle = open('result.txt', 'a')
                handle.write(wr)
                handle.write('\n')
        print('\n')
        print(Bcolors.GN + 'Результаты сохранены в result.txt')
        handle.close()
        input()
    addr2 = addr.split('.')
    numbers = [int(c) for c in addr2]
    res = 'http://' + '.'.join(map(oct, numbers))
    res = res.replace('o', '')
    if mixing == '0':
        print(Bcolors.GN + res)
        input()


def decimal():
    global res
    count = 0
    cnt = 0
    if spisok == '0':
        handle = open('result.txt', 'a')
        numbers = [int(c) for c in addrlist]
        all_numbers = numbers
        if mixing == '0':
            for x in numbers:
                if count == 0:
                    res = 0
                    res = x * math.pow(16, 6)
                if count == 1:
                    res += x * math.pow(16, 4)
                if count == 2:
                    res += x * math.pow(16, 2)
                if count == 3:
                    res += x
                    res8 = 'http://' + str(int(res))
                    handle.write(res8)
                    handle.write('\n')
                    # print(res8)
                count += 1
                if count == 4:
                    count = 0
            print('\n')
            print(Bcolors.GN + 'Результаты сохранены в result.txt')
            input()
        if mixing == '1':
            for x in numbers:
                if count == 0:
                    res = 0
                    res = x * math.pow(16, 6)
                if count == 1:
                    res += x * math.pow(16, 4)
                if count == 2:
                    res += x * math.pow(16, 2)
                if count == 3:
                    res += x
                    res8 = 'http://google.com@' + str(int(res))
                    handle.write(res8)
                    handle.write('\n')
                    # print(res8)
                count += 1
                if count == 4:
                    count = 0
            print('\n')
            print(Bcolors.GN + 'Результаты сохранены в result.txt')
            input()
    addr2 = addr.split('.')
    numbers = [int(c) for c in addr2]
    for x in numbers:
        if cnt == 0:
            res = x * math.pow(16, 6)
        if cnt == 1:
            res += x * math.pow(16, 4)
        if cnt == 2:
            res += x * math.pow(16, 2)
        if cnt == 3:
            res += x
        cnt += 1
    res = 'http://' + str(int(res))
    if mixing == '0':
        print(Bcolors.GN + res)
        input()


def mix():
    res3 = 'http://google.com@' + res[7:]
    print(Bcolors.GN + res3)
    input()


def main():
    banner()
    selector()
    if spisok == '0':
        try:
            listurl()
        except FileNotFoundError:
            print('\n')
            print(Bcolors.R + "Файл не найден!")
            exit()
        for x in buf:
            getipforlist(x)
        check()
        input()
    try:
        getip()
    except socket.gaierror:
        print('\n')
        print(Bcolors.R + "Ошибка получения IP адреса!")
        exit()
    check()


if __name__ == '__main__':
    try:
        main()
    except KeyboardInterrupt:
        exit()

Это поможет
Давайте проясним, если ошибка в коде есть, то тогда скрипт не будет работать. Тогда где здесь ошибки?
Я пишу в sublime text, поэтому такой штуки как у вас нету))
 
  • Нравится
Реакции: Tihon49

explorer

Platinum
05.08.2018
1 080
2 470
BIT
0
Давайте проясним, если ошибка в коде есть, то тогда скрипт не будет работать. Тогда где здесь ошибки?
Я пишу в sublime text, поэтому такой штуки как у вас нету))
Код может и с ошибками работать, зависит от типа ошибки. Ошибка следующая - нужно ссылаться на локальную переменную "handle" перед присвоением
 

Tayrus

Red Team
13.04.2017
365
787
BIT
6
Код может и с ошибками работать, зависит от типа ошибки. Ошибка следующая - нужно ссылаться на локальную переменную "handle" перед присвоением
Как эта ошибка может вызвать некорректную работу скрипта?
 
  • Нравится
Реакции: Tihon49

explorer

Platinum
05.08.2018
1 080
2 470
BIT
0
Скрипт работает, но в вашем коде кроме этого, и мусора много, например дублирование глобальных переменных, или это

os.png


all_numbers в одной функции работает, а во второй это просто лишняя нерабочая строка и т.д. В общем я рекомендую работать в любом редакторе с дебаггером и не будет таких ньюансов.
 

Tayrus

Red Team
13.04.2017
365
787
BIT
6
Скрипт работает, но в вашем коде кроме этого, и мусора много, например дублирование глобальных переменных, или это

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

all_numbers в одной функции работает, а во второй это просто лишняя нерабочая строка и т.д. В общем я рекомендую работать в любом редакторе с дебаггером и не будет таких ньюансов.
Окей, учту)
Обычно я пишу по такому сюжету: работает значит норма)))
 
  • Нравится
Реакции: recrut, Tihon49 и Bypass

Balex

New member
10.11.2018
1
0
BIT
0
Добрый день. Для чего может понадобиться данный обфускатор?
 

explorer

Platinum
05.08.2018
1 080
2 470
BIT
0
Добрый день. Для чего может понадобиться данный обфускатор?
Для отправки жертве ссылки на фишинговый сайт. Правда ссылки из цифр весьма подозрительные, скрипт требует доработки.

Проще такую ссылку замаскировать с помощью сервисов коротких ссылок, люди к ним уже привыкли. Но идея хорошая, и может быть доведена до ума.
 
  • Нравится
Реакции: Tihon49

Bypass

Green Team
02.02.2018
451
579
BIT
0
Обновил скрипт!
если возможно добавить чтобы скрипт принимал аргументы
например:
Bash:
script.py -o Hexadecimal -mix 0 -list url.txt

Для отправки жертве ссылки на фишинговый сайт.
еще для уникализации ссылок это нужно и других очень грамотных идей.

Окей, учту)
Обычно я пишу по такому сюжету: работает значит норма)))
скрипт огонь, аналогов не находил, если нужно массово обфусцировать ссылки и знаешь для чего его можно использовать, то это находка.
 
Последнее редактирование:
  • Нравится
Реакции: Tihon49 и Tayrus

Tayrus

Red Team
13.04.2017
365
787
BIT
6
Обновил скрипт!
Что нового?: Убран интерактивный режим, взамен ему пришли аргументы. Добавлен новый метод.
Код:
Код:
# -*- coding: utf-8 -*-
import socket
import math
import colorama
import argparse
import requests
colorama.init(autoreset=True)


class Bcolors:
    GN = '\033[32m'
    R = '\033[91m'



res = 0
buf = []
addrlist = []
parser = argparse.ArgumentParser(description='Доступные методы: hex,oct,dec,short')
parser.add_argument('-m', help = 'Метод обфускации')
parser.add_argument('-mix', help = 'Миксовать?')
parser.add_argument('-type', help = 'Один адрес или список?')
parser.add_argument('-path', help = 'Путь к файлу')
parser.add_argument('-target', help = 'Адрес')
args = parser.parse_args()
select = args.m
mixing = args.mix
spisok = args.type
payload = args.target
path = str(args.path)

def banner():
    s = """
      _____  ____    __  ____   ____  _____  ____   __    ___
     / ___/ /    |  /  ]|    \ |    ||     ||    | /  ]  /  _]
    (   \_ |  o  | /  / |  D  ) |  | |   __| |  | /  /  /  [_
     \__  ||     |/  /  |    /  |  | |  |_   |  |/  /  |    _]
     /  \ ||  _  /   \_ |    \  |  | |   _]  |  /   \_ |   [_
     \    ||  |  \     ||  .  \ |  | |  |    |  \     ||     |
      \___||__|__|\____||__|\_||____||__|   |____\____||_____|
                                                           
    """

    print(Bcolors.GN + s)
    print(Bcolors.R + '                          Author: @Tayrus')  # Также спасибо @explorer
    print(Bcolors.R + '                            Version 1.4')


def check():
    global select
    if select == 'hex':
        Hexadecimal()
    if select == 'oct':
        Octal()
    if select == 'dec':
        Decimal()
    if select == 'short':
        shorturl()
    if mixing == '1':
        if select != 'short':
            mix()


def listurl():
    global buf
    handle = open(path)
    for x in handle:
        buf.append(x)
    handle.close()
    buf = map(lambda buf: buf.strip(), buf)
    buf = list(buf)


def getIp():
    if select != 'short':
        global addr
        addr = socket.gethostbyname(str(payload))


def getipforlist(ip):
    if select != 'short':
        global addrlist
        temp = socket.gethostbyname(str(ip))
        temp = temp.split('.')
        addrlist += list(temp)

def shorturl():
    global addrlist
    if spisok == 'list':
        handle = open('result.txt','a')
        for x in buf:
            r = requests.get('http://short.pub/?fmt=json&url=' + x)
            sss = eval(r.text)
            gg = sss['response']['short']
            gg = gg.replace('\/\/','//')
            gg = gg.replace('\/','/')
            if mixing == '1':
                handle.write('http://google.com@' + gg[7:])
                handle.write('\n')
            if mixing == '0':
                handle.write(gg)
                handle.write('\n')
        print(Bcolors.GN + 'Результаты сохранены в result.txt')
        handle.close()
        exit()
    r = requests.get('http://short.pub/?fmt=json&url=' + payload)
    sss = eval(r.text)
    gg = sss['response']['short']
    gg = gg.replace('\/\/','//')
    gg = gg.replace('\/','/')
    if mixing == '0':
        print (Bcolors.GN + gg)
    if mixing == '1':
        print (Bcolors.GN + 'http://google.com@'+ gg[7:])


def Hexadecimal():
    global res
    if spisok == 'list':
        numbers = [int(c) for c in addrlist]
        all_numbers = numbers
        if mixing == '0':
            for i in range(0, len(all_numbers), 4):
                numbers = all_numbers[i: i + 4]
                wr = 'http://' + '.'.join(map(hex, numbers))
                handle = open('result.txt', 'a')
                handle.write(wr)
                handle.write('\n')
        if mixing == '1':
            for i in range(0, len(all_numbers), 4):
                numbers = all_numbers[i: i + 4]
                wr = 'http://google.com@' + '.'.join(map(hex, numbers))
                handle = open('result.txt', 'a')
                handle.write(wr)
                handle.write('\n')
        print('\n')
        print(Bcolors.GN + 'Результаты сохранены в result.txt')
        handle.close()
        exit()
    addr2 = addr.split('.')
    numbers = [int(c) for c in addr2]
    res = 'http://' + '.'.join(map(hex, numbers))
    print('\n')
    if mixing == '0':
        print(Bcolors.GN + res)
        exit()


def Octal():
    global res
    if spisok == 'list':
        numbers = [int(c) for c in addrlist]
        all_numbers = numbers
        if mixing == '0':
            for i in range(0, len(all_numbers), 4):
                numbers = all_numbers[i: i + 4]
                wr = 'http://' + '.'.join(map(oct, numbers))
                wr = wr.replace('o', '')
                handle = open('result.txt', 'a')
                handle.write(wr)
                handle.write('\n')
        if mixing == '1':
            for i in range(0, len(all_numbers), 4):
                numbers = all_numbers[i: i + 4]
                wr = 'http://google.com@' + '.'.join(map(oct, numbers)).replace('o', '')
                handle = open('result.txt', 'a')
                handle.write(wr)
                handle.write('\n')
        print('\n')
        print(Bcolors.GN + 'Результаты сохранены в result.txt')
        handle.close()
        exit()
    addr2 = addr.split('.')
    numbers = [int(c) for c in addr2]
    res = 'http://' + '.'.join(map(oct, numbers))
    res = res.replace('o', '')
    if mixing == '0':
        print(Bcolors.GN + res)
        exit()


def Decimal():
    global res
    count = 0
    cnt = 0
    if spisok == 'list':
        handle = open('result.txt', 'a')
        numbers = [int(c) for c in addrlist]
        if mixing == '0':
            for x in numbers:
                if count == 0:
                    res = 0
                    res = x * math.pow(16, 6)
                if count == 1:
                    res += x * math.pow(16, 4)
                if count == 2:
                    res += x * math.pow(16, 2)
                if count == 3:
                    res += x
                    res8 = 'http://' + str(int(res))
                    handle.write(res8)
                    handle.write('\n')
                count += 1
                if count == 4:
                    count = 0
            print('\n')
            print(Bcolors.GN + 'Результаты сохранены в result.txt')
            exit()
        if mixing == '1':
            for x in numbers:
                if count == 0:
                    res = 0
                    res = x * math.pow(16, 6)
                if count == 1:
                    res += x * math.pow(16, 4)
                if count == 2:
                    res += x * math.pow(16, 2)
                if count == 3:
                    res += x
                    res8 = 'http://google.com@' + str(int(res))
                    handle.write(res8)
                    handle.write('\n')
                count += 1
                if count == 4:
                    count = 0
            print('\n')
            print(Bcolors.GN + 'Результаты сохранены в result.txt')
            exit()
    addr2 = addr.split('.')
    numbers = [int(c) for c in addr2]
    for x in numbers:
        if cnt == 0:
            res = x * math.pow(16, 6)
        if cnt == 1:
            res += x * math.pow(16, 4)
        if cnt == 2:
            res += x * math.pow(16, 2)
        if cnt == 3:
            res += x
        cnt += 1
    res = 'http://' + str(int(res))
    if mixing == '0':
        print(Bcolors.GN + res)
        exit()


def mix():
    res3 = 'http://google.com@' + res[7:]
    print(Bcolors.GN + res3)
    exit()


def main():
    banner()
    if spisok == 'list':
        try:
            listurl()
        except FileNotFoundError:
            print('\n')
            print(Bcolors.R + "Файл не найден!")
            exit()
        for x in buf:
            getipforlist(x)
        check()
        exit()
    try:
        getIp()
    except socket.gaierror:
        print('\n')
        print(Bcolors.R + "Ошибка получения IP адреса!")
        exit()
    check()


if __name__ == '__main__':
    try:
        main()
    except KeyboardInterrupt:
        exit()

Небольшие пояснения:
m - метод обфускации(доступные методы: hex,oct,dec).
mix - миксовать ли нашу нагрузку? (1 -да, 0 - нет).
type - если вы хотите загрузить список адресов ставим этот параметр с значением "list", если один адрес параметр не ставим.
path - если вы выбрали "list" то пишем путь к файлу, если один адрес не ставим параметр.
target - если вы выбрали один адрес пишем цель, если вы выбрали "list" не указываем.
Для метода short ссылка должна иметь такой вид: https://github.com, иначе работать не будет.
Для всех остальных методов ссылка должна иметь такой вид: github.com
 
Последнее редактирование:
  • Нравится
Реакции: Tihon49, Глюк и Bypass

Bypass

Green Team
02.02.2018
451
579
BIT
0
Обновил скрипт!
Что нового?: Убран интерактивный режим, взамен ему пришли аргументы. Добавлен новый метод.
Код:
Код:
# -*- coding: utf-8 -*-
import socket
import math
import colorama
import argparse
import requests
colorama.init(autoreset=True)


class Bcolors:
    GN = '\033[32m'
    R = '\033[91m'



res = 0
buf = []
addrlist = []
parser = argparse.ArgumentParser(description='Доступные методы: hex,oct,dec,short')
parser.add_argument('-m', help = 'Метод обфускации')
parser.add_argument('-mix', help = 'Миксовать?')
parser.add_argument('-type', help = 'Один адрес или список?')
parser.add_argument('-path', help = 'Путь к файлу')
parser.add_argument('-target', help = 'Адрес')
args = parser.parse_args()
select = args.m
mixing = args.mix
spisok = args.type
payload = args.target
path = str(args.path)

def banner():
    s = """
      _____  ____    __  ____   ____  _____  ____   __    ___
     / ___/ /    |  /  ]|    \ |    ||     ||    | /  ]  /  _]
    (   \_ |  o  | /  / |  D  ) |  | |   __| |  | /  /  /  [_
     \__  ||     |/  /  |    /  |  | |  |_   |  |/  /  |    _]
     /  \ ||  _  /   \_ |    \  |  | |   _]  |  /   \_ |   [_
     \    ||  |  \     ||  .  \ |  | |  |    |  \     ||     |
      \___||__|__|\____||__|\_||____||__|   |____\____||_____|
                                                  
    """

    print(Bcolors.GN + s)
    print(Bcolors.R + '                          Author: @Tayrus')  # Также спасибо @explorer
    print(Bcolors.R + '                            Version 1.4')


def check():
    global select
    if select == 'hex':
        Hexadecimal()
    if select == 'oct':
        Octal()
    if select == 'dec':
        Decimal()
    if select == 'short':
        shorturl()
    if mixing == '1':
        if select != 'short':
            mix()


def listurl():
    global buf
    handle = open(path)
    for x in handle:
        buf.append(x)
    handle.close()
    buf = map(lambda buf: buf.strip(), buf)
    buf = list(buf)


def getIp():
    if select != 'short':
        global addr
        addr = socket.gethostbyname(str(payload))


def getipforlist(ip):
    if select != 'short':
        global addrlist
        temp = socket.gethostbyname(str(ip))
        temp = temp.split('.')
        addrlist += list(temp)

def shorturl():
    global addrlist
    if spisok == 'list':
        handle = open('result.txt','a')
        for x in buf:
            r = requests.get('http://short.pub/?fmt=json&url=' + x)
            sss = eval(r.text)
            gg = sss['response']['short']
            gg = gg.replace('\/\/','//')
            gg = gg.replace('\/','/')
            if mixing == '1':
                handle.write('http://google.com@' + gg[7:])
                handle.write('\n')
            if mixing == '0':
                handle.write(gg)
                handle.write('\n')
        print(Bcolors.GN + 'Результаты сохранены в result.txt')
        handle.close()
        exit()
    r = requests.get('http://short.pub/?fmt=json&url=' + payload)
    sss = eval(r.text)
    gg = sss['response']['short']
    gg = gg.replace('\/\/','//')
    gg = gg.replace('\/','/')
    if mixing == '0':
        print (Bcolors.GN + gg)
    if mixing == '1':
        print (Bcolors.GN + 'http://google.com@'+ gg[7:])


def Hexadecimal():
    global res
    if spisok == 'list':
        numbers = [int(c) for c in addrlist]
        all_numbers = numbers
        if mixing == '0':
            for i in range(0, len(all_numbers), 4):
                numbers = all_numbers[i: i + 4]
                wr = 'http://' + '.'.join(map(hex, numbers))
                handle = open('result.txt', 'a')
                handle.write(wr)
                handle.write('\n')
        if mixing == '1':
            for i in range(0, len(all_numbers), 4):
                numbers = all_numbers[i: i + 4]
                wr = 'http://google.com@' + '.'.join(map(hex, numbers))
                handle = open('result.txt', 'a')
                handle.write(wr)
                handle.write('\n')
        print('\n')
        print(Bcolors.GN + 'Результаты сохранены в result.txt')
        handle.close()
        exit()
    addr2 = addr.split('.')
    numbers = [int(c) for c in addr2]
    res = 'http://' + '.'.join(map(hex, numbers))
    print('\n')
    if mixing == '0':
        print(Bcolors.GN + res)
        exit()


def Octal():
    global res
    if spisok == 'list':
        numbers = [int(c) for c in addrlist]
        all_numbers = numbers
        if mixing == '0':
            for i in range(0, len(all_numbers), 4):
                numbers = all_numbers[i: i + 4]
                wr = 'http://' + '.'.join(map(oct, numbers))
                wr = wr.replace('o', '')
                handle = open('result.txt', 'a')
                handle.write(wr)
                handle.write('\n')
        if mixing == '1':
            for i in range(0, len(all_numbers), 4):
                numbers = all_numbers[i: i + 4]
                wr = 'http://google.com@' + '.'.join(map(oct, numbers)).replace('o', '')
                handle = open('result.txt', 'a')
                handle.write(wr)
                handle.write('\n')
        print('\n')
        print(Bcolors.GN + 'Результаты сохранены в result.txt')
        handle.close()
        exit()
    addr2 = addr.split('.')
    numbers = [int(c) for c in addr2]
    res = 'http://' + '.'.join(map(oct, numbers))
    res = res.replace('o', '')
    if mixing == '0':
        print(Bcolors.GN + res)
        exit()


def Decimal():
    global res
    count = 0
    cnt = 0
    if spisok == 'list':
        handle = open('result.txt', 'a')
        numbers = [int(c) for c in addrlist]
        if mixing == '0':
            for x in numbers:
                if count == 0:
                    res = 0
                    res = x * math.pow(16, 6)
                if count == 1:
                    res += x * math.pow(16, 4)
                if count == 2:
                    res += x * math.pow(16, 2)
                if count == 3:
                    res += x
                    res8 = 'http://' + str(int(res))
                    handle.write(res8)
                    handle.write('\n')
                count += 1
                if count == 4:
                    count = 0
            print('\n')
            print(Bcolors.GN + 'Результаты сохранены в result.txt')
            exit()
        if mixing == '1':
            for x in numbers:
                if count == 0:
                    res = 0
                    res = x * math.pow(16, 6)
                if count == 1:
                    res += x * math.pow(16, 4)
                if count == 2:
                    res += x * math.pow(16, 2)
                if count == 3:
                    res += x
                    res8 = 'http://google.com@' + str(int(res))
                    handle.write(res8)
                    handle.write('\n')
                count += 1
                if count == 4:
                    count = 0
            print('\n')
            print(Bcolors.GN + 'Результаты сохранены в result.txt')
            exit()
    addr2 = addr.split('.')
    numbers = [int(c) for c in addr2]
    for x in numbers:
        if cnt == 0:
            res = x * math.pow(16, 6)
        if cnt == 1:
            res += x * math.pow(16, 4)
        if cnt == 2:
            res += x * math.pow(16, 2)
        if cnt == 3:
            res += x
        cnt += 1
    res = 'http://' + str(int(res))
    if mixing == '0':
        print(Bcolors.GN + res)
        exit()


def mix():
    res3 = 'http://google.com@' + res[7:]
    print(Bcolors.GN + res3)
    exit()


def main():
    banner()
    if spisok == 'list':
        try:
            listurl()
        except FileNotFoundError:
            print('\n')
            print(Bcolors.R + "Файл не найден!")
            exit()
        for x in buf:
            getipforlist(x)
        check()
        exit()
    try:
        getIp()
    except socket.gaierror:
        print('\n')
        print(Bcolors.R + "Ошибка получения IP адреса!")
        exit()
    check()


if __name__ == '__main__':
    try:
        main()
    except KeyboardInterrupt:
        exit()

Небольшие пояснения:
m - метод обфускации(доступные методы: hex,oct,dec).
mix - миксовать ли нашу нагрузку? (1 -да, 0 - нет).
type - если вы хотите загрузить список адресов ставим этот параметр с значением "list", если один адрес параметр не ставим.
path - если вы выбрали "list" то пишем путь к файлу, если один адрес не ставим параметр.
target - если вы выбрали один адрес пишем цель, если вы выбрали "list" не указываем.
Для метода short ссылка должна иметь такой вид: https://github.com, иначе работать не будет.
Для всех остальных методов ссылка должна иметь такой вид: github.com
шустро ты однако, молодец !

еще такое предложение допустим в ссылке есть путь site.com/forum/xak пусть скрипт будет уметь принимает такие адреса
обфусцирует ип и выдает уже на выходе полный урл
не очень конечно важно, можно в блокноте поправить, но в тоже время удобно.
 
Последнее редактирование:
  • Нравится
Реакции: Tayrus

Tihon49

Green Team
06.01.2018
193
120
BIT
0
Обновил скрипт!
Что нового?: Убран интерактивный режим, взамен ему пришли аргументы. Добавлен новый метод.
Код:
Код:
# -*- coding: utf-8 -*-
import socket
import math
import colorama
import argparse
import requests
colorama.init(autoreset=True)


class Bcolors:
    GN = '\033[32m'
    R = '\033[91m'



res = 0
buf = []
addrlist = []
parser = argparse.ArgumentParser(description='Доступные методы: hex,oct,dec,short')
parser.add_argument('-m', help = 'Метод обфускации')
parser.add_argument('-mix', help = 'Миксовать?')
parser.add_argument('-type', help = 'Один адрес или список?')
parser.add_argument('-path', help = 'Путь к файлу')
parser.add_argument('-target', help = 'Адрес')
args = parser.parse_args()
select = args.m
mixing = args.mix
spisok = args.type
payload = args.target
path = str(args.path)

def banner():
    s = """
      _____  ____    __  ____   ____  _____  ____   __    ___
     / ___/ /    |  /  ]|    \ |    ||     ||    | /  ]  /  _]
    (   \_ |  o  | /  / |  D  ) |  | |   __| |  | /  /  /  [_
     \__  ||     |/  /  |    /  |  | |  |_   |  |/  /  |    _]
     /  \ ||  _  /   \_ |    \  |  | |   _]  |  /   \_ |   [_
     \    ||  |  \     ||  .  \ |  | |  |    |  \     ||     |
      \___||__|__|\____||__|\_||____||__|   |____\____||_____|
                                                          
    """

    print(Bcolors.GN + s)
    print(Bcolors.R + '                          Author: @Tayrus')  # Также спасибо @explorer
    print(Bcolors.R + '                            Version 1.4')


def check():
    global select
    if select == 'hex':
        Hexadecimal()
    if select == 'oct':
        Octal()
    if select == 'dec':
        Decimal()
    if select == 'short':
        shorturl()
    if mixing == '1':
        if select != 'short':
            mix()


def listurl():
    global buf
    handle = open(path)
    for x in handle:
        buf.append(x)
    handle.close()
    buf = map(lambda buf: buf.strip(), buf)
    buf = list(buf)


def getIp():
    if select != 'short':
        global addr
        addr = socket.gethostbyname(str(payload))


def getipforlist(ip):
    if select != 'short':
        global addrlist
        temp = socket.gethostbyname(str(ip))
        temp = temp.split('.')
        addrlist += list(temp)

def shorturl():
    global addrlist
    if spisok == 'list':
        handle = open('result.txt','a')
        for x in buf:
            r = requests.get('http://short.pub/?fmt=json&url=' + x)
            sss = eval(r.text)
            gg = sss['response']['short']
            gg = gg.replace('\/\/','//')
            gg = gg.replace('\/','/')
            if mixing == '1':
                handle.write('http://google.com@' + gg[7:])
                handle.write('\n')
            if mixing == '0':
                handle.write(gg)
                handle.write('\n')
        print(Bcolors.GN + 'Результаты сохранены в result.txt')
        handle.close()
        exit()
    r = requests.get('http://short.pub/?fmt=json&url=' + payload)
    sss = eval(r.text)
    gg = sss['response']['short']
    gg = gg.replace('\/\/','//')
    gg = gg.replace('\/','/')
    if mixing == '0':
        print (Bcolors.GN + gg)
    if mixing == '1':
        print (Bcolors.GN + 'http://google.com@'+ gg[7:])


def Hexadecimal():
    global res
    if spisok == 'list':
        numbers = [int(c) for c in addrlist]
        all_numbers = numbers
        if mixing == '0':
            for i in range(0, len(all_numbers), 4):
                numbers = all_numbers[i: i + 4]
                wr = 'http://' + '.'.join(map(hex, numbers))
                handle = open('result.txt', 'a')
                handle.write(wr)
                handle.write('\n')
        if mixing == '1':
            for i in range(0, len(all_numbers), 4):
                numbers = all_numbers[i: i + 4]
                wr = 'http://google.com@' + '.'.join(map(hex, numbers))
                handle = open('result.txt', 'a')
                handle.write(wr)
                handle.write('\n')
        print('\n')
        print(Bcolors.GN + 'Результаты сохранены в result.txt')
        handle.close()
        exit()
    addr2 = addr.split('.')
    numbers = [int(c) for c in addr2]
    res = 'http://' + '.'.join(map(hex, numbers))
    print('\n')
    if mixing == '0':
        print(Bcolors.GN + res)
        exit()


def Octal():
    global res
    if spisok == 'list':
        numbers = [int(c) for c in addrlist]
        all_numbers = numbers
        if mixing == '0':
            for i in range(0, len(all_numbers), 4):
                numbers = all_numbers[i: i + 4]
                wr = 'http://' + '.'.join(map(oct, numbers))
                wr = wr.replace('o', '')
                handle = open('result.txt', 'a')
                handle.write(wr)
                handle.write('\n')
        if mixing == '1':
            for i in range(0, len(all_numbers), 4):
                numbers = all_numbers[i: i + 4]
                wr = 'http://google.com@' + '.'.join(map(oct, numbers)).replace('o', '')
                handle = open('result.txt', 'a')
                handle.write(wr)
                handle.write('\n')
        print('\n')
        print(Bcolors.GN + 'Результаты сохранены в result.txt')
        handle.close()
        exit()
    addr2 = addr.split('.')
    numbers = [int(c) for c in addr2]
    res = 'http://' + '.'.join(map(oct, numbers))
    res = res.replace('o', '')
    if mixing == '0':
        print(Bcolors.GN + res)
        exit()


def Decimal():
    global res
    count = 0
    cnt = 0
    if spisok == 'list':
        handle = open('result.txt', 'a')
        numbers = [int(c) for c in addrlist]
        if mixing == '0':
            for x in numbers:
                if count == 0:
                    res = 0
                    res = x * math.pow(16, 6)
                if count == 1:
                    res += x * math.pow(16, 4)
                if count == 2:
                    res += x * math.pow(16, 2)
                if count == 3:
                    res += x
                    res8 = 'http://' + str(int(res))
                    handle.write(res8)
                    handle.write('\n')
                count += 1
                if count == 4:
                    count = 0
            print('\n')
            print(Bcolors.GN + 'Результаты сохранены в result.txt')
            exit()
        if mixing == '1':
            for x in numbers:
                if count == 0:
                    res = 0
                    res = x * math.pow(16, 6)
                if count == 1:
                    res += x * math.pow(16, 4)
                if count == 2:
                    res += x * math.pow(16, 2)
                if count == 3:
                    res += x
                    res8 = 'http://google.com@' + str(int(res))
                    handle.write(res8)
                    handle.write('\n')
                count += 1
                if count == 4:
                    count = 0
            print('\n')
            print(Bcolors.GN + 'Результаты сохранены в result.txt')
            exit()
    addr2 = addr.split('.')
    numbers = [int(c) for c in addr2]
    for x in numbers:
        if cnt == 0:
            res = x * math.pow(16, 6)
        if cnt == 1:
            res += x * math.pow(16, 4)
        if cnt == 2:
            res += x * math.pow(16, 2)
        if cnt == 3:
            res += x
        cnt += 1
    res = 'http://' + str(int(res))
    if mixing == '0':
        print(Bcolors.GN + res)
        exit()


def mix():
    res3 = 'http://google.com@' + res[7:]
    print(Bcolors.GN + res3)
    exit()


def main():
    banner()
    if spisok == 'list':
        try:
            listurl()
        except FileNotFoundError:
            print('\n')
            print(Bcolors.R + "Файл не найден!")
            exit()
        for x in buf:
            getipforlist(x)
        check()
        exit()
    try:
        getIp()
    except socket.gaierror:
        print('\n')
        print(Bcolors.R + "Ошибка получения IP адреса!")
        exit()
    check()


if __name__ == '__main__':
    try:
        main()
    except KeyboardInterrupt:
        exit()

Небольшие пояснения:
m - метод обфускации(доступные методы: hex,oct,dec).
mix - миксовать ли нашу нагрузку? (1 -да, 0 - нет).
type - если вы хотите загрузить список адресов ставим этот параметр с значением "list", если один адрес параметр не ставим.
path - если вы выбрали "list" то пишем путь к файлу, если один адрес не ставим параметр.
target - если вы выбрали один адрес пишем цель, если вы выбрали "list" не указываем.
Для метода short ссылка должна иметь такой вид: https://github.com, иначе работать не будет.
Для всех остальных методов ссылка должна иметь такой вид: github.com

Вот это из-за чего вылетает?
_____ ____ __ ____ ____ _____ ____ __ ___
/ ___/ / | / ]| \ | || || | / ] / _]
( \_ | o | / / | D ) | | | __| | | / / / [_
\__ || |/ / | / | | | |_ | |/ / | _]
/ \ || _ / \_ | \ | | | _] | / \_ | [_
\ || | \ || . \ | | | | | \ || |
\___||__|__|\____||__|\_||____||__| |____\____||_____|


Author: @Tayrus
Version 1.4


Ошибка получения IP адреса!
 

Tayrus

Red Team
13.04.2017
365
787
BIT
6
Вот это из-за чего вылетает?
_____ ____ __ ____ ____ _____ ____ __ ___
/ ___/ / | / ]| \ | || || | / ] / _]
( \_ | o | / / | D ) | | | __| | | / / / [_
\__ || |/ / | / | | | |_ | |/ / | _]
/ \ || _ / \_ | \ | | | _] | / \_ | [_
\ || | \ || . \ | | | | | \ || |
\___||__|__|\____||__|\_||____||__| |____\____||_____|


Author: @Tayrus
Version 1.4


Ошибка получения IP адреса!
Вы с какими параметрами запустили? И какой URL скормили скрипту?
 

Tihon49

Green Team
06.01.2018
193
120
BIT
0
Вы с какими параметрами запустили? И какой URL скормили скрипту?
Это я запустил не с Гита файл, а скопировал код из #33 поста. Урл не помню точно, что-то типа github.com, codeby.net пробовал. Но, по сути, уже не нужно. Код с Гита заработал как надо. Спасибо! :)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!