oracle弱口令怎么办,oracle口令失效
创建oracle数据库时老是提醒我口令缺失或无效
这种情况通常发生于创建 Oracle 例程时指定了非正常的全局数据库名称或系统用户密码。
10年积累的做网站、网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站策划后付款的网站建设流程,更有渠县免费网站建设让你可以放心的选择与我们合作。
解决办法:全局数据库名称不能以数字开头,口令密码也不能由数字开头
Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。
oracle 11g管理口令设了很多都无效,怎么办,[INS-32010] 字符串包含无效字符。
你这个【INS-32010】并不是提示密码里有无效字符,而是你的安装路径里有无效字符。注意上边的三个路径不要包含无效字符(标点符号以及空格等)。
如何应对被公开的Oracle口令加密算法
由于Oracle数据库被广泛应用,其口令加密算法也是备受关注。最早在1993年comp.databases.oracle.server新闻组中有人披露了加密算法的大部分细节。十年后,一本名为《Special Ops Host and Network Security for Microsoft, Unix and Oracle》的书中补全了算法最重要的一个环节——DES算法的KEY。至此,口令加密算法已无秘密可言。接踵而来的是互联网上出现多个了Oracle口令破解工具。Oracle在2007年推出的最新版本11g中,使用了新的更安全的加密算法,但是新算法的细节很快又在互联网上被公开。为提供兼容,11g版本保留了11g以前版本使用的加密口令,利用这一漏洞仍然可以对11g版本的加密口令进行破解。
到底怎样才能保证数据库口令的安全呢?本文首先介绍Oracle数据库各版本口令加密算法的内容,然后针对算法重点介绍加强数据库安全性的应对措施。
口令加密算法
从Oracle7到Oracle 10gR2,使用DES算法对口令进行加密。对算法进行分析,可以得出如下结论:口令不区分大小写,任意大小写组合均可登录;由于只使用固定KEY,只要用户名和口令相同,在任一DB中存放的加密口令都相同;由于采用了用户名和口令串接的方式,所以用户aaa、口令bbbccc的加密值与用户aaabbb、口令ccc完全相同。
Oracle 11g版本的加密口令存放在SYS.USER$表中的SPARE4列中,而PASSWORD列中仍保留以前版本加密口令。由于客户端计算加密口令需要用到SALT,在建立连接时,服务器端将SALT明文传送给客户端程序。Oracle 11g中新的口令加密算法中区分大小写;由于加入了随机数SALT,两个不同用户的口令即便完全相同,计算得到的SHA1的散列值也不同;不同DB中相同用户相同口令,SHA1散列值也可能不同。
目前,大多数破解工具的工作方式是得到加密口令后,对每一个可能的口令进行加密计算,比较计算结果而确定是否正确。由此,抵御口令破解可以从三个方面着手:防止加密口令外泄;在加密口令落入黑客手中后,口令也是不可破解的,或尽量增加破解的时间;即便是口令被破解,也是无用的,不能存取数据库。
防止加密口令泄露
1.应用“最少权限”原则,尽量限制可存取加密口令用户的人数
在数据库中检查具有存取SYS.USER$或DBA_USERS权限的用户,并从不需要的用户中收回权限。但是操作并不简单,这也是数据库管理工作的特点。每一厂商的软件中都实现了SQL标准之外的扩充,并且每一版本都有差异。限于篇幅,不可能对所有本文中建议的措施进行详细的解释说明,仅以此处检查权限为例展示DBA工作的复杂性。本文中如未说明,则默认版本为11g。应用于11g以前版本时,请读者确认是否需要修改。
检查权限主要的工具是数据字典视图(也可以直接存取SYS用户的基表,但基表的定义没有公布,官方不提供技术支持)。视图DBA_TAB_PRIVS存放了数据库中数据对象上的授权信息。假定用户A1和A2可以存取SYS.USER$表,检查在SYS用户USER$上有存取权限的用户,可执行如下语句:
SELECT GRANTEE FROM DBA_TAB_PRIVS WHERE TABLE_NAME=‘USER$’;
我们已经知道用户A1和A2,都可以存取SYS.USER$表,但为什么在上面查询结果中没有出现呢?这是因为在Oracle的权限管理中,对一个表的存取权限还可以通过系统权限或角色赋予,而DBA_TAB_PRIVS中仅列出了直接的对象权限的授予信息。对于SYS.USER$表而言,系统权限SELECT ANY DICTIONARY和角色DBA都包含了这一表的存取权限。所以完整列出所有可存取这一表的用户应增加下面两条查询语句的结果:
SELECT GRANTEE FROM DBA_SYS_PRIVS WHERE PRIVILEGE=‘SELECT ANY DICTIONARY’;
SELECT GRANTEE FROM DBA_ROLE_PRIVS WHERE GRANTED_ROLE=‘DBA’;
通过上面的查询语句,还是会遗漏某些用户。如果把DBA角色授权给另一角色Admin,然后又将Admin角色授权给另一用户NEWU,则此用户可存取SYS.USER$表,但在上述三个查询中并没有直接列出NEWU的名字(角色Admin会出现在第三个查询语句的结果中)。
显然,Oracle的授权构成了一棵树,完整的信息需要一段PL/SQL程序来完成。(对于11g以前版本,还需要检查对DBA_USERS视图有存取权限的用户和角色。SELECT_CATALOG_ROLE角色如被授权,则可以存取所有数据字典视图,但不能存取SYS的基表。)
2.设定对加密口令存取的审计
如果当前系统中只有SYSDBA可以存取USER$,则一个变通办法是审计SYSDBA的所有操作,其中也包括对USER$的存取。设置初始化参数audit_sys_operations =TRUE,重新启动数据库后激活对SYSDBA操作的审计。
审计文件的存放位置为:
11g版本中为:$ORACLE_BASE/admin/SID/ adump/ *.aud
11g以前版本为: $ORACLE_HOME/rdbms/audit/ *.aud。
严格限制和监视SYSDBA用户活动的最好办法是使用Oracle Database Vault组件。
3.在操作系统级限制对数据库数据文件的存取
SYSDBA用户的加密口令存放在$ORACLE_HOME/dbs下的口令文件orapw〈SID〉中。SYS.USER$表同样需要在数据文件中存放,多数为SYSTEM表空间的第一个数据文件中。此外,EXPORT文件、REDOLOG文件以及TRACE文件中都可能出现加密口令。需要严格限制上述文件的存取权限。
4.防止网络窃听
在建立连接时,客户端需要向服务器端传送用户名和口令,并且服务器端与客户端需要相互发送这次会话使用的SESSION KEY。Oracle采用Diffie-Hellman KEY交换算法和自己开发的O3LOGON协议完成上述任务。算法的细节同样已在互联网上被公开。建立连接时上述信息如果被截获,同样可以被用来破解口令。更为严重的是,如果黑客事先已经获得加密口令,结合SESSION KEY的信息,则不需要任何破解,执行简单还原运算就可算出口令明文。
另外,设计SID时不要使用如ORCL、TEST、PROD等常用名字,设定PORT号为远远大于1521的数,都可以增加黑客SID扫描的难度和时间。
5. 删除旧版的加密口令
存放在Oracle 11g数据库中的以前版本的加密口令是口令破解工具的一个突破口。在没有兼容性限制的系统中,可以考虑从系统中删除旧版口令,从而增加破解难度。
具体操作如下:
在SQLNET.ORA中增加一行:SQLNET.ALLOWED_LOGON_VERSION=11(Oracle手册中格式介绍有错误,不能加括号:…=(11)),指定最低版本。
以SYSDBA登录后,执行以下语句,删除旧版口令。
update sys.user$ set password=NULL;
delete from user_history$;
commit;
设置修改后,基于OCI的工具如SQLPLUS、10gR1和10gR2版本都可以正常登录,而JDBC type-4 则只有11g版本才允许登录。
提高口令强度
1.禁止使用缺省口令,禁止与用户名同名的口令,禁止字典词汇的口令
Oracle 11g中提供一个视图DBA_USERS_WITH_DEFPWD,可以方便地查出系统中使用缺省口令的所有用户,不足的是还有不少遗漏。读者可以在互联网找到缺省口令的列表,虽然是非官方的,但是比DBA_USERS_WITH_DEFPWD使用的官方的列表更全。破解工具附带的词汇表有的包括了大型英文词典中全部词汇,并支持词汇与“123”之类的常用后缀进行组合。需要注意的是,有的词汇表中已经出现了“zhongguo”这样的字符串,所以汉语拼音组成的口令也是不安全的。检查系统中是否存在弱口令的最常用方法就是使用前述口令破解工具进行攻击。
2.规定口令最小字符集和口令最短长度
口令字符集最小应包括字母、数字和特殊符号,口令长度最短应不少于8位,对于安全性要求高的系统,最短长度应为12位以上。同样,问题的关键在于DBA指定初始口令以及用户修改口令时保证不违反上述这些规定。每一用户都对应一个Profile,如在Profile中指定口令验证函数,则每当创建或修改口令时,会自动检查是否满足验证程序中所设定的条件,如果不满足,则口令修改失败。对口令明文进行检查,显然要比对加密口令破解效率高。此外,口令创建之时进行检查可以及时封杀弱口令,不给黑客留下破解的窗口。
指定口令验证函数的语句为:
ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION 口令验证函数名;
上例中,为“DEFAULT” Profile指定了验证函数。对用户进行分类后,应当为每一类用户分别创建自己的Profile,而不是全部使用DEFAULT。关闭口令验证函数的语句为:
ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION NULL;
在$ORACLE_HOME/rdbms/admin/下,脚本文件UTLPWDMG.SQL提供了示例的口令验证函数,执行这一脚本,将创建一名为VERIFY_FUNCTION的函数( Oracle 11g中,增加新函数verify_function_11G )。这一函数可以对口令长度是否同时出现了字母数字符号进行检查,检查是否与用户名同名,也检查口令是否是几个最常用的词汇,如welcome、database1、account1等。最后,口令修改时检查新旧口令是否过于相似。读者实际使用时应该根据系统需要对这一函数进行必要的修改和扩充。
3.使用易记忆的随机口令限定口令长度后,如果口令没有规律很难记忆,则用户会采用他们自己的方式记住口令,大大增加了遭受社会工程攻击的可能性。DBA需要帮助用户设计一个容易记忆而又不易破解的口令。一个简单易行的方法是找用户非常熟悉的一个句子,如One world One dream,然后将每一个空格替换为数字或符号:One3world2One1dream#。
定期更换口令
抵御口令破解要从多方面着手
数据库中存在多种权限用户,各种授权用户构成一棵树
应对口令泄露或被破解的措施是强制定期更换口令,设定口令重复使用限制,规定封锁口令的错误次数上限及封锁时间。即便是加密口令落入黑客手中,在被破解之前或入侵之前,修改了口令,则口令破解变得毫无意义。为了方便记忆,一般用户有重新使用之前过期口令的倾向,如果对重用不加控制,则定期更换口令将失去意义。上述对口令的管理仍然是通过Profile完成:
ALTER PROFILE DEFAULT LIMIT
PASSWORD_LIFE_TIME 30
PASSWORD_GRACE_TIME 7
PASSWORD_REUSE_TIME 365
PASSWORD_REUSE_MAX 0
FAILED_LOGIN_ATTEMPTS 10
PASSWORD_LOCK_TIME UNLIMITED
PASSWORD_VERIFY_FUNCTION my_verify_function;
上面语句制定的口令管理政策为:口令的有效期为30天,随后有7天的宽限期,宽限期后口令“过期”,必须更改口令后才能登录。只有经过365天后才能重新使用以前的口令。在连续10次输入口令错误后,账号被封锁,设定不自动解锁,必须由DBA手动解除封锁。口令验证函数为my_verify_function。
Oracle 11g以前版本,缺省设置中没有设定口令的有效期,而在Oracle 11g中缺省设置有效期为180天。程序中直接写入口令的应用在升级到11g时一定要注意有效期问题,避免半年后应用突然无法自动运行。另外,口令的有效期对SYS用户不起作用,DBA一定要主动定期更换口令。
另外一个措施是对登录数据库服务器的主机进行限定,如指定网段或指定IP地址。进一步限定客户端允许执行的程序,如对非本地登录禁止使用SQLPLUS,只允许执行某特定应用。
认真实施本文中给出的措施后,可以很有效地防止口令被破解。然而我们的目的是提高数据库系统的安全性,而不仅仅是保证口令不被破解。数据库系统安全的任何一个环节出现问题,都会导致前功尽弃。黑客的目的是入侵系统盗窃数据,是不会按常理出牌的,会尝试各种手段方式,如社会工程、安全漏洞、物理入侵等等,而不会执着地在口令破解上与我们较劲。这一点需要我们经常提醒自己,从而切实保证数据库系统安全。
TechTarget中国原创内容
新手,oracle安装,用户名和口令无效怎么办
用户名口令无效,是因为你用户名口令不匹配导致的,联系dba进行修改密码;
或者自己登陆dba权限的账号进行更改密码后重新登陆
以scott用户为例:(数据库刚刚安装时候,这些练习账号是默认EXPIRED LOCKED,即密码过期的,账号被锁的)
对账户进行解锁,同时更改密码:
alter user scott account unlock identified by tiger;
查看用户状态可以在dba_users这个字典表进行查看
select username,user_id,password,account_status from dba_users;
这里只摘出这几个字段进行查看,发现经过上一步骤后scott的account_status 字段变为open状态;此时再去链接,问题应该就解决了
oracle数据库弱口令检测怎么实现
因为oracle数据库里面用户的password都是加密的,只能通过user$表查询。
你需要有一个弱口令的字典表,然后转化为oracle数据库中的加密后的密文。
然后再和user$表中的用户密码进行比较。
弱口令扫描操作
弱口令扫描操作手册
一、弱口令简介
弱口令目前没有严格和准确的定义,通常认为容易被别人猜测或被破解工具破解的口令即为弱口令。对弱口令的定义为,不满足以下五项条件之一即为弱口令:
1、口令长度应至少8位;
2、口令应包括数字、小写字母、大写字母、特殊符号4类中至少3类;
3、口令应与用户名无相关性,口令中不得包含用户名的完整字符串、大小写变位或形似变换的字符串;
4、应更换系统或设备的出厂默认口令;
5、口令设置应避免键盘排序密码;
二、弱口令类型
目前常见的弱口令类型有TELNET、SSH、SNMP、FTP、MYSQL、MSSQL、ORACL、HTTP等。其中TELNET、SSH、FTP、MYSQL、MSSQL、ORACLE、HTTP等为TCP协议,都是通过用户名+密码的形式登录;SNMP为UDP协议,通过community字符串登录即可。
三、弱口令字典
弱口令检查一般都是通过自动化工具批量进行,主要的难点在于字典的构造。通常来说,字典越大,扫描的效果就越好,但是扫描花费的时间也会越长,所以我们需要根据自己的任务紧急程度选择不同大小的字典。
移动互联网行业,拥有很多网络设备,所以我们需要结合设备本身的特性来优化字典。比如某网络设备的默认用户名是useradmin,默认密码是admin!@#$%^,此时我们就应该检查自己的用户名字典和弱口令字典中是否包含以上字符串,如果没有就应该将其加入到字典中。
四、工具介绍
硬件扫描器:绿盟RSAS
绿盟远程安全评估系统(NSFOCUS Remote Security Assessment System 简称:NSFOCUS RSAS)是国内一款常见的漏洞扫描工具,它的“口令猜测任务”模块即可对各协议进行专门的弱口令扫描。
1、 [登录扫描器,选择“新建任务”
2、 选择“口令猜测任务”,并输入扫描目标(可以直接输入扫描地址,也可通过文件导入)
3、 选择需要扫描的协议类型,如FTP、SSH等,然后选择需要使用的字典。
4、根据任务需求选择配置其他选项(或者保持默认配置),最后选择确定即可。
在新建任务的过程中,如果我们选择“密码字典管理”选项,还可以新建一个自己的独特字典。
l 开源扫描器:hydra
hydra是一款开源的弱口令扫描神器,它可以在windows、linux、OSX等多个平台上运行,它支持几乎所有常见协议的弱口令扫描。
1、hydra语法
hydra[[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e ns] [-o FILE] [-tTASKS] [-M FILE [-T TASKS]] [-w TIME] [-f] [-s PORT] [-S] [-vV] server service[OPT]
-R
继续从上一次进度接着破解
-S
大写,采用SSL链接
-s
小写,可通过这个参数指定非默认端口
-l
指定破解的用户,对特定用户破解
-L
指定用户名字典
-p
小写,指定密码破解,少用,一般是采用密码字典
-P
大写,指定密码字典
-e
可选选项,n:空密码试探,s:使用指定用户和密码试探
-C FILE
使用冒号分割格式,例如“登录名:密码”来代替-L/-P参数
-M FILE
指定目标列表文件一行一条
-o FILE
指定结果输出文件
-f
在使用-M参数以后,找到第一对登录名或者密码的时候中止破解
-t TASKS
同时运行的线程数,默认为16
-w TIME
设置最大超时的时间,单位秒,默认是30s
-v/ -V
显示详细过程
server
目标ip
service
指定服务名,支持的服务和协议:telnet ftp pop3[-ntlm] imap[-ntlm] smb smbnt http[s]-{head|get}http-{get|post}-form http-proxy ciscocisco-enable vnc ldap2 ldap3 mssql mysql oracle-listener postgres nntp socks5 rexec rlogin pcnfs snmprsh cvs svn icq sapr3 ssh2 smtp-auth[-ntlm] pcanywhere teamspeak sip vmauthd firebird ncp afp等等
OPT
可选项
[if !supportLists] 2、 [endif]使用范例
扫描SSH 弱口令
# hydra-L users.txt -P password.txt -t 1 -vV -e ns 192.168.1.104 ssh
-L 指定用户名字典(一行一个用户名字符串),-P指定密码字典(一行一个密码字符串),-t 指定线程数为1,-vV设置显示详细扫描过程,-e 设置使用空口令试探,最后是要扫描的IP地址和协议类型。
扫描SNMP 弱口令
#hydra-P snmppwd.txt -M ip.txt -o save.log snmp
-P 指定密码字典,-M指定目标IP文件(一行一个IP地址),-o指定结果输出文件,最后指定扫描协议SNMP。
专用扫描器:Tomcat弱口令扫描器
“Apache tomcat弱口令扫描器”是一款专用的tomcat弱口令扫描器,可以灵活的配置扫描IP、端口、用户名和字典等。
1、简单扫描整个网段
在“起始IP”中填入开始IP,在“终止IP”中填入结束IP,然后点击“添加”(可多次添加),最后点击“开始”即可。
2、高级设置:配置用户名和字典等
点击“设置”进入设置页面:
在设置页面可以导入自己的个性化“用户名”和“密码字典”,同时也可以通过文件导入要扫描的IP,配置好相关选项后,点击开始即可扫描。
专用扫描器:Burp Suite
Burp Suite是一款web渗透测试神器,可以测试SQL注入、XSS等各种漏洞,同时我们也可以使用它对WEB登录页面进行弱口令测试。
1、打开Burp Suite,配置监听端口,并在浏览器中设置代理为上述端口,如下图为8080。
2、使用浏览器打开需要测试的页面,并使用Burp Suite抓取登录请求。
3、选中请求,鼠标右键,选择“Send to Intruder”
4、在“Positions”标签下,选择需要暴力破解的字段
5、在“Payloads”标签下选择弱口令字典文件
6、点击开始攻击,通过比较应答的大小等方式获取破解成功的弱口令(此例中为password)。
网页标题:oracle弱口令怎么办,oracle口令失效
地址分享:http://ybzwz.com/article/dscpjdi.html