snort和scapy以及hping

snort
这是一个很好的开源的入侵检测软件,基于libpcap,可以步在路由器,可以步在交换机镜像旁路,也可以步在自己的linux机器上,配制简单,策略丰富,在非加密链路上,甚至可以实现七层内容监控。最简单的学习方式就是阅读它自带的rule,比如最简单的/etc/snort/rules/icmp.rules,它的第一策略行是:
alert icmp $EXTERNAL_NET any -> $HOME_NET any (msg:"...
之后我相信你肯定会找HOME_NET以及EXTERNAL_NET这两个环境变量是怎么回事...或者,对于实用主义者来讲,直接在最上面加一行:
alert ip any any -> any any (msg:"ICMP ISS Pinger";) (vi中yy一行然后p上即可,修改掉所有环境变量,改成any,把icmp改成ip)
然后启动snort,一会就会发现/var/log/snort/alert文件爆满了...当你删除了爆满文件之后,你肯定就要想办法不让它爆满了,如何做呢?学习规则的格式以及写法,监控你真正需要的,过滤掉不需要的,当你完成这些,那你就是snort高手了。
scapy
对于想自己构造数据包并且仅仅抱着玩的态度的人来说,scapy是比hping更好的选择,它基于python,这就是说它的语法和python一致,可以自己写python函数来定义包,但是这也决定了它很慢,只能玩,或者作一些一次性的事,比如arp-mac欺骗。以下的命令行发送了一个自己定义的udp包:
sr(IP(src="11.22.33.44", dst="192.168.188.248", flags=0, frag=0, proto=17)/UDP(sport=1111, dport=2222, len=123))
sr是什么?src,frag,dport等字段为何是这种名字而不是别的呢?首先shell下敲入scapy:
Welcome to Scapy (0.9.17.1beta)
>>>
接着,很显然,敲入help(),没有得到什么信息,通过man之后,敲入ls(),ls(IP),ls(UDP)...lsc(),lsc(sr)...一切都是python的东西。接下来scapy就没有什么难理解的了,只剩下乐趣了。也许你可以在局域网发一个:
sendp(Ether(dst=tmac)/ARP(op="who-has", psrc=你想截获的IP, pdst=target))
好玩吗?需要注意的事,mac欺骗并不是那么好做的,你可以试图将目的地址为其它主机的包骗到你的机器,但是常规的协议栈还是会丢弃或者转发的,数据包根本就到不了用户态,怎么办呢?还是靠抓包,比如依靠tcpdump或者ethereal等工具,或者,真正的猛士可以自己修改协议栈,将自己的协议栈也欺骗掉。
hping

...

你可能感兴趣的:(linux,.net,python)