Security基礎(二):SELinux安全防禦、加密與解密應用、掃描與抓包分析

1、SELinux安全防禦html

目標:linux

本案例要求熟悉SELinux防禦機制的開關及策略配置,完成如下任務:ios

  1.     將Linux服務器的SELinux設爲enforcing強制模式
  2.     在SELinux啓用狀態下,調整策略打開vsftpd服務的匿名上傳訪問
  3.     從/root目錄下移動一個包文件到FTP下載目錄,調整策略使其可以被下載

步驟:redis

步驟一:將Linux服務器的SELinux設爲enforcing強制模式數據庫

1)固定配置:修改/etc/selinux/config文件vim

確認或修改SELINUX爲enforcing模式:安全

    [root@svr7 ~]# vim /etc/selinux/config
    SELINUX=enforcing
    SELINUXTYPE=targeted服務器

2)臨時配置:使用setenforce命令ssh

查看當前SELinux狀態,若是是disabled則須要根據第1)步的配置重啓系統;若是是permissive則使用setenforce命令修改成enforcing便可:tcp

    [root@svr7 ~]# getenforce
    Permissive
    [root@svr7 ~]# setenforce 1              //或者setenforce  enforcing
    [root@svr7 ~]# getenforce
    Enforcing

步驟二:在SELinux啓用狀態下,調整策略打開vsftpd服務的匿名上傳訪問

1)配置一個容許匿名上傳的vsftpd服務做爲測試環境

    [root@svr7 ~]# yum –y install vsftpd
    .. ..
    [root@svr7 ~]# vim /etc/vsftpd/vsftpd.conf
    anonymous_enable=YES                                  //開啓匿名訪問
    write_enable=YES
    anon_umask=022
    anon_upload_enable=YES                              //容許上傳文件
    anon_mkdir_write_enable=YES                          //容許上傳目錄
    [root@svr7 ~]# chown ftp /var/ftp/pub
    [root@svr7 ~]# service vsftpd start
    爲 vsftpd 啓動 vsftpd:                                    [肯定]

2)啓用SELinux時驗證FTP上傳訪問

在targeted策略的布爾值設置中,默認禁止FTP匿名寫入和徹底訪問:

    [root@svr7 ~]# ls > test.txt
    [root@svr7 ~]# ftp 192.168.4.7
    [root@svr7 ~]# ftp 192.168.4.7
    .. ..
    Name (192.168.4.7:root): ftp
    331 Please specify the password.
    Password:
    230 Login successful.
    Remote system type is UNIX.
    Using binary mode to transfer files.
    ftp> cd pub
    250 Directory successfully changed.
    ftp> put test.txt                                            //嘗試上傳測試文件
    local: test.txt remote: test.txt
    227 Entering Passive Mode (192,168,4,5,121,146).
    553 Could not create file.                                  //上傳失敗
    ftp> quit
    221 Goodbye.

3)調整與FTP相關的SELinux布爾值,開放上傳寫入權限

檢查與allow_ftpd相關的SELinux布爾值,若是是off,則將其修改成on:

    [root@svr7 ~]# getsebool -a |grep allow_ftpd                  //查看布爾值
    allow_ftpd_anon_write --> off
    allow_ftpd_full_access --> off
    .. .
    [root@svr7 ~]# setsebool  -P  allow_ftpd_anon_write=1          //設置布爾值
    [root@svr7 ~]# setsebool  -P  allow_ftpd_full_access=1
    [root@svr7 ~]# getsebool -a |grep allow_ftpd                  //確認修改結果
    allow_ftpd_anon_write --> on
    allow_ftpd_full_access --> on

4)再次訪問vsftpd服務,經測試發現匿名上傳已經可用

    [root@svr7 ~]# ftp 192.168.4.7
    .. ..
    Name (192.168.4.7:root): ftp
    331 Please specify the password.
    Password:
    230 Login successful.
    Remote system type is UNIX.
    Using binary mode to transfer files.
    ftp> cd pub
    250 Directory successfully changed.
    ftp> put test.txt                                            //嘗試上傳測試文件
    local: test.txt remote: test.txt
    227 Entering Passive Mode (192,168,4,5,63,249).
    150 Ok to send data.
    226 Transfer complete.                                      //上傳成功
    237 bytes sent in 6.3e-05 secs (3761.90 Kbytes/sec)
    ftp> quit
    221 Goodbye.

步驟三:從/root目錄下移動一個包文件到FTP下載目錄,調整文件的安全上下文

1)關閉FTP布爾值allow_ftpd_full_access以便測試

由於開啓此項會擴大FTP目錄的訪問權限(忽略安全上下文),建議先將其關閉。

    [root@svr7 ~]# setsebool  allow_ftpd_full_access=0
    [root@svr7 ~]# getsebool  allow_ftpd_full_access
    allow_ftpd_full_access --> off

2)創建兩個FTP下載用的測試文件

由root用戶建立兩個測試壓縮包,一個直接創建到/var/ftp/目錄下,另外一個先在/root/下創建,而後移動至/var/ftp/目錄 。

    [root@svr7 ~]# tar zcf /var/ftp/d1.tar.gz install.log*
    [root@svr7 ~]# tar zcf d2.tar.gz install.log*
    [root@svr7 ~]# mv d2.tar.gz /var/ftp/
    [root@svr7 ~]# ls -lh /var/ftp/d?.tar.gz
    -rw-r--r--. 1 root root 13K 8月  16 10:16 /var/ftp/d1.tar.gz
    -rw-r--r--. 1 root root 13K 8月  16 10:16 /var/ftp/d2.tar.gz

3)經過FTP方式測試下載

使用wget命令分別下載這兩個包文件,第二個包將會下載失敗(看不到文件)。

    [root@svr7 ~]# wget ftp://192.168.4.7/d1.tar.gz
    .. ..
    ==> PASV ... 完成。    ==> RETR d1.tar.gz ... 完成。
    .. ..
    2017-08-16 10:36:16 (235 MB/s) - 「d1.tar.gz」 已保存 [13124]
    [root@svr7 ~]# wget ftp://192.168.4.7/d2.tar.gz
    .. ..
    ==> PASV ... 完成。    ==> RETR d2.tar.gz ...
    文件 「d2.tar.gz」 不存在。

4)檢查該測試包的安全上下文,正確調整後再次下載第二個包成功。

    [root@svr7 ~]# ls -Z /var/ftp/d?.tar.gz
    -rw-r--r--. root root unconfined_u:object_r:public_content_t:s0 /var/ftp/d1.tar.gz
    -rw-r--r--. root root unconfined_u:object_r:admin_home_t:s0 /var/ftp/d2.tar.gz
    [root@svr7 ~]# chcon -t public_content_t /var/ftp/d2.tar.gz
    [root@svr7 ~]# ls -Z /var/ftp/d2.tar.gz
    -rw-r--r--. root root unconfined_u:object_r:public_content_t:s0 /var/ftp/d2.tar.gz
    [root@svr7 ~]# wget ftp://192.168.4.7/d2.tar.gz
    .. ..
    ==> PASV ... 完成。    ==> RETR d2.tar.gz ... 完成。
    長度:13124 (13K) (非正式數據)
    .. ..
    2017-08-16 10:42:21 (178 MB/s) - 「d2.tar.gz」 已保存 [13124]

注意:上例中的chcon操做可替換爲restorecon /var/ftp/d2.tar.gz 或者chcon --reference=/var/ftp/d1.tar.gz /var/ftp/d2.tar.gz ,效果相同。

2、加密與解密應用

目標:

本案例要求採用gpg工具實現加/解密及軟件簽名等功能,分別完成如下任務:

  1.     檢查文件的MD5校驗和
  2.     使用GPG實現文件機密性保護,加密和解密操做
  3.     使用GPG實現軟件包的完整性校驗,檢查軟件包簽名

方案:

使用兩臺RHEL7虛擬機,加密操做主要在svr7上完成,而pc207做爲接收方、測試用客戶機、軟件簽名發佈用機。

步驟:

步驟一:檢查文件的MD5校驗和

1) 查看文件改動前的校驗和,複製爲新文件其校驗和不變

    [root@svr7 ~]# vim file1.txt
    abcdef
    123456779
    [root@svr7 ~]# cp file1.txt file2.txt
    [root@svr7 ~]# cat file1.txt > file3.txt
    [root@svr7 ~]# md5sum file?.txt                  //文件內容一致,則校驗和也不變
    b92aa0f8aa5d5af5a47c6896283f3536  file1.txt
    b92aa0f8aa5d5af5a47c6896283f3536  file2.txt
    b92aa0f8aa5d5af5a47c6896283f3536  file3.txt

2) 對文件內容稍做改動,再次檢查校驗和,會發現校驗和已大不相同

    [root@svr7 ~]# echo "x" >> file1.txt
    [root@svr7 ~]# md5sum file?.txt
    6be3efe71d8b4b1ed34ac45f4edd2ba7  file1.txt
    b92aa0f8aa5d5af5a47c6896283f3536  file2.txt
    b92aa0f8aa5d5af5a47c6896283f3536  file3.txt

步驟二:使用GPG對稱加密方式保護文件

1) gpg對稱加密操做

執行下列操做:

    [root@svr7 ~]# gpg -c file2.txt
    .. ..

根據提示依次輸入兩次密碼便可。若是是在GNOME桌面環境,設置密碼的交互界面會是彈出的窗口程序,以下圖所示:

        

若是是在tty終端執行的上述加密操做,則提示界面也是文本方式的,以下圖所示。

         

根據提示輸入兩次口令,加密後的文件(自動添加後綴 .gpg)就生成了,傳遞過程當中只要發送加密的文件(好比 file2.txt.gpg)就能夠了。

    [root@svr7 ~]# file file2.txt*
    file2.txt:     ASCII text
    file2.txt.gpg: data                                //傳遞給其餘人時用這個文件

2) gpg對稱解密操做

收到加密的文件後,必須進行解密才能查看其內容。

    [root@pc207 ~]# head -1 file2.txt.gpg              //未解密查看顯示爲亂碼
    X▒ܶn▒-E▒▒0▒▒▒ u▒▒(▒
    7>0-▒▒▒,=2▒9[*c\▒{▒/▒▒,▒▒eSx
    [root@pc207 ~]# gpg -d file2.txt.gpg > file2.txt      //解密後保存
    gpg: 3DES 加密過的數據
    .. ..                                              //根據提示輸入正確密碼
    gpg: 以 1 個密碼加密
    gpg: 警告:報文未受到完整的保護
    [root@pc207 ~]# cat file2.txt                      //查看解密後的文件
    abcdef
    123456779

步驟三:使用GPG非對稱加密方式保護文件

非對稱加密/解密文件時,發送方(UserA)以接收方(UserB)的公鑰加密文件,接收方以本身的私鑰解密,實現過程以下所述。

1)接收方UserB建立本身的公鑰、私鑰對

執行gpg --gen-key操做,根據提示選擇並建立密鑰:

    [UserB@pc207 ~]$ gpg --gen-key
    gpg (GnuPG) 2.0.14; Copyright (C) 2009 Free Software Foundation, Inc.
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.
    請選擇您要使用的密鑰種類:
       (1) RSA and RSA (default)
       (2) DSA and Elgamal
       (3) DSA (僅用於簽名)
       (4) RSA (僅用於簽名)
    您的選擇?                                              //直接回車默認(1)
    RSA 密鑰長度應在 1024 位與 4096 位之間。
    您想要用多大的密鑰尺寸?(2048)                              //接受默認2048位
    您所要求的密鑰尺寸是 2048 位
    請設定這把密鑰的有效期限。
             0 = 密鑰永不過時
          <n>  = 密鑰在 n 天后過時
          <n>w = 密鑰在 n 周後過時
          <n>m = 密鑰在 n 月後過時
          <n>y = 密鑰在 n 年後過時
    密鑰的有效期限是?(0)                                      //接受默認永不過時
    密鑰永遠不會過時
    以上正確嗎?(y/n)y                                          //輸入y確認
    You need a user ID to identify your key; the software constructs the user ID
    from the Real Name, Comment and Email Address in this form:
        "Heinrich Heine (Der Dichter) <heinrichh@duesseldorf.de>"
    真實姓名:UserB
    電子郵件地址:UserB@tarena.com
    註釋:User B
    您選定了這個用戶標識:
        「UserB (User B) <UserB@tarena.com>」
    更改姓名(N)、註釋(C)、電子郵件地址(E)或肯定(O)/退出(Q)?o      //輸入o確認
    您須要一個密碼來保護您的私鑰。
    can't connect to `/home/UserB/.gnupg/S.gpg-agent': 沒有那個文件或目錄
    咱們須要生成大量的隨機字節。這個時候您能夠多作些雜事(像是敲打鍵盤、移動
    鼠標、讀寫硬盤之類的),這會讓隨機數字發生器有更好的機會得到足夠的熵數。
                                              //此處根據提示作些寫操做,好比dd命令
    gpg: /home/UserB/.gnupg/trustdb.gpg:創建了信任度數據庫
    gpg: 密鑰 421C9354 被標記爲絕對信任
    公鑰和私鑰已經生成並經簽名。
    gpg: 正在檢查信任度數據庫
    gpg: 須要 3 份勉強信任和 1 份徹底信任,PGP 信任模型
    gpg: 深度:0 有效性:  1 已簽名:  0 信任度:0-,0q,0n,0m,0f,1u
    pub   2048R/421C9354 2017-08-16
    密鑰指紋 = 8A27 6FB5 1315 CEF8 D8A0  A65B F0C9 7DA6 421C 9354
    uid                  UserB (User B) <UserB@tarena.com>
    sub   2048R/9FA3AD25 2017-08-16

2)接收方UserB導出本身的公鑰文件

用戶的公鑰、私鑰信息分別保存在pubring.gpg和secring.gpg文件內:

    [UserB@pc207 ~]$ gpg --list-keys                          //查看公鑰環
    /home/UserB/.gnupg/pubring.gpg
    ------------------------------
    pub   2048R/421C9354 2017-08-16
    uid                  UserB (User B) <UserB@tarena.com>
    sub   2048R/9FA3AD25 2017-08-16
    [UserB@pc207 ~]$ gpg --list-secret-keys
    /home/UserB/.gnupg/secring.gpg                          //查看私鑰環
    ------------------------------
    sec   2048R/421C9354 2017-08-16
    uid                  UserB (User B) <UserB@tarena.com>
    ssb   2048R/9FA3AD25 2017-08-16

使用gpg命令結合--import選項將其中的公鑰文本導出,傳給發送方UserA:

    [UserB@pc207 ~]$ gpg -a --export > /tmp/UserB.pub
    [UserB@pc207 ~]$ ftp 192.168.4.7
    .. ..
    Name (192.168.4.7:UserB): ftp
    331 Please specify the password.
    Password:
    230 Login successful.
    Remote system type is UNIX.
    Using binary mode to transfer files.
    ftp> cd pub
    250 Directory successfully changed.
    ftp> lcd /tmp/
    Local directory now /tmp
    ftp> put UserB.pub                          //經過FTP將公鑰傳給發送方主機
    local: UserB.pub remote: UserB.pub
    227 Entering Passive Mode (192,168,4,6,59,39).
    150 Ok to send data.
    226 Transfer complete.
    1719 bytes sent in 0.000127 secs (13535.43 Kbytes/sec)
    ftp> quit
    221 Goodbye.

3)發送方UserA導入接收方的公鑰信息

使用gpg命令結合--import選項導入發送方的公鑰信息,以便在加密文件時指定接收人來調用對應的公鑰。

[UserA@svr7 ~]$ gpg --import /var/ftp/pub/UserB.pub
gpg: 密鑰 421C9354:公鑰「UserB (User B) <UserB@tarena.com>」已導入
gpg: 合計被處理的數量:1
gpg:           已導入:1  (RSA: 1)
[UserA@svr7 ~]$ echo "I love you ." > tosend.txt
[UserA@svr7 ~]$ gpg -e -r UserB tosend.txt
gpg: 9FA3AD25:沒有證據代表這把密鑰真的屬於它所聲稱的持有者
pub  2048R/9FA3AD25 2017-08-16 UserB (User B) <UserB@tarena.com>
 主鑰指紋: 8A27 6FB5 1315 CEF8 D8A0  A65B F0C9 7DA6 421C 9354
 子鑰指紋: 08EA 5D11 FB25 9AF1 8137  0E47 AD13 F31B 9FA3 AD25
這把密鑰並不必定屬於用戶標識聲稱的那我的。若是您真的知道自
己在作什麼,您能夠在下一個問題回答 yes。
不管如何仍是使用這把密鑰嗎?(y/N)y                      //確認使用此密鑰加密文件
[UserA@svr7 ~]$ exit
logout
[root@svr7 ~]# cp /home/UserA/tosend.txt.gpg /var/ftp/tosend.txt.gp

4)接收方UserB收取加密文件,以本身的私鑰解密文件

    [UserB@pc207 ~]$ wget ftp://192.168.4.7/tosend.txt.gpg
    2017-08-16 15:28:30 (40.8 MB/s) - 「tosend.txt.gpg」 已保存 [355]
    [UserB@pc207 ~]$ gpg -d tosend.txt.gpg > tosend.txt
    您須要輸入密碼,才能解開這個用戶的私鑰:「UserB (User B) <UserB@tarena.com>」
    2048 位的 RSA 密鑰,鑰匙號 9FA3AD25,創建於 2017-08-16 (主鑰匙號 421C9354)
                                                      //驗證私鑰口令
    can't connect to `/home/UserB/.gnupg/S.gpg-agent': 沒有那個文件或目錄
    gpg: 由 2048 位的 RSA 密鑰加密,鑰匙號爲 9FA3AD2五、生成於 2017-08-16
          「UserB (User B) <UserB@tarena.com>」
    [UserB@pc207 ~]$ cat tosend.txt                      //得到解密後的文件內容
    I love you .

步驟四:使用GPG實現軟件包的完整性校驗,檢查軟件包簽名

1)在pc207上,做者UserB爲軟件包建立分離式簽名

將軟件包、簽名文件、公鑰文件一塊兒發佈給其餘用戶下載,。

    [UserB@pc207 ~]$ tar zcf tools-1.2.3.tar.gz /etc/hosts      //創建測試軟件包
    [UserB@pc207 ~]$ gpg -b tools-1.2.3.tar.gz                  //建立分離式數字簽名
    [UserB@pc207 ~]$ ls -lh tools-1.2.3.tar.gz* UserB.pub
    -rw-rw-r--. 1 UserB UserB 170 8月  17 21:18 tools-1.2.3.tar.gz
    -rw-rw-r--. 1 UserB UserB 287 8月  17 21:22 tools-1.2.3.tar.gz.sig
    -rw-rw-r--. 1 UserB UserB 1.7K 8月  17 21:26 UserB.pub
    [UserB@pc207 ~]$ exit
    logout
    [root@pc207 ~]# yum -y install vsftpd
    [root@pc207 ~]# cp /home/UserB/tools-1.2.3.tar.gz* /var/ftp/
    [root@pc207 ~]# cp /home/UserB/UserB.pub /var/ftp/
    [root@pc207 ~]# service vsftpd start
    爲 vsftpd 啓動 vsftpd:                      [肯定]

2)在svr7上,下載軟件包並驗證官方簽名

下載主機pc207發佈的UserB的軟件包、簽名、公鑰,導入UserB的公鑰後便可驗證軟件包的完整性。

    [root@svr7 ~]# wget ftp://192.168.4.207/tools-1.2.3*
    .. ..
    2017-08-17 21:29:46 (31.7 MB/s) - 「tools-1.2.3.tar.gz」 已保存 [170]
    2017-08-17 21:29:46 (23.3 MB/s) - 「tools-1.2.3.tar.gz.sig」 已保存 [287]
    [root@svr7 ~]# wget ftp://192.168.4.207/UserB.pub
    .. ..
    2017-08-17 21:32:27 (208 MB/s) - 「UserB.pub」 已保存 [1719]
    [root@svr7 ~]# gpg --import UserB.pub                      //導入做者的公鑰信息
    .. ..
    [root@svr7 ~]# gpg --verify tools-1.2.3.tar.gz.sig tools-1.2.3.tar.gz
    gpg: 於 2013年08月17日 星期六 21時22分15秒 CST 建立的簽名,使用 RSA,鑰匙號 421C9354
    gpg: 無缺的簽名,來自於「UserB (User B) <UserB@tarena.com>」
    .. ..

3、掃描與抓包分析

目標:

本案例要求熟悉Linux主機環境下的經常使用安全工具,完成如下任務操做:

  1.     使用NMAP掃描來獲取指定主機/網段的相關信息
  2.     使用Tcpdump分析FTP訪問中的明文交換信息

步驟:

步驟一:使用NMAP掃描來獲取指定主機/網段的相關信息

1)檢查目標主機mail所開啓的TCP服務

    [root@svr7 ~]# nmap 192.168.4.100
    Starting Nmap 5.51 ( http://nmap.org ) at 2017-05-17 17:55 CST
    Nmap scan report for 192.168.4.100
    Host is up (0.00028s latency).
    Not shown: 990 closed ports
    PORT    STATE SERVICE
    21/tcp  open  ftp
    22/tcp  open  ssh
    25/tcp  open  smtp
    80/tcp  open  http
    110/tcp open  pop3
    111/tcp open  rpcbind
    143/tcp open  imap
    443/tcp open  https
    993/tcp open  imaps
    995/tcp open  pop3s
    MAC Address: 00:0C:29:74:BE:21 (VMware)
    Nmap done: 1 IP address (1 host up) scanned in 1.31 seconds

2)檢查192.168.4.0/24網段內哪些主機開啓了FTP、SSH服務

    [root@svr7 ~]# nmap -p 21-22 192.168.4.0/24
    Starting Nmap 5.51 ( http://nmap.org ) at 2017-05-17 18:00 CST
    Nmap scan report for 192.168.4.1
    Host is up (0.000025s latency).
    PORT   STATE SERVICE
    21/tcp open  ftp
    22/tcp open  ssh
    Nmap scan report for 192.168.4.7
    Host is up.
    PORT   STATE    SERVICE
    21/tcp filtered ftp
    22/tcp filtered ssh
    Nmap scan report for 192.168.4.120
    Host is up (0.00052s latency).
    PORT   STATE SERVICE
    21/tcp open  ftp
    22/tcp open  ssh
    MAC Address: 00:0C:29:74:BE:21 (VMware)
    Nmap scan report for pc110.tarena.com (192.168.4.110)
    Host is up (0.00038s latency).
    PORT   STATE  SERVICE
    21/tcp closed ftp
    22/tcp closed ssh
    MAC Address: 00:50:56:C0:00:01 (VMware)
    Nmap scan report for 192.168.4.120
    Host is up (0.00051s latency).
    PORT   STATE  SERVICE
    21/tcp closed ftp
    22/tcp closed ssh
    MAC Address: 00:0C:29:DB:84:46 (VMware)
    Nmap done: 256 IP addresses (5 hosts up) scanned in 4.88 seconds

3)檢查192.168.4.0/24網段內哪些主機能夠ping通

    [root@svr7 ~]# nmap  -n  -sP  192.168.4.0/24
    Starting Nmap 5.51 ( http://nmap.org ) at 2017-05-17 18:01 CST
    Nmap scan report for 192.168.4.1
    Host is up.
    Nmap scan report for 192.168.4.7
    Host is up.
    Nmap scan report for 192.168.4.120
    Host is up (0.00027s latency).
    MAC Address: 00:0C:29:74:BE:21 (VMware)
    Nmap scan report for 192.168.4.110
    Host is up (0.00016s latency).
    MAC Address: 00:50:56:C0:00:01 (VMware)
    Nmap scan report for 192.168.4.120
    Host is up (0.00046s latency).
    MAC Address: 00:0C:29:DB:84:46 (VMware)
    Nmap done: 256 IP addresses (5 hosts up) scanned in 3.57 seconds

4)全面分析目標主機192.168.4.100、192.168.4.120的操做系統信息

    [root@svr7 ~]# nmap -A 192.168.4.100,120
    Starting Nmap 5.51 ( http://nmap.org ) at 2017-05-17 18:03 CST
    Nmap scan report for 192.168.4.100                      //主機mail的掃描報告
    Host is up (0.0016s latency).
    Not shown: 990 closed ports
    PORT    STATE SERVICE  VERSION
    21/tcp  open  ftp      vsftpd 2.2.2
    | ftp-anon: Anonymous FTP login allowed (FTP code 230)
    | -rw-r--r--    1 0        0            1719 Aug 17 13:33 UserB.pub
    | -rw-r--r--    1 0        0             122 Aug 13 05:27 dl.txt
    | drwxr-xr-x    2 14       0            4096 Aug 13 09:07 pub
    | -rw-rw-r--    1 505      505           170 Aug 17 13:18 tools-1.2.3.tar.gz
    |_-rw-rw-r--    1 505      505           287 Aug 17 13:22 tools-1.2.3.tar.gz.sig
    22/tcp  open  ssh      OpenSSH 5.3 (protocol 2.0)
    | ssh-hostkey: 1024 86:be:d6:89:c1:2d:d9:1f:57:2f:66:d1:af:a8:d3:c6 (DSA)
    |_2048 16:0a:15:01:fa:bb:91:1d:cc:ab:68:17:58:f9:49:4f (RSA)
    25/tcp  open  smtp     Postfix smtpd
    80/tcp  open  http     Apache httpd 2.2.15 ((Red Hat))
    |_http-methods: No Allow or Public header in OPTIONS response (status code 302)
    | http-title: 302 Found
    |_Did not follow redirect to https://192.168.4.100//
    110/tcp open  pop3     Dovecot pop3d
    |_pop3-capabilities: USER CAPA UIDL TOP OK(K) RESP-CODES PIPELINING STLS SASL(PLAIN)
    111/tcp open  rpcbind
    143/tcp open  imap     Dovecot imapd
    |_imap-capabilities: LOGIN-REFERRALS STARTTLS IMAP4rev1 ENABLE AUTH=PLAIN LITERAL+ IDLE SASL-IR ID
    443/tcp open  ssl/http Apache httpd 2.2.15 ((Red Hat))
    | http-methods: Potentially risky methods: TRACE
    |_See http://nmap.org/nsedoc/scripts/http-methods.html
    |_http-title: Site doesn't have a title (text/html; charset=UTF-8).
    993/tcp open  ssl/imap Dovecot imapd
    |_imap-capabilities: IMAP4rev1 AUTH=PLAIN ENABLE ID LITERAL+ IDLE SASL-IR LOGIN-REFERRALS
    995/tcp open  ssl/pop3 Dovecot pop3d
    |_pop3-capabilities: OK(K) CAPA RESP-CODES UIDL PIPELINING USER TOP SASL(PLAIN)
    MAC Address: 00:0C:29:74:BE:21 (VMware)
    No exact OS matches for host (If you know what OS is running on it, see http://nmap.org/submit/ ).
    TCP/IP fingerprint:
    OS:SCAN(V=5.51%D=8/19%OT=21%CT=1%CU=34804%PV=Y%DS=1%DC=D%G=Y%M=000C29%TM=52
    OS:11ED90%P=x86_64-redhat-linux-gnu)SEQ(SP=106%GCD=1%ISR=10B%TI=Z%CI=Z%II=I
    OS:%TS=A)OPS(O1=M5B4ST11NW6%O2=M5B4ST11NW6%O3=M5B4NNT11NW6%O4=M5B4ST11NW6%O
    OS:5=M5B4ST11NW6%O6=M5B4ST11)WIN(W1=3890%W2=3890%W3=3890%W4=3890%W5=3890%W6
    OS:=3890)ECN(R=Y%DF=Y%T=40%W=3908%O=M5B4NNSNW6%CC=Y%Q=)T1(R=Y%DF=Y%T=40%S=O
    OS:%A=S+%F=AS%RD=0%Q=)T2(R=N)T3(R=N)T4(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=
    OS:0%Q=)T5(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=40%W=0%
    OS:S=A%A=Z%F=R%O=%RD=0%Q=)T7(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)U1(
    OS:R=Y%DF=N%T=40%IPL=164%UN=0%RIPL=G%RID=G%RIPCK=G%RUCK=G%RUD=G)IE(R=Y%DFI=
    OS:N%T=40%CD=S)
    Network Distance: 1 hop
    Service Info: Host:  mail.tarena.com; OS: Unix
    TRACEROUTE
    HOP RTT     ADDRESS
    1   1.55 ms 192.168.4.100
    Nmap scan report for 192.168.4.120                      //主機pc120的掃描報告
    Host is up (0.00047s latency).
    Not shown: 997 closed ports
    PORT    STATE SERVICE      VERSION
    135/tcp open  msrpc        Microsoft Windows RPC
    139/tcp open  netbios-ssn
    445/tcp open  microsoft-ds Microsoft Windows XP microsoft-ds
    MAC Address: 00:0C:29:DB:84:46 (VMware)
    Device type: general purpose
    Running: Microsoft Windows XP
    OS details: Microsoft Windows XP SP2 - SP3
    Network Distance: 1 hop
    Service Info: OS: Windows
    Host script results:
    |_nbstat: NetBIOS name: PC-201307130328, NetBIOS user: <unknown>, NetBIOS MAC: 00:0c:29:db:84:46 (VMware)
    |_smbv2-enabled: Server doesn't support SMBv2 protocol
    | smb-os-discovery:
    |   OS: Windows XP (Windows 2000 LAN Manager)
    |   Name: WORKGROUP\PC-201307130328
    |_  System time: 2017-05-17 18:04:40 UTC+8
    TRACEROUTE
    HOP RTT     ADDRESS
    1   0.47 ms 192.168.4.120
    OS and Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .
    Nmap done: 2 IP addresses (2 hosts up) scanned in 43.01 seconds

步驟二:使用Tcpdump分析FTP訪問中的明文交換信息

1)啓用tcpdump命令行抓包

執行tcpdump命令行,添加適當的過濾條件,只抓取訪問主機192.168.4.100的21端口的數據通訊 ,並轉換爲ASCII碼格式的易讀文本。

    [root@svr7 ~]# tcpdump -A host 192.168.4.100 and tcp port 21
    tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
    listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
    .. ..                                            //進入等待捕獲數據包的狀態

2)執行FTP訪問,並觀察tcpdump抓包結果

參考前面的測試操做,再次從客戶機pc120訪問主機mail的vsftpd服務。而後查看執行中tcpdump程序的輸出,仔細分析FTP鏈接的創建過程、確認收集到的用戶名和口令信息。

    .. ..    18:47:25.964110 IP 192.168.4.120.novation > 192.168.4.100.ftp: Flags [S], seq 1201822818, win 65535, options [mss 1460,nop,wscale 0,nop,nop,sackOK], length 0    E..4..@.@......x...d.*..G.\b........;...............    18:47:25.964268 IP 192.168.4.100.ftp > 192.168.4.120.novation: Flags [S.], seq 2284929633, ack 1201822819, win 14600, options [mss 1460,nop,nop,sackOK,nop,wscale 6], length 0    E..4..@.@......d...x...*.1BaG.\c..9.7...............    18:47:25.964436 IP 192.168.4.120.novation > 192.168.4.100.ftp: Flags [.], ack 1, win 65535, length 0    E..(..@.@.. ...x...d.*..G.\c.1BbP.............    18:47:25.967592 IP 192.168.4.100.ftp > 192.168.4.120.novation: Flags [P.], seq 1:21, ack 1, win 229, length 20    E..<FJ@.@.jE...d...x...*.1BbG.\cP...V...220 (vsFTPd 2.2.2)    18:47:26.117057 IP 192.168.4.120.novation > 192.168.4.100.ftp: Flags [.], ack 21, win 65515, length 0    E..(..@.@......x...d.*..G.\c.1BvP.............    18:47:27.960530 IP 192.168.4.120.novation > 192.168.4.100.ftp: Flags [P.], seq 1:14, ack 21, win 65515, length 13    E..5..@.@......x...d.*..G.\c.1BvP.......USER mickey    18:47:27.960544 IP 192.168.4.100.ftp > 192.168.4.120.novation: Flags [.], ack 14, win 229, length 0    E..(FK@.@.jX...d...x...*.1BvG.\pP.............    18:47:27.960783 IP 192.168.4.100.ftp > 192.168.4.120.novation: Flags [P.], seq 21:55, ack 14, win 229, length 34    E..JFL@.@.j5...d...x...*.1BvG.\pP...i~..331 Please specify the password.    18:47:28.085168 IP 192.168.4.120.novation > 192.168.4.100.ftp: Flags [.], ack 55, win 65481, length 0    E..(..@.@......x...d.*..G.\p.1B.P.............    18:47:29.657364 IP 192.168.4.120.novation > 192.168.4.100.ftp: Flags [P.], seq 14:27, ack 55, win 65481, length 13    E..5..@.@......x...d.*..G.\p.1B.P.......PASS pwd123    18:47:29.696968 IP 192.168.4.100.ftp > 192.168.4.120.novation: Flags [.], ack 27, win 229, length 0    E..(FM@.@.jV...d...x...*.1B.G.\}P.............    18:47:29.702671 IP 192.168.4.100.ftp > 192.168.4.120.novation: Flags [P.], seq 55:78, ack 27, win 229, length 23    E..?FN@.@.j>...d...x...*.1B.G.\}P.......230 Login successful.    18:47:29.835258 IP 192.168.4.120.novation > 192.168.4.100.ftp: Flags [.], ack 78, win 65458, length 0    E..(..@.@......x...d.*..G.\}.1B.P.............    18:47:31.716375 IP 192.168.4.120.novation > 192.168.4.100.ftp: Flags [P.], seq 27:33, ack 78, win 65458, length 6    E.....@.@......x...d.*..G.\}.1B.P...    ...QUIT    18:47:31.716532 IP 192.168.4.100.ftp > 192.168.4.120.novation: Flags [.], ack 33, win 229, length 0    E..(FO@.@.jT...d...x...*.1B.G.\.P....}........    18:47:31.716634 IP 192.168.4.100.ftp > 192.168.4.120.novation: Flags [P.], seq 78:92, ack 33, win 229, length 14    E..6FP@.@.jE...d...x...*.1B.G.\.P.......221 Goodbye.    18:47:31.716677 IP 192.168.4.100.ftp > 192.168.4.120.novation: Flags [F.], seq 92, ack 33, win 229, length 0    E..(FQ@.@.jR...d...x...*.1B.G.\.P....n........    18:47:31.717053 IP 192.168.4.120.novation > 192.168.4.100.ftp: Flags [.], ack 93, win 65444, length 0    E..(..@.@......x...d.*..G.\..1B.P.............    18:47:31.718796 IP 192.168.4.120.novation > 192.168.4.100.ftp: Flags [F.], seq 33, ack 93, win 65444, length 0    E..(..@.@......x...d.*..G.\..1B.P.............    18:47:31.719097 IP 192.168.4.100.ftp > 192.168.4.120.novation: Flags [.], ack 34, win 229, length 0    E..(..@.@......d...x...*.1B.G.\.P....m........

相關文章
相關標籤/搜索