版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、,信息安全產品開發(fā)實踐-數據包的構造,Gujianjun (ruth)zjfriends@vip.sina.com, 13880804340Dec 2007,Libnet介紹,Libnet介紹,Mike D. Schiffmanhttp://www.packetfactory.net/libnet/專業(yè)的網絡數據包構造和發(fā)送開發(fā)包包含了多路技術、緩沖區(qū)管理、網絡數據包頭信息、字節(jié)流順序、操作系統(tǒng)兼容性、校驗和計算等提供了
2、在IP層和鏈路層構造數據包的功能應用廣泛:ettercap、firewalk、snort、,Libnet作用,構造任意數據內容構造各種不同協(xié)議的數據包支持從鏈路層到IP層數據包構造支持跨平臺、自動計算校驗和,Libnet函數,核心函數地址函數數據包構造函數數據包發(fā)送函數高級處理函數Libnet句柄隊列操作函數輔助函數 具體見libnet_functions.h,Libnet支持協(xié)議類型,具體見libnet-str
3、uctures.h,Libnet的開發(fā)流程,初始化libnet_init(),構造TCP協(xié)議塊Libnet_build_tcp_options(),構造IP頭Libnet_build_ipv4(),,,發(fā)送數據包libnet_write(),銷毀libnet_destroy(),,構造TCP頭Libnet_build_tcp(),,構造以太網頭libnet_build_ethernet(),,初始化,由libnet_init
4、(int injection_type,char *device,char *err_buf)完成Injection_type:表示構造的類型Device:表示網絡接口Err_buf:表示存放出錯的信息,初始化-確定libnet類型,6種類型LIBNET_LINK:表示構造鏈路層開始的數據包,比IP層的更豐富;LIBNET_RAW4:表示構造IPV4原始套接字接口類型的數據包;LIBNET_RAW6:表示構造IPV6原始套接
5、字接口類型的數據包;,初始化-確定網絡接口,數據包發(fā)送的接口一種是自己指定,可以是網絡接口的名字,如以太網接口”eth0”等,也可以是IP地址;一種是由libnet自動查詢搜索,只要在函數libnet_init()的參數device賦值null即可,此時libnet會從系統(tǒng)中搜索可用的網絡接口.,初始化-獲取libnet的句柄,執(zhí)行完后返回一個libnet句柄,在這個句柄里面包含了重要的信息.不直接打交道struct libnet
6、_context{#if ((__WIN32__) && !(__CYGWIN__)) SOCKET fd; LPADAPTER lpAdapter;#else int fd; /* file descriptor of packet device */#endif,int injection_type;
7、 /* raw (ipv4 or ipv6) or link */#define LIBNET_LINK 0x00 /* link-layer interface */#define LIBNET_RAW4 0x01 /* raw socket interface (ipv4) */#define LIBNET_RAW6 0x02 /*
8、 raw socket interface (ipv6) *//* the following should actually set a flag in the flags variable above */#define LIBNET_LINK_ADV 0x08 /* advanced mode link-layer */#define LIBNET_RAW4_ADV 0x09 /*
9、 advanced mode raw socket (ipv4) */#define LIBNET_RAW6_ADV 0x0a /* advanced mode raw socket (ipv6) */#define LIBNET_ADV_MASK 0x08 /* mask to determine adv mode */,libnet_pblock_t *protocol_blocks;
10、 /* protocol headers / data */ libnet_pblock_t *pblock_end; /* last node in list */ u_int32_t n_pblocks; /* number of pblocks */ int link_type; /* link-layer type
11、 */ int link_offset; /* link-layer header size */ int aligner; /* used to align packets */ char *device; /* device name */,struct libnet_stats s
12、tats; /* statistics */ libnet_ptag_t ptag_state; /* state holder for pblock tag */ char label[LIBNET_LABEL_SIZE]; /* textual label for cq interface */ char err_buf[LIBNET_ERRBUF_SIZE]
13、; /* error buffer */ u_int32_t total_size; /* total size */};typedef struct libnet_context libnet_t;,構造數據包,構造一個數據包就是構造一系列協(xié)議塊.一個數據包是由一個協(xié)議塊構成的.例如:構造一個tcp數據包,1、構造一個tcp協(xié)議塊,然后插入協(xié)議塊鏈表;2、在構造一個ip協(xié)議塊,插入到t
14、cp協(xié)議塊后面;3、最后構造一個以太網協(xié)議塊,插入到ip協(xié)議塊后面.,數據包檢測,數據包的檢測最主要的是計算校驗和,如果不想自己計算校驗和,只需要將校驗和的參數賦值為0即可,libnet就會自動計算校驗和.,數據包發(fā)送,非常簡單,只需要由函數libnet_write()函數完成的.,構造arp數據包的流程,過程說明,1、利用函數libnet_init()進行初始化操作,因為arp協(xié)議在網絡層,所以必須先構造arp協(xié)議塊,也就是利用函數
15、libnet_build_arp()來構造arp協(xié)議塊;2、利用函數libnet_autobuild_ethernet()或者libnet_build_ethernet()來構造以太網協(xié)議塊;3、利用函數libnet_write()發(fā)送數據包;,初始化libnet_init(),構造ARP協(xié)議塊Libnet_build_arp()Libnet_autobuild_arp(),構造以太網協(xié)議塊Libnet_build_ether
16、net()Libnet_autobuild_ethernet(),,,發(fā)送數據包libnet_write(),銷毀libnet_destroy(),,數據包的構造及設計,過程簡單說明,1、對內存進行初試化;2、對網絡進行初始化;3、構造各種網絡數據包;4、對數據包進行合法性檢查5、發(fā)送網絡數據包,初始化函數,由libnet_init(int injection_type,char *device,char *err_buf
17、)完成函數返回值:如果成功就返回一個libnet句柄,如果失敗,則返回null參數描述:Injection_type:表示構造的類型,Device:表示網絡接口,Err_buf:表示存放出錯的信息,地址函數,由char * libnet_addr2name4(u_init32_t,u_int8_t usr_name)完成函數返回值:返回IPV4地址的文字面熟字符串格式參數描述:參數in表示網絡字節(jié)順序的ipv4地址,參數use
18、_name表示是否需要進行名字.,構造函數,由u_int32_t libnet_name2addr4(libnet_t *l,char * host_name,u_int8_t use_name)完成函數返回值:返回網絡字節(jié)順序IPV4地址參數描述:參數l表示libnet句柄,參數host_name表示主機名字,參數use_name表示是否要進行域名解析.destination_ip=libnet_name2addr4(1,de
19、stination_ip_str,LIBNET_RESOLVE),構造函數,libnet_build_arp()函數返回值:返回一個協(xié)議標志,失敗返回-1,構造函數,libnet_autobuild_ethernet(u_int8_t *dst, u_int16_t type, libnet_t *l)函數返回值:返回一個協(xié)議標志,失敗返回-1;參數描述:參數dst表示目的以太網地址,參數type表示協(xié)議類型,參數l表示libne
20、t句柄libnet_autobuild_ethernet(hardware_destination,ETHERTYPE_ARP,l),數據包構造,ARP數據包構造IP數據包構造Tcp數據包構造Synflood數據包構造Ping of death數據包構造gcc -o xxx arp.c -lnet,數據包構造,tar -zxvf libnetxxxx.tar.gzcd libnet./configurema
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 科來數據包構造器快速入門指南
- 信息安全產品供給中政府責任研究.pdf
- 基于產品數據包的成熟度評價研究.pdf
- 數據包攔截技術在SSL VPN產品中的應用.pdf
- 監(jiān)控ip數據包流量
- ip數據包的捕獲與分析
- 網絡數據包的協(xié)議分析程序的設計開發(fā)畢業(yè)設計
- 北京天融信公司信息安全產品營銷策略研究.pdf
- 信息安全產品代理企業(yè)A的微信營銷研究.pdf
- 信息安全產品測試管理系統(tǒng)的設計與實現.pdf
- 安全產品配置優(yōu)化操作規(guī)范
- 基于網絡數據包的口令信息獲取實現技術研究.pdf
- 基于網絡數據包的網頁信息還原實現技術研究.pdf
- php網絡數據包分析工具的設計與開發(fā)(源代碼+論文)
- 萬兆網絡數據包捕獲系統(tǒng)的研究與開發(fā).pdf
- IP數據包分類算法的研究.pdf
- 解析ip數據包課程設計
- 解析arp數據包課程設計
- 網絡數據包截獲分析系統(tǒng)的研究.pdf
- 協(xié)議數據包的捕獲與分析實習報告
評論
0/150
提交評論