连接oracle的总结(关于tnsname和监听)

连接oracle的总结(关于tnsname和监听),第1张

该文是我连接oracle的总结 特别适合于程序开发人员与oracle菜鸟   如何配置才能使客户端连到数据库 要使一个客户端机器能连接oracle数据库 需要在客户端机器上安装oracle的客户端软件 唯一的例外就是java连接数据库的时候 可以用jdbc thin模式 不用装oracle的客户端软件 加入你在机器上装了oracle数据库 就不需要在单独在该机器上安装oracle客户端了 因为装oracle数据库的时候会自动安装oracle客户端 用过sql server数据库然后又用oracle的新手可能会有这样的疑问 问什么我用sql server的时候不用装sql server的客户端呢?原因很简单 sql server也是microsoft的 它在操作系统中集成了sql server客户端 如果microsoft与oracle有协议 将oracle客户端也集成到操作系统中 那我们也就不用在客户端机器装oracle客户端软机就可访问数据库了 不过 这好像是不可能实现的事情 也有的人会问 为什么在sql server中没有侦听端口一说 而在oracle中要配置侦听端口?其实sql server中也有侦听端口 只不过microsoft将侦听端口固定为 不允许你随便改动 这样给你一个错觉感觉sql server中没有侦听端口 咳 microsoft把太多的东西都封装到黑盒子里 方便使用的同时也带来的需要副作用 而oracle中的侦听端口直接在配置文件中 允许随便改动 只不过无论怎样改动 要与oracle服务器端设置的侦听端口一致   好 言归正传 我们如何做才能使客户端机器连接到oracle数据库呢? A. 安装相关软件 B. 进行适当的配置   A.在适当的位置安装适当的软件 在客户端机器 .在客户端机器上安装ORACLE的Oracle Net通讯软件 它包含在oracle的客户端软件中 .正确配置了sqlnet ora文件   NAMES DIRECTORY_PATH = (TNSNAMES … )  NAMES DEFAULT_DOMAIN=DB_DOMAIN  一般情况下我们不用NAMES DEFAULT_DOMAIN参数 如果想不用该参数用#注释掉或将该参数删除即可 对于NAMES DIRECTORY_PATH参数采用缺省值即可 对于NAMES DEFAULT_DOMAIN参数有时需要注释掉 在下面有详细解释 .正确配置了tnsname ora文件   在服务器端机器 .保证listener已经启动 .保证数据库已经启动 如果数据库没有启动 用 Oracle i: dos>sqlplus / as sysdba sqlplus> startup Oracle i: dos>svrmgrl svrmgrl>connect internal svrmgrl>startup 命令启动数据库 如果listener没有启动 用 lsnrctl start [listener name] lsnrctl status [listener name] 命令启动listener   B.进行适当的配置 如何正确配置tnsname ora文件 可以在客户端机器上使用oracle Net Configuration Assistant或oracle Net Manager图形配置工具对客户端进行配置 该配置工具实际上修改tnsnames ora文件 所以我们可以直接修改tnsnames ora文件 下面以直接修改tnsnames ora文件为例 该文件的位置为 …\neork\admin\tnsnames ora (for windows) …/neork/admin/tnsnames ora (for unix) 此处 假设服务器名为testserver 服务名为 使用的侦听端口为 则tnsnams ora文件中的一个test网络服务名(数据库别名)为 test = (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST=testserver)(PORT= )) ) (CONNECT_DATA=(SERVICE_NAME=) ) ) 红色的内容为需要根据实际情况修改的内容 现解释如下 PROTOCOL 客户端与服务器端通讯的协议 一般为TCP 该内容一般不用改 HOST 数据库侦听所在的机器的机器名或IP地址 数据库侦听一般与数据库在同一个机器上 所以当我说数据库侦听所在的机器一般也是指数据库所在的机器 在UNIX或WINDOWS下 可以通过在数据库侦听所在的机器的命令提示符下使用hostname命令得到机器名 或通过ipconfig(for WINDOWS) or ifconfig(for UNIX)命令得到IP地址 需要注意的是 不管用机器名或IP地址 在客户端一定要用ping命令ping通数据库侦听所在的机器的机器名 否则需要在hosts文件中加入数据库侦听所在的机器的机器名的解析 PORT 数据库侦听正在侦听的端口 可以察看服务器端的listener ora文件或在数据库侦听所在的机器的命令提示符下通过lnsrctl status [listener name]命令察看 此处Port的值一定要与数据库侦听正在侦听的端口一样 SERVICE_NAME 在服务器端 用system用户登陆后 sqlplus> show parameter service_name命令察看   如何利用配置的网络服务名连接到数据库 用sqlplus程序通过test网络服务名进行测试 如sqlplus system/manager@test 如果不能连接到数据库 则在tnsname ora文件中的test网络服务名(net service)后面加上Oracle数据库的DB_Domain参数值 通过用sqlplus> show parameter db_domain命令察看 此处db_domain参数值为 将其加到网络服务名后面 修改后的tnsname ora中关于该网络服务名的内容为 = (DESCRIPTION= (ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST=testserver)(PORT= )) ) (CONNECT_DATA=(SERVICE_NAME=) ) ) 用sqlplus程序通过网络服务名测试 如sqlplus system/manager   关于为什们在网络服务名后面加db_domain参数 需要了解sqlplus连接数据库的原理 我在后面解决 常见故障中给出了详细的说明   如果上面的招数还不奏效的话 只好用一下乾坤大挪移了 将客户端的网络服务名部分 = (DESCRIPTION= (ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=testserver)(PORT= )) ) (CONNECT_DATA=(SERVICE_NAME=) ) ) 拷贝到服务器的tnsnames ora文件中 然后再服务器端用sqlplus system/manager连接到数据库 如果能连接成功 说明你的客户端与服务器端的网络有问题 如果连接不成功 用前面的部分检查网络服务名部分部分是否正确 如果确信网络服务名部分正确而且所有的客户端都连不上数据库则可能为系统TCP/IP或Oracle系统有问题 建议重新安装数据库   常见故障解决办法 TNS (ORA ) TNS:could not resolve service name 该错误表示用于连接的网络服务名在tnsnames ora文件中不存在 如上面的tnsnames ora中的网络服务名只有test 假如用户在连接时用sqlplus system/manager@test 则就会给出TNS 错误 要注意的是 有时即使在tnsnames ora文件中有相应的网络服务名 可是用该网络服务名连接时还会出错 出现这种情况的典型配置如下(在客户端的机器上) sqlnet ora文件 NAMES DIRECTORY_PATH = (TNSNAMES … ) NAMES DEFAULT_DOMAIN = tnsnames ora文件: test = (DESCRIPTION= (ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=testserver)(PORT= )) ) (CONNECT_DATA=(SERVICE_NAME=) ) )   sqlplus运行基本机理 在用户输入sqlplus system/manager@test后 sqlplus程序会自动到sqlnet ora文件中找NAMES DEFAULT_DOMAIN参数 假如该参数存在 则将该参数中的值取出 加到网络服务名的后面 即此例中你的输入由sqlplus system/manager@test自动变为sqlplus system/man 然后再到tnsnames ora文件中找网络服务名 这当然找不到了 因为该文件中只有test网络服务名 所以报错 解决的办法就是将sqlnet ora文件中的NAMES DEFAULT_DOMAIN参数注释掉即可 如#NAMES DEFAULT_DOMAIN = 假如NAMES DEFAULT_DOMAIN参数不存在 则sqlplus程序会直接到tnsnames ora文件中找test网络服务名 然后取出其中的host port tcp service_name 利用这些信息将连接请求发送到正确的数据库服务器上 另外原则上tnsnames ora中的配置不区分大小写 但是我的确遇到区分大小写的情况 所以最好将使用的网络服务与tnsnames ora中配置的完全一样   ORA : TNS:listener could not resolve SERVICE_NAME given in connect Descriptor 该错误表示能在tnsnames ora中找到网络服务名 但是在tnsnames ora中指定的SERVICE_NAME与服务器端的SERVICE_NAME不一致 解决的办法是修改tnsnames ora中的SERVICE_NAME   易混淆术语介绍 Db_name 对一个数据库(Oracle database)的唯一标识 该数据库为第一章讲到的Oracle database 这种表示对于单个数据库是足够的 但是随着由多个数据库构成的分布式数据库的普及 这种命令数据库的方法给数据库的管理造成一定的负担 因为各个数据库的名字可能一样 造成管理上的混乱 为了解决这种情况 引入了Db_domain参数 这样在数据库的标识是由Db_name和Db_domain两个参数共同决定的 避免了因为数据库重名而造成管理上的混乱 这类似于互连网上的机器名的管理 我们将Db_name和Db_domain两个参数用 连接起来 表示一个数据库 并将该数据库的名称称为Global_name 即它扩展了Db_name Db_name参数只能由字母 数字 _ # $ 组成 而且最多 个字符   Db_domain 定义一个数据库所在的域 该域的命名同互联网的 域 没有任何关系 只是数据库管理员为了更好的管理分布式数据库而根据实际情况决定的 当然为了管理方便 可以将其等于互联网的域   Global_name 对一个数据库(Oracle database)的唯一标识 oracle建议用此种方法命令数据库 该值是在创建数据库是决定的 缺省值为Db_name Db_domain 在以后对参数文件中Db_name与Db_domain参数的任何修改不影响Global_name的值 如果要修改Global_name 只能用ALTER DATABASE RENAME GLOBAL_NAME TO <db_name db_domain>命令进行修改 然后修改相应参数   Service_name 该参数是oracle i新引进的 在 i以前 我们用SID来表示标识数据库的一个实例 但是在Oracle的并行环境中 一个数据库对应多个实例 这样就需要多个网络服务名 设置繁琐 为了方便并行环境中的设置 引进了Service_name参数 该参数对应一个数据库 而不是一个实例 而且该参数有许多其它的好处 该参数的缺省值为Db_name Db_domain 即等于Global_name 一个数据库可以对应多个Service_name 以便实现更灵活的配置 该参数与SID没有直接关系 即不必Service name 必须与SID一样   Net service name 网络服务名 又可以称为数据库别名(database alias) 是客户端程序访问数据库时所需要 屏蔽了客户端如何连接到服务器端的细节 实现了数据库的位置透明的特性   lishixinzhi/Article/program/Oracle/201311/17463

看一下:

netstat -al |grep ftp

不知道你是什么UNIX,

在AIX中重启一下网络服务:refresh -s inetd

试试吧。

x使用过程中,需要了解当前系统开放了哪些端口,并且要查看开放这些端口的具体进程和用户,可以通过netstat命令进行简单查询

netstat命令各个参数说明如下:

  -t : 指明显示TCP端口

  -u : 指明显示UDP端口

  -l : 仅显示监听套接字(所谓套接字就是使应用程序能够读写与收发通讯协议(protocol)与资料的程序)

  -p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序。

  -n : 不进行DNS轮询,显示IP(可以加速操作)

即可显示当前服务器上所有端口及进程服务,于grep结合可查看某个具体端口及服务情况··

netstat -ntlp //查看当前所有tcp端口·

netstat -ntulp |grep 80 //查看所有80端口使用情况·

netstat -ntulp | grep 3306 //查看所有3306端口使用情况·

Linux查看程序端口占用情况

使用命令:

ps -aux | grep tomcat

发现并没有8080端口的Tomcat进程。

使用命令:netstat –apn

查看所有的进程和端口使用情况。发现下面的进程列表,其中最后一栏是PID/Program name

发现8080端口被PID为9658的Java进程占用。

进一步使用命令:ps -aux | grep java,或者直接:ps -aux | grep pid 查看

就可以明确知道8080端口是被哪个程序占用了!然后判断是否使用KILL命令干掉!

方法二:直接使用 netstat -anp | grep portno

即:netstat -anp|grep 8080

netstat -anp|grep 8080 --> tcp 0 0 0000:8080 0000: LISTEN 28500/java

ps -aux | grep 28500 --> r/local/tomcat9-jforum/tomcat

安装lsof list open files//---也可以 netstat -tunlp|grep 端口号 netstat -anp|grep 端口号

yum install lsof

lsof -i:8080 查看8080端口占用

lsof abctxt 显示开启文件abctxt的进程

lsof -c abc 显示abc进程现在打开的文件

lsof -c -p 1234 列出进程号为1234的进程所打开的文件

lsof -g gid 显示归属gid的进程情况

lsof +d /usr/local/ 显示目录下被进程开启的文件

lsof +D /usr/local/ 同上,但是会搜索目录下的目录,时间较长

lsof -d 4 显示使用fd为4的进程

lsof -i 用以显示符合条件的进程情况

lsof -i[46] [protocol][@hostname|hostaddr][:service|port]

46 --> IPv4 or IPv6

protocol --> TCP or UDP

hostname --> Internet host name

hostaddr --> IPv4地址

service --> /etc/service中的 service name (可以不止一个)

port --> 端口号 (可以不止一个)

lsof -i //显示所有打开的端口

lsof -i:80 //显示所有打开80端口的进程

lsof -i -U //显示所有打开的端口和UNIX domain文件

其实我一般这样用:

[root@VM_39_230_centos bin]# lsof -i:3306

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

mysqld 16422 mysql 19u IPv6 148794 0t0 TCP :mysql (LISTEN)

mysqld 16422 mysql 39u IPv6 643698 0t0 TCP localhost:mysql->localhost:36582 (ESTABLISHED)

mysqld 16422 mysql 45u IPv6 643699 0t0 TCP localhost:mysql->localhost:36584 (ESTABLISHED)

mysql

Oracle监听器是Oracle服务器软件的一个组件,它负责管理Oracle数据库和客户端之间的通讯,它在一个特定的网卡端口(默认是TCP 15

Oracle监听器简介

Oracle监听器是Oracle服务器软件的一个组件,它负责管理Oracle数据库和客户端之间的通讯,它在一个特定的网卡端口(默认是TCP 1521端口)上监听连接请求,并将连接转发给数据库,由两个二进制文件组成:tnslsnr和lsnrctl。其中tsnlsnr就是监听器本身,它运行在数据库服务器端,lsnrctl是监听器控制程序,用于在服务器上或远程管理监听器。与监听器相关的还有两个配置文件:sqlnetora和listenerora。tnslsnr启动时就会读取这两个配置文件中的信息,如端口号,数据库服务名。

Oracle监听器在默认安装和配置情况下,有许多著名的漏洞和缺陷,黑客利用这些缺陷可以制造拒绝服务攻击,偷窃数据库连接密码,进一步窃取机密数据。最大的风险来自监听器的配置,Oracle官方提供了一些推荐的配置,往往能够达到保护监听器的目的。本文就是想仔细列出现有的已知保护Oracle监听器的方法,这些方法对于黑客而言都很熟悉,所以作为DBA也必须要清楚才行。

为什么要保护监听器?

DBA对于为什么要保护监听器往往不太关心,他们认为黑客不太可能通过控制监听器进而控制整个数据库,在Oracle 10g之前的所有版本,Oracle监听器允许任何一个人利用lsnrctl从远程发起对监听器的管理,但幸运的是,从Oracle 101开始严格限制在远程对监听器的管理了。下面列出一些对Oracle 8/9i默认安装配置时可能有效的攻击手段,即使是打上最新的安全补丁,而没有进行安全配置加固,这些攻击手段也仍然有效:

注意:本文假设监听器使用的是TCP/IP,并且使用的是本地命名管理(即tnsnamesora),本文所描述的Oracle版本在8i/9i/10g上做过测试,但相信对其他低版本或更高的版本也有一定的参考价值。

怎么保护监听器?

既然监听器有这么多可供黑客利用的地方,那有没有什么方法来保护它,办法是有的,而且还很多,总结起来,大概有下面11种方法来保护Oracle监听器:

1、 设备监听器密码

通过设置监听器密码可以阻止大部分的菜鸟黑客的进攻,设置密码有两种方法,一种是通过lsnrctl命令来设置,另一种是直接修改listenerora文件,第一种方法设置的密码是经过加密后存储在listenerora中,而第二种方法是以明文的形式放在listenerora中的,所以推荐使用第一种方式。具体命令如下:

LSNRCTL> set current_listener

LSNRCTL> change_password

old password:

New password:

Reenter new password:

LSNRCTL> set password Password:

LSNRCTL> save_config

设置好密码后,打开listenerora,看是否有一条PASSWORDS_的记录,类似于PASSWORDS_LISTENER = F4BAA4A006C26134。为监听器设置了密码后,,必须到客户端重新配置连接。

2、 开启监听器日志

开启监听器日志功能是为了捕获监听器命令和防止密码被暴力破解。开启监听器日志功能的命令为:

LSNRCTL> set current_listener

LSNRCTL> set password Password:

LSNRCTL> set log_directory /network/admin

LSNRCTL> set log_file log

LSNRCTL> set log_status on

LSNRCTL> save_config

通过运行上面的命令,监听器将会在/network/admin目录下创建一个log日志文件,以后可以打开该文件查看一些常见的ORA-错误信息。

3、 在listenerora中设置ADMIN_RESTRICTIONS

在listenerora文件中设置了ADMIN_RESTRICTIONS参数后,当监听器在运行时,不允许执行任何管理任何,届时,set命令将不可用,不论是在服务器本地还是从远程执行都不行,这时如果要修改监听器设置就只有手工修改listenerora文件了,通过手工修改listenerora,要使修改生效,只能使用lsnrctl reload命令或lsnrctl stop/start命令重新载入一次监听器配置信息。在listenerora文件中手动加入下面这样一行:

ADMIN_RESTRICTIONS_ = ON

4、 打上最新的监听器补丁

这一点就与操作系统类似,数据库也有bug,也有漏洞,黑客会在漏洞发现第一时间扫描未打补丁的服务器,所以作为一个称职的DBA要随时关注Oracle的CPU(呵呵,不是处理器,是关键补丁升级的意思),这里要说明的是Oracle的补丁是自动累加的,就像windows xp sp2的内容包括了sp1的所有内容一样,所以只需要按照最新的补丁集就可以了,还有一点要注意的是在生产系统上应用任何补丁前都需要先在测试环境进行测试,保证升级后不影响正常业务才进行升级。最后要说明的是,只有购买了Oracle的正式许可才可以登陆下载补丁,否则就只有从第三方地址下载,其完整性就不能保证了。

5、 利用防火墙阻止SQLNET

除非的确需要,否则不应该让SQLNET通讯通过防火墙,在设计防火墙规则时,应设计为只允许经过认证的Web服务器和应用程序通过防火墙进行SQLNET通信。而且放在防火墙DMZ区域的应用服务器使用SQLNET通信时,应只允许它与特定的数据库服务器进行通信。

通常很少有应用会从Internet直接访问数据库,因为这种方式的延迟非常明显,通用的做法是配置应用服务器与数据库通信,Internet客户端通过浏览器访问应用服务器即可,这时配置防火墙时也只需设置应用服务器和数据库服务器之间的通信规则即可。

6、 保护$TNS_ADMIN目录

$TNS_ADMIN目录即我们通常看到的ORACLE_HOME/network/admin目录,它下面包含有listenerora,tnsnamesora,sqlnetora,protocolora等重要配置文件,前面已经提到,监听器的密码就是保存在listenerora中的,如果不保护好,可能造成密码泄露,或整个文件被修改,这个目录下的listenerora,sqlnetora,protocolora文件应该只开放给Oracle主账户(通常是oracle或Administrator),而其他账户不能有任何权限,tnsnamesora文件在Linux或Unix系统上权限可以设置为0644,在windows上可以设置其他用户为浏览,读取权限。

7、 保护TNSLSNR和LSNRCTL

在Linux或Unix服务器上,应该将这两个文件的权限设为0751,如果想更严格一点,可以设为0700,这样就只有安装oracle时指定的宿主用户可以执行它们了,这两个文件位于ORACLE_HOME/bin目录下。保护这两个文件的目的是为了防止黑客直接破坏它们,如果tnslsnr被破坏,监听器肯定不能启动,如果lsnrctl被破坏,可能植入恶意代码,在运行lsnrctl时就会执行其它黑客行为。

8、 移除不用的服务

默认安装时,会安装一个PL/SQL外部程序(ExtProc)条目在listenerora中,它的名字通常是ExtProc或PLSExtProc,但一般不会使用它,可以直接从listenerora中将这项移除,因为对ExtProc已经有多种攻击手段了。有时可能会在多个实例之间拷贝listenerora,请检查拷贝来的文件中是否含有不需要的服务,确保只留下的确需要的服务项目,减少监听器受攻击的面。

9、 改变默认的TNS端口号

改变监听器监听的端口号与修改ftp服务器默认的21端口,web服务器的80端口类似,因为Oracle默认的监听端口是1521(Oracle还正式注册了两个新的端口号2483和2484,说不定哪个新版本发布后,可能默认的端口号就会是这两个了,其中2484用于SSL类型的连接),几乎所有的扫描器都可以直接扫描这个端口是否打开,如果设置为一个不常用的端口号,可能会给人一种假象,而且即使扫描到端口打开,也还要猜测该端口运行是究竟是什么服务,攻击难度就加大了。在修改端口的时候也不要设在1521-1550和1600-1699范围内,虽然通过修改默认端口并不算什么高级防护技术,但至少可以防止自动攻击,以及在端口1521上的简单扫描。

可直接编辑listenerora中端口号,也可以通过netca程序进行修改,当然在客户端也要做对应的修改才行。同时要设置初始化参数LOCAL_LISTENER,这样在监听端口发生变化后,数据库才会自动进行监听器重新注册。

10、 设置节点验证

根据应用程序和网络配置情况,采用节点验证对于保护监听器是一种强有力的方法,大部分Web应用程序都只需要从应用服务器访问监听器,以及一台管理客户端,对于Oracle 8/8i,在$ORACLE_HOME/network/admin/protocolora文件中添加节点检查语句,对于Oracle 9i/10g,在$ORACLE_HOME/network/admin/sqlnetora文件中添加节点检查语句,语句的格式都一样,如:

tcpvalidnode_checking = yes

tcpinvited_nodes = ( xxxx | name, xxxx | name)

tcpexcluded_nodes=( xxxx | name, xxxx | name)

注意:这里要么使用invited_nodes语句,要么使用excluded_nodes,不能同时都使用,也不能使用通配符,子网等,只能使用明确的ip地址或主机名。这里的xxxx指的就是如1921681100这样的ip地址,name就是主机名,如果有多个ip地址或主机名,使用逗号进行分隔。

设置了节点验证后,监听器需要重新启动才会生效。使用这种方法进行节点验证会消耗一定的系统资源和网络带宽,如果要验证的地址过多,靠手工添加也很麻烦,这时可以使用Oracle Connection Manager,如果是有许多客户端通过SQLNET访问数据库,使用这种节点验证的方法也不可行,那会相当的慢。

11、 监视日志

在前面的方法中开启了监听器日志功能,在产生了日志信息后,要对其进行分析,常见的可在日志文件中查找是否有TNS-01169,TNS-01189,TNS-01190或TNS-12508错误,如果有这些错误,至少可以说明要么有人攻击,要么有异常活动,进一步可以使用shell基本或一些简单的管理工具将这些有用的日志信息定期发送给DBA,实现实时监控效果。

下面是对前面提到的几个常见错误的描述:

小结

通过上面这11种方法对Oracle监听器进行保护后,想要通过监听器进行破坏活动基本上就很困难了,不能保证100%拦截攻击,也至少有99%的效果,另外那1%可能就是DBA本身犯的一些低级错误了,如不小心将监听器密码泄露给他人,或将配置信息暴露在Internet上。

最常见的危险端口无非就是

telnet (23)

rlogin (513)

ftp (21)

之所以高危,其实与端口本身无关,是由于上面跑的协议导致的。这些协议都是明文传递,因此很容易就可以在这些端口截获信息(比如密码,传递的隐私信息等)。 所以在现在的系统中,都建议用 ssh 来替代 telnet 或者 rlogin, 用 sftp 来替代 ftp。

所以,如果一个通信协议没有采用加密措施,或者其加密措施不可靠,那么这个通信协议所使用的端口,就可以称为危险端口。

1,肉鸡:所谓“肉鸡”是一种很形象的比喻,比喻那些可以随意被我们控制的电脑,对方可以是WINDOWS系统,也可以是UNIX/LINUX系统,可以是普通的个人电脑,也可以是大型的服务器,我们可以象操作自己的电脑那样来操作它们,而不被对方所发觉。

2,木马:就是那些表面上伪装成了正常的程序,但是当这些被程序运行时,就会获取系统的整个控制权限。有很多黑客就是 热中与使用木马程序来控制别人的电脑,比如灰鸽子,黑洞,PcShare等等。

3,网页木马:表面上伪装成普通的网页文件或是将而已的代码直接插入到正常的网页文件中,当有人访问时,网页木马就会利用对方系统或者浏览器的漏洞自动将配置好的木马的服务端下载到访问者的电脑上来自动执行。

4,挂马:就是在别人的网站文件里面放入网页木马或者是将代码潜入到对方正常的网页文件里,以使浏览者中马。

5,后门:这是一种形象的比喻,入侵者在利用某些方法成功的控制了目标主机后,可以在对方的系统中植入特定的程序,或者是修改某些设置。这些改动表面上是很难被察觉的,但是入侵者却可以使用相应的程序或者方法来轻易的与这台电脑建立连接,重新控制这台电脑,就好象是入侵者偷偷的配了一把主人房间的要是,可以随时进出而不被主人发现一样。

通常大多数的特洛伊木马(Trojan Horse)程序都可以被入侵者用语制作后门(BackDoor)

6,rootkit:rootkit是攻击者用来隐藏自己的行踪和保留root(根权限,可以理解成WINDOWS下的system或者管理员权限)访问权限的工具。通常,攻击者通过远程攻击的方式获得root访问权限,或者是先使用密码猜解(破解)的方式获得对系统的普通访问权限,进入系统后,再通过,对方系统内存在的安全漏洞获得系统的root权限。然后,攻击者就会在对方的系统中安装rootkit,以达到自己长久控制对方的目的,rootkit与我们前边提到的木马和后门很类似,但远比它们要隐蔽,黑客守卫者就是很典型的rootkit,还有国内的ntroorkit等都是不错的rootkit工具。

9,IPC$:是共享“命名管道”的资源,它是为了让进程间通信而开放的饿命名管道,可以通过验证用户名和密码获得相应的权限,在远程管理计算机和查看计算机的共享资源时使用。

10弱口令:指那些强度不够,容易被猜解的,类似123,abc这样的口令(密码)

11默认共享:默认共享是WINDOWS2000/XP/2003系统开启共享服务时自动开启所有硬盘的共享,因为加了"$"符号,所以看不到共享的托手图表,也成为隐藏共享。

12shell:指的是一种命令指行环境,比如我们按下键盘上的“开始键+R”时出现“运行”对话框,在里面输入“cmd”会出现一个用于执行命令的黑窗口,这个就是WINDOWS的Shell执行环境。通常我们使用远程溢出程序成功溢出远程电脑后得到的那个用于执行系统命令的环境就是对方的shell

13webshell:webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做是一种网页后门。黑客在入侵了一个网站后,通常会将这些asp或php后门文件与网站服务器WEB目录下正常的网页文件混在一起,好后就可以使用浏览器来访问这些asp 或者php后门,得到一个命令执行环境,以达到控制网站服务器的目的。可以上传下载文件,查看数据库,执行任意程序命令等。国内常用的webshell有海阳ASP木马,Phpspy,c99shell等

14溢出:确切的讲,应该是“缓冲区溢出”。简单的解释就是程序对接受的输入数据没有执行有效的检测而导致错误,后果可能是造成程序崩溃或者是执行攻击者的命令。大致可以分为两类:(1)堆溢出(2)栈溢出。

15注入:随着B/S模式应用开发的发展,使用这种模式编写程序的程序员越来越来越多,但是由于程序员的水平参差不齐相当大一部分应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想要知的数据,这个就是所谓的SQLinjection,即:SQL注意入。

16注入点:是是可以实行注入的地方,通常是一个访问数据库的连接。根据注入点数据库的运行帐号的权限的不同,你所得到的权限也不同。

17内网:通俗的讲就是局域网,比如网吧,校园网,公司内部网等都属于此类。查看IP地址如果是在以下三个范围之内的话,就说明我们是处于内网之中的:10000—10255255255,1721600—17231255255,19216800—192168255255

18外网:直接连入INTERNET(互连网),可以与互连网上的任意一台电脑互相访问,IP地址不是保留IP(内网)IP地址。

19端口:(Port)相当于一种数据的传输通道。用于接受某些数据,然后传输给相应的服务,而电脑将这些数据处理后,再将相应的恢复通过开启的端口传给对方。一般每一个端口的开放的偶对应了相应的服务,要关闭这些端口只需要将对应的服务关闭就可以了。

203389、4899肉鸡:3389是WINDWS终端服务(Terminal Services)所默认使用的端口号,该服务是微软为了方便网络管理员远程管理及维护服务器而推出的,网络管理员可以使用远程桌面连接到网络上任意一台开启了终端服务的计算机上,成功登陆后就会象操作自己的电脑一样来操作主机了。这和远程控制软件甚至是木马程序实现的功能很相似,终端服务的连接非常稳定,而且任何杀毒软件都不会查杀,所以也深受黑客喜爱。黑客在入侵了一台主机后,通常都会想办法先添加一个属于自己的后门帐号,然后再开启对方的终端服务,这样,自己就随时可以使用终端服务来控制对方了,这样的主机,通常就会被叫做3389肉鸡。Radmin是一款非常优秀的远程控制软件,4899就是Radmin默认使以也经常被黑客当作木马来使用(正是这个原因,目前的杀毒软件也对Radmin查杀了)。有的人在使用的服务端口号。因为Radmin的控制功能非常强大,传输速度也比大多数木马快,而且又不被杀毒软件所查杀,所用Radmin管理远程电脑时使用的是空口令或者是弱口令,黑客就可以使用一些软件扫描网络上存在Radmin空口令或者弱口令的主机,然后就可以登陆上去远程控制对恶劣,这样被控制的主机通常就被成做4899肉鸡。

21免杀:就是通过加壳、加密、修改特征码、加花指令等等技术来修改程序,使其逃过杀毒软件的查杀。

22加壳:就是利用特殊的酸法,将EXE可执行程序或者DLL动态连接库文件的编码进行改变(比如实现压缩、加密),以达到缩小文件体积或者加密程序编码,甚至是躲过杀毒软件查杀的目的。目前较常用的壳有UPX,ASPack、PePack、PECompact、UPack、免疫007、木马彩衣等等。

23花指令:就是几句汇编指令,让汇编语句进行一些跳转,使得杀毒软件不能正常的判断病毒文件的构造。说通俗点就是”杀毒软件是从头到脚按顺序来查找病毒。如果我们把病毒的头和脚颠倒位置,杀毒软件就找不到病毒了“。

先写这么多吧,希望对哥们们有帮助了哈

“反弹端口”原理:

服务端(被控制端)主动连接客户端(控制端),为了隐蔽起见,监听端口一般开在80(提供HTTP服务的端口),这样,即使用户使用端口扫描软件检查自己的端口,也难以发现。而控制端发给服务端的数据是一个第三方的空间来实现的,一般用一个主页空间,控制端通过FTP写主页空间上的一个文件,而服务端定期 TTP协议读取这个文件的内容,当发现客户端让自己开始连接时,就主动连接。这样,控制端就可以穿过防火墙,甚至还能访问局域网内部的电脑。

软件加壳:

“壳”是一段专门负责保护软件不被非法修改或反编译的程序。它们一般都是先于程序运行,拿到控制权,然后完成它们保护软件的任务。经过加壳的软件在跟踪时已看到其真实的十六进制代码,因此可以起到保护软件的目的。

软件脱壳:

顾名思义,就是利用相应的工具,把在软件“外面”起保护作用的“壳”程序去除,还文件本来面目,这样再修改文件内容就容易多了。

蠕虫病毒:

它利用了WINDOWS系统的开放性特点,特别是COM到COM+的组件编程思路,一个脚本程序能调用功能更大的组件来完成自己的功能。以VB脚本病毒为例,它们都是把VBS脚本文件加在附件中,使用HTM,VBS等欺骗性的文件名。蠕虫病毒的主要特性有:自我复制能力、很强的传播性、潜伏性、特定的触发性、很大的破坏性。

缓冲区溢出:

功击者向一个地址区输入这个区间存储不下的大量字符。在某些性况下,这些多余的字符可以作为“执行代码”来运行,因此足以使功击者不受安全措施限制地获得计算机的控制权。

CMD:

是一个所谓命令行控制台。有两条进入该程序的通道:第一、鼠标点击“开始—运行”,在出现的编辑框中键入“CMD”,然后点击“确定”;第二、在启动Windows2000的时候,按F8进入启动选择菜单,移动光条或键入数字至安全模式的命令行状态。出现的窗口是一个在win9x系统常见的那种MSDOS方式的界面。尽管微软把这个工具当做命令解释器一个新的实例,但使用方法去和原来的DOS没有区别。

嗅控器:

(Snifffer)就是能够捕获网络报文的设备。嗅控器的正当用处在于分析网络的流量,以便找出所关心的网络中潜在的问题。

密罐:(Honeypot)

是一个包含漏洞的系统,它摸拟一个或多个易受功击的主机,给黑客提供一个容易功击的目标。由于密罐没有其它任务需要完成,因此所有连接的尝试都应被视为是可疑的。密罐的另一个用途是拖延功击者对其真正目标的功击,让功击者在密罐上浪费时间。与此同时,最初的功击目标受到了保护,真正有价值的内容光焕发不将受侵犯。

路由器(Routers):

是用来连接不同子网的中枢,它们工作于osi 7层模型的传输层和网络层。路由器的基本功能就是将网络信息包传输到它们的目的地。一些路由器还有访问控制列表(ACLs),允许将不想要的信息包过滤出去。许多路由器都可以将它们的日志信息注入到IDS系统中,提供有关被阻挡的访问网络企图的宝贵信息。

Unicode漏洞:

Unicode是一个16位的字符集,他可以移植到所有主要的计算机平台并且覆盖几乎整个世界。微软IIS4和5都存在利用扩展Unicode字符取代“/”“\”而能利用“/”目录便利的漏洞。未经授权的用户可能利用IUSR_machinename帐号的上下文空间访问任何已知的文件。该帐号在默认情况下属于Everyone和Users组的成员,因此任何与Web根目录在同一个逻辑驱动器上的能被这些用户组访问的文件都能被删除、修改或执行,如同一个用户成功的登陆所能完成的功能一样!

CGI漏洞:

CGI是Common Gateway Inerface(公用网关接口)的简称,并不特指一种语言。Web服务器的安全问题主要包括:1)Web服务器软件编制中的BUG;2)服务器配置的错误。可能导致CGI源代码泄漏,物理路径信息泄漏,系统敏感信息泄漏或远程执行任意命令。CGI语言漏洞分为以下几类:配置错误、边界条件错误、访问验证错误、来源验证错误、输入验证错误、策略错误、使用错误等等。CGI漏洞大多分为一下几种类型:暴露不该暴露的信息、执行不该执行的命令、溢出。

SSL漏洞:

SSL是Secure Socket Layer的缩写。是网上传输信用卡和帐户密码等信息时广泛采用的行业加密标准。SSL常见的安全漏洞有三种:1、攻击证书,由于IIS服务器提供“客户端证书映射”功能,用于将客户端提交证书中的名字映射到NT系统的用户帐号,再这种情况下我们能够获得该主机的系统管理员权限!如果黑客不能利用非法的证书突破服务器,还可尝试暴力攻击。2、窃取证书,黑客还可能窃取有效的证书及相关的思友密匙。3、安全盲点。没有网络检测系统再加上没有安全漏洞审查,使得最重要的服务器反而成为受到最少防护的服务器。

IPC$漏洞:

IPC$是共享“命名管道”的资源,它对于程序间的通讯十分重要。再远程管理计算机和查看计算机的共享资源时使用。利用IPC我们可以与目标主机建立一个空的连接,而利用这个空连接,我们还可以得到目标主机上的用户列表。但是,一些别有用心的人会利用IPC$,查找我们的用户列表,并使用一些字典工具,对我们的主机进行入侵攻击。

IIS漏洞:

IIS是Internet Information Service的缩写。是微软公司的Web服务器。IIS支持多种需要服务器端处理的文件类型,当一个WEB用户从客户端请求此类文件时,相应的DLL文件将自动对其进行处理。然而再ISMDLL这个负责处理HTR文件的文件中被发现存在严重的安全漏洞。该漏洞包含了一个再ISMDLL重未经验证的缓冲,他可能对WEB服务器的安全运作造成两方面的威胁。首先,是来自服务拒绝攻击的威胁,另一个威胁通过使用一个精心构建过的文件请求将可以利用标准缓存溢出手段导致2进制代码再服务器端运行,再这种情况下,什么都可能发生!

NTLM验证:

NTLM(NT LAN Mangager)是微软公司开发的一种身份验证机制,从NT4开始就以之使用,主要用于本地的帐号管理。

IPC管道:

为了更好的控制和处理不同进程之间的通信和数据交换,系统会通过一个特殊的连接管道来调度整个进程。

3389漏洞:

由于微软的原因,使得安装了微软服务终端和全拼的Win2K服务器存在着远程登陆并能获得超级用户全县的严重漏洞。

139漏洞:

通过139端口入侵是网络攻击中常见的一种攻击手段,一般情况下139端口开启是由于NetBIOS网络协议的使用。NetBIOS就是网络基本输入输出系统,系统可以利用WINS服务、广播及Lmhost文件等多种模式将NetBIOS名解析为相应的IP地址,从而实现信息通讯。再局域网内部使用NetBIOS协议可以非常方便的实现消息通信,但是如果再Internet上,NetBIOS就相当于一个后门程序,很多攻击这都是通过NetBIOS漏洞发起攻击的!

shell:

shell是系统与用户的交换方式界面。简单来说,就是系统与用户“沟通”的环境。我们平时常用到的DOS,就是一个shell。(Windows2000是cmdexe)

root:

Unix里面最高权限的用户~即超级管理员

admin:

Windows NT里面最高权限的用户~

rootshell:

通过溢出程序,再主机溢出一个具有root权限的shell。(顺便说一句,国内一知名黑客也叫这个名字)

IDS:

入侵检测系统,用于在黑客发起进攻或是发起进攻之前检测到攻击,并加以拦截。IDS是不同于防火墙的,防火墙只能屏蔽入侵,而IDS却可以在入侵发生以前,通过一些信息来检测到即将发生的攻击或是入侵以作出反应。

UDP:

一种传输层协议,在网络上不可靠的传输数据包,被DNS用于查询和应答,许多流音频和视频应用也使用它。

API:

一套定义的一致性方法,软件开发人员能用他来编写与其他程序捷克欧的程序。API用于扩展程序的功能和使用预编写的组创建新的程序。

FTP:

文件传输协议。一类应用以及该应用使用的协议的名字,用于将文件从一台计算机移动到另一台。

HTTP:

超文本传输协议。用于在万维网上传输数据,包括超文本标识语言文档、图像、可执行内容等等。TCP承载HTTP,一般服务器监听端口80。

HTTPS:

安全超文本传输协议。通过在安全套接字层(SSL)协议上运行超文本传输协议来将安全添加到万维网中。HTTPS能用于将WEB服务器认证到客户,将客户认证到WEB服务器和加密在两个系统之间传输的所有数据,HTTPS服务器一般监听TCP端口443。

IRC:

Internet中继交谈,一系列程序和一种协议,用于实现在Internet上的交谈会话。IRC特别受计算机地下组织的欢迎,北移些攻击者用来讨论他们的工具、技术和战利品。

MAC Address:

网络接口的数据链路层(第二层)地址。对于以太网卡,MAC地址维48bit长。

LAN:

局域网!一种网络,连接近距离的计算机,一般位于单个房间、建筑物或小的地理区域里。LAN上的所有系统位于一个网络跳之间。

ping:

一类基于Internet控制消息协议的数据包,用于判断网络上的某台计算机是否可以到达。

Proxy:

代理。一类程序或系统,接收来自客户机算计的流量,并代表客户与服务器交互。代理能用于过滤应用级别的制定类型的流量或缓存信息以提高性能。许多防火墙依赖代理进行过滤。

telnet:

用于系统的远程命令行访问的程序和协议。telnet在TCP上传输,服务器一般在TCP端口23监听。

TCP:

传输控制协议。一种传输层协议,被许多要求数据的可靠传输的应用所使用。HTTP、SMTP、FTP和telnet都使用TCP进行传输。

TCP/IP:

整个网际协议族的集合名,包括TCP、UDP、IP和ICMP。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 连接oracle的总结(关于tnsname和监听)

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情