1、SELinux安全防禦html
目標:linux
本案例要求熟悉SELinux防禦機制的開關及策略配置,完成如下任務:ios
步驟: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工具實現加/解密及軟件簽名等功能,分別完成如下任務:
方案:
使用兩臺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主機環境下的經常使用安全工具,完成如下任務操做:
步驟:
步驟一:使用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........