@@ -174,7 +174,7 @@ def create_mdm_session_from_session(opts)
174
174
host = find_or_create_host ( h_opts )
175
175
sess_data = {
176
176
datastore : session . exploit_datastore . to_h ,
177
- desc : session . info ,
177
+ desc : truncate_session_desc ( session . info ) ,
178
178
host_id : host . id ,
179
179
last_seen : Time . now . utc ,
180
180
local_id : session . sid ,
@@ -201,11 +201,6 @@ def create_mdm_session_from_session(opts)
201
201
sess_data [ :via_exploit ] = sess_data [ :datastore ] [ 'ParentModule' ]
202
202
end
203
203
204
- # Truncate the session data if necessary
205
- if sess_data [ :desc ]
206
- sess_data [ :desc ] = sess_data [ :desc ] [ 0 , 255 ]
207
- end
208
-
209
204
s = ::Mdm ::Session . create! ( sess_data )
210
205
s
211
206
}
@@ -218,7 +213,7 @@ def create_mdm_session_from_host(opts)
218
213
sess_data = {
219
214
host_id : host . id ,
220
215
stype : opts [ :stype ] ,
221
- desc : opts [ :desc ] ,
216
+ desc : truncate_session_desc ( opts [ :desc ] ) ,
222
217
platform : opts [ :platform ] ,
223
218
via_payload : opts [ :via_payload ] ,
224
219
via_exploit : opts [ :via_exploit ] ,
@@ -230,13 +225,22 @@ def create_mdm_session_from_host(opts)
230
225
close_reason : opts [ :close_reason ] ,
231
226
}
232
227
233
- # Truncate the session data if necessary
234
- if sess_data [ :desc ]
235
- sess_data [ :desc ] = sess_data [ :desc ] [ 0 , 255 ]
236
- end
237
228
238
229
s = ::Mdm ::Session . create! ( sess_data )
239
230
s
240
231
}
241
232
end
233
+
234
+ # Truncate the session data if necessary
235
+ #
236
+ # @param desc [String]
237
+ # @return [String] +desc+ truncated to the max length of the desc column
238
+ def truncate_session_desc ( desc )
239
+ # Truncate the session data if necessary
240
+ if desc
241
+ desc = desc [ 0 , ::Mdm ::Session . columns_hash [ 'desc' ] . limit ]
242
+ end
243
+ desc
244
+ end
245
+
242
246
end
0 commit comments