Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 4 additions & 9 deletions protocol.py
Original file line number Diff line number Diff line change
Expand Up @@ -229,8 +229,7 @@ def send_activate_msg(self, reset_sequence=False):
self.req_number = activate_session_parsed.opc_data.request_id_number - 1 # we always increase before use
# Activate
activate_session_parsed.opc_data.secure_channel_id = self.secure_channel_id
if self.program_type == PROGRAM_NAME_IGNITION or self.program_type == PROGRAM_NAME_S2OPC:
activate_session_parsed.opc_data.security_token_id = self.secure_token_id
activate_session_parsed.opc_data.security_token_id = self.secure_token_id
activate_session_parsed.opc_data.object.object.auth_token.main_object = self.auth_id
activate_session_build = OPCUA_MESSAGE.build(activate_session_parsed)
print("[-] Sending Activate message with {} bytes".format(len(activate_session_build)))
Expand Down Expand Up @@ -279,11 +278,8 @@ def create_session(self, open_timestamp=None, session_name=None, create_malforme
create_session_parsed = OPCUA_MESSAGE.parse(create_raw)
create_session_parsed.opc_data.secure_channel_id = self.secure_channel_id

# Open62541 requires token id be same as channel id
if self.program_type == PROGRAM_NAME_OPEN62541:
create_session_parsed.opc_data.security_token_id = self.secure_channel_id
if self.program_type == PROGRAM_NAME_IGNITION or self.program_type == PROGRAM_NAME_S2OPC:
create_session_parsed.opc_data.security_token_id = self.secure_token_id
# TokenId must match what the server returned in the OPN response
create_session_parsed.opc_data.security_token_id = self.secure_token_id

if self.session_timeout:
create_session_parsed.opc_data.object.object.request_session_timeout = self.session_timeout
Expand Down Expand Up @@ -324,8 +320,7 @@ def create_session(self, open_timestamp=None, session_name=None, create_malforme
# Activate
activate_session_parsed = OPCUA_MESSAGE.parse(activate_raw)
activate_session_parsed.opc_data.secure_channel_id = self.secure_channel_id
if self.program_type == PROGRAM_NAME_IGNITION or self.program_type == PROGRAM_NAME_S2OPC:
activate_session_parsed.opc_data.security_token_id = self.secure_token_id
activate_session_parsed.opc_data.security_token_id = self.secure_token_id
activate_session_parsed.opc_data.object.object.auth_token.main_object = self.auth_id
activate_session_build = OPCUA_MESSAGE.build(activate_session_parsed)
print("[-] Sending Activate message with {} bytes".format(len(activate_session_build)))
Expand Down