From 39c8fd32d5bbf61325f485fa72aacd2dba7e398c Mon Sep 17 00:00:00 2001 From: Apex Liu Date: Sat, 23 Dec 2017 03:46:08 +0800 Subject: [PATCH] =?UTF-8?q?web=E7=89=88RDP=E5=BD=95=E5=83=8F=E6=92=AD?= =?UTF-8?q?=E6=94=BE=EF=BC=8C=E5=8F=AF=E4=BB=A5=E6=92=AD=E6=94=BE=E9=BC=A0?= =?UTF-8?q?=E6=A0=87=E7=A7=BB=E5=8A=A8=E7=9A=84=E5=BD=95=E5=83=8F=E4=BA=86?= =?UTF-8?q?=EF=BC=8C=E4=B8=8B=E4=B8=80=E6=AD=A5=E6=98=AF=E6=98=BE=E7=A4=BA?= =?UTF-8?q?rdp=E7=9A=84=E5=9B=BE=E5=83=8F=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../www/teleport/static/img/player/cursor.png | Bin 0 -> 1225 bytes .../www/teleport/static/img/player/rdp-bg.png | Bin 0 -> 64835 bytes .../teleport/static/js/audit/record-list.js | 5 +- .../teleport/static/js/audit/replay-rdp.js | 358 ++++++++++++++++++ .../teleport/static/js/audit/replay-ssh.js | 50 +-- .../www/teleport/view/audit/replay-rdp.mako | 80 ++++ .../teleport/webroot/app/controller/audit.py | 14 +- .../www/teleport/webroot/app/model/record.py | 106 +++++- 8 files changed, 572 insertions(+), 41 deletions(-) create mode 100644 server/www/teleport/static/img/player/cursor.png create mode 100644 server/www/teleport/static/img/player/rdp-bg.png create mode 100644 server/www/teleport/static/js/audit/replay-rdp.js create mode 100644 server/www/teleport/view/audit/replay-rdp.mako diff --git a/server/www/teleport/static/img/player/cursor.png b/server/www/teleport/static/img/player/cursor.png new file mode 100644 index 0000000000000000000000000000000000000000..5728f4f4ae6dce7fd6f91a5873b42fd43aae5496 GIT binary patch literal 1225 zcmbVMTWs4@7&dGjBcjznXbjd0%i}5*+sA3_+G-e%9j{53wn~DUah+qIrf%vBwzH%~ zWg=XpsS_JiY)A-H(V*bJXCwYvVG3^ z{eRzo_x^#tovoqULKud%CVS)zS~msH#trCw`|np&wA|_^@_yDH@++zfF;TY*5Ko$F z5oVyOk3Df3c4OGOAtRUf^XXlJW}BoM=#W*@L1+x?-cfZ_tpt6%0E>ndBYyqhBLX+{ z7%>=4(`iS7!$!}z3$x>WIc>b8@j9{Ne!ROXAOaKmDqb~5El;S%h-F>@?E^7I;L9q0 zDMqX~l}``glI=n~N=CvO4FJxvBw z*g~fmG3@(}Kv9)Sg{(wK+bvRn=lOtxVZulw?2TEzS`Ay?wkCrNJ@w_U{nis z*^d#()0GfRC!Jm;w!B87P|B#P>QI2BDboz%TGsab4E)!PHMPCmm;$p?VB$ zYl2bku5Kt$MBWJfu7Qf8j>@)HHlgJw0Dweud;)EFB`!({g^{Ci zfFx3rV=b)2$P(MhMG{QeQu}RDGRZD|Sy9Tn`z%p0G3X%&| z-*$7hJ=*MmfnnRXy%Ci!!3|(U{)D_n@@#Xvq#v1lzF2W|b z2+hcx7{o2c6+YfYGaxR?QiP+423G$+Iirv>RL~s%X_lr4bzrbvZGCiD9Uf?*iE+_r z>?`fwi^ggxDT}%4xua9{(5LjK=f8gFc*i@vlT)wG)Sl^|K5;R-G4$cn(=$`=UwETq zM4Y{H`b0Ze+`R8k{Jry!zI0~sHR17*+Ln3ofrs0^_;&r=xwC`XEx!2uS5u)5XZ>}* z9ct-sxtyw{@BE`&zVh5y~k{45jla(7UpGrOW=7FX8lkLSb2QT&R{A=@1_RXKY&<3_{pN{=J fclTpUGsm!X*!dJg{&?xaWbkuICi>*L_@3H7ta+gB literal 0 HcmV?d00001 diff --git a/server/www/teleport/static/img/player/rdp-bg.png b/server/www/teleport/static/img/player/rdp-bg.png new file mode 100644 index 0000000000000000000000000000000000000000..e35d6711e2651f8378e29ecdd7cafb6d4fd40a8f GIT binary patch literal 64835 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 A?*IS* literal 0 HcmV?d00001 diff --git a/server/www/teleport/static/js/audit/record-list.js b/server/www/teleport/static/js/audit/record-list.js index 025bb59..79e1381 100644 --- a/server/www/teleport/static/js/audit/record-list.js +++ b/server/www/teleport/static/js/audit/record-list.js @@ -161,10 +161,9 @@ $app.on_table_host_cell_created = function (tbl, row_id, col_key, cell_obj) { var action = $(this).attr('data-action'); if (action === 'replay') { - //$app.dlg_edit_host.show_edit(row_id); if (row_data.protocol_type === TP_PROTOCOL_TYPE_RDP) { - // $tp.notify_error('sorry, not impl.'); - $app.do_replay_rdp(row_data.id, row_data.user_username, row_data.acc_username, row_data.host_ip, row_data.time_begin); + // $app.do_replay_rdp(row_data.id, row_data.user_username, row_data.acc_username, row_data.host_ip, row_data.time_begin); + window.open('/audit/replay/' + row_data.protocol_type + '/' + row_data.id); } else if (row_data.protocol_type === TP_PROTOCOL_TYPE_SSH) { window.open('/audit/replay/' + row_data.protocol_type + '/' + row_data.id); } diff --git a/server/www/teleport/static/js/audit/replay-rdp.js b/server/www/teleport/static/js/audit/replay-rdp.js new file mode 100644 index 0000000..cb12dda --- /dev/null +++ b/server/www/teleport/static/js/audit/replay-rdp.js @@ -0,0 +1,358 @@ +"use strict"; + +$app.on_init = function (cb_stack) { + var record_id = $app.options.record_id; + + $app.record_hdr = null; + $app.record_data = []; + $app.record_data_offset = 0; + $app.played_pkg_count = 0; + $app.player_timer = null; + $app.is_playing = false; + $app.is_need_stop = false; + $app.need_skip = true; + $app.player_console_term = null; + $app.player_current_time = null; + $app.is_finished = false; + $app.record_tick = 50; + + + $app.speed_table = [ + {speed: 1, name: '正常速度'}, + {speed: 2, name: '快进 x2'}, + {speed: 4, name: '快进 x4'}, + {speed: 8, name: '快进 x8'}, + {speed: 16, name: '快进 x16'} + ]; + $app.speed_offset = 0; + + $app.canvas = null; + $app.cursor_img = new Image(); + // $app.cursor_img.src = '/static/img/player/cursor.png'; + // 16x16 + $app.cursor_img.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpCRkQ3NjExMUMwNzlFNjExOUZCQUNFRjJENUIxNzlFQyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpDMkRDNjQ3M0U3NDgxMUU3OTYyMUZEMzY4RUZBMkMxQyIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpDMkRDNjQ3MkU3NDgxMUU3OTYyMUZEMzY4RUZBMkMxQyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M2IChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkQ3MzZFNzMwMkQ3QUU2MTFBQkY5QjgwMjFCQURDMzcwIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkJGRDc2MTExQzA3OUU2MTE5RkJBQ0VGMkQ1QjE3OUVDIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+f2tZdgAAAPlJREFUeNqkk7EKwjAQhttaqB2sS4uTm6OCg0+gr+pTCAq+gaCjk7rpoh1qQa3/ya8cMcUWf/ggudxdksvFnTpfaoIYtEFAWw7O4ASu2tlXYxd0QeLYkwodcAQH8JAFTwX3SoJNJfR1dQLZOXKqq8WYV4KQd64riQl9DlxjsQEmoM/5BszB3ahZ7JccfQxGai7jG1gYfpGnnkprYLENLbbAc/5T4bFJTK0ttpXFlksNLmwSrQWLpIu4tCRIfbZnYryEVHtGSo8vsXKFjEnqSmKydxH3vEpVpYz5tLIcZ8uP8ktH+hbmbxTDjg4xGyygPeeuJ175o6cAAwDcSjIu5fLpiwAAAABJRU5ErkJggg=='; + $app.player_bg_img = new Image(); + // $app.player_bg_img.src = '/static/img/player/rdp-bg.png'; + // 500x360 + $app.player_bg_img.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAfQAAAFoCAIAAAAuEJ7lAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzlCQkU4OTNFNzRGMTFFN0FERDE5QkNFNDFDRDA1NkUiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzlCQkU4OTRFNzRGMTFFN0FERDE5QkNFNDFDRDA1NkUiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3OUJCRTg5MUU3NEYxMUU3QUREMTlCQ0U0MUNEMDU2RSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3OUJCRTg5MkU3NEYxMUU3QUREMTlCQ0U0MUNEMDU2RSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtCyjKYAAPm3SURBVHja7L0JmBzV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omZkM8OvoeuPWkDdS4V+3HHHNjT+nDlzoija/wqaDS/qKJkXRiByJ+w/t6t2S+vsWTN37NwpCL2l8Ynrup2dXBL29w+ceuqpL730Enj/HRcsmX/iAvy7+OKLT3nTwpUrn1p4+unVanXnzp1vfvMZuq6DswYGCsfMmK7EajTatm0bYyq4PknuMjp/lANNitezzzpTiveFCxfC3UGzP7f6+f2vzgp/i5P7BJqhStgHaED1qIrJMEVVZ8+YqqhGuVQCEeu6JuIwpl+r7d69e8KECVOnTn3hhXXHHz/3jEWL77nnnpNOOun0005zXQfqEtx06aWXapp26623zpw5c96843EESHjbzjQqHYL0+wYKURRaAo3fLpfLh/Zipk2b9olPfKLx5+MCR37nA2r9pcsenjVrFmze//mrvygWS11dnWjAp5566oCyX/r6evFFWNNDm1pKIOVO+JPHtBmzgzCUhOP7QezjMxXkju1zzjlnYGBgxYoVc4+bc8MNN0Ba7tr1SqVSedOb3vT+978fG7fffvuUKVMuuOACxtgf//jHZ5559qyzzpKSX+H1VTa71Qo2wP7JKpJ7L/F4NEBWhkHroSlg9kDQjuM89thjB5r3IidJjVskmUAYpScIR829Btuq+v/31x+eMHHSr277xbrn11166SWgZt/377777q1bt/71X/+1zHm///77J07kGTXgoFQqBRrq7x94+eWXIMyPP/54GADJ1//5n7ccc8z0D33oQ3LsFPL8pz/96fbt29PZ3Ec+/H8ajA/84Ac/oLWZCAQKyxAOl6PGmJbO2CnT5KVOmNrd3V2r1UDfoPhnn33ugQceuPzyy2fNmnXttdcuW7bs4YeXZ7NZVdPDwMduoPsrrrhCUvaLL754xx13dHa24x3J7GEYPvroozJD/MQTjk8yOy/RvmMXTaokEIjcCYcdXZNmKMpKqHVJ7pMmTTrrrMWPPfZYa2vreeedh9d3v/vdQ0NDfD6k50HO53I5EH2DxJcvf6S9PX/dddc1SByHeuJJHmHQNAOmIvlba9as8T2XmJ1AIHInHD7trvshp9lp06bYrW19ff2bN28+9dRT8c6SJUuq1erSpct27HzlvLeeO23atFaBxlfx6apVq+T6DwsXLrzwwgsbue27d+++88475cDgkiVvg6lIfmv95pdYFBK5EwhE7oTDCIjxiRM6J0/s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'; + + $app.last_cursor_x = 0; + $app.last_cursor_y = 0; + $app.last_cursor_covered_image = null; + + $app.dom = { + time: $('#play-time'), + btn_play: $('#btn-play'), + btn_speed: $('#btn-speed'), + btn_skip: $('#btn-skip'), + btn_restart: $('#btn-restart'), + btn_big_font: $('#btn-big-font'), + btn_small_font: $('#btn-small-font'), + progress: $('#progress'), + status: $('#play-status'), + screen: $('#screen') + }; + + $app.dom.progress.width($('#toolbar').width()).val(0); + + $tp.ajax_post_json('/audit/get-record-header', {protocol: TP_PROTOCOL_TYPE_RDP, id: record_id}, + function (ret) { + if (ret.code === TPE_OK) { + $app.record_hdr = ret.data; + if ($app.record_hdr.width === 0) + $app.record_hdr.width = 80; + if ($app.record_hdr.height === 0) + $app.record_hdr.height = 24; + console.log('header', $app.record_hdr); + + $('#recorder-info').html(tp_format_datetime($app.record_hdr.start) + ': ' + $app.record_hdr.user_name + '@' + $app.record_hdr.client_ip + ' 访问 ' + $app.record_hdr.account + '@' + $app.record_hdr.conn_ip + ':' + $app.record_hdr.conn_port); + + $app.req_record_data(record_id, 0); + + $app.player_current_time = 0; + //setTimeout(init, 500); + $app.init_and_play(); + } else { + $tp.notify_error('读取录像信息失败:' + tp_error_msg(ret.code, ret.message)); + console.error('load init info error ', ret.code); + } + }, + function () { + $tp.notify_error('网络通讯失败'); + } + ); + + $app.dom.btn_big_font.click(function () { + if (_.isNull($app.dom.xterm_terminal)) + return; + var _size = parseInt($app.dom.xterm_terminal.css('font-size')); + if (_size >= 24) + return; + + $app.dom.xterm_terminal.css('font-size', _size + 1); + + $app.player_console_term.charMeasure.measure(); + $app.adjust_viewport(); + }); + + $app.dom.btn_small_font.click(function () { + if (_.isNull($app.dom.xterm_terminal)) + return; + + var _size = parseInt($app.dom.xterm_terminal.css('font-size')); + if (_size <= 12) + return; + + $app.dom.xterm_terminal.css('font-size', _size - 1); + + $app.player_console_term.charMeasure.measure(); + $app.adjust_viewport(); + }); + + $app.dom.btn_play.click(function () { + if ($app.is_playing) + $app.pause(); + else + $app.play(); + }); + + $app.dom.btn_skip.click(function () { + var obj = $('#btn-skip i'); + if ($app.need_skip) { + $app.need_skip = false; + obj.removeClass('fa-check-square-o').addClass('fa-square-o'); + } else { + $app.need_skip = true; + obj.removeClass('fa-square-o').addClass('fa-check-square-o'); + } + + // console.log('skip:', $app.need_skip); + }); + + $app.dom.btn_restart.click(function () { + $app.restart(); + }); + + $app.speed_offset = 0; + $app.dom.btn_speed.text($app.speed_table[$app.speed_offset].name); + $app.dom.btn_speed.click(function () { + var length = $app.speed_table.length; + $app.speed_offset += 1; + if ($app.speed_offset === length) { + $app.speed_offset = 0; + } + $app.dom.btn_speed.text($app.speed_table[$app.speed_offset].name); + }); + + $app.dom.progress.mousedown(function () { + $app.pause(); + }); + $app.dom.progress.mouseup(function () { + $app.player_current_time = parseInt($app.record_hdr.time_used * $app.dom.progress.val() / 100); + setTimeout(function () { + $app.init_and_play(); + }, 100); + }); + $app.dom.progress.mousemove(function () { + $app.player_current_time = parseInt($app.record_hdr.time_used * $app.dom.progress.val() / 100); + $app.dom.time.text(parseInt(($app.player_current_time) / 1000) + '/' + parseInt($app.record_hdr.time_used / 1000) + '秒'); + }); + + $app.adjust_viewport = function () { + if (!_.isNull($app.dom.xterm_viewport)) { + $app.dom.xterm_viewport.width(parseInt(window.getComputedStyle($app.dom.xterm_rows[0]).width)); + $app.dom.xterm_viewport.height(parseInt(window.getComputedStyle($app.dom.xterm_rows[0]).height) - 1); + } + }; + + cb_stack.exec(); +}; + +$app.req_record_data = function (record_id, offset) { + $tp.ajax_post_json('/audit/get-record-data', {protocol: TP_PROTOCOL_TYPE_RDP, id: record_id, offset: offset}, + function (ret) { + if (ret.code === TPE_OK) { + // console.log('data', ret.data); + $app.record_data = $app.record_data.concat(ret.data.data_list); + $app.record_data_offset += ret.data.data_size; + + if ($app.record_data.length < $app.record_hdr.pkg_count) { + $app.req_record_data(record_id, $app.record_data_offset); + } + } else { + $app.dom.status.text("读取录像数据失败:" + tp_error_msg(ret.code)); + $tp.notify_error('读取录像数据失败:' + tp_error_msg(ret.code, ret.message)); + console.log('req_record_info error ', ret.code); + } + }, + function () { + console.log('req_record_info error'); + }, + 30 * 1000 + ); +}; + +$app._draw_cursor = function (x, y) { + + if (!_.isNull($app.last_cursor_covered_image)) { + $app.canvas.putImageData($app.last_cursor_covered_image, $app.last_cursor_x - 8, $app.last_cursor_y - 8); + } + + $app.last_cursor_covered_image = $app.canvas.getImageData(x - 8, y - 8, 16, 16); + $app.last_cursor_x = x; + $app.last_cursor_y = y; + + $app.canvas.drawImage($app.cursor_img, x - 8, y - 8); +}; + +$app.init_and_play = function () { + $app.dom.screen.css({width: $app.record_hdr.width + 2, height: $app.record_hdr.height + 2}); + // $app.dom.canvas.css({width: $app.record_hdr.width, height: $app.record_hdr.height}); + + if (_.isNull($app.canvas)) { + // $app.canvas = $app.dom.canvas[0].getContext('2d'); + var h = ''; + $app.dom.screen.append($(h)); + $app.canvas = document.getElementById('canvas').getContext('2d'); + } else { + $app.canvas.clearRect(0, 0, $app.record_hdr.width, $app.record_hdr.height); + } + + // $app._draw_cursor(100, 100); + var x = ($app.record_hdr.width - 500) / 2; + var y = ($app.record_hdr.height - 360) / 2; + $app.canvas.drawImage($app.player_bg_img, x, y); + + + // $app.canvas.strokeStyle="red"; + // $app.canvas.strokeRect(10,90,50,50); + + if ($app.record_hdr.pkg_count === 0) + return; + + $app.dom.progress.val(0); + $app.dom.btn_play.children().removeClass().addClass('fa fa-pause').text(' 暂停'); + + $app.is_need_stop = false; + $app.is_playing = true; + $app.is_finished = false; + $app.played_pkg_count = 0; + $app.do_play(); +}; + +$app.do_play = function () { + if ($app.is_need_stop) { + $app.is_playing = false; + return; + } + + if ($app.record_data.length <= $app.played_pkg_count) { + $app.dom.status.text("正在缓存数据..."); + $app.player_timer = setTimeout($app.do_play, $app.record_tick); + return; + } + + $app.dom.status.text("正在播放"); + $app.player_current_time += $app.record_tick * $app.speed_table[$app.speed_offset].speed; + + var _record_tick = $app.record_tick; + + for (var i = $app.played_pkg_count; i < $app.record_data.length; i++) { + if ($app.is_need_stop) + break; + + var play_data = $app.record_data[i]; + + if (play_data.t < $app.player_current_time) { + if (play_data.a === 0x10) { + //$app.player_console_term.resize(play_data.w, play_data.h); + // console.log('mouse pos:', play_data, play_data.x, play_data.y); + $app._draw_cursor(play_data.x, play_data.y); + } + else { + //$app.player_console_term.write(tp_base64_decode(play_data.d)); + var _data = tp_base64_decode(play_data.d); + console.log('pkg size:', _data.length); + } + + if (($app.played_pkg_count + 1) === $app.record_hdr.pkg_count) { + $app.dom.progress.val(100); + $app.dom.status.text('播放完成'); + $app.dom.time.text(parseInt($app.record_hdr.time_used / 1000) + '秒'); + $app.is_finished = true; + $app.is_playing = false; + $app.dom.btn_play.children().removeClass().addClass('fa fa-play').text(' 播放'); + + return; + } else { + $app.played_pkg_count++; + } + + } else { + break; + } + } + + if ($app.is_need_stop) + return; + + if ($app.need_skip) { + if (play_data.t - $app.player_current_time > 800) { + $app.player_current_time = play_data.t; // - $app.record_tick * $app.speed_table[$app.speed_offset].speed; + _record_tick = 800; + } + } + + // sync progress bar. + var _progress = parseInt($app.player_current_time * 100 / $app.record_hdr.time_used); + $app.dom.progress.val(_progress); + var temp = parseInt($app.player_current_time / 1000); + $app.dom.time.text(temp + '/' + parseInt($app.record_hdr.time_used / 1000) + '秒'); + + // if all packages played + if ($app.played_pkg_count >= $app.record_hdr.pkg_count) { + $app.dom.progress.val(100); + $app.dom.status.text('播放完成'); + $app.dom.time.text(parseInt($app.record_hdr.time_used / 1000) + '秒'); + $app.is_finished = true; + $app.is_playing = false; + $app.dom.btn_play.children().removeClass().addClass('fa fa-play').text(' 播放'); + } else { + if (!$app.is_need_stop) + $app.player_timer = setTimeout($app.do_play, _record_tick); + } +}; + +$app.play = function () { + if ($app.is_playing) { + return; + } + + if ($app.is_finished) { + $app.restart(); + return; + } + + $app.dom.btn_play.children().removeClass().addClass('fa fa-pause').text(' 暂停'); + + $app.is_need_stop = false; + $app.is_playing = true; + $app.player_timer = setTimeout($app.do_play, $app.record_tick); +}; + +$app.pause = function () { + if (!_.isNull($app.player_timer)) + clearTimeout($app.player_timer); + $app.dom.btn_play.children().removeClass().addClass('fa fa-play').text(' 播放'); + $app.is_need_stop = true; + $app.is_playing = false; + $app.dom.status.text("已暂停"); +}; + +$app.restart = function () { + if (!_.isNull($app.player_timer)) + clearTimeout($app.player_timer); + $app.player_current_time = 0; + $app.init_and_play(); +}; + diff --git a/server/www/teleport/static/js/audit/replay-ssh.js b/server/www/teleport/static/js/audit/replay-ssh.js index ef1837f..c83212b 100644 --- a/server/www/teleport/static/js/audit/replay-ssh.js +++ b/server/www/teleport/static/js/audit/replay-ssh.js @@ -1,29 +1,5 @@ "use strict"; -$app.req_record_data = function (record_id, offset) { - $tp.ajax_post_json('/audit/get-record-data', {id: record_id, offset: offset}, - function (ret) { - if (ret.code === TPE_OK) { - // console.log('data', ret.data); - $app.record_data = $app.record_data.concat(ret.data.data_list); - $app.record_data_offset += ret.data.data_size; - - if ($app.record_data.length < $app.record_hdr.pkg_count) { - $app.req_record_data(record_id, $app.record_data_offset); - } - } else { - $app.dom.status.text("读取录像数据失败:" + tp_error_msg(ret.code)); - $tp.notify_error('读取录像数据失败:' + tp_error_msg(ret.code, ret.message)); - console.log('req_record_info error ', ret.code); - } - }, - function () { - console.log('req_record_info error'); - }, - 30 * 1000 - ); -}; - $app.on_init = function (cb_stack) { var record_id = $app.options.record_id; @@ -70,7 +46,7 @@ $app.on_init = function (cb_stack) { Terminal.cursorBlink = false; - $tp.ajax_post_json('/audit/get-record-header', {id: record_id}, + $tp.ajax_post_json('/audit/get-record-header', {protocol: TP_PROTOCOL_TYPE_SSH, id: record_id}, function (ret) { if (ret.code === TPE_OK) { $app.record_hdr = ret.data; @@ -184,6 +160,30 @@ $app.on_init = function (cb_stack) { cb_stack.exec(); }; +$app.req_record_data = function (record_id, offset) { + $tp.ajax_post_json('/audit/get-record-data', {protocol: TP_PROTOCOL_TYPE_SSH, id: record_id, offset: offset}, + function (ret) { + if (ret.code === TPE_OK) { + // console.log('data', ret.data); + $app.record_data = $app.record_data.concat(ret.data.data_list); + $app.record_data_offset += ret.data.data_size; + + if ($app.record_data.length < $app.record_hdr.pkg_count) { + $app.req_record_data(record_id, $app.record_data_offset); + } + } else { + $app.dom.status.text("读取录像数据失败:" + tp_error_msg(ret.code)); + $tp.notify_error('读取录像数据失败:' + tp_error_msg(ret.code, ret.message)); + console.log('req_record_info error ', ret.code); + } + }, + function () { + console.log('req_record_info error'); + }, + 30 * 1000 + ); +}; + $app.init_and_play = function() { if (_.isNull($app.player_console_term)) { $app.player_console_term = new Terminal({ diff --git a/server/www/teleport/view/audit/replay-rdp.mako b/server/www/teleport/view/audit/replay-rdp.mako new file mode 100644 index 0000000..4251d1f --- /dev/null +++ b/server/www/teleport/view/audit/replay-rdp.mako @@ -0,0 +1,80 @@ +<%! + page_title_ = '录像回放' +%> + +<%inherit file="../page_single_base.mako"/> + +<%block name="extend_js_file"> + ## + + + + +<%block name="extend_css_file"> +## + + +<%block name="embed_css"> + + + +<%block name="page_header"> +
+ +
+ + + +
+
+ + + + + + + + +
+ 跳过无操作时间 +
+ + 正在获取数据 + 总时长:未知 +
+ + ##
+ +
+ +
+ + + + +<%block name="extend_content"> + + + + + +<%block name="embed_js"> + + \ No newline at end of file diff --git a/server/www/teleport/webroot/app/controller/audit.py b/server/www/teleport/webroot/app/controller/audit.py index f4a2d0f..02970ee 100644 --- a/server/www/teleport/webroot/app/controller/audit.py +++ b/server/www/teleport/webroot/app/controller/audit.py @@ -494,7 +494,8 @@ class ReplayHandler(TPBaseHandler): def get(self, protocol, record_id): protocol = int(protocol) if protocol == TP_PROTOCOL_TYPE_RDP: - return + param = {'record_id': record_id} + self.render('audit/replay-rdp.mako', page_param=json.dumps(param)) elif protocol == TP_PROTOCOL_TYPE_SSH: param = {'record_id': record_id} self.render('audit/replay-ssh.mako', page_param=json.dumps(param)) @@ -603,12 +604,13 @@ class DoGetRecordHeaderHandler(TPBaseJsonHandler): return self.write_json(TPE_JSON_FORMAT) try: + protocol_type = int(args['protocol']) record_id = int(args['id']) except: log.e('\n') return self.write_json(TPE_PARAM) - header, err = record.read_record_head(record_id) + header, err = record.read_record_head(protocol_type, record_id) if header is None: return self.write_json(err) @@ -627,13 +629,19 @@ class DoGetRecordDataHandler(TPBaseJsonHandler): return self.write_json(TPE_JSON_FORMAT) try: + protocol_type = int(args['protocol']) record_id = int(args['id']) offset = int(args['offset']) except: log.e('\n') return self.write_json(TPE_PARAM) - data_list, data_size, err = record.read_record_data(record_id, offset) + if protocol_type == TP_PROTOCOL_TYPE_RDP: + data_list, data_size, err = record.read_rdp_record_data(record_id, offset) + elif protocol_type == TP_PROTOCOL_TYPE_RDP: + data_list, data_size, err = record.read_ssh_record_data(record_id, offset) + else: + self.write_json(TPE_NOT_EXISTS) self.write_json(err, data={'data_list': data_list, 'data_size': data_size}) diff --git a/server/www/teleport/webroot/app/model/record.py b/server/www/teleport/webroot/app/model/record.py index 104be79..a13ccb4 100644 --- a/server/www/teleport/webroot/app/model/record.py +++ b/server/www/teleport/webroot/app/model/record.py @@ -114,12 +114,26 @@ def get_records(handler, sql_filter, sql_order, sql_limit, sql_restrict, sql_exc return err, s.total_count, s.recorder -def read_record_head(record_id): +def _remove_padding_space(s): + r = [] + for i in range(len(s)): + if s[i] == 0x00: + break + r.append(s[i]) + return bytearray(r) + + +def read_record_head(protocol_type, record_id): if not tp_cfg().core.detected: return None, TPE_NO_CORE_SERVER - record_path = os.path.join(tp_cfg().core.replay_path, 'ssh', '{:09d}'.format(int(record_id))) - header_file_path = os.path.join(record_path, 'tp-ssh.tpr') + if protocol_type == TP_PROTOCOL_TYPE_RDP: + path_name = 'rdp' + elif protocol_type == TP_PROTOCOL_TYPE_SSH: + path_name = 'ssh' + + record_path = os.path.join(tp_cfg().core.replay_path, path_name, '{:09d}'.format(int(record_id))) + header_file_path = os.path.join(record_path, 'tp-{}.tpr'.format(path_name)) if not os.path.exists(header_file_path): return None, TPE_NOT_EXISTS @@ -156,22 +170,22 @@ def read_record_head(record_id): # offset += 4 user_name, = struct.unpack_from('64s', data, offset) - user_name = user_name.decode() + user_name = _remove_padding_space(user_name).decode() offset += 64 account, = struct.unpack_from('64s', data, offset) - account = account.decode() + account = _remove_padding_space(account).decode() offset += 64 host_ip, = struct.unpack_from('40s', data, offset) - host_ip = host_ip.decode() + host_ip = _remove_padding_space(host_ip).decode() offset += 40 conn_ip, = struct.unpack_from('40s', data, offset) - conn_ip = conn_ip.decode() + conn_ip = _remove_padding_space(conn_ip).decode() offset += 40 conn_port, = struct.unpack_from('H', data, offset) offset += 2 client_ip, = struct.unpack_from('40s', data, offset) - client_ip = client_ip.decode() + client_ip = _remove_padding_space(client_ip).decode() offset += 40 except Exception as e: @@ -197,11 +211,82 @@ def read_record_head(record_id): return header, TPE_OK -def read_record_data(record_id, offset): +def read_rdp_record_data(record_id, offset): + if not tp_cfg().core.detected: + return None, TPE_NO_CORE_SERVER + + record_path = os.path.join(tp_cfg().core.replay_path, 'rdp', '{:09d}'.format(int(record_id))) + file_data = os.path.join(record_path, 'tp-rdp.dat') + + if not os.path.exists(file_data): + return None, 0, TPE_NOT_EXISTS + + data_list = list() + data_size = 0 + file = None + try: + file_size = os.path.getsize(file_data) + if offset >= file_size: + return None, 0, TPE_FAILED + + file = open(file_data, 'rb') + if offset > 0: + file.seek(offset, io.SEEK_SET) + + # read 1000 packages one time from offset. + for i in range(1000): + """ + // 一个数据包的头 + typedef struct TS_RECORD_PKG + { + ex_u8 type; // 包的数据类型 + ex_u32 size; // 这个包的总大小(不含包头) + ex_u32 time_ms; // 这个包距起始时间的时间差(毫秒,意味着一个连接不能持续超过49天) + ex_u8 _reserve[3]; // 保留 + }TS_RECORD_PKG; + """ + _data = file.read(12) + data_size += 12 + _action, _size, _time, = struct.unpack_from('=BII', _data) + if offset + data_size + _size > file_size: + return None, 0, TPE_FAILED + + _data = file.read(_size) + data_size += _size + + temp = dict() + temp['a'] = _action + temp['t'] = _time + if _action == 0x10: + # this is mouse movement event. + x, y = struct.unpack_from('HH', _data) + temp['x'] = x + temp['y'] = y + elif _action == 0x11: + # this is a data package. + _data = base64.b64encode(_data) + temp['d'] = _data.decode() + else: + return None, 0, TPE_FAILED + + data_list.append(temp) + if offset + data_size == file_size: + break + + except Exception: + log.e('failed to read record file: {}\n'.format(file_data)) + return None, 0, TPE_FAILED + finally: + if file is not None: + file.close() + + return data_list, data_size, TPE_OK + + +def read_ssh_record_data(record_id, offset): if not tp_cfg().core.detected: return None, TPE_NO_CORE_SERVER - # read 1000 packages one time from offset. record_path = os.path.join(tp_cfg().core.replay_path, 'ssh', '{:09d}'.format(int(record_id))) file_data = os.path.join(record_path, 'tp-ssh.dat') @@ -220,6 +305,7 @@ def read_record_data(record_id, offset): if offset > 0: file.seek(offset, io.SEEK_SET) + # read 1000 packages one time from offset. for i in range(1000): """ // 一个数据包的头