对于网络的掌控是一个程序员的必修课题,而一般情况下,我们只是编程网络代码而已,甚至在python中,我们有时候也是仅仅使用了nmap包来进行网络分析而已,但是更多的场景下,我们需要的是更强大的网络分析工具,例如zenmap,wireshark等工具。而这些仅仅是使用工具进行查看编辑的网络分析而已,可以满足绝大多数的网络分析,网络编辑了。但是如果是想要进行网络分析,网络编辑,或者说想要进行网络抓包并编程,那么就需要适合的框架了。
网络抓包中,使用pcap作为基础,诞生了很多有用的框架,例如pypcap。ps:pypcap长久没更新,而且并不是很好用。
注意:网络编程的基础是协议!
使用scapy进行网络分析是centos常见的方式,这里需要注意,scapy的安装直接使用yum install scapy就可以了,不用像网上的那样一大堆复杂的配置安装。直接在命令行中输入scapy就可以进入scapy了。在使用scapy中,需要注意,
from scapy import TCP
会报错,需要使用
from scapy.all import TCP
才行。
使用ls()列出所有支持的数据包格式,输入其中某一种格式,例如ls(ip),则输出具体的包头结构。
使用IP().show()显示包的ip信息。使用lsc()列出scapy中可以使用的命令。
真正的嗅探使用的是sniff(filter="", iface="", prn=function, count=N),获取原始数据包,这里一般的格式是sniff(filter='tcp and host 192.168.0.0', count=3)。
查看捕获到的数据包的摘要使用a=_或者a.summary()。
把捕获到的数据包写入pcap文件udp_192.168.0.0.pcap文件:wrcap('udp_192.168.0.0.pcap', a)。
然后可以使用wireshark读取,当然也可以修改。
这里最重要的是使用ARP,ARP是地址解析协议,使用tcp/ip可以知道物理地址的一种协议。使用ls(ARP)可以得到相应的数据返回。需要掌握返回数据的含义以及格式。
另外,windows下,可以使用arp -a命令直接查看。
这里,如果觉得使用命令麻烦的话,可以直接使用诸如wireshark这样的工具进行。
其实网络分析,就是网络IO的控制,在渗透的时候这个很重要,应该说,对于网络安全程序员来说,掌握渗透工具非常重要,比如渗透工具SQLmap,metasploit,dradis等。ps:如果要使用命令行,可以使用python的optparse模块来操作命令行选项。
我们常在需要渗透的时候使用VPN,tor上游服务器,http代理等手段,而这些手段是为了隐藏我们自身的信息。这里使用tor浏览器是比较好的选择,需要注意的是,如果使用google的服务器的话,即使使用duck duck go这种宣称保护隐私的搜索引擎也是没什么效果的,因为google浏览器本身就泄露隐私。而tor隐私保护就比较好。而http代理基本不考虑了,因为http属于转发,信息会泄露,同样的VPN的保护措施也有点不够。
应该说,对于渗透,网络分析,抓包,甚至刷单来说,自身的信息保护是非常重要的,因此最好的方法是从源头杜绝,因此使用tor来杜绝信息泄露是个不错的选择。同时tor的默认引擎是duck duck go,这个引擎有保护隐私的作用。
tor的使用
未完成