• Открыта запись на вторую часть курса по анонимности и безопасности в сети интернет "Paranoid II" от команды codeby. Анонимные роутеры, Подъём, настройка и администрирование Tor-ноды, Работа с железом ПК, Удаление аппаратных закладок, Минимизация рисков, Авторские разработки и многое другое. Подробнее ...

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

Tayrus

Tayrus

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

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

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

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

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


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

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

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


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

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


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

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


Жмем "Enter":

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


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

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

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


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

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


Жмем "Enter":

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


На этом все!)
Код:
#Добавил еще метод
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 и т.п
 
Последнее редактирование:
explorer

explorer

Red Team
05.08.2018
662
1 442
Непонятно зачем использовать сразу два модуля termcolor и colorama, когда одного colorama достаточно для раскрашивания.
Потестил....

Под windows программа не работает, код написан криво, есть несколько ошибок.

This inspection detects names that should resolve but don't. Due to dynamic dispatch and duck typing, this is possible in a limited but useful number of cases. Top-level and class-level items are supported better than instance items.

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


Ссылки выдаёт нерабочие.
 
Tayrus

Tayrus

Grey Team
13.04.2017
360
731
Непонятно зачем использовать сразу два модуля termcolor и colorama, когда одного colorama достаточно для раскрашивания.
Потестил....

Под windows программа не работает, код написан криво, есть несколько ошибок.

This inspection detects names that should resolve but don't. Due to dynamic dispatch and duck typing, this is possible in a limited but useful number of cases. Top-level and class-level items are supported better than instance items.

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

Ссылки выдаёт нерабочие.
У меня с одной колорамой не работает в винде, у меня все запускается и ссылки выдает рабочие(Win8.1 x64)
Вы какие параметры выбираете в интерактивном режиме?
 
Tayrus

Tayrus

Grey Team
13.04.2017
360
731
Добавил еще один метод
 
explorer

explorer

Red Team
05.08.2018
662
1 442
У меня с одной колорамой не работает в винде, у меня все запускается и ссылки выдает рабочие(Win8.1 x64)
Вы какие параметры выбираете в интерактивном режиме?
Пробовал по-разному, в том числе полностью как у вас. Ссылки-то идентичные получаются. Нерабочесть ссылок заключается в том что их блокируют все браузеры - протестировал хром, лиса, ишак.

С одной колорамой код пишется легко. Может перепишу попозже.
 
Tayrus

Tayrus

Grey Team
13.04.2017
360
731
Пробовал по-разному, в том числе полностью как у вас. Ссылки-то идентичные получаются. Нерабочесть ссылок заключается в том что их блокируют все браузеры - протестировал хром, лиса, ишак.

С одной колорамой код пишется легко. Может перепишу попозже.
Забавно, но я тестил также на IE, Yandex, Firefox и ничего у меня не блочило.
Покажите скрины.
 
explorer

explorer

Red Team
05.08.2018
662
1 442
Переписал ваш код с одним модулем колорама, смотрите и учитесь, ничего сложного :) (ошибки в самом коде не правил)
Заодно орфографию поправил - адрес пишется с одной буквой с

Sacrifice - URL обфускатор
Python:
import colorama
colorama.init(autoreset=True)
import socket
import math

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


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

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

    print(Bcolors.GN + s)
    print(Bcolors.R + '                             Author: @Tayrus')

def selector():
    global select
    global payload
    global mixing
    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 = input(': ')
    print ('\n')
    print(Bcolors.GN + 'Миксовать наш payload(1 или 0)?:')
    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':
        print(Bcolors.GN + res)

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':
        print(Bcolors.GN + res)

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':
        print(Bcolors.GN + res)


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

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

if __name__ == '__main__':
    main()
 
  • Нравится
Реакции: Tihon49 и Tayrus
Tayrus

Tayrus

Grey Team
13.04.2017
360
731
Хром - с 0214.0122.0166.04 идёт редирект на 140.82.118.4 и вываливается это

Посмотреть вложение 23545
Потому что на 140.82.118.4 сертификат не установлен.
Вместо 140.82.118.4 должен быть например ваш фишинг сайт(где установлен сертификат), или C2.

github и facebook были для примера.
 
  • Нравится
Реакции: Tihon49 и explorer
explorer

explorer

Red Team
05.08.2018
662
1 442
Потому что на 140.82.118.4 сертификат не установлен.
Вместо 140.82.118.4 должен быть например ваш фишинг сайт(где установлен сертификат), или C2.

github и facebook были для примера.
Ясно, дополните эту инфу в статью.

Идея замечательная, но вот только эти варианты выглядят очень подозрительно. Нужно сделать обфускацию без цифр.
 
Последнее редактирование:
explorer

explorer

Red Team
05.08.2018
662
1 442
Исправил 4 ошибки и 20 предупреждений ;)
Ошибки заключались в том, что вы пытались применить методы для строк к числовым значениям.
Вот теперь ваша программа корректно работает. Да, ещё имена 4-х функций у вас имеют заглавные буквы, на работоспособность не влияет, но это не по фэн-шую :), оставил как есть.

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


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


select = 0
res = 0
payload = 0
addr = str(0)
mixing = 0


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

    print(Bcolors.GN + s)
    print(Bcolors.R + '                             Author: @Tayrus')


def selector():
    global select
    global payload
    global mixing
    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 = input(': ')
    print('\n')
    print(Bcolors.GN + 'Миксовать наш payload(1 или 0)?:')
    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(str(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':
        print(Bcolors.GN + res)
        input()


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':
        print(Bcolors.GN + res)
        input()


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':
        print(Bcolors.GN + res)
        input()


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


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


if __name__ == '__main__':
    main()
 
M

masscontrolx

Active member
02.03.2018
41
8
поисковые же палят такие урл, подскажите, как от поисковых их спрятать
 
M

masscontrolx

Active member
02.03.2018
41
8
перефразирую, чтобы поисковые не палили партнерские ссылки на сайте
 
Bypass

Bypass

Well-known member
02.02.2018
452
559
Приветствую всех! Я искал в интернете инструменты для обфускации url адресов, но я не нашел таких, и решил написать свой.

p.s
в скрипт добавь плиз чтобы он умел с списком url работать

перефразирую, чтобы поисковые не палили партнерские ссылки на сайте
клоака
 
Последнее редактирование:
  • Нравится
Реакции: Tihon49 и Tayrus
Мы в соцсетях:  ТелеграмВконтактеДзенФейсбукТвиттерЮтуб