⑴ sniffer狀態
sniffer是竊聽的意思
應該就是竊聽狀態
sniffers(嗅探器)幾乎和internet有一樣久的歷史了.Sniffer是一種常用的收集有用數據方法,這些數據可以是用戶的帳號和密碼,可以是一些商用機密數據等等。隨著Internet及電子商務的日益普及,Internet的安全也越來越受到重視。在Internet安全隱患中扮演重要角色之一的Sniffer以受到越來越大的關注,所以今天我要向大家介紹一下介紹Sniffer以及如何阻止sniffer。
大多數的黑客僅僅為了探測內部網上的主機並取得控制權,只有那些"雄心勃勃"的黑客,為了控制整個網路才會安裝特洛伊木馬和後門程序,並清除記錄。他們經常使用的手法是安裝sniffer。
在內部網上,黑客要想迅速獲得大量的賬號(包括用戶名和密碼),最為有效的手段是使用 "sniffer" 程序。這種方法要求運行Sniffer 程序的主機和被監聽的主機必須在同一個乙太網段上,故而在外部主機上運行sniffer是沒有效果的。再者,必須以root的身份使用sniffer 程序,才能夠監聽到乙太網段上的數據流。談到乙太網sniffer,就必須談到乙太網sniffing。
那麼什麼是乙太網sniffer呢?
乙太網sniffing是指對乙太網設備上傳送的數據包進行偵聽,發現感興趣的包。如果發現符合條件的包,就把它存到一個log文件中
去。通常設置的這些條件是包含字"username"或"password"的包。它的目的是將網路層放到promiscuous模式,從而能幹些事情。
Promiscuous模式是指網路上的所有設備都對匯流排上傳送的數據進行偵聽,並不僅僅是它們自己的數據。根據第二章中有關對乙太網的工作原理的基本介紹,可以知道:一個設備要向某一目標發送數據時,它是對乙太網進行廣播的。一個連到乙太網匯流排上的設備在任何時間里都在接受數據。不過只是將屬於自己的數據傳給該計算機上的應用程序。
利用這一點,可以將一台計算機的網路連接設置為接受所有以太
網匯流排上的數據,從而實現sniffer。
sniffer通常運行在路由器,或有路由器功能的主機上。這樣就能對大量的數據進行監控。sniffer屬第二層次的攻擊。通常是攻擊者已經進入了目標系統,然後使用sniffer這種攻擊手段,以便得到更多的信息。
sniffer除了能得到口令或用戶名外,還能得到更多的其他信息,比如一個其他重要的信息,在網上傳送的金融信息等等。sniffer幾乎能得到任何乙太網上的傳送的數據包。黑客會使用各種方法,獲得系統的控制權並留下再次侵入的後門,以保證sniffer能夠執行。在Solaris 2.x平台上,sniffer 程序通常被安裝在/usr/bin 或/dev目錄下。黑客還會巧妙的修改時間,使得sniffer程序看上去是和其它系統程序同時安裝的。
大多數乙太網sniffer程序在後台運行,將結果輸出到某個記錄文件中。黑客常常會修改ps程序,使得系統管理員很難發現運行的sniffer程序。
乙太網sniffer程序將系統的網路介面設定為混合模式。這樣,它就可以監聽到所有流經同一乙太網網段的數據包,不管它的接受者或發送者是不是運行sniffer的主機。 程序將用戶名、密碼和其它黑客感興趣的數據存入log文件。黑客會等待一段時間 ----- 比如一周後,再回到這里下載記錄文件。
講了這么多,那麼到底我們可以用什麼通俗的話來介紹sniffer呢?
計算機網路與電話電路不同,計算機網路是共享通訊通道的。共享意味著計算機能夠接收到發送給其它計算機的信息。捕獲在網路中傳輸的數據信息就稱為sniffing(竊聽)。
乙太網是現在應用最廣泛的計算機連網方式。乙太網協議是在同一迴路向所有主機發送數據包信息。數據包頭包含有目標主機的正確地址。一般情況下只有具有該地址的主機會接受這個數據包。如果一台主機能夠接收所有數據包,而不理會數據包頭內容,這種方式通常稱為"混雜" 模式。
由於在一個普通的網路環境中,帳號和口令信息以明文方式在乙太網中傳輸, 一旦入侵者獲得其中一台主機的root許可權,並將其置於混雜模式以竊聽網路數據,從而有可能入侵網路中的所有計算機。
一句話,sniffer就是一個用來竊聽的黑客手段和工具。
二、sniffer的工作原理
通常在同一個網段的所有網路介面都有訪問在物理媒體上傳輸的所有數據的能力,而每個網路介面都還應該有一個硬體地址,該硬體地址不同於網路中存在的其他網路介面的硬體地址,同時,每個網路至少還要一個廣播地址。(代表所有的介面地址),在正常情況下,一個合法的網路介面應該只響應這樣的兩種數據幀:
1、幀的目標區域具有和本地網路介面相匹配的硬體地址。
2、幀的目標區域具有"廣播地址"。
在接受到上面兩種情況的數據包時,nc通過cpu產生一個硬體中斷,該中斷能引起操作系統注意,然後將幀中所包含的數據傳送給系統進一步處理。
而sniffer就是一種能將本地nc狀態設成(promiscuous)狀態的軟體,當nc處於這種"混雜"方式時,該nc具備"廣播地址",它對所有遭遇到的每一個幀都產生一個硬體中斷以便提醒操作系統處理流經該物理媒體上的每一個報文包。(絕大多數的nc具備置成 promiscuous方式的能力)
可見,sniffer工作在網路環境中的底層,它會攔截所有的正在網路上傳送的數據,並且通過相應的軟體處理,可以實時分析這些數據的內容,進而分析所處的網路狀態和整體布局。值得注意的是:sniffer是極其安靜的,它是一種消極的安全攻擊。
通常sniffer所要關心的內容可以分成這樣幾類:
1、口令
我想這是絕大多數非法使用sniffer的理由,sniffer可以記錄到明文傳送的userid和passwd.就算你在網路傳送過程中使用了加密的數據,sniffer記錄的數據一樣有可能使入侵者在家裡邊吃肉串邊想辦法算出你的演算法。
2、金融帳號
許多用戶很放心在網上使用自己的信用卡或現金帳號,然而sniffer可以很輕松截獲在網上傳送的用戶姓名、口令、信用卡號碼、截止日期、帳號和pin.
3、偷窺機密或敏感的信息數據
通過攔截數據包,入侵者可以很方便記錄別人之間敏感的信息傳送,或者乾脆攔截整個的email會話過程。
4、窺探低級的協議信息。
這是很可怕的事,我認為,通過對底層的信息協議記錄,比如記錄兩台主機之間的網路介面地址、遠程網路介面ip地址、ip路由信息和tcp連接的位元組順序號碼等。這些信息由非法入侵的人掌握後將對網路安全構成極大的危害,通常有人用sniffer收集這些信息只有一個原因:他正在進行一次欺詐,(通常的ip地址欺詐就要求你准確插入tcp連接的位元組順序號,這將在以後整理的文章中指出)如果某人很關心這個問題,那麼sniffer對他來說只是前奏,今後的問題要大得多。(對於高級的hacker而言,我想這是使用sniffer的唯一理由吧)
二.sniffer的工作環境
snifffer就是能夠捕獲網路報文的設備。嗅探器的正當用處在於分析網路的流量,以便找出所關心的網路中潛在的問題。例如,假設網路的某一段運行得不是很好,報文的發送比較慢,而我們又不知道問題出在什麼地方,此時就可以用嗅探器來作出精確的問題判斷。
嗅探器在功能和設計方面有很多不同。有些只能分析一種協議,而另一些可能能夠分析幾百種協議。一般情況下,大多數的嗅探器至少能夠分析下面的協議:
1.標准乙太網
2.TCP/IP
3.IPX
4.DECNet
嗅探器通常是軟硬體的結合。專用的嗅探器價格非常昂貴。另一方面,免費的嗅探器雖然不需要花什麼錢,但得不到什麼支持。
嗅探器與一般的鍵盤捕獲程序不同。鍵盤捕獲程序捕獲在終端上輸入的鍵值,而嗅探器則捕獲真實的網路報文。嗅探器通過將其置身於網路介面來達到這個目的——例如將乙太網卡設置成雜收模式。(為了理解雜收模式是怎麼回事,先解釋區域網是怎麼工作的)。
數據在網路上是以很小的稱為幀(Ftame)的單位傳輸的幀由好幾部分組成,不同的部分執行不同的功能。(例如,乙太網的前12個位元組存放的是源和目的的地址,這些位告訴網路:數據的來源和去處。乙太網幀的其他部分存放實際的用戶數據、TCP/IP的報文頭或IPX報文頭等等)。
幀通過特定的稱為網路驅動程序的軟體進行成型,然後通過網卡發送到網線上。通過網線到達它們的目的機器,在目的機器的一端執行相反的過程。接收端機器的乙太網卡捕獲到這些幀,並告訴操作系統幀的到達,然後對其進行存儲。就是在這個傳輸和接收的過程中,嗅探器會造成安全方面的問題。
每一個在LAN上的工作站都有其硬體地址。這些地址唯一地表示著網路上的機器(這一點於Internet地址系統比較相似)。當用戶發送一個報文時,這些報文就會發送到LAN上所有可用的機器。
在一般情況下,網路上所有的機器都可以「聽」到通過的流量,但對不屬於自己的報文則不予響應(換句話說,工作站A不會捕獲屬於工作站B的數據,而是簡單的忽略這些數據)。
如果某在工作站的網路介面處於雜收模式,那麼它就可以捕獲網路上所有的報文和幀,如果一個工作站被配置成這樣的方式,它(包括其軟體)就是一個嗅探器。
嗅探器可能造成的危害:
1.嗅探器能夠捕獲口令
2.能夠捕獲專用的或者機密的信息
3.可以用來危害網路鄰居的安全,或者用來獲取更高級別的訪問許可權
事實上,如果你在網路上存在非授權的嗅探器就以為著你的系統已經暴露在別人面前了。(大家可以試試天行2的嗅探功能)
一般我們只嗅探每個報文的前200到300個位元組。用戶名和口令都包含在這一部分中,這是我們關心的真正部分。工人,也可以嗅探給定介面上的所有報文,如果有足夠的空間進行存儲,有足夠的那裡進行處理的話,將會發現另一些非常有趣的東西……
簡單的放置一個嗅探器賓將其放到隨便什麼地方將不會起到什麼作用。將嗅探器放置於被攻擊機器或網路附近,這樣將捕獲到很多口令,還有一個比較好的方法就是放在網關上。如果這樣的話就能捕獲網路和其他網路進行身份鑒別的過程。這樣的方式將成倍地增加我們能夠攻擊的范圍。
三.誰會使用sniffers
可能誰都回知道誰會使用sniffer,但是並不是每個使用它的人都是網路高手,因為現在有很多的sniffer都成了傻瓜似的了,前段時間用的最多的不外乎oicq sniffer。我想那些喜歡查好友ip的朋友都應該記得它吧。呵呵,我都使用過它,現在當然不用了啊!
當然系統管理員使用sniffer來分析網路信息交通並且找出網路上何處發生問題。一個安全管理員可以同時用多種sniffer, 將它們放置在網路的各處,形成一個入侵警報系統。對於系統管理員來說sniffer是一個非常好的工具,但是它同樣是一個經常被黑客使用的工具.駭客安裝sniffer以獲得用戶名和賬號,信用卡號碼,個人信息,和其他的信息可以導致對你或是你的公司的極大危害如果向壞的方面發展。當它們得到這些信息後,駭客將使用密碼來進攻其他的internet 站點甚至倒賣信用卡號碼。
三.sniffer是如何在網路上實施的
談這個問題之前還應該先說一下Ethernet的通訊。通常在同一個網段的所有網路介面都有訪問在媒體上傳輸的所有數據的能力,而每個網路介面都還應該有一個硬體地址,該硬體地址不同於網路中存在的其它網路介面的硬體地址,同時,每個網路至少還要一個廣播地址。在正常情況下,一個合法的網路介面應該只響應這樣的兩種數據幀:
1
⑵ 在地址為192.168.1.44的主機上,要檢查到另一台主機的端到端連接性,可通過CLI執行哪個命令
1
通過SSH連接
打開計算機上的SSH客戶端(例如Mac OS X上的Terminal,或者Windows下使用PuTTY)
在PuTTY登錄界面輸入主機名稱或者IP地址,EdgeOS默認的IP地址為192.168.1.1。在初次登錄的時候,會顯示一個主機密鑰。你會被詢問確認保存主機密鑰到本地資料庫。點擊「是」可以在以後略過這個消息。
在用戶名和密碼提示符處,輸入用戶名和密碼,默認是ubnt/ubnt。
對於命令幫助,你可以按下?鍵或者輸入show然後按下?鍵。
回第一步
⑶ kali linux中的social engining toolkit版本過低怎麼更新啊
安裝cuda以及nvidia驅動
這一步比較簡單,安裝之前,推薦大家編輯一下/etc/apt/source.list文件,把國外的源注釋掉換成國內科大的,下載比較快。科大源的地址如下
deb kali main non-free contrib
deb-src kali main non-free contrib
deb -security kali/updates main contrib non-free
設置完之後,執行以下命令安裝
apt-get update
apt-get install nvidia-detect nvidia-libopencl1 nvidia-opencl-common nvidia-support nvidia-opencl-icd nvidia-visual-profiler nvidia-glx nvidia-installer-cleanup nvidia-kernel-common nvidia-smi nvidia-alternative nvidia-opencl-dev libglx-nvidia-alternatives nvidia-kernel-dkms nvidia-cuda-toolkit nvidia-vdpau-driver nvidia-xconfig glx-alternative-nvidia libgl1-nvidia-alternatives nvidia-settings libgl1-nvidia-glx xserver-xorg-video-nvidia libcublas4 libcudart4 libcufft4 libnpp4 libnvidia-compiler libcuda1 libcuinj4 libnvidia-ml1 libxvmcnvidia1 libcusparse4 libcurand4 python-pycuda-doc python-pycuda-headers python-pycuda nvidia-cuda-doc nvidia-cuda-gdb
由於包比較多可能有點慢,安裝過程會彈出兩個窗口需要確認,直接OK就好,執行完之後toolkit和驅動都裝上了,然後把一些變數寫入系統,在/root/.bashrc最後面加上下面一段
PATH=$PATH:/usr/lib/nvidia-cuda-toolkit/bin
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/nvidia-cuda-toolkit/lib:/lib
export PATH
export LD_LIBRARY_PATH
可以執行一下ldconfig馬上生效,不過反正都要重啟一次的了,重啟。
安裝pyrit-cuda
下面重新編譯個pyrit來試一試使用GPU。下載pyrit的地址是:
我們需要下載pyrit-0.4.0.tar.gz和cpyrit-cuda-0.4.0.tar.gz,下載完之後,安裝一下編譯所需要的工具
atp-get install libpcap-dev python2.7-dev
解壓pyrit-0.4.0.tar.gz並且安裝
tar -xzvf pyrit-0.4.0.tar.gz
cd pyrit-0.4.0
python setup.py build
python setup.py install
解壓cpyrit-cuda-0.4.0.tar.gz
tar -xzvf cpyrit-cuda-0.4.0.tar.gz
cd cpyrit-cuda-0.4.0
這里需要進行一些改動,編輯setup.py,把第35行
for path in ('/usr/local/cuda', '/opt/cuda'):
改成
for path in ('/usr/local/cuda','/usr/lib/nvidia-cuda-toolkit','/opt/cuda'):
免得安裝程序找不到nvcc
然後就安裝
python setup.py build
python setup.py install
安裝完,運行一下
pyrit list_cores
應該能看到GPU了,類似
#1: 'CUDA-Device #1 'GeForce 8400 GS''
#2: 'CPU-Core (SSE2)'
#3: 'CPU-Core (SSE2)'
#4: 'CPU-Core (SSE2)'
#5: 'CPU-Core (SSE2)'
#6: 'CPU-Core (SSE2)'
#7: 'CPU-Core (SSE2)'
#8: 'CPU-Core (SSE2)'
安裝optimus
把源Key取回來
wget -O - | apt-key add -
在/etc/apt/source.list中加入Bumblebee的源
deb sid main contrib
deb-src sid main
然後執行安裝
apt-get update
apt-get install bumblebee bumblebee-nvidia
安裝完畢,把root加入bemblebe組,然後重啟
adser root bumblebee
重啟完畢可以測試一下,分別運行
glxspheres
optirun glxspheres
可以看到幀數是不同的
⑷ ntop 用途
這個是用來監控流量的
先來安裝ntop,ntop需要使用一個web伺服器,所以我在這里使用的apache,一起安裝了吧命令如下
jonsk:~# apt-get install ntop apache
需要安裝22個包
apache、 apache-common 、apache2-utils、libapr1、libaprutil1 、libexpat1、libfreetype6 、libgd2-noxpm 、libglib1.2 、libjpeg62 、libkrb53 、libmagic1 、libpcap0.7、libpcre3 、libpng12-0 、libpq4 、libsqlite3-0 、lynx 、mime-support 、ntop 、perl、perl-moles
debian的包管理還是不是很理想,到連lynx都裝上了,明明用不到嘛。
設置ntop的管理密碼
jonsk:~# ntop --set-admin-password
Mon Jul 30 23:59:52 2007 NOTE: Interface merge enabled by default
Mon Jul 30 23:59:52 2007 Initializing gdbm databases
ntop startup - waiting for user response!
Please enter the password for the admin user:在這里輸入admin的密碼
Please enter the password again:再次輸入
Mon Jul 30 23:59:58 2007 Admin user password has been set
jonsk:~# /etc/init.d/ntop start 啟動ntop服務
OK,現在打開你的瀏覽器輸入你的IP地址加埠號3000就可以查看你的網路流量了例:
http://127.0.0.1:3000
http://一定要指定http的頭,要不然瀏覽器不知道使用使用協議來連接
ntop默認監聽埠號是3000。
現在有空順便再來說一下ntop的常用參數
-d : 放入後台執行。 常用
-L : 輸出訊息寫入系統記錄文件。
-r : 設定頁面的自動更新頻率,預設每 3 秒更新一次. 。
-w : 使用其它埠 (預設是 3000) 。
-W : 同 -w , 不過這個是使用 SSL 聯機 。
-u : 指定使用其它身份執行 。
-i : 指定 ntop 監聽的網卡,"," 隔開多個網卡。
-M : 使用 -i 指定多張網卡時, 預設是合並統計.
ntop的頁面說明
o About: 在線手冊。
o Summary : 目前網路的整體概況
* Traffic : 流量
* Hosts : 所有主機使用概況
* Network Load : 各時段的網路負載
* Netflows : 網路流量圖。
o IP Summary : 各主機的流量狀況與排名明細
* Traffic : 所有主機的流量明細
* Multicast : 多點傳送情況。
* Domain : 域名
* Distribution : 通訊量狀況
* Local >>Local 本地流量。
* Local>>Remote : 所有主機對外的明細
* Remote>>Local :
* Remote>>Remote :
o All Protocols : 查看各主機佔用的頻寬與各時段網路使用者等的明細
* Traffic : 流量。
* Throughput : 頻寬使用明細表 (點選主機,可以看到該主機詳細的信息及使用狀況)
* Activity : 各時段所有主機使用流量(狀況). (點選主機,可以看到該主機詳細的信息及使用狀況)
o Local IP : 區域網絡內各主機使用狀況.
* Routers : 路由器狀況。3.2版的ntop中已經好像沒有這一項了
* Ports Used : 埠使用情況。
* Active TCP Sessions : 目前正在進行的聯機 。
* Host Fingerprint : 主機快照情況。
* Host Characterization : 主機描述。
* Local Matrix : 區域網絡內各主機間的流量明細。
o Media: 高級貨,一般人用不到的東西
* Fibre Channel 光纖通道,企業級存儲時使用的東西
o Utils 日誌一類的東西
oPlugins 一些插件
ICMPWATCH:用於埠檢測很多人都已經知道了可以藉助NETSTAT -AN來查看當前的連接與開放的埠,但NETSTAT並不萬能,比如你的Win2000遭到OOB攻擊的時候,不等NETSTAT你就已經死機了。為此,出現了一種特殊的小工具——埠監聽程序。埠監聽並不是一項復雜的技術,但卻能解決一些局部問題。
NetFlow:近年來,很多服務提供商一直使用NetFlow。因為 NetFlow在大型廣域網環境里具有伸縮能力,可以幫助支持對等點上的最佳傳輸流,同時可以用來進行建立在單項服務基礎之上的基礎設施最優化評估,解決服務和安全問題方面所表現出來的價值,為服務計費提供基礎。NetFlow是一種數據交換方式,其工作原理是:NetFlow利用標準的交換模式處理數據流的第一個IP包數據,生成NetFlow 緩存,隨後同樣的數據基於緩存信息在同一個數據流中進行傳輸,不再匹配相關的訪問控制等策略,NetFlow緩存同時包含了隨後數據流的統計信息。但是, NetFlow也不是萬能的,比如它無法提供應用反應時間。
rrdPlugin:用於生成流量圖。RRD的作者,也是MRTG的作者,RRD可以簡單的說是MRTG的升級版,它比MRTG更靈活,更適合用shell、perl等程序來調用,成生所要的圖片。
sFlow:sFlow (RFC 3176)是基於標準的最新網路導出協議,能夠解決當前網路管理人員面臨的很多問題。sFlow已經成為一項線速運行的「永遠在線」技術,可以將 sFlow技術嵌入到網路路由器和交換機ASIC晶元中。與使用鏡像埠、探針和旁路監測技術的傳統網路監視解決方案相比,sFlow能夠明顯地降低實施費用,同時可以使面向每一個埠的全企業網路監視解決方案成為可能。與數據包采樣技術(如RMON)不同,sFlow是一種導出格式,它增加了關於被監視數據包的更多信息,並使用嵌入到網路設備中的sFlow代理轉發被采樣數據包,因此在功能和性能上都超越了當前使用的RMON、RMON II和NetFlow技術。sFlow技術獨特之處在於它能夠在整個網路中,以連續實時的方式監視每一個埠,但不需要鏡像監視埠,對整個網路性能的影響也非常小。
snmpPlugin:這個大家都知道,就不說是
最後說一下,ntop確實很消耗資源,建議找專門找台閑置的PC做這個,而且主機放置的位置最好是在路由器邊上,如果是交換機上,哪么最好將交換機出口做一個埠鏡象,將鏡象的埠用來連接ntop
附上ntop的運行後的服務情況
jonsk:/# vmstat 2
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 0 0 37164 15184 24732 0 0 7 9 255 16 0 2 98 0
0 0 0 37164 15184 24740 0 0 0 0 238 13 0 0 100 0
0 0 0 37164 15184 24740 0 0 0 0 234 8 1 1 99 0
0 0 0 37164 15192 24732 0 0 0 20 238 17 0 1 99 0
0 0 0 37164 15192 24740 0 0 0 0 240 17 0 0 100 0
top - 01:33:17 up 1:24, 2 users, load average: 0.13, 0.06, 0.02
Tasks: 37 total, 1 running, 36 sleeping, 0 stopped, 0 zombie
Cpu0 : 0.5%us, 1.9%sy, 0.0%ni, 96.7%id, 0.0%wa, 0.9%hi, 0.0%si, 0.0%st
Mem: 127024k total, 90056k used, 36968k free, 15256k buffers
Swap: 369452k total, 0k used, 369452k free, 24744k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1782 root 15 0 1624 372 308 S 0.6 0.3 0:00.17 /usr/sbin/gpm -m /d 2147 root 15 0 2232 1104 864 R 0.6 0.9 0:00.16 top
參考:
www.ntop.org
伺服器應用:用NTOP精確監控網路
你可以到這里看看
http://q.163.com/linuxer/blog/wjw1td/33171271200763043923718/#33171271200763043923718
⑸ 使用pcap_loop函數會不會漏掉數據包
函數本身不會,但是當你數據處理量大的時候,CPU可能來不及相應,導致丟包。
一般編程的時候,會用多線程解決上述問題。一個線程專門抓包(這個必須是實時的),另外一個負責後續處理(在你這里就是重組分片,可以不是實時地)。這樣程序就不會因為等待計算結果,而來不及接收數據包了。
線程之間可以共享全局變數。
⑹ redis 怎麼啟用多埠
我來回答通常sniffer所要關心的內容可以分成這樣幾類:1、口令我想這是絕大多數非法使用sniffer的理由,sniffer可以記錄到明文傳送的userid和passwd.就算你在網路傳送過程中使用了加密的數據,sniffer記錄的數據一樣有可能使入侵者在家裡邊吃肉串邊想法算出你的演算法。2、金融帳號許多用戶很放心在網上使用自己的信用卡或現金帳號,然而sniffer可以很輕松截獲在網上傳送的用戶姓名、口令、信用卡號碼、截止日期、帳號和pin.3、偷窺機密或敏感的信息數據通過攔截數據包,入侵者可以很方便記錄別人之間敏感的信息傳送,或者乾脆攔截整個的email會話過程。4、窺探低級的協議信息。這是很可怕的事,我認為,通過對底層的信息協議記錄,比如記錄兩台主機之間的網路介面地址、遠程網路介面ip地址、ip路由信息和tcp連接的位元組順序號碼等。這些信息由非法入侵的人掌握後將對網路安全構成極大的危害,通常有人用sniffer收集這些信息只有一個原因:他正在進行一次欺詐,(通常的ip地址欺詐就要求你准確插入tcp連接的位元組順序號,這將在以後整理的文章中指出)如果某人很關心這個問題,那麼sniffer對他來說只是前奏,今後的問題要大得多。(對於高級的hacker而言,我想這是使用sniffer的唯一理由吧)二.sniffer的工作環境snifffer就是能夠捕獲網路報文的設備。嗅探器的正當用處在於分析網路的流量,以便找出所關心的網路中潛在的問題。例如,假設網路的某一段運行得不是很好,報文的發送比較慢,而我們又不知道問題出在什麼地方,此時就可以用嗅探器來作出精確的問題判斷。嗅探器在功能和設計方面有很多不同。有些只能分析一種協議,而另一些可能能夠分析幾百種協議。一般情況下,大多數的嗅探器至少能夠分析下面的協議:1.標准乙太網2.TCP/IP3.IPX4.DECNet嗅探器通常是軟硬體的結合。專用的嗅探器價格非常昂貴。另一方面,免費的嗅探器雖然不需要花什麼錢,但得不到什麼支持。嗅探器與一般的鍵盤捕獲程序不同。鍵盤捕獲程序捕獲在終端上輸入的鍵值,而嗅探器則捕獲真實的網路報文。嗅探器通過將其置身於網路介面來達到這個目的——例如將乙太網卡設置成雜收模式。(為了理解雜收模式是怎麼回事,先解釋區域網是怎麼工作的)。數據在網路上是以很小的稱為幀(Ftame)的單位傳輸的幀由好幾部分組成,不同的部分執行不同的功能。(例如,乙太網的前12個位元組存放的是源和目的的地址,這些位告訴網路:數據的來源和去處。乙太網幀的其他部分存放實際的用戶數據、TCP/IP的報文頭或IPX報文頭等等)。幀通過特定的稱為網路驅動程序的軟體進行成型,然後通過網卡發送到網線上。通過網線到達它們的目的機器,在目的機器的一端執行相反的過程。接收端機器的乙太網卡捕獲到這些幀,並告訴操作系統幀的到達,然後對其進行存儲。就是在這個傳輸和接收的過程中,嗅探器會造成安全方面的問題。每一個在LAN上的工作站都有其硬體地址。這些地址唯一地表示著網路上的機器(這一點於Internet地址系統比較相似)。當用戶發送一個報文時,這些報文就會發送到LAN上所有可用的機器。在一般情況下,網路上所有的機器都可以「聽」到通過的流量,但對不屬於自己的報文則不予響應(換句話說,工作站A不會捕獲屬於工作站B的數據,而是簡單的忽略這些數據)。如果某在工作站的網路介面處於雜收模式,那麼它就可以捕獲網路上所有的報文和幀,如果一個工作站被配置成這樣的方式,它(包括其軟體)就是一個嗅探器。嗅探器可能造成的危害:1.嗅探器能夠捕獲口令2.能夠捕獲專用的或者機密的信息3.可以用來危害網路鄰居的安全,或者用來獲取更高級別的訪問許可權事實上,如果你在網路上存在非授權的嗅探器就以為著你的系統已經暴露在別人面前了。(大家可以試試天行2的嗅探功能)一般我們只嗅探每個報文的前200到300個位元組。用戶名和口令都包含在這一部分中,這是我們關心的真正部分。工人,也可以嗅探給定介面上的所有報文,如果有足夠的空間進行存儲,有足夠的那裡進行處理的話,將會發現另一些非常有趣的東西……簡單的放置一個嗅探器賓將其放到隨便什麼地方將不會起到什麼作用。將嗅探器放置於被攻擊機器或網路附近,這樣將捕獲到很多口令,還有一個比較好的方法就是放在網關上。如果這樣的話就能捕獲網路和其他網路進行身份鑒別的過程。這樣的方式將成倍地增加我們能夠攻擊的范圍。三.誰會使用sniffers可能誰都回知道誰會使用sniffer,但是並不是每個使用它的人都是網路高手,因為現在有很多的sniffer都成了傻瓜似的了,前段時間用的最多的不外乎oicqsniffer。我想那些喜歡查好友ip的朋友都應該記得它吧。呵呵,我都使用過它,現在當然不用了啊!當然系統管理員使用sniffer來分析網路信息交通並且找出網路上何處發生問題。一個安全管理員可以同時用多種sniffer,將它們放置在網路的各處,形成一個入侵警報系統。對於系統管理員來說sniffer是一個非常好的工具,但是它同樣是一個經常被黑客使用的工具.駭客安裝sniffer以獲得用戶名和賬號,信用卡號碼,個人信息,和其他的信息可以導致對你或是你的公司的極大危害如果向壞的方面發展。當它們得到這些信息後,駭客將使用密碼來進攻其他的internet站點甚至倒賣信用卡號碼。三.sniffer是如何在網路上實施的談這個問題之前還應該先說一下Ethernet的通訊。通常在同一個網段的所有網路介面都有訪問在媒體上傳輸的所有數據的能力,而每個網路介面都還應該有一個硬體地址,該硬體地址不同於網路中存在的其它網路介面的硬體地址,同時,每個網路至少還要一個廣播地址。在正常情況下,一個合法的網路介面應該只響應這樣的兩種數據幀:1幀的目標區域具有和本地網路介面相匹配的硬體地址。2幀的目標區域具有「廣播地址」。在接受到上面兩種情況的數據包時,網卡通過cpu產生一個硬體中斷。該中斷能引起操作系統注意,然後將幀中所包含的數據傳送給系統進一步處理。而sniffer就是一種能將本地網卡狀態設成雜亂模式(promiscuousMode)的軟體。當網卡處於雜亂模式時,該網卡具備「廣播地址」,它對所有遇到的每一個幀都產生一個硬體中斷以提醒操作系統處理每一個報文包。(絕大多數的網卡具備設置成雜亂模式的能力。可見,sniffer工作在網路環境中的底層,它會攔截所有的正在網路上傳送的數據。通過相應的軟體處理,可以實時分析這些數據的內容,進而分析所處的網路狀態和整體布局。值得注意的是:sniffer是極其安靜的,它是一種消極的安全攻擊。四.哪裡可以得到sniffer我們講的sniffer,主要是在unix系統下運用的,至於那些oicqsniffer就不在我們討論的范圍。Sniffer是黑客們最常用的入侵手段之一。你可以在經過允許的網路中運行sniffer,了解它是如何有效地危及本地機器安全。Sniffer可以是硬體,也可以是軟體。現在品種最多,應用最廣的是軟體Sniffer,絕大多數黑客們用的也是軟體Sniffer。以下是一些也被廣泛用於調試網路故障的sniffer工具:(一).商用sniffer:1.NetworkGeneral.NetworkGeneral開發了多種產品。最重要的是ExpertSniffer,它不僅僅可以sniff,還能夠通過高性能的專門系統發送/接收數據包,幫助診斷故障。還有一個增強產品"DistrbutedSnifferSystem"可以將UNIX工作站作為sniffer控制台,而將snifferagents(代理)分布到遠程主機上。2.Microsoft'sNetMonitor對於某些商業站點,可能同時需要運行多種協議--NetBEUI、IPX/SPX、TCP/IP、802.3和SNA等。這時很難找到一種sniffer幫助解決網路問題,因為許多sniffer往往將某些正確的協議數據包當成了錯誤數據包。Microsoft的NetMonitor(以前叫Bloodhound)可以解決這個難題。它能夠正確區分諸如Netware控制數據包、NTNetBios名字服務廣播等獨特的數據包。(etherfind只會將這些數據包標識為類型0000的廣播數據包。)這個工具運行在MSWindows平台上。它甚至能夠按MAC地址(或主機名)進行網路統計和會話信息監視。只需簡單地單擊某個會話即可獲得tcpmp標準的輸出。過濾器設置也是最為簡單的,只要在一個對話框中單擊需要監視的主機即可。(二).免費軟體sniffer1.Sniffit由LawrenceBerkeley實驗室開發,運行於Solaris、SGI和Linux等平台。可以選擇源、目標地址或地址集合,還可以選擇監聽的埠、協議和網路介面等。這個SNIFFER默認狀態下只接受最先的400個位元組的信息包,這對於一次登陸會話進程剛剛好。2.SNORT:這個SNIFFER有很多選項供你使用並可移植性強,可以記錄一些連接信息,用來跟蹤一些網路活動。3.TCPDUMP:這個SNIFFER很有名,linux,FREEBSD還搭帶在系統上,是一個被很多UNIX高手認為是一個專業的網路管理工具,記得以前TsutomuShimomura(應該叫下村侵吧)就是使用他自己修改過的TCPDUMP版本來記錄了KEVINMITNICK攻擊他系統的記錄,後來就配合FBI抓住了KEVINMITNICK,後來他寫了一文:使用這些LOG記錄描述了那次的攻擊,((四).Linux下的sniffer工具Linux下的sniffer工具,我推薦Tcpmp。[1].tcpmp的安裝在linux下tcpmp的安裝十分簡單,一般由兩種安裝方式。一種是以rpm包的形式來進行安裝。另外一種是以源程序的形式安裝。1.rpm包的形式安裝這種形式的安裝是最簡單的安裝方法,rpm包是將軟體編譯後打包成二進制的格式,通過rpm命令可以直接安裝,不需要修改任何東西。以超級用戶登錄,使用命令如下:#rpm-ivhtcpmp-3_4a5.rpm這樣tcpmp就順利地安裝到你的linux系統中。怎麼樣,很簡單吧。2.源程序的安裝既然rpm包的安裝很簡單,為什麼還要採用比較復雜的源程序安裝呢其實,linux一個最大的誘人之處就是在她上面有很多軟體是提供源程序的,人們可以修改源程序來滿足自己的特殊的需要。所以我特別建議朋友們都採取這種源程序的安裝方法。·第一步取得源程序在源程序的安裝方式中,我們首先要取得tcpmp的源程序分發包,這種分發包有兩種形式,一種是tar壓縮包(tcpmp-3_4a5.tar.Z),另一種是rpm的分發包(tcpmp-3_4a5.src.rpm)。這兩種形式的內容都是一樣的,不同的僅僅是壓縮的方式.tar的壓縮包可以使用如下命令解開:#tarxvfztcpmp-3_4a5.tar.Zrpm的包可以使用如下命令安裝:#rpm-ivhtcpmp-3_4a5.src.rpm這樣就把tcpmp的源代碼解壓到/usr/src/redhat/SOURCES目錄下.·第二步做好編譯源程序前的准備活動在編譯源程序之前,最好已經確定庫文件libpcap已經安裝完畢,這個庫文件是tcpmp軟體所需的庫文件。同樣,你同時還要有一個標準的c語言編譯器。在linux下標準的c語言編譯器一般是gcc。在tcpmp的源程序目錄中。有一個文件是Makefile.in,configure命令就是從Makefile.in文件中自動產生Makefile文件。在Makefile.in文件中,可以根據系統的配置來修改BINDEST和MANDEST這兩個宏定義,預設值是BINDEST=@sbindir@MANDEST=@mandir@第一個宏值表明安裝tcpmp的二進制文件的路徑名,第二個表明tcpmp的man幫助頁的路徑名,你可以修改它們來滿足系統的需求。·第三步編譯源程序使用源程序目錄中的configure腳本,它從系統中讀出各種所需的屬性。並且根據Makefile.in文件自動生成Makefile文件,以便編譯使用.make命令則根據Makefile文件中的規則編譯tcpmp的源程序。使用makeinstall命令安裝編譯好的tcpmp的二進制文件。總結一下就是:#tarxvfztcpmp-3_4a5.tar.Z#viMakefile.in#./configure#make#makeinstall[2].Tcpmp的使用tcpmp採用命令行方式,它的命令格式為:tcpmp[-adeflnNOpqStvx][-c數量][-F文件名][-i網路介面][-r文件名][-ssnaplen][-T類型][-w文件名][表達式]1.tcpmp的選項介紹-a將網路地址和廣播地址轉變成名字;-d將匹配信息包的代碼以人們能夠理解的匯編格式給出;-dd將匹配信息包的代碼以c語言程序段的格式給出;-ddd將匹配信息包的代碼以十進制的形式給出;-e在輸出行列印出數據鏈路層的頭部信息;-f將外部的Internet地址以數字的形式列印出來;-l使標准輸出變為緩沖行形式;-n不把網路地址轉換成名字;-t在輸出的每一行不列印時間戳;-v輸出一個稍微詳細的信息,例如在ip包中可以包括ttl和服務類型的信息;-vv輸出詳細的報文信息;-c在收到指定的包的數目後,tcpmp就會停止;-F從指定的文件中讀取表達式,忽略其它的表達式;-i指定監聽的網路介面;-r從指定的文件中讀取包(這些包一般通過-w選項產生);-w直接將包寫入文件中,並不分析和列印出來;-T將監聽到的包直接解釋為指定的類型的報文,常見的類型有rpc(遠程過程調用)和snmp(簡單網路管理協議;)2.tcpmp的表達式介紹表達式是一個正則表達式,tcpmp利用它作為過濾報文的條件,如果一個報文滿足表達式的條件,則這個報文將會被捕獲。如果沒有給出任何條件,則網路上所有的信息包將會被截獲。在表達式中一般如下幾種類型的關鍵字,一種是關於類型的關鍵字,主要包括host,net,port,例如host210.27.48.2,指明210.27.48.2是一台主機,net202.0.0.0指明202.0.0.0是一個網路地址,port23指明埠號是23。如果沒有指定類型,預設的類型是host.第二種是確定傳輸方向的關鍵字,主要包括src,dst,dstorsrc,dstandsrc,這些關鍵字指明了傳輸的方向。舉例說明,src210.27.48.2,指明ip包中源地址是210.27.48.2,dstnet202.0.0.0指明目的網路地址是202.0.0.0。如果沒有指明方向關鍵字,則預設是srcordst關鍵字。第三種是協議的關鍵字,主要包括fddi,ip,arp,rarp,tcp,udp等類型。Fddi指明是在FDDI(分布式光纖數據介面網路)上的特定的網路協議,實際上它是"ether"的別名,fddi和ether具有類似的源地址和目的地址,所以可以將fddi協議包當作ether的包進行處理和分析。其他的幾個關鍵字就是指明了監聽的包的協議內容。如果沒有指定任何協議,則tcpmp將會監聽所有協議的信息包。除了這三種類型的關鍵字之外,其他重要的關鍵字如下:gateway,broadcast,less,greater,還有三種邏輯運算,取非運算是'not''!',與運算是'and','&&';或運算是'or','';這些關鍵字可以組合起來構成強大的組合條件來滿足人們的需要,下面舉幾個例子來說明。(1)想要截獲所有210.27.48.1的主機收到的和發出的所有的數據包:#tcpmphost210.27.48.1(2)想要截獲主機210.27.48.1和主機210.27.48.2或210.27.48.3的通信,使用命令:(在命令行中適用括弧時,一定要#tcpmphost210.27.48.1and\(210.27.48.2or210.27.48.3\)(3)如果想要獲取主機210.27.48.1除了和主機210.27.48.2之外所有主機通信的ip包,使用命令:#tcpmpiphost210.27.48.1and!210.27.48.2(4)如果想要獲取主機210.27.48.1接收或發出的telnet包,使用如下命令:#tcpmptcpport23host210.27.48.13.tcpmp的輸出結果介紹下面我們介紹幾種典型的tcpmp命令的輸出信息(1)數據鏈路層頭信息使用命令#tcpmp--ehosticeice是一台裝有linux的主機,她的MAC地址是0:90:27:58:AF:1AH219是一台裝有SOLARIC的SUN工作站,它的MAC地址是8:0:20:79:5B:46;上一條命令的輸出結果如下所示:21:50:12.847509eth08:0:20:79:5b:460:90:27:58:af:1aip60:h219.33357>ice.telnet0:0(0)ack22535win8760(DF)分析:21:50:12是顯示的時間,847509是ID號,eth0表示從網路介面設備發送數據包,8:0:20:79:5b:46是主機H219的MAC地址,它表明是從源地址H219發來的數據包.0:90:27:58:af:1a是主機ICE的MAC地址,表示該數據包的目的地址是ICE.ip是表明該數據包是IP數據包,60是數據包的長度,h219.33357>ice.telnet表明該數據包是從主機H219的33357埠發往主機ICE的TELNET(23)埠.ack22535表明對序列號是222535的包進行響應.win8760表明發送窗口的大小是8760.(2)ARP包的TCPDUMP輸出信息使用命令#tcpmparp得到的輸出結果是:22:32:42.802509eth0>arpwho-hasroutetellice(0:90:27:58:af:1a)22:32:42.802902eth0表明從主機發出該數據包,arp表明是ARP請求包,who-hasroutetellice表明是主機ICE請求主機ROUTE的MAC地址。0:90:27:58:af:1a是主機ICE的MAC地址。(3)TCP包的輸出信息用TCPDUMP捕獲的TCP包的一般輸出信息是:src>dst:flagsdata->dst:表明從源地址到目的地址,flags是TCP包中的標志信息,S是SYN標志,F(FIN),P(PUSH),R(RST)"."(沒有標記);data-seqno是數據包中的數據的順序號,ack是下次期望的順序號,window是接收緩存的窗口大小,urgent表明數據包中是否有緊急指針.Options是選項.(4)UDP包的輸出信息用TCPDUMP捕獲的UDP包的一般輸出信息是:route.port1>ice.port2:udplenthUDP十分簡單,上面的輸出行表明從主機ROUTE的port1埠發出的一個UDP數據包到主機ICE的port2埠,類型是UDP,包的長度是lenth上面,我就詳細介紹了TCPDUMP的安裝和使用,希望會對大家有所幫助。如果想要熟練運用TCPDUMP這個LINUX環境下的SNIFFER利器,還需要大家在實踐中總結經驗,充分發揮它的威力。(五).windows平台上的sniffer我推薦netxray和snifferpro軟體,想必大家都用過他們,不過我在這兒還要再簡單介紹一下他們。
⑺ VC問題:None of the functions with this name in scope match the target type
問題在 __cdecl
_cdecl 是C Declaration的縮寫,表示C語言默認的函數調用方法:所有參數從右到左依次入棧,這些參數由調用者清除,稱為手動清棧。被調用函數不需要求調用者傳遞多少參數,調用者傳遞過多或者過少的參數,甚至完全不同的參數都不會產生編譯階段的錯誤。
_stdcall 是Standard Call的縮寫,是C++的標准調用方式:所有參數從右到左依次入棧,如果是調用類成員的話,最後一個入棧的是this指針。這些堆棧中的參數由被調用的函數在返回後清除,使用的指令是 retn X,X表示參數佔用的位元組數,CPU在ret之後自動彈出X個位元組的堆棧空間。稱為自動清棧。函數在編譯的時候就必須確定參數個數,並且調用者必須嚴格的控制參數的生成,不能多,不能少,否則返回後會出錯。
VC6.0 下你可以這樣這樣試一下
ALT+F7
C/C++ 屬性頁裡面 分類 里選擇 Code Generation
然後 修改一下 Calling convention 的值
⑻ 請那位大哥發表一下Solaris 8的安裝程序.越詳細越好.謝謝了
sniffer是竊聽的意思,sniffer狀態應該就是竊聽狀態了
要更詳細的看下面,保證看到你頭大~哈哈
sniffers(嗅探器)幾乎和internet有一樣久的歷史了.Sniffer是一種常用的收集有用數據方法,這些數據可以是用戶的帳號和密碼,可以是一些商用機密數據等等。隨著Internet及電子商務的日益普及,Internet的安全也越來越受到重視。在Internet安全隱患中扮演重要角色之一的Sniffer以受到越來越大的關注,所以今天我要向大家介紹一下介紹Sniffer以及如何阻止sniffer。
大多數的黑客僅僅為了探測內部網上的主機並取得控制權,只有那些"雄心勃勃"的黑客,為了控制整個網路才會安裝特洛伊木馬和後門程序,並清除記錄。他們經常使用的手法是安裝sniffer。
在內部網上,黑客要想迅速獲得大量的賬號(包括用戶名和密碼),最為有效的手段是使用 "sniffer" 程序。這種方法要求運行Sniffer 程序的主機和被監聽的主機必須在同一個乙太網段上,故而在外部主機上運行sniffer是沒有效果的。再者,必須以root的身份使用sniffer 程序,才能夠監聽到乙太網段上的數據流。談到乙太網sniffer,就必須談到乙太網sniffing。
那麼什麼是乙太網sniffer呢?
乙太網sniffing是指對乙太網設備上傳送的數據包進行偵聽,發現感興趣的包。如果發現符合條件的包,就把它存到一個log文件中
去。通常設置的這些條件是包含字"username"或"password"的包。它的目的是將網路層放到promiscuous模式,從而能幹些事情。
Promiscuous模式是指網路上的所有設備都對匯流排上傳送的數據進行偵聽,並不僅僅是它們自己的數據。根據第二章中有關對乙太網的工作原理的基本介紹,可以知道:一個設備要向某一目標發送數據時,它是對乙太網進行廣播的。一個連到乙太網匯流排上的設備在任何時間里都在接受數據。不過只是將屬於自己的數據傳給該計算機上的應用程序。
利用這一點,可以將一台計算機的網路連接設置為接受所有以太
網匯流排上的數據,從而實現sniffer。
sniffer通常運行在路由器,或有路由器功能的主機上。這樣就能對大量的數據進行監控。sniffer屬第二層次的攻擊。通常是攻擊者已經進入了目標系統,然後使用sniffer這種攻擊手段,以便得到更多的信息。
sniffer除了能得到口令或用戶名外,還能得到更多的其他信息,比如一個其他重要的信息,在網上傳送的金融信息等等。sniffer幾乎能得到任何乙太網上的傳送的數據包。黑客會使用各種方法,獲得系統的控制權並留下再次侵入的後門,以保證sniffer能夠執行。在Solaris 2.x平台上,sniffer 程序通常被安裝在/usr/bin 或/dev目錄下。黑客還會巧妙的修改時間,使得sniffer程序看上去是和其它系統程序同時安裝的。
大多數乙太網sniffer程序在後台運行,將結果輸出到某個記錄文件中。黑客常常會修改ps程序,使得系統管理員很難發現運行的sniffer程序。
乙太網sniffer程序將系統的網路介面設定為混合模式。這樣,它就可以監聽到所有流經同一乙太網網段的數據包,不管它的接受者或發送者是不是運行sniffer的主機。 程序將用戶名、密碼和其它黑客感興趣的數據存入log文件。黑客會等待一段時間 ----- 比如一周後,再回到這里下載記錄文件。
講了這么多,那麼到底我們可以用什麼通俗的話來介紹sniffer呢?
計算機網路與電話電路不同,計算機網路是共享通訊通道的。共享意味著計算機能夠接收到發送給其它計算機的信息。捕獲在網路中傳輸的數據信息就稱為sniffing(竊聽)。
乙太網是現在應用最廣泛的計算機連網方式。乙太網協議是在同一迴路向所有主機發送數據包信息。數據包頭包含有目標主機的正確地址。一般情況下只有具有該地址的主機會接受這個數據包。如果一台主機能夠接收所有數據包,而不理會數據包頭內容,這種方式通常稱為"混雜" 模式。
由於在一個普通的網路環境中,帳號和口令信息以明文方式在乙太網中傳輸, 一旦入侵者獲得其中一台主機的root許可權,並將其置於混雜模式以竊聽網路數據,從而有可能入侵網路中的所有計算機。
一句話,sniffer就是一個用來竊聽的黑客手段和工具。
二、sniffer的工作原理
通常在同一個網段的所有網路介面都有訪問在物理媒體上傳輸的所有數據的能力,而每個網路介面都還應該有一個硬體地址,該硬體地址不同於網路中存在的其他網路介面的硬體地址,同時,每個網路至少還要一個廣播地址。(代表所有的介面地址),在正常情況下,一個合法的網路介面應該只響應這樣的兩種數據幀:
1、幀的目標區域具有和本地網路介面相匹配的硬體地址。
2、幀的目標區域具有"廣播地址"。
在接受到上面兩種情況的數據包時,nc通過cpu產生一個硬體中斷,該中斷能引起操作系統注意,然後將幀中所包含的數據傳送給系統進一步處理。
而sniffer就是一種能將本地nc狀態設成(promiscuous)狀態的軟體,當nc處於這種"混雜"方式時,該nc具備"廣播地址",它對所有遭遇到的每一個幀都產生一個硬體中斷以便提醒操作系統處理流經該物理媒體上的每一個報文包。(絕大多數的nc具備置成 promiscuous方式的能力)
可見,sniffer工作在網路環境中的底層,它會攔截所有的正在網路上傳送的數據,並且通過相應的軟體處理,可以實時分析這些數據的內容,進而分析所處的網路狀態和整體布局。值得注意的是:sniffer是極其安靜的,它是一種消極的安全攻擊。
通常sniffer所要關心的內容可以分成這樣幾類:
1、口令
我想這是絕大多數非法使用sniffer的理由,sniffer可以記錄到明文傳送的userid和passwd.就算你在網路傳送過程中使用了加密的數據,sniffer記錄的數據一樣有可能使入侵者在家裡邊吃肉串邊想辦法算出你的演算法。
2、金融帳號
許多用戶很放心在網上使用自己的信用卡或現金帳號,然而sniffer可以很輕松截獲在網上傳送的用戶姓名、口令、信用卡號碼、截止日期、帳號和pin.
3、偷窺機密或敏感的信息數據
通過攔截數據包,入侵者可以很方便記錄別人之間敏感的信息傳送,或者乾脆攔截整個的email會話過程。
4、窺探低級的協議信息。
這是很可怕的事,我認為,通過對底層的信息協議記錄,比如記錄兩台主機之間的網路介面地址、遠程網路介面ip地址、ip路由信息和tcp連接的位元組順序號碼等。這些信息由非法入侵的人掌握後將對網路安全構成極大的危害,通常有人用sniffer收集這些信息只有一個原因:他正在進行一次欺詐,(通常的ip地址欺詐就要求你准確插入tcp連接的位元組順序號,這將在以後整理的文章中指出)如果某人很關心這個問題,那麼sniffer對他來說只是前奏,今後的問題要大得多。(對於高級的hacker而言,我想這是使用sniffer的唯一理由吧)
二.sniffer的工作環境
snifffer就是能夠捕獲網路報文的設備。嗅探器的正當用處在於分析網路的流量,以便找出所關心的網路中潛在的問題。例如,假設網路的某一段運行得不是很好,報文的發送比較慢,而我們又不知道問題出在什麼地方,此時就可以用嗅探器來作出精確的問題判斷。
嗅探器在功能和設計方面有很多不同。有些只能分析一種協議,而另一些可能能夠分析幾百種協議。一般情況下,大多數的嗅探器至少能夠分析下面的協議:
1.標准乙太網
2.TCP/IP
3.IPX
4.DECNet
嗅探器通常是軟硬體的結合。專用的嗅探器價格非常昂貴。另一方面,免費的嗅探器雖然不需要花什麼錢,但得不到什麼支持。
嗅探器與一般的鍵盤捕獲程序不同。鍵盤捕獲程序捕獲在終端上輸入的鍵值,而嗅探器則捕獲真實的網路報文。嗅探器通過將其置身於網路介面來達到這個目的——例如將乙太網卡設置成雜收模式。(為了理解雜收模式是怎麼回事,先解釋區域網是怎麼工作的)。
數據在網路上是以很小的稱為幀(Ftame)的單位傳輸的幀由好幾部分組成,不同的部分執行不同的功能。(例如,乙太網的前12個位元組存放的是源和目的的地址,這些位告訴網路:數據的來源和去處。乙太網幀的其他部分存放實際的用戶數據、TCP/IP的報文頭或IPX報文頭等等)。
幀通過特定的稱為網路驅動程序的軟體進行成型,然後通過網卡發送到網線上。通過網線到達它們的目的機器,在目的機器的一端執行相反的過程。接收端機器的乙太網卡捕獲到這些幀,並告訴操作系統幀的到達,然後對其進行存儲。就是在這個傳輸和接收的過程中,嗅探器會造成安全方面的問題。
每一個在LAN上的工作站都有其硬體地址。這些地址唯一地表示著網路上的機器(這一點於Internet地址系統比較相似)。當用戶發送一個報文時,這些報文就會發送到LAN上所有可用的機器。
在一般情況下,網路上所有的機器都可以「聽」到通過的流量,但對不屬於自己的報文則不予響應(換句話說,工作站A不會捕獲屬於工作站B的數據,而是簡單的忽略這些數據)。
如果某在工作站的網路介面處於雜收模式,那麼它就可以捕獲網路上所有的報文和幀,如果一個工作站被配置成這樣的方式,它(包括其軟體)就是一個嗅探器。
嗅探器可能造成的危害:
1.嗅探器能夠捕獲口令
2.能夠捕獲專用的或者機密的信息
3.可以用來危害網路鄰居的安全,或者用來獲取更高級別的訪問許可權
事實上,如果你在網路上存在非授權的嗅探器就以為著你的系統已經暴露在別人面前了。(大家可以試試天行2的嗅探功能)
一般我們只嗅探每個報文的前200到300個位元組。用戶名和口令都包含在這一部分中,這是我們關心的真正部分。工人,也可以嗅探給定介面上的所有報文,如果有足夠的空間進行存儲,有足夠的那裡進行處理的話,將會發現另一些非常有趣的東西……
簡單的放置一個嗅探器賓將其放到隨便什麼地方將不會起到什麼作用。將嗅探器放置於被攻擊機器或網路附近,這樣將捕獲到很多口令,還有一個比較好的方法就是放在網關上。如果這樣的話就能捕獲網路和其他網路進行身份鑒別的過程。這樣的方式將成倍地增加我們能夠攻擊的范圍。
三.誰會使用sniffers
可能誰都回知道誰會使用sniffer,但是並不是每個使用它的人都是網路高手,因為現在有很多的sniffer都成了傻瓜似的了,前段時間用的最多的不外乎oicq sniffer。我想那些喜歡查好友ip的朋友都應該記得它吧。呵呵,我都使用過它,現在當然不用了啊!
當然系統管理員使用sniffer來分析網路信息交通並且找出網路上何處發生問題。一個安全管理員可以同時用多種sniffer, 將它們放置在網路的各處,形成一個入侵警報系統。對於系統管理員來說sniffer是一個非常好的工具,但是它同樣是一個經常被黑客使用的工具.駭客安裝sniffer以獲得用戶名和賬號,信用卡號碼,個人信息,和其他的信息可以導致對你或是你的公司的極大危害如果向壞的方面發展。當它們得到這些信息後,駭客將使用密碼來進攻其他的internet 站點甚至倒賣信用卡號碼。
三.sniffer是如何在網路上實施的
談這個問題之前還應該先說一下Ethernet的通訊。通常在同一個網段的所有網路介面都有訪問在媒體上傳輸的所有數據的能力,而每個網路介面都還應該有一個硬體地址,該硬體地址不同於網路中存在的其它網路介面的硬體地址,同時,每個網路至少還要一個廣播地址。在正常情況下,一個合法的網路介面應該只響應這樣的兩種數據幀:
1
⑼ 請問電腦處於sniffer狀態是什麼意識啊
sniffer是竊聽的意思,sniffer狀態應該就是竊聽狀態了
要更詳細的看下面,保證看到你頭大~哈哈
sniffers(嗅探器)幾乎和internet有一樣久的歷史了.Sniffer是一種常用的收集有用數據方法,這些數據可以是用戶的帳號和密碼,可以是一些商用機密數據等等。隨著Internet及電子商務的日益普及,Internet的安全也越來越受到重視。在Internet安全隱患中扮演重要角色之一的Sniffer以受到越來越大的關注,所以今天我要向大家介紹一下介紹Sniffer以及如何阻止sniffer。
大多數的黑客僅僅為了探測內部網上的主機並取得控制權,只有那些"雄心勃勃"的黑客,為了控制整個網路才會安裝特洛伊木馬和後門程序,並清除記錄。他們經常使用的手法是安裝sniffer。
在內部網上,黑客要想迅速獲得大量的賬號(包括用戶名和密碼),最為有效的手段是使用 "sniffer" 程序。這種方法要求運行Sniffer 程序的主機和被監聽的主機必須在同一個乙太網段上,故而在外部主機上運行sniffer是沒有效果的。再者,必須以root的身份使用sniffer 程序,才能夠監聽到乙太網段上的數據流。談到乙太網sniffer,就必須談到乙太網sniffing。
那麼什麼是乙太網sniffer呢?
乙太網sniffing是指對乙太網設備上傳送的數據包進行偵聽,發現感興趣的包。如果發現符合條件的包,就把它存到一個log文件中
去。通常設置的這些條件是包含字"username"或"password"的包。它的目的是將網路層放到promiscuous模式,從而能幹些事情。
Promiscuous模式是指網路上的所有設備都對匯流排上傳送的數據進行偵聽,並不僅僅是它們自己的數據。根據第二章中有關對乙太網的工作原理的基本介紹,可以知道:一個設備要向某一目標發送數據時,它是對乙太網進行廣播的。一個連到乙太網匯流排上的設備在任何時間里都在接受數據。不過只是將屬於自己的數據傳給該計算機上的應用程序。
利用這一點,可以將一台計算機的網路連接設置為接受所有以太
網匯流排上的數據,從而實現sniffer。
sniffer通常運行在路由器,或有路由器功能的主機上。這樣就能對大量的數據進行監控。sniffer屬第二層次的攻擊。通常是攻擊者已經進入了目標系統,然後使用sniffer這種攻擊手段,以便得到更多的信息。
sniffer除了能得到口令或用戶名外,還能得到更多的其他信息,比如一個其他重要的信息,在網上傳送的金融信息等等。sniffer幾乎能得到任何乙太網上的傳送的數據包。黑客會使用各種方法,獲得系統的控制權並留下再次侵入的後門,以保證sniffer能夠執行。在Solaris 2.x平台上,sniffer 程序通常被安裝在/usr/bin 或/dev目錄下。黑客還會巧妙的修改時間,使得sniffer程序看上去是和其它系統程序同時安裝的。
大多數乙太網sniffer程序在後台運行,將結果輸出到某個記錄文件中。黑客常常會修改ps程序,使得系統管理員很難發現運行的sniffer程序。
乙太網sniffer程序將系統的網路介面設定為混合模式。這樣,它就可以監聽到所有流經同一乙太網網段的數據包,不管它的接受者或發送者是不是運行sniffer的主機。 程序將用戶名、密碼和其它黑客感興趣的數據存入log文件。黑客會等待一段時間 ----- 比如一周後,再回到這里下載記錄文件。
講了這么多,那麼到底我們可以用什麼通俗的話來介紹sniffer呢?
計算機網路與電話電路不同,計算機網路是共享通訊通道的。共享意味著計算機能夠接收到發送給其它計算機的信息。捕獲在網路中傳輸的數據信息就稱為sniffing(竊聽)。
乙太網是現在應用最廣泛的計算機連網方式。乙太網協議是在同一迴路向所有主機發送數據包信息。數據包頭包含有目標主機的正確地址。一般情況下只有具有該地址的主機會接受這個數據包。如果一台主機能夠接收所有數據包,而不理會數據包頭內容,這種方式通常稱為"混雜" 模式。
由於在一個普通的網路環境中,帳號和口令信息以明文方式在乙太網中傳輸, 一旦入侵者獲得其中一台主機的root許可權,並將其置於混雜模式以竊聽網路數據,從而有可能入侵網路中的所有計算機。
一句話,sniffer就是一個用來竊聽的黑客手段和工具。
二、sniffer的工作原理
通常在同一個網段的所有網路介面都有訪問在物理媒體上傳輸的所有數據的能力,而每個網路介面都還應該有一個硬體地址,該硬體地址不同於網路中存在的其他網路介面的硬體地址,同時,每個網路至少還要一個廣播地址。(代表所有的介面地址),在正常情況下,一個合法的網路介面應該只響應這樣的兩種數據幀:
1、幀的目標區域具有和本地網路介面相匹配的硬體地址。
2、幀的目標區域具有"廣播地址"。
在接受到上面兩種情況的數據包時,nc通過cpu產生一個硬體中斷,該中斷能引起操作系統注意,然後將幀中所包含的數據傳送給系統進一步處理。
而sniffer就是一種能將本地nc狀態設成(promiscuous)狀態的軟體,當nc處於這種"混雜"方式時,該nc具備"廣播地址",它對所有遭遇到的每一個幀都產生一個硬體中斷以便提醒操作系統處理流經該物理媒體上的每一個報文包。(絕大多數的nc具備置成 promiscuous方式的能力)
可見,sniffer工作在網路環境中的底層,它會攔截所有的正在網路上傳送的數據,並且通過相應的軟體處理,可以實時分析這些數據的內容,進而分析所處的網路狀態和整體布局。值得注意的是:sniffer是極其安靜的,它是一種消極的安全攻擊。
通常sniffer所要關心的內容可以分成這樣幾類:
1、口令
我想這是絕大多數非法使用sniffer的理由,sniffer可以記錄到明文傳送的userid和passwd.就算你在網路傳送過程中使用了加密的數據,sniffer記錄的數據一樣有可能使入侵者在家裡邊吃肉串邊想辦法算出你的演算法。
2、金融帳號
許多用戶很放心在網上使用自己的信用卡或現金帳號,然而sniffer可以很輕松截獲在網上傳送的用戶姓名、口令、信用卡號碼、截止日期、帳號和pin.
3、偷窺機密或敏感的信息數據
通過攔截數據包,入侵者可以很方便記錄別人之間敏感的信息傳送,或者乾脆攔截整個的email會話過程。
4、窺探低級的協議信息。
這是很可怕的事,我認為,通過對底層的信息協議記錄,比如記錄兩台主機之間的網路介面地址、遠程網路介面ip地址、ip路由信息和tcp連接的位元組順序號碼等。這些信息由非法入侵的人掌握後將對網路安全構成極大的危害,通常有人用sniffer收集這些信息只有一個原因:他正在進行一次欺詐,(通常的ip地址欺詐就要求你准確插入tcp連接的位元組順序號,這將在以後整理的文章中指出)如果某人很關心這個問題,那麼sniffer對他來說只是前奏,今後的問題要大得多。(對於高級的hacker而言,我想這是使用sniffer的唯一理由吧)
二.sniffer的工作環境
snifffer就是能夠捕獲網路報文的設備。嗅探器的正當用處在於分析網路的流量,以便找出所關心的網路中潛在的問題。例如,假設網路的某一段運行得不是很好,報文的發送比較慢,而我們又不知道問題出在什麼地方,此時就可以用嗅探器來作出精確的問題判斷。
嗅探器在功能和設計方面有很多不同。有些只能分析一種協議,而另一些可能能夠分析幾百種協議。一般情況下,大多數的嗅探器至少能夠分析下面的協議:
1.標准乙太網
2.TCP/IP
3.IPX
4.DECNet
嗅探器通常是軟硬體的結合。專用的嗅探器價格非常昂貴。另一方面,免費的嗅探器雖然不需要花什麼錢,但得不到什麼支持。
嗅探器與一般的鍵盤捕獲程序不同。鍵盤捕獲程序捕獲在終端上輸入的鍵值,而嗅探器則捕獲真實的網路報文。嗅探器通過將其置身於網路介面來達到這個目的——例如將乙太網卡設置成雜收模式。(為了理解雜收模式是怎麼回事,先解釋區域網是怎麼工作的)。
數據在網路上是以很小的稱為幀(Ftame)的單位傳輸的幀由好幾部分組成,不同的部分執行不同的功能。(例如,乙太網的前12個位元組存放的是源和目的的地址,這些位告訴網路:數據的來源和去處。乙太網幀的其他部分存放實際的用戶數據、TCP/IP的報文頭或IPX報文頭等等)。
幀通過特定的稱為網路驅動程序的軟體進行成型,然後通過網卡發送到網線上。通過網線到達它們的目的機器,在目的機器的一端執行相反的過程。接收端機器的乙太網卡捕獲到這些幀,並告訴操作系統幀的到達,然後對其進行存儲。就是在這個傳輸和接收的過程中,嗅探器會造成安全方面的問題。
每一個在LAN上的工作站都有其硬體地址。這些地址唯一地表示著網路上的機器(這一點於Internet地址系統比較相似)。當用戶發送一個報文時,這些報文就會發送到LAN上所有可用的機器。
在一般情況下,網路上所有的機器都可以「聽」到通過的流量,但對不屬於自己的報文則不予響應(換句話說,工作站A不會捕獲屬於工作站B的數據,而是簡單的忽略這些數據)。
如果某在工作站的網路介面處於雜收模式,那麼它就可以捕獲網路上所有的報文和幀,如果一個工作站被配置成這樣的方式,它(包括其軟體)就是一個嗅探器。
嗅探器可能造成的危害:
1.嗅探器能夠捕獲口令
2.能夠捕獲專用的或者機密的信息
3.可以用來危害網路鄰居的安全,或者用來獲取更高級別的訪問許可權
事實上,如果你在網路上存在非授權的嗅探器就以為著你的系統已經暴露在別人面前了。(大家可以試試天行2的嗅探功能)
一般我們只嗅探每個報文的前200到300個位元組。用戶名和口令都包含在這一部分中,這是我們關心的真正部分。工人,也可以嗅探給定介面上的所有報文,如果有足夠的空間進行存儲,有足夠的那裡進行處理的話,將會發現另一些非常有趣的東西……
簡單的放置一個嗅探器賓將其放到隨便什麼地方將不會起到什麼作用。將嗅探器放置於被攻擊機器或網路附近,這樣將捕獲到很多口令,還有一個比較好的方法就是放在網關上。如果這樣的話就能捕獲網路和其他網路進行身份鑒別的過程。這樣的方式將成倍地增加我們能夠攻擊的范圍。
三.誰會使用sniffers
可能誰都回知道誰會使用sniffer,但是並不是每個使用它的人都是網路高手,因為現在有很多的sniffer都成了傻瓜似的了,前段時間用的最多的不外乎oicq sniffer。我想那些喜歡查好友ip的朋友都應該記得它吧。呵呵,我都使用過它,現在當然不用了啊!
當然系統管理員使用sniffer來分析網路信息交通並且找出網路上何處發生問題。一個安全管理員可以同時用多種sniffer, 將它們放置在網路的各處,形成一個入侵警報系統。對於系統管理員來說sniffer是一個非常好的工具,但是它同樣是一個經常被黑客使用的工具.駭客安裝sniffer以獲得用戶名和賬號,信用卡號碼,個人信息,和其他的信息可以導致對你或是你的公司的極大危害如果向壞的方面發展。當它們得到這些信息後,駭客將使用密碼來進攻其他的internet 站點甚至倒賣信用卡號碼。
三.sniffer是如何在網路上實施的
談這個問題之前還應該先說一下Ethernet的通訊。通常在同一個網段的所有網路介面都有訪問在媒體上傳輸的所有數據的能力,而每個網路介面都還應該有一個硬體地址,該硬體地址不同於網路中存在的其它網路介面的硬體地址,同時,每個網路至少還要一個廣播地址。在正常情況下,一個合法的網路介面應該只響應這樣的兩種數據幀:
1
⑽ [高分懸賞]wireshark捕捉阿里旺旺數據包
實時捕捉數據包時Wireshar的特色之一
Wiershark捕捉引擎具備以下特點
支持多種網路介面的捕捉(乙太網,令牌環網,ATM...)
支持多種機制觸發停止捕捉,例如:捕捉文件的大小,捕捉持續時間,捕捉到包的數量...
捕捉時同時顯示包解碼詳情
設置過濾,減少捕捉到包的容量。見第 4.8 節 「捕捉時過濾」
長時間捕捉時,可以設置生成多個文件。對於特別長時間的捕捉,可以設置捕捉文件大小罰值,設置僅保留最後的N個文件等手段。見第 4.6 節 「捕捉文件格式、模式設置」
Wireshark捕捉引擎在以下幾個方面尚有不足
從多個網路介面同時實時捕捉,(但是您可以開始多個應用程序實體,捕捉後進行文件合並)
根據捕捉到的數據停止捕捉(或其他操作)
4.2. 准備工作
第一次設置Wireshark捕捉包可能會遇到一些小麻煩
這里有一些常見需要注意的地方
你必須擁有root/Administrator特權以開始捕捉[12]
必須選擇正確的網路介面捕捉數據
如果您想捕捉某處的通信,你必須作出決定:在什麼地方可以捕捉到
……以及許多
如果你碰到設置問題,建議看看前面的那個向導,或許會有所幫助
4.3. 開始捕捉
可以使用下任一方式開始捕捉包
使用打開捕捉介面對話框,瀏覽可用的本地網路介面,見圖 4.1 「"Capture Interfaces"捕捉介面對話框」,
選擇您需要進行捕捉的介面啟動捕捉
你也可以使用"捕捉選項"按鈕啟動對話框開始捕捉,見圖 4.2 「"Capture Option/捕捉選項"對話框」
如果您前次捕捉時的設置和現在的要求一樣,您可以點擊"開始捕捉"按鈕或者是菜單項立即開始本次捕捉。
如果你已經知道捕捉介面的名稱,可以使用如下命令從命令行開始捕捉:
wireshark -i eth0 -k
上述命令會從eht0介面開始捕捉,有關命令行的介紹參見第 9.2 節 「從命令行啟動Wireshark」
4.4. 捕捉介面對話框
如果您從捕捉菜單選擇"Interface...",將會彈出如圖 4.1 「"Capture Interfaces"捕捉介面對話框」所示的對話框
圖 4.1. "Capture Interfaces"捕捉介面對話框
描述
從操作系統獲取的介面信息
IP
Wireshark能解析的第一個IP地址,如果介面未獲得IP地址(如,不存在可用的DHCP伺服器),將會顯示"Unkow",如果有超過一個IP的,只顯示第一個(無法確定哪一個會顯示).
Packets
打開該窗口後,從此介面捕捉到的包的數目。如果一直沒有接收到包,則會顯示為灰度
Packets/s
最近一秒捕捉到包的數目。如果最近一秒沒有捕捉到包,將會是灰度顯示
Stop
停止當前運行的捕捉
Capture
從選擇的介面立即開始捕捉,使用最後一次捕捉的設置。
Options
打開該介面的捕捉選項對話框,見 第 4.5 節 「捕捉選項對話框」
Details(僅Win32系統)
打開對話框顯示介面的詳細信息
Close
關閉對話框
4.5. 捕捉選項對話框
如果您從捕捉菜單選擇"start..."按鈕(或者從主工具欄選擇對應的項目),Wireshark彈出"Capture Option/捕捉選項"對話框。如圖 4.2 「"Capture Option/捕捉選項"對話框」所示
圖 4.2. "Capture Option/捕捉選項"對話框
你可以用對話框中的如下欄位進行設置
4.5.1. 捕捉楨
Interface
該欄位指定你想用於進行捕捉的借口。一次只能使用一個介面。這是一個下拉列表,簡單點擊右側的按鈕,選擇你想要使用的介面。默認第一是支持捕捉的non-loopback(非環回)介面,如果沒有這樣的介面,第一個將是環回介面。在某些系統中,回借口不支持捕捉包(windows平台下的環回介面就不支持。)
在命令行使用-i <interface>參數可以替代該選項
IP address
表示選擇介面的IP地址。如果系統未指定IP地址,將會顯示為"unknown"
Link-layer header type
除非你有些特殊應用,盡量保持此選項默認。想了解更多詳情,見 第 4.7 節 「鏈路層包頭類型」
Buffer size: n megabyte(s)
輸入用於捕捉的緩層大小。該選項是設置寫入數據到磁碟前保留在核心緩存中捕捉數據的大小,如果你發現丟包。嘗試增大該值。
Capture packets in promiscuous mode
指定Wireshark捕捉包時,設置介面為雜收模式(有些人翻譯為混雜模式)。如果你未指定該選項,Wireshark 將只能捕捉進出你電腦的數據包(不能捕捉整個區域網段的包)[13]
Limit each packet to n bytes
指定捕捉過程中,每個包的最大位元組數。在某些地方被稱為。"snaplen".[14]如果禁止該選項,默認值為65535,這適用於大多數協議,下面是一些大多數情況下都適用的規則(這里又出現了拇指規則,第一章,系統需求時提到過。這里權且翻譯作普適而非絕對的規則))
· 如果你不確定,盡量保持默認值
· 如果你不需要包中的所有數據。例如:如果您僅需要鏈路層、IP和TCP包頭,您可能想要選擇一個較小的快照長度。這樣只需要較少的cpu佔用時間用於復制包,包需要的緩存也較少。如此在繁忙網路中捕捉時丟失的包也可能會相應少一點。
· 如果你沒有捕捉包中的所有數據(適用snpaplen截斷了包),你可能會發現有時候你想要的包中的數據部分被截斷丟棄了。或者因為缺少重要的部分,想對某些包進行重組而發現失敗。
Capture Filter
指定捕捉過濾。捕捉過濾器將會在有第 4.8 節 「捕捉時過濾」詳細介紹,默認情況下是空的。
同樣你也可以點擊捕捉按鈕,通過彈出的捕捉過濾對話框創建或選擇一個過濾器,詳見第 6.6 節 「定義,保存過濾器」
4.5.2. 捉數據幀為文件。
捕捉文件設置的使用方法的詳細介紹見第 4.6 節 「捕捉文件格式、模式設置」
File
指定將用於捕捉的文件名。該欄位默認是空白。如果保持空白,捕捉數據將會存儲在臨時文件夾。詳見第 4.6 節 「捕捉文件格式、模式設置」
你可以點擊右側的按鈕打開瀏覽窗口設置文件存儲位置
Use multiple files
如果指定條件達到臨界值,Wireshark將會自動生成一個新文件,而不是適用單獨文件。
Next file every n megabyte(s)
僅適用選中Use multiple files,如果捕捉文件容量達到指定值,將會生成切換到新文件
Next file every n minutes(s)
僅適用選中Use multiple files,如果捕捉文件持續時間達到指定值,將會切換到新文件。
Ring buffer with n files
僅適用選中Use multiple files,僅生成制定數目的文件。
Stop caputure after n file(s)
僅適用選中Use multiple files,當生成指定數目文件時,在生成下一個文件時停止捕捉(生成n個還是n+1個文件?)
4.5.3. 停止捕捉楨
... after n packet(s)
在捕捉到指定數目數據包後停止捕捉
... after n megabytes(s)
在捕捉到指定容量的數據(byte(s)/kilobyte(s)/megabyte(s)/gigabyte(s) )後停止捕捉。如果沒有適用"user multiple files",該選項將是灰色
... after n minute(s)
在達到指定時間後停止捕捉
4.5.4. 顯示楨選項
Update list of packets in real time
在包列表面板實時更新捕捉數據。如果未選定該選項,在Wireshark捕捉結束之前將不能顯示數據。如果選中該選項,Wireshark將生成兩個獨立的進程,通過捕捉進程傳輸數據給顯示進程。
Automatic scrolling in live capture
指定Wireshark在有數據進入時實時滾動包列表面板,這樣您將一直能看到最近的包。反之,則最新數據包會被放置在行末,但不會自動滾動面板。如果未設置"update list of packets in real time",該選項將是灰色不可選的。
Hide capture info dialog
選中該選項,將會隱藏捕捉信息對話框
4.5.5. 名稱解析設置
Enable MAC name resolution
設置是否讓Wireshark翻譯MAC地址為名稱,見第 7.6 節 「名稱解析」
Enable network name resolution
是否允許Wireshark對網路地址進行解析,見第 7.6 節 「名稱解析」
4.5.6. 按鈕
進行完上述設置以後,你可以點擊start按鈕進行捕捉,也可以點擊Cancel退出捕捉.
開始捕捉以後,在你收集到足夠的數據時你可以停止捕捉。見第 4.9 節 「在捕捉過程中」
4.6. 捕捉文件格式、模式設置
在 捕捉時,libpcap 捕捉引擎(linux環境下)會抓取來自網卡的包存放在(相對來說)較小的核心緩存內。這些數據由Wireshark讀取並保存到用戶指定的捕捉文件中。
保存包數據到捕捉文件時,可採用差異模式操作。
表 4.1. 捕捉文件模式選項
"File"選項
"Use multiple files"選項
"Ring buffer with n files"選項
Mode
最終文件命名方式
-
-
-
Single temporary file
etherXXXXXX (where XXXXXX 是一個獨立值)
foo.cap
-
-
Single named file
foo.cap
foo.cap
x
-
Multiple files,continuous
foo_00001_20040205110102.cap, foo_00002_20040205110102.cap, ...
foo.cap
x
x
Multiple files,ring buffer
foo_00001_20040205110102.cap, foo_00002_20040205110102.cap, ...
Single temporary file
將會創建並使用一個臨時文件(默認選項).捕捉文件結束後,該文件可以由用戶指定文件名。
Single named file
使用單獨文件,如果你想放到指定目錄,選擇此模式
Multiple files,continuous
與single name file模式類似,不同點在於,當捕捉達到多文件切換臨界條件時之一時,會創建一個新文件用於捕捉
Multiple files,ring buffer
與"multiple files continuous"模式類似,不同之處在於,創建的文件數目固定。當達到ring buffer with n值時,會替換掉第一個文件開始捕捉,如此循環往復。
該模式可以限制最大磁碟空間使用量,即使未限制捕捉數據輸入,也只能保留最後幾個捕捉數據。
4.7. 鏈路層包頭類型
在通常情況下,你不需要選擇鏈路層包頭類型。下面的段落描述了例外的情況,此時選擇包頭類型是有必要的,所以你需要知道怎麼做:
如果你在某種版本BSD操作系統下從某種802.11 設備(無線區域網設備)捕捉數據,可能需要在"802.11"和"Ethernet"中做出選擇。"Ethernet"將會導致捕捉到的包帶有偽乙太網幀頭(不知道是不是應該叫偽首部更准確些);"802.11"將會導致他們帶有802.11幀頭。如果捕捉時的應用程序不支持"802.11幀頭",你需要選擇"802.11"
如果你使用Endace DAG card(某種網路監視卡)連接到同步串口線(譯者註:E文為synchronous serial line,權且翻譯作前文吧,未接觸過此卡、未熟稔此線名稱),可能會出現"PPP over serial" 或 "Cisco HDLC"(自己google去)供選擇。根據你自己的情況選擇二者中的一個。
如果你使用Endace DAG card(同上)連接到ATM網路,將會提供"RFC 1483 IP-over-ATM"、"Sun raw ATM"供選擇。如果捕捉的通信是RFC 1483封裝IP(RFC 1483 LLC-encapsulated IP,不翻譯為妙),或者需要在不支持SunATM幀頭的應用程序下捕捉,選擇前者。反之選擇後者。
如果你在乙太網捕捉,將會提供"Ethernet"、"DOCSIS"供選擇,如果您是在Cisco Cable Modem Termination System(CMTS是思科同軸電纜終端調制解調系統?)下捕捉數據。它會將DOCSIS(同軸電纜數據服務介面)通信放置到乙太網中,供捕捉。此時需要選擇"DOCSIS",反之則反之。
4.8. 捕捉時過濾
Wireshark使用libpcap過濾語句進行捕捉過濾(what about winpcap?)。在tcpmp主頁有介紹,但這些只是過於晦澀難懂,所以這里做小幅度講解。
在Wireshark捕捉選項對話(見圖 4.2 「"Capture Option/捕捉選項"對話框」)框輸入捕捉過濾欄位。下面的語句有點類似於tcpmp捕捉過濾語言。在tcpmp主頁http://www.tcpmp.org/tcpmp_man.html可以看到tcpmp表達式選項介紹。
捕捉過濾的形式為:和取值(and/or)進行進行基本單元連接,加上可選的,高有限級的not:
[not] primitive [and|or [not] primitive ...]
例 4.1. 捕捉來自特定主機的telnet協議
tcp port 23 and host 10.0.0.5
本例捕捉來自或指向主機10.0.0.5的Telnet 通信,展示了如何用and連接兩個基本單元。另外一個例子例 4.2 「捕捉所有不是來自10.0.0.5的telnet 通信」展示如何捕捉所有不是來自10.0.0.5的telnet 通信。
例 4.2. 捕捉所有不是來自10.0.0.5的telnet 通信
tcp host 23 and not src host 10.0.0.5
此處筆者建議增加更多範例。但是並沒有添加。
一個基本單元通常是下面中的一個
[src|dst] host <host>
此基本單元允許你過濾主機ip地址或名稱。你可以優先指定src|dst關鍵詞來指定你關注的是源地址還是目標地址。如果未指定,則指定的地址出現在源地址或目標地址中的包會被抓取。
ether [src|dst] host <ehost>
此單元允許你過濾主機乙太網地址。你可以優先指定關鍵詞src|dst在關鍵詞ether和host之間,來確定你關注的是源地址還是目標地址。如果未指定,同上。
gateway host<host>
過濾通過指定host作為網關的包。這就是指那些乙太網源地址或目標地址是host,但源ip地址和目標ip地址都不是host的包
[src|dst] net <net> [{mask<mask>}|{len <len>}]
通過網路號進行過濾。你可以選擇優先指定src|dst來確定你感興趣的是源網路還是目標網路。如果兩個都沒指定。指定網路出現在源還是目標網路的都會被選擇。另外,你可以選擇子網掩碼或者CIDR(無類別域形式)。
[tcp|udp] [src|dst] port <port]
過濾tcp,udp及埠號。可以使用src|dst和tcp|udp關鍵詞來確定來自源還是目標,tcp協議還是udp協議。tcp|udp必須出現在src|dst之前。
less|greater <length>
選擇長度符合要求的包。(大於等於或小於等於)
ip|ether proto <protocol>
選擇有指定的協議在乙太網層或是ip層的包
ether|ip broadcast|multicast
選擇乙太網/ip層的廣播或多播
<expr> relop <expr>
創建一個復雜過濾表達式,來選擇包的位元組或位元組范圍符合要求的包。請參考http://www.tcpmp.org/tcpmp_man.html
4.8.1. 自動過濾遠程通信
如果Wireshark是使用遠程連接的主機運行的(例如使用SSH,X11 Window輸出,終端伺服器),遠程連接必須通過網路傳輸,會在你真正感興趣的通信中產生大量數據包(通常也是不重要的)
想要避免這種情況,wireshark可以設置為如果發現有遠程連接(通過察看指定的環境變數),自動創建一個過濾器來匹配這種連接。以避免捕捉Wireshark捕捉遠程連接通信。
下列環境變數可以進行分析
SSH——CONNECTION(ssh)
<remote IP> <remote port> <local IP> <local port>
SSH_CLIENT (ssh)
<remote IP> <remote port> <local port>
REMOTEHOST (tcsh, others?)
<remote name>
DISPLAY (x11)
[remote name]:<display num>
SESSIONNAME (terminal server)
<remote name>
4.9. 在捕捉過程中
捕捉時,會出現下面的對話框
圖 4.3. 捕捉信息對話框
上述對話框會向你顯示捕捉到包的數目,捕捉持續時間。選擇的被統計的協議無法更改(什麼鳥意思?)
4.9.1. 停止捕捉
運行中的捕捉線程可以用下列方法停止:
使用捕捉信息對話框上的"stop"按鈕停止。
使用菜單項"Capture/ Stop"
使用工具欄項" Stop"
使用快捷鍵:Ctrl+E
如果設置了觸發停止的條件,捕捉達到條件時會自動停止。
4.9.2. 重新啟動捕捉
運行中的捕捉進程可以被重新啟動。這將會移出上次捕捉的所有包。如果你捕捉到一些你不感興趣的包,你不想保留它,這個功能十分有用。
重新啟動是一項方便的功能,類似於停止捕捉後,在很短的時間內立即開始捕捉。以下兩種方式可以實現重新啟動捕捉:
使用菜單項"Capture/ Restart"
使用工具欄項" Restart"
[12] 記得在Windows安裝那一節層提到如果作為服務啟動可以避免非管理員無法進行捕捉,不知道二者能否相互印證。
[13] 網卡在區域網內會接到很多不屬於自己的包,默認情況下,網卡會不對這些包進行處理。貌似設置為雜收模式,Wireshak會監聽所有的包,但並不作出相應。
[14] 粗略查了一下,未找到該詞的合適翻譯,多見於Winpcap的描述,如果把該單詞拆分,snap:單元,快照,len:長度,似乎就是單位長度,單元大小的意思。在看看該段下面第二個如果中提到的snapshot length,snaplen應該是二者的簡寫形式,快照長度