发新话题
打印

菜鸟学习初级教程-----强烈推荐(一)

本主题由 admin 于 2008-6-22 16:03 置顶
Unix(r)System V Release 4.0 5 W$ {: T9 w6 V! C1 Y' ^) n2 O
  login: ; _( T5 h: Z+ B8 f4 `( j

, U( H# {7 \+ y* [3 I+ A# L  那么根据经验就可以确定这个机器上运行的操作系统为SUN OS 5.5或5.5.l。但这样确定操作系统类型是不准确的,因为有些网站管理员为了迷惑攻击者会故意更改显示信息,造成假象。 9 j5 ]& h" U  ]3 a3 T
还有一种不是很有效的方法,诸如查询DNS的主机信息(不是很可靠)来看登记域名时的申请机器类型和操作系统类型,或者使用社会工程学的方法来获得,以及利用某些主机开放的SNMP的公共组来查询。
; [3 R3 R+ w3 u. h7 ]6 ~+ z: i! h! P% E" G$ M4 A, E' M
  另外一种相对比较准确的方法是利用网络操作系统里的TCP/IP堆栈作为特殊的“指纹”来确定系统的真正身份。因为不同的操作系统在网络底层协议的各种实现细节上略有不同。可以通过远程向目标发送特殊的包,然后通过返回的包来确定操作系统类型。例如通过向目标机发送一个FIN的包(或者是任何没有ACK或SYN标记的包)到目标主机的一个开放的端口然后等待回应。许多系统如windows、 BSDI、 CISCO、 HP/UX和 IRIX会返回一个RESET。通过发送一个SYN包,它含有没有定义的TCP标记的TCP头。那么在Linux系统的回应包就会包含这个没有定义的标记,而在一些别的系统则会在收到SYN+BOGU包之后关闭连接。或是利用寻找初始化序列长度模板与特定的操作系统相匹配的方法。利用它可以对许多系统分类,如较早的Unix系统是64K长度,一些新的Unix系统的长度则是随机增长。还有就是检查返回包里包含的窗口长度,这项技术根据各个操作系统的不同的初始化窗口大小来唯一确定它们。利用这种技术实现的工具很多,比较著名的有NMAP、CHECKOS、QUESO等。
9 f4 j$ m2 T; d' M0 B! a
6 s: r+ r# r6 A, t$ [/ O2 l& D  获知目标提供哪些服务及各服务daemon的类型、版本同样非常重要,因为已知的漏洞一般都是对某一服务的。这里说的提供服务就是指通常我们提到的喘口,例如一般TELNET在23端口,FTP在对21端口,WWW在80端口或8080端口,这只是一般情况,网站管理完全可以按自己的意愿修改服务所监听的端口号。在不同服务器上提供同一种服务的软件也可以是不同,我们管这种软件叫做daemon,例如同样是提供FTP服务,可以使用wuftp、proftp,ncftp等许多不同种类的daemon。确定daemon的类型版本也有助于黑客利用系统漏洞攻破网站。
) c$ `% o. ~2 @, X9 f9 [+ ^& m& t' `; K$ [
  另外需要获得的关于系统的信息就是一些与计算机本身没有关系的社会信息,例如网站所属公司的名称、规模,网络管理员的生活习惯、电话号码等。这些信息看起来与攻击一个网站没有关系,实际上很多黑客都是利用了这类信息攻破网站的。例如有些网站管理员用自己的电话号码做系统密码,如果掌握了该电话号码,就等于掌握了管理员权限进行信息收集可以用手工进行,也可以利用工具来完成,完成信息收集的工具叫做扫描器。用扫描器收集信息的优点是速度快,可以一次对多个目标进行扫描。
8 h$ S0 Z5 N2 h
* @5 o3 K! @; _% s3 @1 q7 c4 |  攻击的实施阶段
, v  q! }3 _3 u" N' X" R/ k* S3 }$ x$ U! n' X
  1.获得权限 + G; f) ^; K# [7 Y( h
5 }0 `, P3 J; i3 ^" V8 d5 Z
  当收集到足够的信息之后,攻击者就要开始实施攻击行动了。作为破坏性攻击,只需利用工具发动攻击即可。而作为入侵性攻击,往往要利用收集到的信息,找到其系统漏洞,然后利用该漏洞获取一定的权限。有时获得了一般用户的权限就足以达到修改主页等目的了,但作为一次完整的攻击是要获得系统最高权限的,这不仅是为了达到一定的目的,更重要的是证明攻击者的能力,这也符合黑客的追求。 ' A. `& H. U( v6 G, O7 |  m

1 }/ G) r; F7 w1 s1 X  能够被攻击者所利用的漏洞不仅包括系统软件设计上的安全漏洞,也包括由于管理配置不当而造成的漏洞。前不久,因特网上应用最普及的著名www服务器提供商Apache的主页被黑客攻破,其主页面上的 Powered by Apache图样(羽毛状的图画)被改成了Powered by Microsoft Backoffice的图样,那个攻击者就是利用了管理员对Webserver用数据库的一些不当配置而成功取得最高权限的。

TOP

黑客初级技术讲解(中)

黑客初级技术讲解(中)
% |& D: y" a1 `7 H6 @* f
* w, t' v. c" ?9 `4 m) G& P! s' i  当然大多数攻击成功的范例还是利用了系统软件本身的漏洞。造成软件漏洞的主要原因在于编制该软件的程序员缺乏安全意识。当攻击者对软件进行非正常的调用请求时造成缓冲区溢出或者对文件的非法访问。其中利用缓冲区溢出进行的攻击最为普遍,据统计80%以上成功的攻击都是利用了缓冲区溢出漏洞来获得非法权限的。关于缓冲区溢出在后面用专门章节来作详细解释。
! n6 R3 W9 p. f
9 R: E- V2 F" r0 u( d  无论作为一个黑客还是一个网络管理员,都需要掌握尽量多的系统漏洞。黑客需要用它来完成攻击,而管理员需要根据不同的漏洞来进行不同的防御措施。了解最新最多的漏洞信息,可以到诸如Rootshell(www.rootshell.com)、Packetstorm(packetstorm.securify.com)、Securityfocus(www.securityfocus.com)等网站去查找。 ; O& C% @+ P! Q! L/ h. r  x

( Q. {% G& u. ?+ Q' W( v/ w  2.权限的扩大 7 c- O1 C1 L: O1 M9 O! n) r' g

$ U$ P: |- ^  u9 I8 B  系统漏洞分为远程漏洞和本地漏洞两种,远程漏洞是指黑客可以在别的机器上直接利用该漏洞进行攻击并获取一定的权限。这种漏洞的威胁性相当大,黑客的攻击一般都是从远程漏洞开始的。但是利用远程漏洞获取的不一定是最高权限,而往往只是一个普通用户的权限,这样常常没有办法做黑客们想要做的事。这时就需要配合本地漏洞来把获得的权限进行扩大,常常是扩大至系统的管理员权限。 ' H2 U. V5 l, e4 V. ^
只有获得了最高的管理员权限之后,才可以做诸如网络监听、打扫痕迹之类的事情。要完成权限的扩大,不但可以利用已获得的权限在系统上执行利用本地漏洞的程序,还可以放一些木马之类的欺骗程序来套取管理员密码,这种木马是放在本地套取最高权限用的,而不能进行远程控制。例如一个黑客已经在一台机器上获得了一个普通用户的账号和登录权限,那么他就可以在这台机器上放置一个假的su程序。一旦黑客放置了假su程序,当真正的合法用户登录时,运行了su,并输入了密码,这时root密码就会被记录下来,下次黑客再登录时就可以使用su变成root了。 % \8 z. O! A$ O/ u' b
, f; V( C3 k. [1 @
  攻击的善后工作 . q1 ?5 L  b$ x4 Q% |. p
2 B; W+ G/ }8 p7 a/ s
  1.日志系统简介 ; V- o( O3 `9 O6 n3 B# ?  O

, q9 S7 t1 o5 s( o5 Z& a* ^+ T# G" P  如果攻击者完成攻击后就立刻离开系统而不做任何善后工作,那么他的行踪将很快被系统管理员发现,因为所有的网络操作系统一般都提供日志记录功能,会把系统上发生的动作记录下来。所以,为了自身的隐蔽性,黑客一般都会抹掉自己在日志中留下的痕迹。想要了解黑客抹掉痕迹的方法,首先要了解常见的操作系统的日志结构以及工作方式。Unix的日志文件通常放在下面这几个位置,根据操作系统的不同略有变化
8 l7 ?5 m' U/ P7 B* `  K! x: K
4 D3 M/ q1 Q/ k) S$ g  /usr/adm——早期版本的Unix。
* R8 w  d7 [* v" o  u# A; F  /Var/adm新一点的版本使用这个位置。 ( R- z  R: P& m( M! g
  /Varflort一些版本的Solaris、 Linux BSD、 Free BSD使用这个位置。 ; z) \( }: I6 p. ^' D
  /etc,大多数Unix版本把Utmp放在此处,一些Unix版本也把Wtmp放在这里,这也是Syslog.conf的位置。

TOP

下面的文件可能会根据你所在的目录不同而不同: - P# m  M5 |& j5 q# Z$ v  _# G" x
0 b9 q  C) x! i5 u2 H
  acct或pacct-一记录每个用户使用的命令记录。
, ]  L0 r$ W0 W9 i- F  accesslog主要用来服务器运行了NCSA HTTP服务器,这个记录文件会记录有什么站点连接过你的服务器。 6 |" A2 |/ f  l; S' Q
  aculo保存拨出去的Modems记录。
! X8 l) U+ d  Y& J5 Y# E/ d: T  lastlog记录了最近的Login记录和每个用户的最初目的地,有时是最后不成功Login的记录。 ! ]% z; f$ x4 B. e
  loginlog一记录一些不正常的L0gin记录。
( m: e6 @. I$ Q* k  messages——记录输出到系统控制台的记录,另外的信息由Syslog来生成 : e* e) y6 W- y
  security记录一些使用 UUCP系统企图进入限制范围的事例。 0 }1 C$ C- }; D
  sulog记录使用su命令的记录。
3 q* `* o) |1 `) T. c+ E+ A  L  utmp记录当前登录到系统中的所有用户,这个文件伴随着用户进入和离开系统而不断变化。   K! e. n) I+ E8 C" q; C0 O
  Utmpx,utmp的扩展。 7 S; }" f' D& r$ y( K& \
  wtmp记录用户登录和退出事件。
1 z8 ]& {+ S& Z+ C, O  N  Syslog最重要的日志文件,使用syslogd守护程序来获得。
% A/ e6 x7 ^/ ~) I) a, b2 w. T
% ?  F0 L! U2 X: v' }0 j4 y4 y  2.隐藏踪迹
' l, G& ~! k* Y, a! e
$ x1 T; V0 z: v6 V& r, j  攻击者在获得系统最高管理员权限之后就可以随意修改系统上的文件了(只对常规 Unix系统而言),包括日志文件,所以一般黑客想要隐藏自己的踪迹的话,就会对日志进行修改。最简单的方法当然就是删除日志文件了,但这样做虽然避免了系统管理员根据IP追踪到自己,但也明确无误地告诉了管理员,系统己经被人侵了。所以最常用的办法是只对日志文件中有关自己的那一部分做修改。关于修改方法的具体细节根据不同的操作系统有所区别,网络上有许多此类功能的程序,例如 zap、 wipe等,其主要做法就是清除 utmp、wtmp、Lastlog和 Pacct等日志文件中某一用户的信息,使得当使用w、who、last等命令查看日志文件时,隐藏掉此用户的信息。 7 a. k  A4 p% S
管理员想要避免日志系统被黑客修改,应该采取一定的措施,例如用打印机实时记录网络日志信息。但这样做也有弊端,黑客一旦了解到你的做法就会不停地向日志里写入无用的信息,使得打印机不停地打印日志,直到所有的纸用光为止。所以比较好的避免日志被修改的办法是把所有日志文件发送到一台比较安全的主机上,即使用loghost。即使是这样也不能完全避免日志被修改的可能性,因为黑客既然能攻入这台主机,也很可能攻入loghost。 6 `: ]. J5 I$ Y+ M7 L/ }

0 R1 W' J. _$ c& j" N9 y9 Q  只修改日志是不够的,因为百密必有一漏,即使自认为修改了所有的日志,仍然会留下一些蛛丝马迹的。例如安装了某些后门程序,运行后也可能被管理员发现。所以,黑客高手可以通过替换一些系统程序的方法来进一步隐藏踪迹。这种用来替换正常系统程序的黑客程序叫做rootkit,这类程序在一些黑客网站可以找到,比较常见的有LinuxRootKit,现在已经发展到了5.0版本了。它可以替换系统的ls、ps、netstat、inetd等等一系列重要的系统程序,当替换了ls后,就可以隐藏指定的文件,使得管理员在使用ls命令时无法看到这些文件,从而达到隐藏自己的目的。

TOP

3.后门 1 b1 _3 L6 Q7 F% [+ q- q

- i% y* C* s( |! E8 H( y   一般黑客都会在攻入系统后不只一次地进入该系统。为了下次再进入系统时方便一点,黑客会留下一个后门,特洛伊木马就是后门的最好范例。Unix中留后门的方法有很多种,下面介绍几种常见的后门,供网络管理员参考防范。   S. B* f) ?( I) ~$ U7 O% f
+ j3 `# ]6 v( n! `& U- i4 i
  <1>密码破解后门
, Y5 O: g6 `- {8 V2 |- F  这是入侵者使用的最早也是最老的方法,它不仅可以获得对Unix机器的访问,而且可 以通过破解密码制造后门。这就是破解口令薄弱的帐号。以后即使管理员封了入侵者的当前帐号,这些新的帐号仍然可能是重新侵入的后门。多数情况下,入侵者寻找口令薄弱的未使用帐号,然后将口令改的难些。当管理员寻找口令薄弱的帐号是,也不会发现这些密码已修改的帐号。因而管理员很难确定查封哪个帐号。 9 r; X1 v7 B7 m6 _* j7 U/ o* m* M
. N  E; _* ^% V3 V
  <2>Rhosts + + 后门
2 c" ?. Q/ i% K( {5 _' c" D) [  l  在连网的Unix机器中,象Rsh和Rlogin这样的服务是基于rhosts文件里的主机名使用简 单的认证方法。用户可以轻易的改变设置而不需口令就能进入。 入侵者只要向可以访问的某用户的rhosts文件中输入"+ +",就可以允许任何人从任何地方无须口令便能进 入这个帐号。特别当home目录通过NFS向外共享时,入侵者更热中于此。这些帐号也成 了入侵者再次侵入的后门。许多人更喜欢使用Rsh,因为它通常缺少日志能力. 许多管理员经常检查 "+ +",所以入侵者实际上多设置来自网上的另一个帐号的主机名和 用户名,从而不易被发现。
- i$ L3 ]& D/ w7 g# n4 t5 }7 p1 h6 ?) ~4 m" k8 m& A
  <3>校验和及时间戳后门
  b% X+ Y4 K. L, q1 F  早期,许多入侵者用自己的trojan程序替代二进制文件。系统管理员便依靠时间戳和系 统校验和的程序辨别一个二进制文件是否已被改变,如Unix里的sum程序。入侵者又发展了使trojan文件和原文件时间戳同步的新技术。它是这样实现的: 先将系统时钟拨 回到原文件时间,然后调整trojan文件的时间为系统时间。一旦二进制trojan文件与 原来的精确同步,就可以把系统时间设回当前时间。Sum程序是基于CRC校验,很容易 骗过。入侵者设计出了可以将trojan的校验和调整到原文件的校验和的程序。MD5是被 大多数人推荐的,MD5使用的算法目前还没人能骗过。

TOP

黑客初级技术讲解(下)

黑客初级技术讲解(下)  O5 N: t, x4 G! |
+ I5 q; J1 ?! @, ~1 u

3 X% g) q; b+ s. A  <4>Login后门
. H7 \$ A  X& T2 W' p( W  在Unix里,login程序通常用来对telnet来的用户进行口令验证. 入侵者获取login.c的 原代码并修改,使它在比较输入口令与存储口令时先检查后门口令。如果用户敲入后门 口令,它将忽视管理员设置的口令让你长驱直入。这将允许入侵者进入任何帐号,甚至 是root。由于后门口令是在用户真实登录并被日志记录到utmp和wtmp前产生一个访问 的,所以入侵者可以登录获取shell却不会暴露该帐号。管理员注意到这种后门后,便 用"strings"命令搜索login程序以寻找文本信息. 许多情况下后门口令会原形毕露。入侵者就开始加密或者更好的隐藏口令,使strings命令失效<5>Telnetd后门 3 O/ \% ^5 z" H$ L
  当用户telnet到系统,监听端口的inetd服务接受连接随后递给in.telnetd,由它运行 login.一些入侵者知道管理员会检查login是否被修改,就着手修改in.telnetd. 在in.telnetd内部有一些对用户信息的检验,比如用户使用了何种终端. 典型的终端 设置是Xterm或者VT100.入侵者可以做这样的后门,当终端设置为"letmein"时产生一 个不要任何验证的shell. 入侵者已对某些服务作了后门,对来自特定源端口的连接产 生一个shell。
* W8 ~, U/ b  j
4 c  l: G) y  C( W  <6>服务后门
3 X9 l' [  k0 J7 U1 L- ~  几乎所有网络服务曾被入侵者作过后门. Finger,rsh,rexec,rlogin,ftp,甚至 inetd等等的作了的版本随处多是。有的只是连接到某个TCP端口的shell,通过后门口令就能获取访问。这些程序有时用刺娲□?Ucp这样不用的服务,或者被加入inetd.conf 作为一个新的服务,管理员应该非常注意那些服务正在运行,并用MD5对原服务程序做校验。 & g! Q& q* b6 d1 G( w% i/ J$ x

, _8 K8 q8 J- i- s# ?" u+ q$ r  <7>Cronjob后门
9 r* }: I5 ]- ~- n  Unix上的Cronjob可以按时间表调度特定程序的运行。入侵者可以加入后门shell程序 使它在1AM到2AM之间运行,那么每晚有一个小时可以获得访问。也可以查看cronjob中 经常运行的合法程序,同时置入后门。
3 q5 i3 @8 z8 u7 n$ y/ x1 b! ]
5 k  O. ]7 N; {: ^) D  <8>库后门
0 s/ r, f7 f5 D; m2 u. o" H  几乎所有的UNIX系统使用共享库,共享库用于相同函数的重用而减少代码长度。一些入侵者在象crypt.c和_crypt.c这些函数里作了后门;象login.c这样的程序调用了 crypt()。当使用后门口令时产生一个shell。 因此,即使管理员用MD5检查login程序,仍然能产生一个后门函数,而且许多管理员并不会检查库是否被做了后门。对于许多入侵者来说有一个问题: 一些管理员对所有东西多作了MD5校验,有一种办法是入侵者对open()和文件访问函数做后门。后门函数读原文件但执行trojan后门程序。所以 当MD5读这些文件时,校验和一切正常,但当系统运行时将执行trojan版本的,即使trojan库本身也可躲过MD5校验,对于管理员来说有一种方法可以找到后门,就是静态编连MD5校验程序然后运行,静态连接程序不会使用trojan共享库。

TOP

发新话题
手机号码所在地查询:
Google
IP地址: