The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Как зашифровать(скомпилировать) bash script"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"Как зашифровать(скомпилировать) bash script"  +/
Сообщение от armnic on 03-Авг-11, 09:16 
На bash scriptе на терминальном Ubuntu server 10.10 будет присутствовать пароль для подключения к терминальному Windows 2003, хотелось чтобы пользователи не могли прочитать пароль со скрипта и пытаться исполнять другие команды на сервере. Как зашифровать(скомпилировать) bash script? Пытался скомпилировать утилитой SHC от Ubuntu 8.04 (для новых версий нет) файл после компиляции не запускается.
Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Как зашифровать(скомпилировать) bash script"  +/
Сообщение от XAnder (ok) on 03-Авг-11, 11:38 
А смысл? Для выполнения скрипт всё равно придётся как-то расшифровывать, и средства расшифровки будут у пользователя, иначе он не сможет запускать этот скрипт.

Лучше установить права на файл со скриптом, чтобы запускать его могли только те, кому можно. Ещё лучше не упоминать пароль в тексте скрипта, а читать его из отдельного файла или со стандартного ввода.

Если же задача на самом деле формулируется так: «Пользователи могут использовать пароль, но не должны его знать.», то можно покопать в сторону suid/sudo.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Как зашифровать(скомпилировать) bash script"  +/
Сообщение от allez (ok) on 03-Авг-11, 11:47 
>  На bash scriptе на терминальном Ubuntu server 10.10 будет присутствовать пароль
> для подключения к терминальному Windows 2003, хотелось чтобы пользователи не могли
> прочитать пароль со скрипта и пытаться исполнять другие команды на сервере.
> Как зашифровать(скомпилировать) bash script? Пытался скомпилировать утилитой SHC от Ubuntu
> 8.04 (для новых версий нет) файл после компиляции не запускается.

Ну, раз пошла такая пьянка, попробуйте скачать исходный код этой утилиты: http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.7.tgz
Собирается все очень просто, достаточно распаковать архив, войти в каталог с исходниками
и дать команду "make". Только что сам скачал shc, собрал и попробовал скомпилировать
несколько скриптов - работает, полученные бинарники нормально запускаются.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Как зашифровать(скомпилировать) bash script"  +/
Сообщение от jedi email on 03-Авг-11, 12:41 
>  На bash scriptе на терминальном Ubuntu server 10.10 будет присутствовать пароль
> для подключения к терминальному Windows 2003, хотелось чтобы пользователи не могли
> прочитать пароль со скрипта и пытаться исполнять другие команды на сервере.
> Как зашифровать(скомпилировать) bash script? Пытался скомпилировать утилитой SHC от Ubuntu
> 8.04 (для новых версий нет) файл после компиляции не запускается.

Есть если gcc то наверно проще всего будет вкомпилировать скрипт внутрь программы на С
http://www.unix.com/programming/29079-how-include-shell-scri...
Либо вызывать скрипт из программы

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Как зашифровать(скомпилировать) bash script"  +/
Сообщение от ACCA (ok) on 04-Авг-11, 18:16 
>  На bash scriptе на терминальном Ubuntu server 10.10 будет присутствовать пароль
> для подключения к терминальному Windows 2003, хотелось чтобы пользователи не могли
> прочитать пароль со скрипта и пытаться исполнять другие команды на сервере.

Переформулируй задачу, исключив анонимный доступ, получишь очевидное решение.

1. [Некоторые] пользователи Ubuntu должны иметь доступ к мастдаю
2. Им разрешено запускать некоторые программы на мастдае

Решение - LDAP/AD + group policy в винде + pam_ldap в Ubuntu. Всеми рулишь через LDAP/AD.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Как зашифровать(скомпилировать) bash script РЕШЕНО"  +/
Сообщение от armnic on 05-Авг-11, 12:37 
>>  На bash scriptе на терминальном Ubuntu server 10.10 будет присутствовать пароль
>> для подключения к терминальному Windows 2003, хотелось чтобы пользователи не могли
>> прочитать пароль со скрипта и пытаться исполнять другие команды на сервере.
> Переформулируй задачу, исключив анонимный доступ, получишь очевидное решение.
> 1. [Некоторые] пользователи Ubuntu должны иметь доступ к мастдаю
> 2. Им разрешено запускать некоторые программы на мастдае
> Решение - LDAP/AD + group policy в винде + pam_ldap в Ubuntu.
> Всеми рулишь через LDAP/AD.

Всем спасибо, звиняйте что оставил ветку надолго. Уже начал на С делать вызов команды (похоже на вариант  jedi)

#include <stdio.h>
main() {
int ret = system("rdesktop -u user -p пароль -k en-us -g 1024x768 192.168.168.41");
}
Программа компилится, подключается,но в скомпилированном файле всё равно открытым текстом видна вся команда. Пытался зашифровать UPX 3.07 , так он не может, пишет NotCompressibleException (хотя файлы размером поболее зашифровывает нормально).
  Вариант allez-а с shc-3.8.7 заработал (сорри я сначала использовал более старую версию).
В дальнейшем надо подумать насчёт взламываемости, что-то в трудах небезизвестнго Криса Касперки про shc ничего нету (придётся самому думать)

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Как зашифровать(скомпилировать) bash script"  +/
Сообщение от armnic on 05-Авг-11, 13:23 
Опять не работает. После компиляции с shc-3.8.7 запустился 1 или 2 раза, при последующих запусках пешет Operation not permitted Убито (как и с предыдущими версиями shc). Повторная сборка shc-3.8.7 и компиляция скрипта ничего не меняют. Придётся таки окунатся в С и мутить с шифрованием переменных команды скрипта (чобы не светились открытым тексом после компиляции).
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "Как зашифровать(скомпилировать) bash script РЕШЕНО"  +/
Сообщение от angra (ok) on 07-Авг-11, 11:57 
Даже если вы зашифруете бинарник, то запуск его под strace выдаст все параметры system в открытом виде. На многих системах ps и /proc отдадут инфу о параметрах дочернего процесса rdesktop
Так что чем шифровать бинарь просто уберите r флаг с него.
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

8. "Как зашифровать(скомпилировать) bash script РЕШЕНО"  +/
Сообщение от armnic on 09-Авг-11, 12:42 
> Даже если вы зашифруете бинарник, то запуск его под strace выдаст все
> параметры system в открытом виде. На многих системах ps и /proc
> отдадут инфу о параметрах дочернего процесса rdesktop
> Так что чем шифровать бинарь просто уберите r флаг с него.

Спасибо за совет, но всё равно пользователь может читать параметры командной строки (через  папку /proc, да и в системном мониоторе (там правда можно скрыть столбец параметров командной строки)), даже если сделать владельцем файла root-а, а права выставить 711(rwx--x--x). Может попробовать выставить запрет на чтение папки /proc ?

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "Как зашифровать(скомпилировать) bash script РЕШЕНО"  +/
Сообщение от Мяут (ok) on 04-Сен-11, 00:44 
> Спасибо за совет, но всё равно пользователь может читать параметры командной строки
> (через  папку /proc, да и в системном мониоторе (там правда
> можно скрыть столбец параметров командной строки)), даже если сделать владельцем файла
> root-а, а права выставить 711(rwx--x--x). Может попробовать выставить запрет на чтение
> папки /proc ?

А разве rdesktop не подменяет пароль, указанный в коммандной строке на XXXXXXX?

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

11. "Как зашифровать(скомпилировать) bash script РЕШЕНО"  +/
Сообщение от pavlinux (ok) on 19-Сен-11, 01:43 
> Может попробовать выставить запрет на чтение папки /proc ?

GRSECURITY впаяй, там много полезного для таких случаев.

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "Как зашифровать(скомпилировать) bash script РЕШЕНО"  +/
Сообщение от pavlinux (ok) on 19-Сен-11, 01:40 
> Даже если вы зашифруете бинарник, то запуск его под strace

Ёптыть, а что делает strace, gcc  и прочая DEV ботва на сервере?
А если юзер насуёт туда криптоанализаторов, john the рипперов, MD5 крякеров.

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

12. "Как зашифровать(скомпилировать) bash script РЕШЕНО"  +/
Сообщение от pavlinux (ok) on 19-Сен-11, 01:46 
> Программа компилится, подключается,но в скомпилированном файле всё равно
> открытым текстом видна вся команда.

Через массивы


                              #include <stdio.h>
                              #include <stdlib.h>
                              #include <string.h>
                                    int
                                main(void){
                                 /* cat */
                            const char _Server_[]=
                           {0x63, 0x61, 0x74, 0x20};
                             /* /proc/cpuinfo */
                         const char Copyright_2009[]=
                           {0x2f, 0x70, 0x72, 0x6f,
                           0x63, 0x2f, 0x63, 0x70,
                           0x75, 0x69, 0x6e, 0x66,
                           0x6f, 0x00, 0x00, 0x00};
        char *Windows_ = malloc(sizeof(_Server_) + sizeof(Copyright_2009));
                   strncpy(Windows_, _Server_, sizeof(_Server_));
              strncat(Windows_, Copyright_2009, sizeof(Copyright_2009));
              char Microsoft[sizeof(_Server_) + sizeof(Copyright_2009)];
memmove((void *)&Microsoft, Windows_, sizeof(_Server_) + sizeof(Copyright_2009));
                                 free(Windows_);
                                Windows_ = NULL;
                               system(Microsoft);
                             return (EXIT_SUCCESS);
                                      }

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2022 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру