当前位置:Linux教程 - Linux - UNIX入侵(第三章)

UNIX入侵(第三章)

作者:lovehacker

  1.侵入第一台UNIX主机
    在我开始接触Hacking的时候,多希望看到一篇简单、易懂的入侵教材,我想这也是每个初学者的愿望。不过其实当知识到达了一定程度后,看那些文章就觉得很简单了。因为这篇文章是写个初学者看的,我会尽量写的浅显易懂,希望对大家有所帮助。

    我们在前两章中已经对UNIX有个初步的了解,知道了一些命令的使用,一些UNIX文件的作用及对Shell编程有了个框架性的了解,不过这些都是UNIX系统内部的知识及概念,而我们如何侵入一台UNIX主机呢?在第一章我‘
们介绍了一些主流的UNIX系统,虽然它们都属于UNIX家族但每一个系统都有自己的特性,做为一个入侵者需要首先知道目标是那一种系统,并提供了那些对外的服务才能够开始进行攻击,这也就是大家经常谈到的信息收集。我还是
按照常规的方式来列出侵入一台UNIX主机的过程吧。
    
    1#确定目标:
    人必须要有自己奋斗的目标,Hacking也一样:)确定目标的方式是多种多样的,我们可以通过Search Engine来搜索出一些我们关心的信息,比如我现在需要一个电子信箱列表,我可以连上Search Engine输入关键字"邮件列表"会有很多的信息提供给我进行选择,选定后我们就可以开始进攻了。还有一个办法就是扫描自己所在的一个C类地址,发现主机并侵入它,因为连接它我的速度会很快:)

    2#信息收集:
    当我们确定了攻击对象后,要想顺利的侵入它必须对它有充分的了解,我们需要借助一些软件或操作系统本身提供的一些功能来收集系统的信息,并把收集到的信息反馈给大脑,想想该怎么对付它。
      1*端口扫描:
       端口扫描是必不可少的步骤了因为Internet上的主机都是通过开放的端口来提供服务的,如ftp(21)、telnet(23)、smtp(25)、finger(79)、http(80)、pop(110)、imap(143)等。我们要通过对端口的扫描来确定系统到底开放了那些服务,并初步的了解是那种操作系统、所提供的服务属于那个生产厂家,版本号是多少等等。我们可以通过Telnet Client去一个个的连接那些端口,看是否开放,不过我不推荐那么做。网上有非常多的端口扫描工具,你可以下载一个到自己的机器上,让它自动的帮你完成。你在"安盟CNSL"的安全工具中可以找到它。
      
      2*指纹校验:
       不要被这个陌生的单词吓倒,世界各地都充满了那些愿意取一些别人不容易看懂来显示自己水平的人:)而我为了继承惯例,也这么叫它:)其实指纹校验简单的说就是根据一些特性来猜测操作系统的类型,做的好的可以猜测出操作系统的版本号。下边来看我写的一个简单的程序片段,想必你就明白了:if((age>22)&&(age<25)&&(name=="David")&&(sex=="男")&&(oicqNum>1592130)&&(oicqNum<1592140))
{
就有可能是lovehacker:)
}
else if
  ...
else
...
呵呵,上边这个程序判断根据年龄、姓名、性别及oicq号码范围来猜测是不是lovehacker,其实也算是一种指纹校验:)很简单吧!指纹校验程序通过各种方法向目标发出数据,根据回应来判断操作系统类型及版本号码,最简单的例子是,我们telnet target 23它会给你一些提示信息如:SunOS 5.7,不用多说,它是SunOS版本号为5.7,还有的通过最简单的ping的方法来判断主机的类型:
ping 127.0.0.1
Reply from 127.0.0.1: bytes=32 time<10ms TTL=128你是什么机器呢win2000,看看TTL的值是多少。
OK!ping目标
ping 172.16.1.6
Reply from 172.16.1.6: bytes=32 time<10ms TTL=255
它至少不是win2000:)
OK!在ping台SunOS 5.6试下:
ping ***.edu.cn
Reply from 202.***.**.*: bytes=32 time<10ms TTL=243
呵呵,有点接近哦!你有点明白了吗?
当然,其实我们不用那么麻烦的Internet的是开放的世界,有人已经帮我们做好了这一切,nmap不知道你是否听过,一个很不错的扫描工具,能大概的猜测出操作系统类型和版本号码,当然还有一些更强大的功能。你可以在"安盟cnsl"找到for NT版本的nmap。
     
      3*漏洞扫描:
       我们已经清楚了对方的操作系统及其开放的服务,下边要做的就是检测我们的目标存在那些漏洞可以让我们利用从而进入系统。我需要解释一下什么是漏洞,一般一个操作系统及运行在其上的服务都或多或少的存在一些漏洞,这些漏洞可能是安全问题被Hacker利用,也可能造成系统鼻可以自己去检测一下系统。在漏洞扫描过程中任何问题都没有发现的话,我最推荐的办法是先去看看它的WEB页面:)因为那上边有一些对我们有用的信息而且说不一定,一不小心就发现一个BUG呢:)浏览WEB我们能获取什么样的信息呢?一般一个网站都会留下自己的联系办法,如电话号码,电子邮件地址等,我们撇开欺骗技术不谈,光讲讲电子邮件地址对我们有什么样的作用。一个用户在UNIX系统中注册后,系统一般会为它生成一个电子邮件信箱,而这个信箱的地址大都是"用户名@主机名",例如:[email protected]。lovehacker往往是unix有效的用户名,我们不妨去猜猜它的密码:)。当然猜密码这种工作也可以由软件把帮你完成的,那天我当了半天ftp密码破解工具当不下来,一怒之下自己写了个。呵呵,跑题了。还有呀同志,我们不妨到InterNIC去查查这个域名是注册给谁的,大家知道要在InterNIC注册域名是需要填写详细的用户信息的,指不定就可以看到一个用户名。如果上边的办法不行,难道我们就放弃了吗?不,决不!我们可以一个个的去查看它开放的服务及版本,然后到一个比较全面的漏洞库去查看相应的信息,当然我们欢迎你来http://www.chinansl.com 再次手工的进行一些检测,如果还是一无所获,我们只有等待...俗话说的好:不怕贼偷,就怕贼惦记着:)那天系统管理员一放松警惕,机会就来了,当然在这其中还有很多办法可以利用,如欺骗等等。不过那就涉及太远了,我也就不提及了。

    3#进入系统
      在第二章我已经讲过了Shell的一些概念及Shell编程的一些方法。当我们通过系统漏洞或密码的破解进入到系统后,就会有一个Shell供我们使用。(在登陆系统前最好先看看系统上是否有人)如果它开了finger服务的话:
c:>finger -l @target.com
no one logged in
没人,我们连上去吧!如果没有开finger,那最好在登录上去后敲个"w"指令看看系统上是否有人,如果有:(那你就赶紧闪吧,不过在闪之前最好先...等会儿讲:)
c:>telnet target.com
SunOS 5.7
login:abc
password:****
Last login: Wed Dec 27 10:36:37 from ***.**.**.*
Sun Microsystems Inc. SunOS 5.7 Generic October 1998
(如果你获得的不是root帐号的话,一般都是个$或%提示符,系统一般不允许root直接登陆)
$w
下午 3:02 运行 7 天 6:19, 3 users, 平均负荷: 0.00, 0.01, 0.01
用户名 终端号 登入时间 闲置 JCPU PCPU 执行命令
root console 0012月20 7天 10:46 7:11 /usr/dt/bin/dtscreen -mode worm
(MaMa呀,root在上边,闪)
$telnet localhost
SunOS 5.7
login:abc
password:****
Last login: Wed Dec 27 10:36:37 from ***.***.**.*(我的ip)
Sun Microsystems Inc. SunOS 5.7 Generic October 1998
$exit
$exit
(退出了系统,伺机在上。)
为什么我要telnet localhost呢?因为我第一次登录系统,系统已经记录下了我的ip地址,并会在用户下次登陆的时候显示出来。所以我telnet localhost呵呵,下次用户上来显示的将是from localhost。粗心的用户就不会怀疑什么了。好,下边再讲如果没有人,我该干什么?答案很简单:获得系统最高权限,并保持住它。我们会在下一章中讲解。