[20170329]还原用户口令信息.txt

简介: [20170329]还原用户口令信息.txt --//上午在例行检查中发现发现sys.aud$增加异常. col object_name format a40 col owner format a40 prompt 日期1 日期2 显示行数 SELECT *   FROM (  SELECT dhso.

[20170329]还原用户口令信息.txt

--//上午在例行检查中发现发现sys.aud$增加异常.

col object_name format a40
col owner format a40
prompt 日期1 日期2 显示行数
SELECT *
  FROM (  SELECT dhso.OWNER
                ,dhso.object_name
                ,object_type
                ,SUM (db_block_changes_delta)
            FROM dba_hist_seg_stat dhss
                ,dba_hist_seg_stat_obj dhso
                ,dba_hist_snapshot dhs
           WHERE     dhs.snap_id = dhss.snap_id
                 AND dhs.instance_number = dhss.instance_number
                 AND dhss.obj# = dhso.obj#
                 AND dhss.dataobj# = dhso.dataobj#
                 AND begin_interval_time BETWEEN '&1' AND '&2'
        GROUP BY dhso.OWNER, dhso.object_name, object_type
          HAVING SUM (db_block_changes_delta) > 0
        ORDER BY SUM (db_block_changes_delta) DESC)
WHERE ROWNUM <= NVL (&3, 50);

--//检查发现 dbsnmp用户 出现ora-1017错误.估计使用EM12c导致,我从来不用这个监测分析数据库.
--//两种解决方法:1.调整EM12c设置.2.重新设置口令原来的设置.我选择第2种方式:

select * from DBA_AUDIT_SESSION where username='DBSNMP' and returncode=1017 order by timestamp;

--//昏检查才发现2016/5/31 9:29:06就出现这个问题,真不知什么维护的.涉及一些安全问题,在测试环境演示使用scott用户.

1.环境:

SYS@book> @ &r/ver1

PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

--//正常情况要restore出问题前的备份数据文件,在这里我直接当前数据文件.
SYS@book> column SPARE4 format a62
SYS@book> select rowid,name,password,spare4 from sys.user$ where name='SCOTT';
ROWID              NAME                 PASSWORD                       SPARE4
------------------ -------------------- ------------------------------ --------------------------------------------------------------
AAAAAKAABAAAADVAAC SCOTT                0EDE56329E1D82EA               S:C17C48017316A8CB83FA3E8B747CA2106F44B17D9496E45C19D20ED261FC

SYS@book> @ &r/rowid AAAAAKAABAAAADVAAC
    OBJECT       FILE      BLOCK        ROW ROWID_DBA            DBA                  TEXT
---------- ---------- ---------- ---------- -------------------- -------------------- ----------------------------------------
        10          1        213          2   0x4000D5           1,213                alter system dump datafile 1 block 213 ;

--//OBJECT=10,也可以通过bootstrap$定位.

SYS@book> select * from bootstrap$ where obj#=10;
     LINE#       OBJ# SQL_TEXT
---------- ---------- ------------------------------------------------------------
        10         10 CREATE CLUSTER C_USER#("USER#" NUMBER) PCTFREE 10 PCTUSED 40
                       INITRANS 2 MAXTRANS 255 STORAGE (  INITIAL 64K NEXT 1024K M
                      INEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 OBJNO 10 EXT
                      ENTS (FILE 1 BLOCK 208)) SIZE 372


2.转储块:
SYS@book> alter system dump datafile 1 block 213 ;
System altered.

tab 1, row 2, @0x65d
tl: 171 fb: -CH-FL-- lb: 0x0  cc: 22 cki: 0
col  0: [ 5]  53 43 4f 54 54
col  1: [ 2]  c1 02
col  2: [16]  30 45 44 45 35 36 33 32 39 45 31 44 38 32 45 41
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
col  3: [ 2]  c1 05
col  4: [ 2]  c1 04
col  5: [ 7]  78 71 08 18 0d 05 16
col  6: [ 7]  78 75 02 04 0b 01 19
col  7: [ 7]  78 73 0b 18 0a 0e 1c
col  8: [ 7]  78 73 0b 18 0a 0e 1c
col  9: [ 1]  80
col 10: *NULL*
col 11: [ 2]  c1 02
col 12: *NULL*
col 13: *NULL*
col 14: [ 1]  80
col 15: [ 1]  80
col 16: [22]
44 45 46 41 55 4c 54 5f 43 4f 4e 53 55 4d 45 52 5f 47 52 4f 55 50
col 17: *NULL*
col 18: [ 1]  80
col 19: *NULL*
col 20: *NULL*
col 21: [62]
~~~~~~~~~~~~
53 3a 43 31 37 43 34 38 30 31 37 33 31 36 41 38 43 42 38 33 46 41 33 45 38
42 37 34 37 43 41 32 31 30 36 46 34 34 42 31 37 44 39 34 39 36 45 34 35 43
31 39 44 32 30 45 44 32 36 31 46 43
 
--//col 2 ,col 21 就是口令信息.转换字符串就ok了.

3.使用bbed查询信息:
SYS@book> @ &r/bbedcol sys user$
DISPLAY BBED EXAMINE(X) FORMAT
C80
-------------------------
ncncnnttttncnnnnnccnnncct

BBED> x /rncncnnttttncnnnnnccnnncct dba 1,213 *kdbr[2]
rowdata[6755]                               @7813
-------------
flag@7813: 0xac (KDRHFL, KDRHFF, KDRHFH, KDRHFK)
lock@7814: 0x00
cols@7815:    1
kref@7816:    1
mref@7818:    1
hrid@7820:0x004000d5.2
nrid@7826:0x004000d5.2
col    0[2] @7832: 85

--//这个表在CLUSTER SYS.C_USER#(USER#);不能这样查询

BBED> p kdbr
sb2 kdbr[0]                                 @114      8074
sb2 kdbr[1]                                 @116      7976
sb2 kdbr[2]                                 @118      7721
sb2 kdbr[3]                                 @120      7469
sb2 kdbr[4]                                 @122      7217
sb2 kdbr[5]                                 @124      6965
sb2 kdbr[6]                                 @126      6713
sb2 kdbr[7]                                 @128      2205
sb2 kdbr[8]                                 @130      1607
sb2 kdbr[9]                                 @132      1198
sb2 kdbr[10]                                @134     -1
sb2 kdbr[11]                                @136      1122
sb2 kdbr[12]                                @138      1629
sb2 kdbr[13]                                @140      5045
sb2 kdbr[14]                                @142      5214
sb2 kdbr[15]                                @144      5552
sb2 kdbr[16]                                @146      5383
sb2 kdbr[17]                                @148      5721
sb2 kdbr[18]                                @150      5890
sb2 kdbr[19]                                @152      1220
sb2 kdbr[20]                                @154      966

BBED> x /rcncnnttttncnnnnnccnnncct *kdbr[12]
rowdata[663]                                @1721
------------
flag@1721: 0x6c (KDRHFL, KDRHFF, KDRHFH, KDRHFC)
lock@1722: 0x00
cols@1723:   22

col    0[5] @1725: SCOTT
col    1[2] @1731: 1
col   2[16] @1734: 0EDE56329E1D82EA
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
col    3[2] @1751: 4
col    4[2] @1754: 3
col    5[7] @1757: 2013-08-24 12:04:21
col    6[7] @1765: 2017-02-04 10:00:24
col    7[7] @1773: 2015-11-24 09:13:27
col    8[7] @1781: 2015-11-24 09:13:27
col    9[1] @1789: 0
col   10[0] @1791: *NULL*
col   11[2] @1792: 1
col   12[0] @1795: *NULL*
col   13[0] @1796: *NULL*
col   14[1] @1797: 0
col   15[1] @1799: 0
col  16[22] @1801: DEFAULT_CONSUMER_GROUP
col   17[0] @1824: *NULL*
col   18[1] @1825: 0
col   19[0] @1827: *NULL*
col   20[0] @1828: *NULL*
col  21[62] @1829: S:C17C48017316A8CB83FA3E8B747CA2106F44B17D9496E45C19D20ED261FC
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

--//这样就获得口令的加密串.如何改写呢?

SYS@book> select dbms_metadata.get_ddl( 'USER', 'SCOTT' )  c120 from dual;
C120
-----------------------------------------------------------------------------------------------------------------------------
CREATE USER "SCOTT" IDENTIFIED BY VALUES 'S:C17C48017316A8CB83FA3E8B747CA2106F44B17D9496E45C19D20ED261FC;0EDE56329E1D82EA'
DEFAULT TABLESPACE "USERS"
TEMPORARY TABLESPACE "TEMP";

--//很明显把2个口令串使用分号连接起来就ok了.修改口令.

SYS@book> password scott
Changing password for scott
New password:
Retype new password:
Password changed

SYS@book> select rowid,name,password,spare4 from sys.user$ where name='SCOTT';
ROWID              NAME                 PASSWORD                       SPARE4
------------------ -------------------- ------------------------------ --------------------------------------------------------------
AAAAAKAABAAAADVAAC SCOTT                B1205594A73D0549               S:AEB2CE95EA6BA72BC8DBFE32E79EA587C1593410A6DF46B6BF4038AF1FE9
--//口令已经更改.

SYS@book> alter USER "SCOTT" IDENTIFIED BY VALUES 'S:C17C48017316A8CB83FA3E8B747CA2106F44B17D9496E45C19D20ED261FC;0EDE56329E1D82EA' ;
User altered.

SYS@book> select rowid,name,password,spare4 from sys.user$ where name='SCOTT';
ROWID              NAME                 PASSWORD                       SPARE4
------------------ -------------------- ------------------------------ --------------------------------------------------------------
AAAAAKAABAAAADVAAC SCOTT                0EDE56329E1D82EA               S:C17C48017316A8CB83FA3E8B747CA2106F44B17D9496E45C19D20ED261FC

--//通过查询旧备份的数据库文件,然后拼接在执行就可以还原后来的口令.

4.复习一下oracle口令如何加密的.

--//SPARE4最后10位是slot. slot=9496E45C19D20ED261FC.

SYS@book> set serverout on
SYS@book> exec dbms_output.put_line('S:'||dbms_crypto.hash(utl_raw.cast_to_raw('book')||'9496E45C19D20ED261FC',dbms_crypto.HASH_SH1)||'9496E45C19D20ED261FC');
S:C17C48017316A8CB83FA3E8B747CA2106F44B17D9496E45C19D20ED261FC
PL/SQL procedure successfully completed.

--//可以发现能对上spare4的信息.
--//如果使用openssl命令:

$ ((echo -n book | xxd -c 16| cut -c1-18) ;echo -n ' 9496 E45C 19D2 0ED2 61FC' )| tr -d '\n'| cut -c1-53 | xxd -c32 -r |openssl dgst -sha1 | tr 'a-z' 'A-Z'
C17C48017316A8CB83FA3E8B747CA2106F44B17D

--//前面加S:,后面加SLOT=9496E45C19D20ED261FC
S:C17C48017316A8CB83FA3E8B747CA2106F44B17D9496E45C19D20ED261FC
--//可以发现能对上spare4的信息.

目录
相关文章
|
5月前
|
存储 Linux
深入探索Linux命令:`chfn` - 修改用户指纹信息
`chfn`命令在Linux中用于修改用户的指纹信息,包括全名、办公室号码和电话等。用户可运行`chfn`无参数来修改自身信息,或以`sudo chfn username`修改其他用户信息。要查看指纹信息,可使用`finger`命令。指纹信息在服务器管理、系统日志记录和旧版终端界面中仍有其价值。
|
数据安全/隐私保护 安全
|
数据安全/隐私保护
成功解决pdf文档加密后时间久了忘记密码—本文档有打开口令或修改口令—在线完美解决
成功解决pdf文档加密后时间久了忘记密码—本文档有打开口令或修改口令—在线完美解决
成功解决pdf文档加密后时间久了忘记密码—本文档有打开口令或修改口令—在线完美解决
|
SQL Oracle 关系型数据库
oralce orapwd创建口令文件
oracle 口令文件的创建和使用
939 0
|
C# 数据安全/隐私保护
C# 设置Word文档保护(加密、解密、权限设置)
对于一些重要的word文档,出于防止资料被他人查看,或者防止文档被修改的目的,我们在选择文档保护时可以选择文档打开添加密码或者设置文档操作权限等,在下面的文章中将介绍如何使用类库Free Spire.Doc for .
1728 0
|
Oracle 关系型数据库
[20180316]改变oracle用户口令时限.txt
[20180316]改变oracle用户口令时限.txt --//昨天看了一篇blog,Stop password for user accounts expiring on Exadata,链接: --//https://blog.
1075 0
|
SQL 数据安全/隐私保护
[20171214]慎用toad保存口令功能.txt
[20171214]慎用toad保存口令功能.txt --//toad 11,12版本可以保存用户的登录口令.这样在维护管理时无需再需要口令. --//但是有一个简单的方法暴露登录口令.
1095 0