当前位置: 首页 > news >正文

linux下安装sniffit

Sniffit是由Lawrence Berkeley Laboratory开发的,可以在Linux、Solaris、SGI等各种平台运行的 网

络监听软件,它主要是针对TCP/IP协议的不安全性对运行该协议的机器进行监听——当然,数据包必须 

经过运行sniffit的机器才能进行监听,因此它只能够监听在同一个网段上的机器。而且还能够自由地为

其 增加某些插件以实现额外功能。
 

一:安装sniffit

         具体可以参考目录sniffit.0.3.7.beta下的README.FIRST文件,查询如何编译和安装该软件。

 
  1. unzip sniffit.zip  
  2. tar zxvf  sniffit.0.3.7.beta.tar.gz  
  3. cd sniffit.0.3.7.beta  
  4. ./configure  
  5. make 

 

二:运行sniffit

       同样可以参考目录sniffit.0.3.7.beta下的README.FIRST文件。

      注意用root身份运行。

     
1、参数 

这个东东具有如下的命令选项: 

-v 显示版本信息 
-t <ip nr/name> 让程序去监听指定流向某IP的数据包 
-s <ip nr/name>让程序去监听从某IP流出的IP数据包,可以使用@通配符,如 -t 199.145.@ 
-i 显示出窗口界面,能察看当前在你所属网络上进行连接的机器 
-I 扩展的交互模式,忽略所有其它选项,比-i强大得多…… 
-c <file> 利用脚本来运行程序 
-F <device> 强制使程序使用网络硬盘 
-n 显示出假的数据包。象使用ARP、RARP或者其他不是IP的数据包也会显示出来 
-N 只运行plugin时的选项,使其它选项失效 

在-i 模式下无法工作的参数: 

-b 同时做-t和-s的工作…… 
-d 将监听所得内容显示在当前终端——以十六进制表示 
-a 将监听所得内容显示在当前终端——以ASCII字符表示 
-x 打印TCP包的扩展信息(SEQ, ACK, Flags),可以与'-a', '-d', '-s', '-t', '-b'一起运作,注意—

—它是输出在标准输出的,如果只用-t,-s,-b 而没有其它参数配合的话不会被写入文件。 
-R <file> 将所有通信记录在文件中 
-r <file> 这一选项将记录文件送往sniffit,它需要-F的参数配合指明设备,假设你用 'eth0'(第一块网

卡)来记录文件,你必须在命令行里面加上'-F eth0'或者 '或者'或者'或者'或者'-F eth' -A 遇到不认

识的字符时用指定的字符代替 
-P <protocol> 定义监听的协议,DEFAULT为TCP——也可以选IP、ICMP、UDP…… 
-p <prot >定义监听端口,默认为全部 
-l <length> 设定数据包大小,default是300字节。 
-M <plugin> 激活插件 

-I,-i 模式下的参数 

-D <device> 所有的记录会被送到这个磁盘上。 

-c 模式下的参数 

-L<logparam>
其中logparam可以是如下的内容: 
raw : 轻度 
norm : 常规 
telnet: 记录口令(端口23) 
ftp : 记录口令(端口21) 
mail : 记录信件内容(端口25) 
比如说"ftpmailnorm"就是一个合法的logparam 

2、图形仿真界面 

就是上面所说的-i选项啦,我们输入sniffit -i 会出现一个窗口环境,从中可以看到自己所在的 网络中

有哪些机器正在连接,使用什么端口号,其中可用的命令如下:
q 退出窗口环境,结束程序 
r 刷新屏幕,重新显示正在在连线的机器 
n 产生一个小窗口,包括TCP、IP、ICMP、UDP等协议的流量 
g 产生数据包,正常情况下只有UDP协议才会产生,执行此命令要回答一些关于数据包的问题 
F1 改变来源网域的IP地址,默认为全部 
F2 改变目的网域的IP地址,默认为全部 
F3 改变来源机器的端口号,默认为全部 
F4 改变目的机器的端口号,默认为全部 

3、一些示例 

假设有以下的设置:在一个子网中有两台主机,一台运行了sniffer,我们称之为sniffit.com,另 一台

是66.66.66.7,我们称之为target.com。

1、你希望检查sniffer是否能运行 
sniffit:~/# sniffit -d -p 7 -t 66.66.66.7 
并且开另一个窗口:
sniffit:~/$ telnet target.com 7 
你可以看到sniffer将你telnet到对方7号端口echo服务的包捕获了。 

2、你希望截获target.com上的用户密码 
sniffit:~/# sniffit -p 23 -t 66.66.66.7 

3、target.com主机的根用户声称有奇怪的FTP连接并且希望找出他们的击键
sniffit:~/# sniffit -p 21 -l 0 -t 66.66.66.7 

4. 你希望能阅读所有进出target.com的信件 
sniffit:~/# sniffit -p 25 -l 0 -b -t 66.66.66.7 & 
或者
sniffit:~/# sniffit -p 25 -l 0 -b -s 66.66.66.7 & 

5. 你希望使用用户交互界面 
sniffit:~/# sniffit -i 

6. 有错误发生而且你希望截获控制信息
sniffit:~/# sniffit -P icmp -b -s 66.66.66.7 

7. Go wild on scrolling the screen. 
sniffit:~/# sniffit -P ip -P icmp -P tcp -p 0 -b -a -d -x -s 66.66.66.7 
与之效果相当的是 
sniffit:~/# sniffit -P ipicmptcp -p 0 -b -a -d -x -s 66.66.66.7 

8. 你可以用'more 66*'读取下列方式记录下的密码 
sniffit:~/# sniffit -p 23 -A . -t 66.66.66.7 
或者
sniffit:~/# sniffit -p 23 -A ^ -t dummy.net 


  

三、高级应用 

1、用脚本执行 

这是配合选项-c的,其执行方法也很简单,比如以如下方式编辑一个叫sh的文件

select from host 180.180.180.1
select to host 180.180.180.10 
select both port 21 

然后执行:sniffit -c sh 

说明:监听从180.180.180.1送往180.180.180.10的数据包,端口为FTP口。这里不做更多说明,你 可以

自己去看里面的README。

2、插件 

要获取一个插件是很简单的,你将它放入sniffit的目录下,并且象如下方式编辑sn_plugin.h 文件:
#define PLUGIN1_NAME "My plugin" 
#define PLUGIN1(x) main_plugin_function(x) 
#include "my_plugin.plug" 

注意: 

a) 你可以让plugin从0-9,所以从PLUGIN0_NAME到PLUGIN1_NAME……不必是连续的 
d) #include "my_plugin.plug" 这是我的插件源代码放置的地方。 如果想详细了解的话,还是看看里面

的plugin.howto吧。

3、介绍 tod

这东东便是sniffit最有名的一个插件了,为什么叫TOD呢——touch of death,它可以轻易地切断一个 

TCP连接,原理是向一个TCP连接中的一台主机发送一个断开连接的IP包,这个IP包的RST位置1,便可以了


将下载下来的tod.tar.gz拷贝到sniffit所在目录下,解压安装后
ln -s tod sniffit_key5 
就可以将这相程序与F5键连接起来,想切断哪台机器的话,只要在窗口中将光标指到需要断线的机器上 

按下F5键就可以了。你可以自由地定义成其它的F功能键——F1~F4不行,它们已经被定义过了…… 

参考文章:http://www.xfocus.net/articles/200001/28.html

                   http://www.linuxidc.com/Linux/2008-05/12614.htm

相关文章:

  • linux mail命令
  • 网站不允许上传asp cer cdx htr等文件时
  • WINDOWS服务器安全设置
  • 全面封杀WVS扫描器扫描网站目录
  • webIPS防止扫描软件扫描网站
  • Linux 服务器安全配置
  • MSSQL安全设置的具体步骤和方法
  • Linux菜鸟入门级命令大全
  • ubuntu 10.10正式版
  • 菜鸟入门 Ubuntu 常用命令收集
  • 一系列测试技术
  • Web安全测试知多少
  • 常用的网站功能测试方法
  • dedecms 留言本 XSS 漏洞
  • 40位MD5加密的破解方法
  • 【162天】黑马程序员27天视频学习笔记【Day02-上】
  • 【翻译】babel对TC39装饰器草案的实现
  • 【附node操作实例】redis简明入门系列—字符串类型
  • 【译】理解JavaScript:new 关键字
  • C语言笔记(第一章:C语言编程)
  • ES学习笔记(12)--Symbol
  • Golang-长连接-状态推送
  • Javascript编码规范
  • JS字符串转数字方法总结
  • Laravel Telescope:优雅的应用调试工具
  • Laravel核心解读--Facades
  • MYSQL 的 IF 函数
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • spring-boot List转Page
  • Vue官网教程学习过程中值得记录的一些事情
  • 闭包--闭包作用之保存(一)
  • 电商搜索引擎的架构设计和性能优化
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 前嗅ForeSpider教程:创建模板
  • 使用 Docker 部署 Spring Boot项目
  • 数据结构java版之冒泡排序及优化
  • 限制Java线程池运行线程以及等待线程数量的策略
  • Play Store发现SimBad恶意软件,1.5亿Android用户成受害者 ...
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • (30)数组元素和与数字和的绝对差
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (第27天)Oracle 数据泵转换分区表
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (四)Android布局类型(线性布局LinearLayout)
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • (总结)Linux下的暴力密码在线破解工具Hydra详解
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性
  • .NetCore Flurl.Http 升级到4.0后 https 无法建立SSL连接
  • .NetCore部署微服务(二)
  • .net连接oracle数据库
  • .NET牛人应该知道些什么(2):中级.NET开发人员
  • [ linux ] linux 命令英文全称及解释