基于HOOK技术获取SSH加密内容的方法及其应用技术

技术编号:28781219 阅读:25 留言:0更新日期:2021-06-09 11:13
本发明专利技术涉及网络安全的技术领域,特别是涉及基于HOOK技术获取SSH加密内容的方法,通过追踪、调试分析SSH服务端程序和数据库客户端程序寻找hook点,通过所有hook点获取SSH通信解密后的明文数据,最后解析数据获取SSH加密过的用户操作命令内容;分析SSH服务端程序,使用strace动态追踪sshd进程,找到hook点read函数,发现仅有部分数据库的数据不能捕获,通过GDB调试这些数据库客户端程序,找到新的hook点fgets、fwrite等函数;通过所有hook点获取并记录SSH通信解密后内容,然后通过解析数据获取SSH加密内容。取SSH加密内容。取SSH加密内容。

【技术实现步骤摘要】
基于HOOK技术获取SSH加密内容的方法及其应用


[0001]本专利技术涉及网络安全的
,特别是涉及基于HOOK技术获取SSH加密内容的方法。

技术介绍

[0002]SSH主要有三部分组成:
[0003]1、传输层协议提供了服务器认证、保密性及完整性,提供了强力的加密技术、密码主机认证及完整性保护。该协议中的认证基于主机,并且该协议不执行用户认证;
[0004]2、用户认证协议用于向服务器提供客户端用户鉴别功能。运行在传输层协议上,从低层协议接收会话标识符,会话标识符唯一标识此会话且适用于标记以证明私钥的所有权。
[0005]3、连接协议将多个加密隧道分成逻辑通道。运行在用户认证协议上,提供交互式登录话路、远程命令执行、转发TCP/IP连接和转发X11连接。
[0006]通过使用SSH加密所有传输数据时无法解密通信流量,能够防止“中间人攻击”,也可以防止DNS欺骗和IP欺骗。此外使用SSH传输的是压缩过的数据,传输速度很快。
[0007]SSH协议是互联网安全的一个基本解决方案,目前应用非常广泛,已经成为Linux系统的标配。
[0008]由于SSH协议的安全机制,攻击者的信息无法获取,攻击行为也无法还原取证,隐藏的恶意用户无法追踪,给数据关联的各方可能带来了巨大的隐患和损失。
[0009]目前Linux系统从Ring3到Ring0有多种HOOK方案,Ring3的方案有通过LD_PRELOAD机制hook so库文件,通过ptrace动态注入目标进程,PLT重定向hook等,Ring0的方案有Inline Hook,通过sys_call_table hook系统调用等。

技术实现思路

[0010]为解决上述技术问题,本专利技术的一个目的在于提供基于HOOK技术获取SSH加密内容的方法,通过追踪、调试分析SSH服务端程序和数据库客户端程序寻找hook点,通过所有hook点获取SSH通信解密后的明文数据,最后解析数据获取SSH加密过的用户操作命令内容;
[0011]本专利技术的另一个目的在于提供应用基于HOOK技术获取SSH加密内容的方法所得到的系统,该系统可获取多客户端的加密内容。
[0012]本专利技术的基于HOOK技术获取SSH加密内容的方法,分析SSH服务端程序,使用strace动态追踪sshd进程,找到hook点read函数,发现仅有部分数据库的数据不能捕获,通过GDB调试这些数据库客户端程序,找到新的hook点fgets、fwrite等函数;
[0013]通过所有hook点获取并记录SSH通信解密后内容,然后通过解析数据获取SSH加密内容;具体如下:
[0014]1)hook libc库的read、fgets、fwrite等函数,SSH会话建立成功后,获取调用相应
函数的进程PID和当前时间,根据PID获取进程名找到目标进程,记录获取SSH客户端命令的时间、ASCII码字符串和明文数据等信息写入缓存文件;
[0015]2)将上述功能代码编译成动态库so文件,利用Linux preload机制将生成的so文件写入/etc/ld.so.preload(或/etc/ld.so.cache文件,前者优先)文件中(不存在时则新建一个),捕获并缓存数据;
[0016]3)自定义解析方法解析上述缓存数据获取SSH加密内容,还原出SSH加密的客户端操作的命令内容。
[0017]本专利技术的基于HOOK技术获取SSH加密内容的方法,hook点是libc库的read、fgets、fwrite等函数,所述自定义的解析方法是:读取上一次文件读到的位置信息,如果有更新,从上次位置后读取hook获取的缓存数据,提取出时间信息,ASCII码字符串和明文数据等信息,先处理明文数据字符串,根据是否是可显字符及对应的ASCII码,确定键值信息,然后以每条完整的命令均以回车键作为结束作为特征,再通过解析一些特殊按键,最后还原出完整的信息。
[0018]本专利技术的一种获取多客户端SSH加密内容的系统,应用所述的方法,所述系统包括前端部分以及后端部分;
[0019]后端部分:通过hook技术将so库文件注入到每一个SSH会话相关的进程组中,缓存捕获的数据,同时控制用户删除操作行为;
[0020]后端部分包括数据捕获和缓存模块以及删除操作控制模块;
[0021]数据捕获和缓存模块:获取并缓存时间、PID及进程名称等捕获的数据信息,恢复原始系统调用过程及相应的返回值;
[0022]删除操作控制模块:根据删除操作控制策略,通过权限管理用户的删除操作行为;
[0023]前端部分:shell脚本用来完成启动、停止、管理可执行文件等功能,可执行二进制文件主要完成用户信息管理、数据解析还原、命令类型识别、策略接收与处理、自动垃圾清理等功能;
[0024]前端部分包括日志生成模块、进程守护与自启动模块、解析策略的接收与处理模块、数据解析还原与输出模块、用户信息管理模块、系统与数据库命令识别模块、输出源控制模块、扫描与记录登录信息模块、自动垃圾清理模块、删除操作策略的接收与处理模块;
[0025]日志生成模块:通过简单参数输入生成日志文件供用户查看,也可以通过定制接口传输到指定的数据库,也发送到专用的审计平台存入任意数据源中,便于用户审查;
[0026]进程守护与自启动模块:支持进程守护功能,异常退出时可以重新启动,但异常期间客户端的操作信息不丢失,同时支持开机自启动,当有客户端连接时才开始获取信息;
[0027]解析策略的接收与处理模块:提供接收和处理下发的是否开启解析功能的策略文件功能,通过指定目标服务器的IP地址,达到同时控制多台服务器的目的;
[0028]数据解析还原与输出模块:处理交互模块提供的信息,处理后端缓存的数据,根据PID信息解析相应的系统命令和数据库命令文件,分别记录各文件当前读取的位置信息,将还原后的SSH客户端操作的时间和命令信息输出;
[0029]用户信息管理模块:管理SSH客户端当前登录用户及用户切换后的信息,包括登录时间、SSH客户端IP地址和Port端口,当前服务器的IP地址和Port端口,用户退出时间等;
[0030]系统与数据库命令识别模块:根据PID信息识别系统命令和数据库命令,解析出具
体数据库类型,标识后给其他模块提供相应信息;
[0031]输出源控制模块:接收用户登录和退出信息,接收还原并识别出的系统命令和数据库命令信息,然后提供多种输出接口,可以保存成文件,存入数据库或发送到其他数据处理平台等;
[0032]扫描与记录登录信息模块:实时扫描当前服务器中连接成功的和退出的SSH会话,获取PID信息,根据多级PID关联关系确定目标PID供其他模块使用,然后通过用户信息管理模块记录SSH客户端登录信息;
[0033]自动垃圾清理模块:通过扫描与记录登录信息模块提供退出的SSH客户端的PID信息,自动清理该客户本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于HOOK技术获取SSH加密内容的方法,其特征在于,分析SSH服务端程序,使用strace动态追踪sshd进程,找到hook点read函数,发现仅有部分数据库的数据不能捕获,通过GDB调试这些数据库客户端程序,找到新的hook点fgets、fwrite等函数;通过所有hook点获取并记录SSH通信解密后内容,然后通过解析数据获取SSH加密内容;具体如下:1)hook libc库的read、fgets、fwrite等函数,SSH会话建立成功后,获取调用相应函数的进程PID和当前时间,根据PID获取进程名找到目标进程,记录获取SSH客户端命令的时间、ASCII码字符串和明文数据等信息写入缓存文件;2)将上述功能代码编译成动态库so文件,利用Linux preload机制将生成的so文件写入/etc/ld.so.preload(或/etc/ld.so.cache文件,前者优先)文件中(不存在时则新建一个),捕获并缓存数据;3)自定义解析方法解析上述缓存数据获取SSH加密内容,还原出SSH加密的客户端操作的命令内容。2.如权利要求1所述的基于HOOK技术获取SSH加密内容的方法,其特征在于,hook点是libc库的read、fgets、fwrite等函数,所述自定义的解析方法是:读取上一次文件读到的位置信息,如果有更新,从上次位置后读取hook获取的缓存数据,提取出时间信息,ASCII码字符串和明文数据等信息,先处理明文数据字符串,根据是否是可显字符及对应的ASCII码,确定键值信息,然后以每条完整的命令均以回车键作为结束作为特征,再通过解析一些特殊按键,最后还原出完整的信息。3.一种获取多客户端SSH加密内容的系统,其特征在于,应用权利要求1

2所述的方法,所述系统包括前端部分以及后端部分;后端部分:通过hook技术将so库文件注入到每一个SSH会话相关的进程组中,缓存捕获的数据,同时控制用户删除操作行为;后端部分包括数据捕获和缓存模块以及删除操作控制模块;数据捕获和缓存模块:获取并缓存时间、PID及进程名称等捕获的数据信息,恢复原始系统调用过程及相应的返回值;删除操作控制模块:根据删除操作控制策略,通过权限管理用户的删除操作行为;前端部分:shell脚本用来完成启动、停止、管理可执行文件等功能,可执行二进制文件主要完成用户信息管理、数据解析还原、命令类型识别、策略接收与处理、自动垃圾清理等功能;前端部分包括日志生成模块、进程守护与自启动模块、解析策略的接收与处理模块、数据解析还原与输出模块、用户信息管理模块、系统与数据库命令识别模块、输...

【专利技术属性】
技术研发人员:朱贺军邓省三
申请(专利权)人:北京亿赛通网络安全技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1