《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 在Linux下利用C語言來實現一個Sniffer的方法簡介
在Linux下利用C語言來實現一個Sniffer的方法簡介
摘要: 在這篇文章里,我們主要探討在Linux下如何利用C語言來實現一個Sniffer!我們將假設所有的主機在一個局域網內。
關鍵詞: 軟件 Linux C語言
Abstract:
Key words :

 

 

Sniffer技術是網絡安全領域里一項非常重要的技術!對于“Hacker”來說,他們可以以非常隱蔽的方式得到網絡中傳輸的大量的敏感信息,如 Telnet,ftp帳號和密碼等等明文傳送的信息!與主動掃描相比,嗅探的行為更加難以被察覺,操作起來也不是很復雜!對于網絡管理人員來說,可以利用嗅探技術對網絡活動進行監控,并及時發現各種攻擊行為!

 

在這篇文章里,我們主要探討在Linux下如何利用C語言來實現一個Sniffer!我們將假設所有的主機在一個局域網內。

首先,我們將簡短的回顧一下一個普通的以太網卡是怎么工作的!(如果你對這方面的知識早已熟悉,那么你可以直接跳到下一段)來源于應用程序的IP報文被封裝成以太網幀(這是在以太網上傳播的數據報文的名稱),它是底層鏈路層報文上面的一層報文,包含有源地址報文和一些需要用來傳送至目標主機的信息。通常情況下,目的IP地址對應著一個6字節的目的以太網址(經常叫做MAC地址),它們之間通過ARP協議進行映射!就這樣,包含著以太網幀的報文從源主機傳輸到目的主機,中間經過一些網絡設備,如交換機,路由器等等,當然,因為我們的前提是主機在同一網內,所以我們的討論不涉及以上這些網絡設備!

在鏈路層中并不存在路線的概念,換句話說,源主機發出的幀不會直接指向目的主機,而是基于廣播方式傳播,網絡中的所有網卡都能看到它的傳輸。每個網卡會檢查幀開始的6個字節(目的主機的MAC地址),但是只有一個網卡會發現自己的地址和其相符合,然后它接收這個幀,這個幀會被網絡驅動程序分解,原來的IP 報文將通過網絡協議棧傳送至接收的應用程序!

更準確的說,網絡驅動程序會檢查幀中報文頭部的協議標識,以確定接收數據的上層協議!大多數情況下,上層是IP協議,所以接收機制將去掉IP報文頭部,然后把剩下的傳送至UDP或者TCP接收機制!這些協議,將把報文送到SOCKET-handling機制,它將最后把報文數據變成應用程序可接收的方式發送出去。在這個過程中,報文將失去所有的和其有關的網絡信息,比如源地址(IP和MAC),端口號,IP選擇,TCP參數等等!所以如果目的主機沒有一個包含正確參數的打開端口,那么這個報文將被丟棄而且永遠不會被送到應用層去!

因此我們在進行網絡嗅探的時候有兩個不同的問題:一個和以太網址有關,我們不能抓到不是發給自己主機的包,另一個和協議棧的運行過程有關,我們需要一個socket去*每個端口,得到那些沒有被丟棄的報文!

第一個問題不是最根本的,因為我們可能不會對發往其他主機的報文有興趣而只想嗅探所有發往自己主機的報文。第二個問題是必須要解決的,下面我們將看到這個問題是怎么樣一步一步解決的!

當你打開一個標準的SOCKET套接字時,你需要指明你將使用哪個協議簇,大多數情況下我們一般用PF_UNIX在本地機器間進行通信,PF_INET在基于IPv4協議簇基礎之上進行通信,你還需要指明所用的協議類型及與協議簇相關的確切數值,,在PF_INET協議簇中,常用的有 SOCK_STREAM(與TCP相關),SOCK_DGRAM(與UDP相關)。在把報文發送到應用程序前內核對其的處理與SOCKET類型有關,你指定的協議將處理報文在SOCKET的傳輸!(具體細節問題你可以man socket(3))

在LINUX內核版本中(2.0 releases),一個名為PF_PACKET的協議簇被加了進來!這個簇允許應用程序直接利用網絡驅動程序發送和接收報文,避免了原來的協議棧處理過程,在這種情況下,所有SOCKET發出的報文直接送到以太網卡接口,而接口收到的任何報文將直接送到應用程序The PF_PACKET協議簇支持兩個稍微有點不同的SOCKET類型,SOCK_DGRAM和SOCK_RAW。

前者讓內核處理添加或者去除以太網報文頭部工作,而后者則讓應用程序對以太網報文頭部有完全的控制!在SOCKET調用中的協議類型必須符合/usr /include/linux/if_ether.h中定義的以太網IDs中的一個,除非遇到特別聲明的協議,一般你可以用ETH_P_IP來處理IP的一組協議(TCP,UDP,ICMP,raw IP等等)因為它們容易受到一些很嚴重的安全問題的牽連(比如你可以偽造一個MAC地址),所以只有具有root權限才可以使用PF_PACKET- familysocket.這也就是為什么只有具有root權限后才能運行嗅探器的原因!

PF_PACKET-family 協議簇可以很容易解決協議棧處理嗅探來的數據報文時候遇到的問題!我們一起來看看程序1,我們打開一個屬于PF_PACKET-family 協議簇的SOCKET,指定一個SOCK_RAW socket類型和IP相關協議類型。這時我們開始從SOCKET抓包,在一些相關檢查后.我們開始得到從鏈路層和IP層抓來的頭部信息,。通過閱讀程序一,你將會發現讓應用程序從網絡層抓包其實并不難!

Example 1.

#include

#include

#include

#include

#include

#include

#include

int main(int argc, char **argv) {

int sock, n;

char buffer[2048];

unsigned char *iphead, *ethhead;

if ( (sock=socket(PF_PACKET, SOCK_RAW,

htons(ETH_P_IP)))<0) {

perror("socket");

exit(1);

}

while (1) {

printf("----------n");

n = recvfrom(sock,buffer,2048,0,NULL,NULL);

printf("%d bytes readn",n);

/* Check to see if the packet contains at least

* complete Ethernet (14), IP (20) and TCP/UDP

* (8) headers.

*/

if (n<42) {

perror("recvfrom():");

printf("Incomplete packet (errno is %d)n",

errno);

close(sock);

exit(0);

}

ethhead = buffer;

printf("Source MAC address: "

"%02x:%02x:%02x:%02x:%02x:%02xn",

ethhead[0],ethhead[1],ethhead[2],

ethhead[3],ethhead[4],ethhead[5]);

printf("Destination MAC address: "

"%02x:%02x:%02x:%02x:%02x:%02xn",

ethhead[6],ethhead[7],ethhead[8],

ethhead[9],ethhead[10],ethhead[11]);

iphead = buffer+14; /* Skip Ethernet header */

if (*iphead==0x45) { /* Double check for IPv4

* and no options present */

printf("Source host %d.%d.%d.%dn",

iphead[12],iphead[13],

iphead[14],iphead[15]);

printf("Dest host %d.%d.%d.%dn",

iphead[16],iphead[17],

iphead[18],iphead[19]);

printf("Source,Dest ports %d,%dn",

(iphead[20]<<8)+iphead[21],

(iphead[22]<<8)+iphead[23]);

printf("Layer-4 protocol %dn",iphead[9]);

}

}

}

PF_PACKET協議簇可以讓一個應用程序把數據包變成似乎從網絡層接收的樣子,但是沒有辦法抓到那些不是發向自己主機的包。正如我們前面看到的,網卡丟棄所有不含有主機MAC地址的數據包,這是因為網卡處于非混雜模式,即每個網卡只處理源地址是它自己的幀!

只有三個例外:如果一個幀的目的MAC地址是一個受限的廣播地址(255.255.255.255)那么它將被所有的網卡接收:如果一個幀的目的地址是組播地址,那么它將被那些打開組播接收功能的網卡所接收;網卡如被設置成混雜模式,那么它將接收所有流經它的數據包最后一種情況當然是我們最感興趣的了,把網卡設置成混雜模式,我們只需要發出一個特殊的ioctl()調用在那個網卡上打開一個socket,因為這是一個具有危險性的操作,所以這個調用只有具有root權限的用戶才可完成,假設那個“sock”包含一個已經打開的socket。

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          国产美女精品免费电影| 国产精品久在线观看| 久久久久久亚洲综合影院红桃| 性色一区二区| 国产精品久久一卡二卡| 国产精品夜色7777狼人| 在线观看不卡av| 久久久精品午夜少妇| 亚洲最快最全在线视频| 亚洲人成亚洲人成在线观看| 国产日韩一级二级三级| 国产亚洲精品综合一区91| 欧美日韩影院| 国产中文一区二区| 亚洲欧美成aⅴ人在线观看| 亚洲福利视频网站| 国产精品久久久一区二区三区| 亚洲午夜国产一区99re久久| 欧美高清一区二区| 亚洲综合另类| 永久555www成人免费| 欧美高清视频在线| 久久精品二区亚洲w码| 欧美日韩一区二区免费视频| 激情91久久| 欧美一区二区三区四区在线| 影音先锋日韩有码| 久久精品视频免费观看| 在线一区欧美| 国产乱码精品一区二区三区不卡| 午夜日韩福利| 狠狠色丁香婷综合久久| 每日更新成人在线视频| 9人人澡人人爽人人精品| 一区二区国产在线观看| 午夜精品网站| 国内自拍亚洲| 久久成人资源| 欧美中文在线字幕| 亚洲一区二区精品| 一区二区高清在线| 狠狠88综合久久久久综合网| 一区二区在线观看视频在线观看| 欧美亚洲一区二区在线| 久久不射2019中文字幕| 欧美日韩中国免费专区在线看| 亚洲国产精品久久| 亚洲尤物在线视频观看| 欧美日韩ab片| 亚洲欧美日韩国产成人| 亚洲欧洲另类国产综合| 亚洲一区在线免费观看| 亚洲美女精品久久| 99国内精品久久久久久久软件| 国产噜噜噜噜噜久久久久久久久| 亚洲国产日韩一区| 国产精品进线69影院| 欧美午夜国产| 国产精品自拍小视频| 免费观看成人网| 欧美高清在线一区| 免费看精品久久片| 一区二区三区在线观看欧美| 国产精品高潮呻吟| 久久久久se| 国产精品极品美女粉嫩高清在线| 欧美日韩国产美女| 亚洲欧美日韩视频一区| 国产精品v欧美精品v日韩| 亚洲黄色在线看| 噜噜噜躁狠狠躁狠狠精品视频| 国产一区三区三区| 久久九九热re6这里有精品| 欧美日本免费| 欧美日韩dvd在线观看| 久久久久一区| 一区二区福利| 女仆av观看一区| 亚洲第一在线视频| 中文欧美字幕免费| 蜜臀av性久久久久蜜臀aⅴ四虎| 国产精品欧美日韩一区| 玖玖玖国产精品| 在线精品国精品国产尤物884a| 亚洲字幕一区二区| 国产精品美女久久福利网站| 欧美aⅴ99久久黑人专区| 欧美xart系列高清| 欧美阿v一级看视频| 欧美国产丝袜视频| 在线观看视频一区二区| 欧美精品在线免费观看| 国产乱码精品一区二区三区不卡| 国产精品久久久久久户外露出| 国产精品男gay被猛男狂揉视频| 亚洲欧美日韩直播| 久久久亚洲人| 国产精品美女久久久久久2018| 国产乱肥老妇国产一区二| 欧美日韩国产高清视频| 欧美承认网站| 亚洲图片欧美午夜| 香蕉尹人综合在线观看| 在线看欧美日韩| 噜噜噜在线观看免费视频日韩| 久久久久久久久久久一区| 欧美性大战久久久久| 久久久www免费人成黑人精品| 欧美一区深夜视频| 亚洲精品视频中文字幕| 欧美激情视频一区二区三区在线播放| 亚洲大胆在线| 久久在线免费视频| 好吊妞这里只有精品| 久久久亚洲影院你懂的| 亚洲一区精品在线| 国产精品久久久91| 韩日视频一区| 性欧美在线看片a免费观看| 欧美乱大交xxxxx| 欧美成人免费大片| 久久av二区| 国产亚洲精久久久久久| 欧美激情一区二区三区在线视频观看| 欧美精品激情在线观看| 国产精品伦子伦免费视频| 亚洲一区三区视频在线观看| 国产精品v片在线观看不卡| 久久大逼视频| 欧美夜福利tv在线| 欧美成人在线影院| 欧美精品在欧美一区二区少妇| 欧美性大战久久久久久久蜜臀| 久久亚洲电影| 欧美成人a∨高清免费观看| 国产精品久久久久91| 亚洲一区黄色| 免费成人小视频| 欧美久久精品午夜青青大伊人| 国产欧美一区二区三区国产幕精品| 国产精品久久7| 欧美凹凸一区二区三区视频| 国产精品午夜av在线| 亚洲免费av观看| 亚洲一区二区免费在线| 亚洲欧美日韩网| 性欧美办公室18xxxxhd| 久久精品国产亚洲一区二区| 久热精品视频在线观看一区| 久久性天堂网| 在线电影欧美日韩一区二区私密| 国产精品久久久久久久久婷婷| 伊人色综合久久天天| 欧美日韩免费高清| 午夜亚洲视频| 欧美自拍偷拍午夜视频| 久久国产精彩视频| 久久久久久黄| 亚洲欧美日韩精品久久亚洲区| 国产亚洲人成网站在线观看| 亚洲性线免费观看视频成熟| 亚洲国产日韩欧美综合久久| 久久久亚洲人| 亚洲区欧美区| 亚洲欧洲日本在线| 欧美色图五月天| 一区二区日韩精品| 1204国产成人精品视频| 日韩特黄影片| 欧美高清视频一区二区三区在线观看| 99精品黄色片免费大全| 欧美日韩在线一区二区| 蜜臀av性久久久久蜜臀aⅴ| 欧美特黄一级大片| 欧美日韩亚洲一区| 一区在线播放| 欧美日韩在线播放一区| 午夜欧美大尺度福利影院在线看| 永久免费精品影视网站| 免费在线观看日韩欧美| 国产精品xnxxcom| 一区二区在线观看av| 亚洲与欧洲av电影| 欧美一区二区三区在线免费观看| 亚洲一线二线三线久久久| 中国av一区| 另类图片国产| 国产日韩精品一区二区| 在线观看成人一级片| 亚洲电影免费在线观看| 国产精品久久久久999| 亚洲伦理中文字幕| 国产精品豆花视频| 在线播放中文一区| 在线日本欧美| 欧美日韩国产首页在线观看| 裸体一区二区三区| 亚洲伊人网站| 娇妻被交换粗又大又硬视频欧美| 亚洲综合清纯丝袜自拍| 亚洲一区中文字幕在线观看| 国产精品国产三级国产专播品爱网| 国产欧美日韩不卡免费| 亚洲激情校园春色| 久久精品卡一| 午夜精品久久久99热福利| 欧美日韩国产美女| 国产精品a级| 亚洲精品老司机| 一区二区久久久久久| 欧美高清视频在线播放| 欧美一区二区三区男人的天堂| 亚洲大片在线| 久久精品国产欧美激情| 久久久久久有精品国产| 一区二区91| 欧美日韩精品欧美日韩精品一| 国产精品国产自产拍高清av王其| 欧美一级淫片aaaaaaa视频| 欧美日韩国内| 亚洲精品免费在线| 国产香蕉97碰碰久久人人| 久久一日本道色综合久久| 国产精品日韩一区| 欧美激情2020午夜免费观看| 欧美不卡激情三级在线观看| 欧美精品一区在线| 欧美在线free| 亚洲蜜桃精久久久久久久| 国产欧美日韩高清| 国产精品白丝av嫩草影院| 中文在线不卡视频| 国产一区二区按摩在线观看| 国产精品福利久久久| 欧美日韩三级视频| 亚洲国产成人在线| 激情欧美国产欧美| 欧美中日韩免费视频| 国产精品igao视频网网址不卡日韩| 国产农村妇女精品一区二区| 久久精品夜色噜噜亚洲a∨| 蜜臀av性久久久久蜜臀aⅴ四虎| 亚洲欧美成人一区二区三区| 亚洲一区亚洲| 国内久久视频| 欧美日韩人人澡狠狠躁视频| 男人天堂欧美日韩| 久久婷婷影院| 亚洲精品日韩一| 欧美日韩精品在线视频| 久久婷婷激情| 欧美日韩亚洲在线| 久久精品国产精品亚洲| 国产精品一级| 国产女主播一区二区三区| 免费人成网站在线观看欧美高清| 久久久免费精品| 久久精品天堂| 美玉足脚交一区二区三区图片| 亚洲午夜黄色| 欧美精品国产| 亚洲高清毛片| 国产欧美一区二区三区久久| 久久久久久夜精品精品免费| 香蕉久久夜色| 欧美色欧美亚洲另类二区| 亚洲国产成人精品久久久国产成人一区| 亚洲国产精品精华液网站| 欧美国产丝袜视频| 亚洲啪啪91| 91久久久久久国产精品| 一本色道久久综合| 国产精品久久久爽爽爽麻豆色哟哟| 亚洲精品一区中文| 国产精品入口麻豆原神| 国产区精品在线观看| 亚洲女女女同性video| 欧美日韩爆操| 国产一区二区无遮挡| 在线观看av不卡| 洋洋av久久久久久久一区| 国产精品videossex久久发布| 美玉足脚交一区二区三区图片| 欧美日韩色一区| 亚洲国产精品第一区二区| 国产日韩欧美精品在线| 久久裸体视频| 久久免费视频在线观看| 免费久久99精品国产自在现线| 欧美日一区二区在线观看| 伊人久久婷婷色综合98网| 欧美特黄一级大片| 欧美日韩在线大尺度| 9色porny自拍视频一区二区| 亚洲国产精品国自产拍av秋霞| 亚洲国产黄色片| 亚洲电影免费观看高清| 亚洲午夜久久久| 欧美一区二区三区日韩| 国内精品久久久久久久果冻传媒| 久久精品国产一区二区三区免费看| 国产精品日韩精品欧美在线| 美女福利精品视频| 国产欧美日韩另类一区| 欧美成年网站| 国产精品久久久久高潮| 巨胸喷奶水www久久久免费动漫| 国产欧美亚洲一区| 欧美岛国在线观看| 在线看成人片| 欧美一区二区三区婷婷月色| 日韩视频中文字幕| 国产精品综合av一区二区国产馆| 欧美二区乱c少妇| 亚洲午夜av在线| 欧美mv日韩mv亚洲| 亚洲九九爱视频| 亚洲欧美日韩精品综合在线观看| 国产情侣一区| 美女精品在线观看| 国产精品国产三级国产aⅴ入口| 亚洲国产成人av好男人在线观看| 欧美色播在线播放| 亚洲婷婷在线| 国产精品国产三级国产aⅴ浪潮| 国产欧美在线视频| 最近看过的日韩成人| 国产精品每日更新在线播放网址|