说到Sniffer软件大家可能马上就能想起NAI的Sniffer Pro。Sniffer Pro虽然功能特性丰富,但是操作起来有些繁缛。再这里我给大家介绍一款简单实用的Sniffer软件,那就是我们今天的主角:Iris Traffic Analyzer。
我将以Iris Traffic Analyzer 4.0.7为蓝本结合几个简单案例给大家简单讲讲Iris的使用
一. IRIS特性简介
Iris师出名门---eeye,eeye是一家以网络安全见长的公司,它的扫描器以及其他安全方案在业界也算鼎鼎大名了。
好了,我也不废话了,先简单但说说Iris有哪些特性和优点。
简单小巧
Iris的最大特点,在你安装完成之后,只需简单的点一下界面上一个按钮就可以开始Sniffing抓包了!
Iris的安装文件也不到5M,安装下来才占用10多M。对比Sniffer Pro这些而言可谓苗条身材。见下图中话圆圈的地方:
易上手,没有那么繁多的功能+简单易用的界面。上手当然是易如反掌。
再说说Iris有那些值得称道的功能。
(1)抓包
嘿嘿,只要是Sniffing软件这个功能是必备的!
Iris的一个非常好的方面就是把抓包和Decode,察看包的内容集成在一个界面里面。这样你就可以在一边抓包一边察看包的内容,以及包头含义等等。
(2)解码
支持大部分的TCP/IP协议!这样对一般的抓包分析应用就已经足够了。
(3)包的编辑以及重新发送功能
你可以对自己抓到的数据报文进行简单修改然后重新发送。
同时,IRIS也带简单的流量统计分析功能!
二.IRIS的安装
Iris可以运行在Win95/98/Me/NT/2k/XP环境下。
Iris的安装和普通的windows应用程序安装一样都是向导式的安装,按下一步一直到完成就可以方便的安装完成!所以对于Iris的安装我就不一一叙述了
三.IRIS的主界面
安装好Iris之后,我们就可以马上运行了,Iris第一次运行时需要选择在那块网络适配卡上运行Iris。
Iris的主界面如下图:
这个界面是可以调整的,但是建议大家如没特殊需求还是不要更改,因为这个缺省界面已经是经过优化了的。
四.简单实例
在简单了解了Iris的大体全貌之后,接着我们就进入学习具体功能的部分,最好的学习方法,当然就是实际操练。所以我准备了三个简单的事例。
(1)利用Iris捕获邮箱密码
有时候我们经常会忘记一些事情,比如邮箱密码。如果你把密码保存在客户端软件上那么你就能够找回密码的希望!当然找回密码的方式多种多样,我在这里介绍一种笨方法
介绍笨方法不是我的本意,我的本意是让大家从这个事例中学习Iris的功能!
好了,废话少说,切入正题!
在开工之前,我们需要简单了解了解收发E-Mail涉及的两种协议SMTP和POP3
SMTP是发送邮件的协议,POP3是收发邮件的协议。在收发邮件的时候,密码和拥护名都是明文发送,所以就给了我们找回密码的机会!
第一步:开启抓包功能
点选工具栏上类似播放健的那个按钮(Start/Stop Capture),就是 这个按钮!
第二步:开启Filter功能
在没有开启Filter功能之前,你可能抓获的是所有进出你网卡的流量,有过路的,有看热闹的,当然也有你要找的,为了方便我们查找目标,我们需要简单的过滤一下!
Iris内置了几个预先定义好了的Filter,刚好有一个email.flt,那我们就不用费劲的自己定义了!
选择菜单Filter-->àemail.flt
第三步:运行你的邮件客户端软件,收一下邮件
第四步:停止抓包
点工具栏上Stop Capture按钮
第五步:寻找密码
因为Email收发邮件的用户名和密码都是明文传输的,所以你的密码就藏在你捕获的那些报文里面现在你只需要一个一个检视。
如下图:
(2)利用Iris捕获Telnet会话密码
在讲完上面那个例子之后大家肯定对Iris的抓包功能有了一定的了解,为了大家对
IRIS 的解码(decode)功能有个深刻的认识
刚好,在网络分析论坛看到一个抓包分析Telnet会话密码的,刚好借鉴过来作为这个简易教程的第二个实例!
在开始之前简单说一下Telnet这个协议的特点。当然它也是明文的,但是它有两个麻烦的地方相比POP3这些协议,由于Telnet是个交互式协议,所以当你敲一个字符的时候有可能就被发往服务器端了,服务器端又发回相应的回显字符!再加上它没有POP3
明显的PASS命令,所以如果还是采用第一个例子里面的一个报文一个报文的查看肯定是非常麻烦的。所以我们必须有某种新的方法来解决这个问题!
第一步 抓包!
还不会?那继续看前面那个例子。。。
第二步 开启Filter功能
刚好这次又有现成的!
菜单Filteràtext_protocol.flt
第三步 开个Telnet会话
第四步 停止抓包
第五步 切换到Decode解码模式
切换的方法有多种
第一种你可以选择工具栏里面的
第二种你可以选在左边工具栏里面的
第三种 菜单 DecodeàSend Buffer To decode
这样我们就进入了Iris的Decode模式!这个时候Iris会根据Capture的报文对TCP会话进行解码。这样我们就可以清晰的看到一个Telnet会话的过程!
如下图:
红圈处大家就可以看到我输入的密码!
是:ixix 而不是[mi*x*i*x*
这是因为[m是控制字符,*是回显字符!
五.如何得到进一步的帮助
看完上面事例,大家肯定对Iris有了一定的了解,可以基本使用它了,但是如果大家在使用过程中可能还会遇到各种各样的问题。所以最后我给大家准备了几条锦囊妙计
1.看IRIS自带的帮助文件
你90%的问题都可以在这里找到答案。
2.去Iris的老家www.eeye.com看看
一些比较棘手的问题,你可能在帮助那里找不到答案,这个时候你可以到软件的官方网站上看看,也许你会有一定的帮助。
3.利用搜索引擎比如:Google,Yahoo,Baidu
还找不到答案?那就翠花,上狗狗。
4.如果还没有得到解决,那就把问题详细描述出来,在论坛上发贴求助。
六. 结束语
第一次写这种软件教程类的咚咚,写的不好,还望各位看官多多见谅!
http://bbs.chinaunix.net/viewthread.php?tid=749848
相信大家一定使用过Iris? The Network Traffic Analyzer,不大但功能挺强。不过有一个问题,在使用Filter的时候,如果想输入IP地址,发现在中文Windows下只能输入2位,譬如 127.0.0.1就无法输入127,而只能借助于The Customiser等工具。经过查看代码问题在comctl32.dll中,IRIS调用其中的一个SysIPAddress32控件。
在comctl32.dll中,有一个SysIPAddress32的控件,但是在
中文Windows下,其中IP地址不能输入3位,检查原因后发现
是Edit控件在其ClientRect太小的时候,不能输入更多的字
符,如果想输入更多的字符可以设置其Style为ES_AUTOHSCROLL。
经检查其代码为:
7738E194 |>; 8B4D 14 /MOV ECX, [ARG.4]
7738E197 |. 8066 08 00 |AND BYTE PTR [ESI+8], 0
7738E19B |. 804E 09 FF |OR BYTE PTR [ESI+9], 0FF
7738E19F |. 33C0 |XOR EAX, EAX
7738E1A1 |. 50 |PUSH EAX ; /lParam = 00004AA6
7738E1A2 |. FF71 04 |PUSH DWORD PTR [ECX+4] ; |hInst
7738E1A5 |. FF75 0C |PUSH [ARG.2] ; |hMenu = NULL
7738E1A8 |. FF75 08 |PUSH [ARG.1] ; |hParent = 0050B8FC
7738E1AB |. 6A 64 |PUSH 64 ; |Height = 64 (100.)
7738E1AD |. 6A 64 |PUSH 64 ; |Width = 64 (100.)
7738E1AF |. 6A 0A |PUSH 0A ; |Y = A (10.)
7738E1B1 |. 50 |PUSH EAX ; |X = 4AA6 (19110.)
7738E1B2 68 01000040 PUSH 40000001
7738E1B7 |. 50 |PUSH EAX ; |WindowName = 00004AA6 ???
7738E1B8 |. 68 74413A77 |PUSH COMCTL32.773A4174 ; |Class = "Edit"
7738E1BD |. 50 |PUSH EAX ; |ExtStyle = WS_EX_NOPARENTNOTIFY|WS_EX_TRANSPARENT|WS_EX_TOOLWINDOW|WS_EX_CLIENTEDGE|WS_EX_LEFTSCROLLBAR|802
7738E1BE |. FF15 B8133477 |CALL [<&USER32.CreateWindowExW>;] ; CreateWindowExW
7738E1C4 |. FF75 10 |PUSH [ARG.3]
7738E1C7 |. 8906 |MOV [ESI], EAX
修改7738E1B2的Style为40000081后即可。
--------------------------------------------------------------------------------
相关信息:
IRIS中IP地址不能输入3位数字的问题 (2千字)(slangmgh 8-19 12:47 阅读 69)
应该是bug,最新的4.06b4没有这个问题... (空)(dRag0nMa 8-19 14:54 阅读 25)
我的comctl32.dll的版本为5.82.2600.0(英文XP没打补丁)(空) (空)(slangmgh 8-19 15:08 阅读 22)
--------------------------------------------------------------------------------
koalaz said: --->
赞,每次我都是先把要用的IP放进地址簿,再拉到规则里,从来没有研究
过原因,这位兄弟好强,呵呵。
wwashington add: --->
1. 在开始菜单输入 cmd 进入命令行,把系统目录(%SystemRoot%system32)
里的 comctl32.dll 拷出来,同时在工作目录下,把未修改的 comctl32.dll
做一个备份,文件名叫做 comctl32.old。
2. 用 UltraEdit 或 WinHex 打开工作目录的 comctl32.dll,搜索HEX字串
68 01000040
改为下面这个,其中 01 变为 81 的含义是 Edit 控件的 ES_AUTOHSCROLL。
68 81000040
补充说明:WinHex 的 Find Hex 功能不支持空格,字串必须是6801000040
3. 如果你想修改完 dll 后文件属性(例如修改时间)不变,那么最好不要
用 UltraEdit 或 WinHex,
建议用 hiew(是个软件,呼呼,http://www.crsky.com/soft/2784.html Hiew v7.10 完全版 可以下载到)。
开始菜单输入 cmd 进入命令行,
首先 chcp 437,
然后 hiew32 comctl32.dll,
按 F4 选 Hex,按 F7 搜索
68 01000040
再按 F4 选 Decode,这时你会看到类似下面这样的信息,用箭头上下移动。
.5D1C4AD2: 50 push eax
.5D1C4AD3: 6801000040 push 040000001
.5D1C4AD8: 50 push eax
.5D1C4AD9: 6894D0195D push 05D19D094 ---↑ (1)
.5D1C4ADE: 50 push eax
.5D1C4ADF: FF158814175D call CreateWindowExW ;USER32
定位到 6801000040 的 01,按 F3 进 Edit,改成 81 后按 F9 做 Update。
.5D1C4AD3: 6881000040 push 040000081
补充说明:chcp 936 用中文代码页,chcp 437 用英文代码页,防止乱码。
4. 如果您本来就熟悉破解工具(例如 Ollydbg),那就可以分析得更仔细了。
首先当然是运行汉化版 Ollydbg,打开 comctl32.dll,允许 LoadDll.exe。
在 CPU 主要线程窗口里点鼠标右键“搜索-->二进制字符”或者按Ctrl-B。
6801000040
在 CPU 主要线程窗口里点鼠标右键“二进制-->编辑”或者直接按Ctrl-E。
6881000040
在 CPU 窗口中点鼠标右键,选择“复制到可执行文件-->所有改动”,然
后在文件窗口里选“保存文件”,并且另起一个文件名叫comctl32n.dll。
最后再改文件名就可以了,可以在 Explorer 里改,也可以进命令行修改。
move comctl32.dll comctl32.old
move comctl32n.dll comctl32.dll
5. 现在确认一下文件是否修改正确,如果正确,那么你可以看到下列信息。
F: DaySysInfocomctl32>fc /b comctl32.old comctl32.dll
正在比较文件 comctl32.old 和 COMCTL32.DLL
00053ED4: 01 81
6. 把文件拷贝到系统,然后重启。请注意不能直接覆盖文件,系统有保护。
cd /d F: DaySysInfocomctl32
move %SystemRoot%system32comctl32.dll %SystemRoot%system32comctl32.old
copy /y comctl32.dll %SystemRoot%system32
cd /d %SystemRoot%system32
fc /b comctl32.old comctl32.dll
刚开始文件是不同的,但是大约过了十秒钟,再运行 fc /b 就发现怪事了。
D:WINDOWSsystem32>fc /b comctl32.old comctl32.dll
正在比较文件 comctl32.old 和 COMCTL32.DLL
FC: 找不到相异处
所以我们推断此文件是受到系统的保护,在 Explorer 窗口“工具-->文件
夹选项-->”里,反选“隐藏受保护的操作系统文件”以及“隐藏已知文件
类型的扩展名”,在“隐藏文件和文件夹”里有两个子选项,一定要选中
下面那个“显示所有文件和文件夹”。
到 Windows 的安装目录搜索comctl32,现在你总算发现真正的幕后黑手了。
D:WINDOWSsystem32dllcache。备注:我的 WinXp 装在 D 盘,C 盘只
拿来做启动以及跟 Unix 交换文件,类似于 Unix/BSD/Linux 的 Boot 区。
只要我们对症下药,就可以更新文件了。
REM {注意:工作路径 F: DaySysInfocomctl32,请大家按实际情况改}
cd /d F: DaySysInfocomctl32
REM {注意:备份 %SystemRoot%system32dllcache 的 .old 用 copy }
copy /y %SystemRoot%system32dllcachecomctl32.dll %SystemRoot%system32dllcachecomctl32.old
copy /y comctl32.dll %SystemRoot%system32dllcache
move %SystemRoot%system32comctl32.dll %SystemRoot%system32comctl32.old
copy /y comctl32.dll %SystemRoot%system32
cd /d %SystemRoot%system32dllcache
fc /b comctl32.old comctl32.dll
cd /d %SystemRoot%system32
fc /b comctl32.old comctl32.dll
期间会弹出 Windows 文件保护的对话框,请选“取消”,系统会继续追问
你是否确实保留这些不可识别的文件版本,请选“是”。如果系统继续弹出
对话框,按上面的方法回答。通常一到两次左右就好了。
现在验收一下替换文件的成果啦,请注意两个目录的文件都变了。如果第一
次没能做出正确的效果,那么就从拷贝文件开始按流程再做一次。如果系统
文件已经被菜鸟级的同胞弄乱了,那就按本文最后的办法来恢复。
D:WINDOWSsystem32>cd /d %SystemRoot%system32dllcache
D:WINDOWSsystem32dllcache>fc /b comctl32.old comctl32.dll
正在比较文件 comctl32.old 和 COMCTL32.DLL
00053ED4: 01 81
D:WINDOWSsystem32dllcache>cd /d %SystemRoot%system32
D:WINDOWSsystem32>fc /b comctl32.old comctl32.dll
正在比较文件 comctl32.old 和 COMCTL32.DLL
00053ED4: 01 81
现在重新启动系统,然后就一切正常了。如果您认为上面的步骤烦琐,也
可以先重启系统进入安全模式,然后替换上述两个目录里的文件,最后再
重启系统用正常启动。个人认为电脑重启两次更加浪费时间。
说明:如果要恢复原来的 WinXp 系统文件,只要把 comctl32.old 改名为
comctl32.dll 再按上面的步骤做就可以了,恢复原始文件没有告警。
补充:网络扫描仪 Iris 存在这个毛病,网络防火墙 LooknStop 也同样是
设计失误,在中文系统下只支持两位IP地址的输入。这两个工具凭良心说
功能相当优秀,只要按上面的办法改好了,两个都可以正常使用。
CHCP 437 (将当前代码页和界面语言切换为英文)
CHCP 936 (将当前代码页和界面语言切换为简体中文)
CHCP 950 (将当前代码页和界面语言切换为繁体中文)
<br />
一款性能不错的嗅探器。嗅探器的英文是Sniff,它就是一个装在电脑上的***,监视通过电脑的数据。 <br />
<br />
2.【Iris的安装位置】 <br />
<br />
作为一个嗅探器,它只能捕捉通过所在机器的数据包,因此如果要使它能捕捉尽可能多的信息,安装前应该对所处网络的结构有所了解。例如,在环形拓扑结构的网络中,安装在其中任一台机都可以捕捉到其它机器的信息包(当然不是全部),而对于使用交换机连接的交换网络,很有可能就无法捕捉到其它两台机器间通讯的数据,而只能捕捉到与本机有关的信息;又例如,如果想检测一个防火墙的过滤效果,可以在防火墙的内外安装Iris,捕捉信息,进行比较。 <br />
<br />
3.【配置Iris】 <br />
<br />
Capture(捕获) <br />
<br />
Run continuously :当存储数据缓冲区不够时,Iris将覆盖原来的数据包。 <br />
<br />
Stop capture after filling buffer:当存储数据缓冲区满了时,Iris将停止进行数据包截获,并停止纪录。 <br />
<br />
Load this filter at startup:捕获功能启动时导入过滤文件并应用,这样可以进行命令行方式的调试。 <br />
<br />
Scroll packets list to ensure last packet visible:一般要选中,就是将新捕获的数据包附在以前捕获结果的后面并向前滚动。 <br />
<br />
Use Address Book:使用Address Book来保存mac地址,并记住mac地址和网络主机名。而Ip也会被用netbios名字显示。 <br />
<br />
Decode(解码) <br />
<br />
Use DNS:使用域名解析 <br />
<br />
Edit DNS file:使用这个选项可以编辑本地解析文件(host)。 <br />
<br />
HTTP proxy:使用http使用代理服务器,编辑端口号。默认为80端口 <br />
<br />
Decode UDP Datagrams:解码UDP协议 <br />
<br />
Scroll sessions list to ensure last session visible:使新截获的数据包显示在捕获窗口的最上。 <br />
<br />
Use Address Book:同Capture中的Use Address Book <br />
<br />
Adapters(网络配置器) <br />
<br />
选择从哪个网络配置器(网卡)中截获数据。 <br />
<br />
Guard(警报和日志选项) <br />
<br />
Enable alarm sound:当发现合乎规则的数据包发出提示声音 <br />
<br />
Play this wave file:选择警报声音路径,声音格式是.wav <br />
<br />
Log to file:启动日志文件。如果选中后,当符合规则的数据包被截获后将被记录在日志文件中。 <br />
<br />
Ignore all LAN connections:Iris可以通过本地的ip地址和子网掩码识别地址是否是本地的地址。当这个选项被不选中后,Iris会接受所有的数据包(包括本机收发出的)。如果选中,将不接受本地网络的数据包。 <br />
<br />
Ignore connections on these>>:过滤指定端口(port),在列表中可以选择。 <br />
<br />
Use software filter:软件过滤方案生效。当没有被选中后,软件将会接受所有的数据。另外只有当Apply filter to incoming packets 被选中后Use software filter才能使用。 <br />
<br />
Miscellaneous(杂项功能) <br />
<br />
选项 功能描述 <br />
<br />
Packet buffer:设置用来保存捕获数据包最多个数(默认值是2000个) <br />
<br />
Stop when free disk space drops :当磁盘空间低于指定值时,Iris将会停止捕获和记录数据。 <br />
<br />
Enable CPU overload protection 当Cpu的占用率连续4秒钟达到100%时,Iris会停止运行。等到恢复正常后才开始纪录。 <br />
<br />
Start automatically with Windows:点击这里可以把Iris加入到启动组中。 <br />
<br />
Check update when program start:是否启动时检查本软件的更新情况。 <br />
<br />
4【任务】 <br />
<br />
Schedule:配置Iris指定的时间捕获数据包,蓝色代表捕获,白色代表停止捕获。 <br />
<br />
5.【建立过滤条件】 <br />
<br />
a.硬件过滤器(HardWare Filter): <br />
<br />
Promiscuous (噪音模式):使得网卡处于杂收状态,这个是默认状态。 <br />
<br />
Directed (直接连接):只接受发给本网络配置器的数据包,而其他的则不予接受。 <br />
<br />
Multicast (多目标):捕获多点传送的数据包 <br />
<br />
All multicast (所有多目标):捕获所有的多目标数据包 <br />
<br />
Broadcast (广播) 只捕获广播桢,这样的真都具有相同的特点,目的MAC地址都是FF:FF:FF:FF:FF:FF <br />
<br />
b.数据包捕获类型匹配(Layer 2,3): <br />
<br />
这个过滤设置位于DoD模型(四层)中的第二、三层——网络层和运输层。 <br />
<br />
利用这个过滤设置,可以过滤不同协议类型的数据。 <br />
<br />
include:表示包括此种协议类型的数据将被捕获; <br />
<br />
exclude:表示包括此种协议类型的数据将被忽略; <br />
<br />
也可以自定义协议类型,方法是配置proto.dat文件。Layer 2的协议编辑[PROTOCOL],而layer 3则编辑相应的[IP PROTOCOL]。我们用记事本打开proto.dat,在这里很多的协议可以被修改和添加。 <br />
<br />
c.字符匹配(Words Filter) <br />
<br />
加入你想过滤的关键字符到列表。列表下面有All和ANY两个选项(有的是AND和OR),其中ANY是指数据包至少要匹配列表中的一个关键字符,而ALL选项是指所有列表中的数据都要匹配才会显示出来。 <br />
<br />
Apply filter to packets是指显示带有关键字的数据帧,而其他的数据帧则会被抛弃。 <br />
<br />
Mark sessions containing words是指所有的数据帧都会被截获,只不过带有指定字符的数据帧会加上标志。 <br />
<br />
d.MAC地址匹配(MAC Address Filter) <br />
<br />
第一个窗口是IRIS可是识别出来的硬件地址。你可以点击这些地址把他们加到下边的Address 1或Address 2,如果你不这样做也可以自己输入地址到窗口二中; <br />
<br />
e.IP地址匹配层(IP address) <br />
<br />
和MAC地址匹配(MAC Address Filter)选项相类似,这个是IP地址匹配层。 <br />
<br />
f.端口匹配层(Ports) <br />
<br />
CP和UDP采用16 bit的端口号来识别应用程序的。FTP服务器的TCP端口号是2 1,Telnet服务器的TCP端口号是23,TFTP(简单文件传送协议)服务器的UDP端口号是69。任何TCP/IP实现所提供的服务都用知名的1~1023之间的端口号.例如我们想截获telnet中的用户名和密码这里我们就应该选择23 Port。 <br />
<br />
g.高级选项配置(Advanced) <br />
<br />
数据大小匹配选项(Size):可以选择指定接收的数据包的大小。 <br />
<br />
十六进制数据匹配(Data):指定数据包中所包含数据的十六进制字符相匹配。 <br />
<br />
6【截获数据包】 <br />
<br />
在数据包编辑区内,显示着完整的数据包。窗口分两部分组成,左边的数据是以十六进制数字显示,右边则对应着ASCII。点击十六进制码的任何部分,右边都会显示出相应的ASCII代码,便于分析。 <br />
<br />
十六进制码是允许进行编辑再生的,可以重写已经存在的的数据包。新的数据包可以被发送,或者保存到磁盘中。 <br />
<br />
<br />
<br />
7.【数据包编辑】 <br />
<br />
Capture > Show Packet Editor点击显示出来 <br />
<br />
利用工具条的选项可以进行数据包的保存,更改,加入到列表和发送等操作。 <br />
<br />
例如想生成一系列TCP数据包,首先点击生成一个空数据包,参照数据包格式,使得每一部分都用十六进制表示法来表示。建立了一个包假设它由100个字节的长度(假设一下,20 个字节是IP信息,20个字节是TCP信息,还有60个字节为传送的数据)。现在把这个包发给以太网,放14个字节在目地MAC地址之前,源MAC地址,还要置一个0x0800的标记,它指示出了TCP/IP栈后的数据结构。同时,也附加了4个字节用于做CRC校验 (CRC校验用来检查传输数据的正确性),之后我们点击发送按钮。