首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle 入侵/滲透測試常用命令整理:從連線到提權完整鏈路

     編輯:Oracle 資料庫相關知識

⚠️ 法律聲明

本文僅供**授權滲透測試、防禦研究、內部審計**使用。未經授權存取他人資料庫屬違法行為,嚴禁用於非法用途。

1. 取得作業系統層存取

su - oracle          # 切換至 Oracle 安裝用戶(無需 DBA 密碼)
sqlplus /nolog       # 不帶帳號啟動
sqlplus system/manager
sqlplus sys/change_on_install as sysdba

2. 連線與實例控制

CONNECT / AS SYSDBA;
STARTUP;                    # 啟動實例
STARTUP MOUNT;              # 掛載不開啟(備份/恢復用)

3. 資訊偵察

目標SQL
資料庫名稱/版本SELECT * FROM v$database; / SELECT name FROM v$database;
實例狀態SELECT * FROM v$instance;
所有表名SELECT table_name FROM all_tables;
特定 Schema 表SELECT table_name FROM all_tables WHERE owner='CQI';
表結構DESC cqi.t_bbs_xuser;
資料內容SELECT * FROM cqi.t_bbs_xuser;
擁有 SYSDBA/SYSOPER 的用戶SELECT * FROM v$pwfile_users;
當前連線用戶SHOW USER;

4. 帳號建立與提權

CREATE USER test11 IDENTIFIED BY test
  DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp;
GRANT CONNECT, RESOURCE, DBA TO test11;
GRANT SYSDBA TO test11;      -- 最高權限
COMMIT;

5. 密碼修改(含 SYS/SYSTEM)

ALTER USER sys IDENTIFIED BY newpass;
ALTER USER system IDENTIFIED BY newpass;

6. 密碼檔重建(遺失/損壞)

orapwd file=$ORACLE_HOME/dbs/orapw password=newsyspass entries=10

7. 審計與日誌分析

-- 登入失敗審計
SELECT * FROM dba_audit_trail WHERE returncode != 0;
-- 監聽日誌查詢異常連線
-- $ORACLE_HOME/network/log/listener.log

防禦加固清單

  1. 修改預設帳號密碼(SYS/SYSTEM/SCOTT/OUTLN 等)。
  2. 鎖定/過期未使用帳號:ALTER USER scott ACCOUNT LOCK PASSWORD EXPIRE;
  3. 啟用密碼複雜度驗證函數(UTLPWDMG.SQL)。
  4. 限制遠程 SYSDBA 連線:REMOTE_LOGIN_PASSWORDFILE=NONE(需密碼檔)。
  5. 啟用標準審計:AUDIT_TRAIL=DB,EXTENDED。
  6. 網路層:防火牆限制 1521 埠僅允許應用伺服器 IP、禁用不必要的監聽器服務。
  7. 定期輪換密碼檔、審計日誌歸檔異地存儲。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved