Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Тихий запуск скрипта, полученного по https (http://forum.oszone.net/showthread.php?t=351414)

densan 20-06-2022 17:19 2986974

Тихий запуск скрипта, полученного по https
 
Здравствуйте.

Есть подсеть, из которой закрыты smb-ресурсы. Скрипт размещен на внутреннем https сервере.
Задача нужно под пользователями запустить VBS скрипт. Все клиенты W10 19042/19043. Запуск PS под пользователем запрещен.
Использовать внешние утилиты, которые бы скрывали черное окно нельзя (ИБ).

Реализовал через планировщик нужные тригеры. В качестве команды запуска
cmd.exe с аргументами "/c curl.exe --url https://server.domain.local/scripts/...assMessage.vbs --output %temp%\chpass\gl-usr-ChangePassMessage.vbs & wscript.exe %temp%\chpass\gl-usr-ChangePassMessage.vbs" (через cmd вызываем curl, который "тихо" скачивает скрипт в нужную папку и потом запускаем его).
Curl нативный и поэтому его использовать можно. Все работает, но появляется черное окно, которого пугаются пользователи.

Долго читал документацию по wscript и cscript. Как я понял нельзя их запустить и им на вход передать команды, которые бы или скачали скрипт или "тихо" запусти curl. Поправьте меня если я не прав.
Нужна помощь: как можно, используя нативные утилиты W10 скачать скрипт и запустить его "тихо".

densan 21-06-2022 15:19 2987042

Пока получилось добиться моргание черного окна и запуск окна cmd свернутым
cmd.exe /c start /min cmd /c "curl.exe --silent --url https://whq-fs-app.sovcombank.group/...assMessage.vbs --output %temp%\gl-usr-ChangePassMessage.vbs & wscript.exe %temp%\gl-usr-ChangePassMessage.vbs"

Serguei Kouzmine 21-06-2022 16:48 2987044

плохо тому живется наверное кого в гугле забанили ?

densan 21-06-2022 17:06 2987046

Цитата:

Цитата Serguei Kouzmine
плохо тому живется наверное кого в гугле забанили ? »

VBS не совсем мой профиль, поэтому гуглил и достаточно долго, но если у вас есть идея по реализации - буду рад помощи.

Serguei Kouzmine 21-06-2022 18:24 2987050

Download a file with VBS

https://stackoverflow.com/questions/...-file-with-vbs

с https://www.wikipedia.org/portal/wik...ia-logo-v2.png работает

densan 22-06-2022 09:03 2987074

Наверно я не совсем понятно описал ТЗ.
Нужно через планировщик запустить команду, которая бы скачала бы с https VBS-скрипт и запустила его без создания дополнительных окон.
Если запускать cmd команду - создаются дополнительные окна. PS, не нативные утилиты ОС запрещены (ИБ).
Про то, что можно VBS-скриптом скачать файл я знаю, НО!!! как запустить этот VBS скрипт, если находится не на сетевом ресурсе (SMB), а на HTTPS сервере?
Если бы был разрешен PS я бы сделал через команду
Код:

powershell.exe -Command "& {Invoke-WebRequest -Uri 'https://server.domail.local/script.ps1' -OutFile C:\temp\script.ps1; & C:\temp\script.ps1}"
Но как я понял из документации wscript и cscript нельзя вызвать и передать им на вход набор команд. Они работают только со скриптами.
Если сделать
Код:

cmd.exe /c "echo WScript.Echo "Test" > c:\temp\test.vbs & wscript.exe c:\temp\test.vbs"
то это тоже создает черное окно cmd.

YuS_2 22-06-2022 10:06 2987079

Цитата:

Цитата densan
PS, не нативные утилиты ОС запрещены (ИБ). »

ИБ у вас своеобразная...
нативный PS запрещен, не нативные утилиты запрещены... а скачивание левых скриптов, для запуска нативным VBS, не запрещено... "железная логика" безопасности...
1. Если Вы админ, то, наверное, найдете способ запуска VBS без консольного окна... если иначе, то Вы работаете не на своем месте, уж извините за прямоту.
2. Если Вы пользователь, ищущий способ обхода запретов (ИБ), то правилами данного форума запрещено обсуждение взлома.

Цитата:

Цитата densan
Но как я понял из документации wscript и cscript нельзя вызвать и передать им на вход набор команд. »

Вы неправильно поняли.
Подсказка:
Код:

WScript имя_сценария.расширение [параметры...] [аргументы...]
То бишь, после имени сценария могут указываться параметры/аргументы. Никто не мешает указать в качестве параметра/аргумента имя сценария CMD.

densan 22-06-2022 16:25 2987112

Цитата:

Цитата YuS_2
ИБ у вас своеобразная...
нативный PS запрещен, не нативные утилиты запрещены... а скачивание левых скриптов, для запуска нативным VBS, не запрещено... "железная логика" безопасности... »

"Правильные" скрипты по хешу добавлены в белый список. "Левые" скрипты блокируются средствами других приложений.

Цитата:

Цитата YuS_2
1. Если Вы админ, то, наверное, найдете способ запуска VBS без консольного окна... если иначе, то Вы работаете не на своем месте, уж извините за прямоту. »

VBS не мой профиль, я больше по PS.

YuS_2 22-06-2022 17:31 2987121

Цитата:

Цитата densan
VBS не мой профиль, я больше по PS. »

Ок. Описанный способ взломом не является, всего лишь скрывает окно cmd... остальное на Вашей совести.
Вариант 1:
hide.vbs
Код:

Set oTmp=CreateObject("WScript.Shell")
oTmp.Run """" & WScript.Arguments(0) & """", 0, False


Далее, создаем ярлык с командой:
Код:

C:\Windows\System32\wscript.exe //nologo "hide.vbs" "run.bat"
и запускаем.

Вариант 2:
с помощью компиляции встроенным VB.NET
hide.vb
Код:

' Запуск программ в скрытом режиме, в том числе пакетных сценариев, указываются первым параметром
' пример: <hid.exe "z:\путь к программе\пуск.bat"> или если программа в одном каталоге: <hid.exe run.exe>
Module mainModule
        Sub Main(ByVal Args() As String)
                Dim oTmp As Object
                Dim oStr As String = ""
                if Args.Length > 0 Then
                        oTmp = CreateObject("WScript.Shell")
                        For Num As Integer = 2 To Args.Length
                                oStr = oStr & " " & """" & Args(Num-1) & """"
                        Next Num
                        oTmp.Run (Args(0) & oStr, 0, False)
                Else
                        MsgBox ("Упс, Вы кажется забыли указать приложение! Для скрытого запуска приложения, выполните: hide.exe 'приложение.cmd'",MsgBoxStyle.Critical,"Это неправильно!")
                End if
        End Sub
End Module


Чтобы скомпилировать Windows-приложение, выполните команду (в зависимости от версии Framework, цифры могут быть другими, см. какая версия есть у вас) типа:
Код:

"C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\vbc.exe" "c:\temp\hide.vb" /out:"c:\temp\hide.exe" /target:winexe


Время: 23:49.

Время: 23:49.
© OSzone.net 2001-