• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Ошибки доступа к свойствам системы

  • Автор темы Zeka
  • Дата начала
Z

Zeka

В Script libraries добавил свою java библиотеку, которую вызываю через LS2J.
У меня на компьютере всё работает.

У клиента следующие строчки:
<!--shcode--><pre><code class='java'>System.getProperties().put( "proxySet", "true" );
System.getProperties().put( "proxyHost", "192.168.x.x" );
System.getProperties().put( "proxyPort", "xxxx" );[/CODE]
Выбрасывают экцепшин:
<!--shcode--><pre><code class='java'>java.lang.SecurityException: доступ к свойствам системы
at COM.ibm.JEmpower.applet.AppletSecurity.checkECL(AppletSecurity.java:565)
at COM.ibm.JEmpower.applet.AppletSecurity.maybeFailSecurity(AppletSecurity.java:694)
at COM.ibm.JEmpower.applet.AppletSecurity.maybeFailSecurity(AppletSecurity.java:621)
at COM.ibm.JEmpower.applet.AppletSecurity.checkPropertyPermission(AppletSecurity.java:1234)
at COM.ibm.JEmpower.applet.AppletSecurity.checkPermission(AppletSecurity.java:1514)
at COM.ibm.JEmpower.applet.AppletSecurity.checkPermission(AppletSecurity.java:1455)
at java.lang.SecurityManager.checkPropertiesAccess(SecurityManager.java:1268)
at java.lang.System.getProperties(System.java:311)
at Geocoder.findStreet(Geocoder.java:91)
at Geocoder.getLocation(Geocoder.java:58)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:618)
at lotus.domino.JavaConnectInvoker.invoke(Unknown Source)
at sun.reflect.GeneratedMethodAccessor2.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:618)
at lotus.domino.JavaConnectLoader.invoke(Unknown Source)"[/CODE]

Подозреваю, что проблема в java.policy?
Но вот досада, доступ к клиентскому компьютеру затруднителен. Поэтому попытался вызвать подобный экцепшин на своём компе. Изменил java.policy - закомментировал все строчки permission. Но подобного экцепшин так и не получил.

В нужном ли направлении я копаю?
Действительно ли проблема в java.policy?
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 933
609
BIT
178
да - это полиси + ECL
т.е. юзверь, на месагу, о правомерности доверия подписанту, бахнул энтер не читая :) (а там - запрет)
 
Z

Zeka

да - это полиси + ECL
т.е. юзверь, на месагу, о правомерности доверия подписанту, бахнул энтер не читая :) (а там - запрет)
Т.е. если юзер нажмёт «Start trusting the signer to execute this action», то на java.policies внимание вообще не будет обращаться?
А если нажмёт «не доверять», то тогда уже java.policies проверяться будут?
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 933
609
BIT
178
проверка осущ., но пермишенов по полиси, а ежели не доверять - но запрет
 
T

Timas

C++:
FileInputStream in = new FileInputStream("pr.ini");

Properties properties = new Properties();
properties.load(in);

Собсно из Java агента для Lotus загружются настройки. Возникает ошибка: "Can't find resource for bundle java.util.PropertyResourceBundle, key file_operation_not_allowed Ran Java Agent Class".

Я так понимаю, что не разрешены операции с файлом pr.ini?

p.s. агент запускается на сервере, по таймеру. Если запускать агента не на сервере, а локально(т.е. берется локально pr.ini), то все ок.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 933
609
BIT
178
я просто не сталкивался...
если на клиенте не менялся секурити для джава (и сталобыть на сервере он похож и дело не в нем) - то банально - нет прав у агента (рестриктед права)
 

VladSh

начинающий
Lotus Team
11.12.2009
1 783
157
BIT
53
Агент на клиенте прекрасно работал, но при запуске его на сервере такая же ерунда, - валится на совсем обычной строчке:
Java:
Properties p = System.getProperties();
[15C0:0073-17E0] 31.10.2012 17:31:43 Agent error: java.util.MissingResourceException: Can't find resource for bundle java.util.PropertyResourceBundle, key access_properties_not_allowed
[15C0:0075-17E0] 31.10.2012 17:31:43 Agent error: at java.util.ResourceBundle.getObject(ResourceBundle.java:407)
[15C0:0077-17E0] 31.10.2012 17:31:43 Agent error: at java.util.ResourceBundle.getString(ResourceBundle.java:421)
[15C0:0079-17E0] 31.10.2012 17:31:43 Agent error: at lotus.notes.JavaString.getString(Unknown Source)
[15C0:007B-17E0] 31.10.2012 17:31:43 Agent error: at lotus.notes.AgentSecurityManager.checkPropertiesAccess(Unknown Source)
[15C0:007D-17E0] 31.10.2012 17:31:43 Agent error: at java.lang.System.getProperties(System.java:322)

Коллеги, подскажите пожалуйста, как побороть!?
 
N

nvyush

Может быть, ответ здесь: "key access_properties_not_allowed"?
 
30.06.2006
141
5
BIT
0
VladSh,

[15C0:0073-17E0] 31.10.2012 17:31:43 Agent error: java.util.MissingResourceException: Can't find resource for bundle java.util.PropertyResourceBundle, key access_properties_not_allowed
Означает что не получилось найти "человеческое" описание ошибки access_properties_not_allowed, но причина не в этом.

[15C0:007B-17E0] 31.10.2012 17:31:43 Agent error: at lotus.notes.AgentSecurityManager.checkPropertiesAccess(Unknown Source)
[15C0:007D-17E0] 31.10.2012 17:31:43 Agent error: at java.lang.System.getProperties(System.java:322)
Надо добавить в java.policy:
1. разрешение на метод System.getProperties()
2. разрешения на чтение необходимых свойств (по умолчанию доступ открыт только к некоторым), если в коде потом читаются какие-то системные свойства
 

VladSh

начинающий
Lotus Team
11.12.2009
1 783
157
BIT
53
Кирилл Шваб
В java.policy вроде всё было... Спасибо за то, что всегда помогаете!

Почитал доку.. можно брать значение свойства прямо из System.
Ради эксперимента заменил
Java:
Properties p = System.getProperties();
// ... = p.getProperty("java.version");
// ... = p.getProperty("java.class.version");
на
Java:
// ... = System.getProperty("java.version");
// ... = System.getProperty("java.class.version");
и прокатило!

Не знаю, почему его клинит если брать сначала getProperties(), но главное, что без него работает.
 
Мы в соцсетях:

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