说到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.如果还没有得到解决,那就把问题详细描述出来,在论坛上发贴求助。
六. 结束语
第一次写这种软件教程类的咚咚,写的不好,还望各位看官多多见谅!
教程原文
读感:该教程写的不够深入,只介绍了如何简单(抓包以及停止抓包和选择相应的协议)使用,并未对抓包、解码内容部分进行详述、分析。
Iris 和 LooknStop 中文系统两位数字的IP地址修正
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:\0Day\SysInfo\comctl32>fc /b comctl32.old comctl32.dll
正在比较文件 comctl32.old 和 COMCTL32.DLL
00053ED4: 01 81
6. 把文件拷贝到系统,然后重启。请注意不能直接覆盖文件,系统有保护。
cd /d F:\0Day\SysInfo\comctl32
move %SystemRoot%\system32\comctl32.dll %SystemRoot%\system32\comctl32.old
copy /y comctl32.dll %SystemRoot%\system32
cd /d %SystemRoot%\system32
fc /b comctl32.old comctl32.dll
刚开始文件是不同的,但是大约过了十秒钟,再运行 fc /b 就发现怪事了。
D:\WINDOWS\system32>fc /b comctl32.old comctl32.dll
正在比较文件 comctl32.old 和 COMCTL32.DLL
FC: 找不到相异处
所以我们推断此文件是受到系统的保护,在 Explorer 窗口“工具-->文件
夹选项-->”里,反选“隐藏受保护的操作系统文件”以及“隐藏已知文件
类型的扩展名”,在“隐藏文件和文件夹”里有两个子选项,一定要选中
下面那个“显示所有文件和文件夹”。
到 Windows 的安装目录搜索comctl32,现在你总算发现真正的幕后黑手了。
D:\WINDOWS\system32\dllcache。备注:我的 WinXp 装在 D 盘,C 盘只
拿来做启动以及跟 Unix 交换文件,类似于 Unix/BSD/Linux 的 Boot 区。
只要我们对症下药,就可以更新文件了。
REM {注意:工作路径 F:\0Day\SysInfo\comctl32,请大家按实际情况改}
cd /d F:\0Day\SysInfo\comctl32
REM {注意:备份 %SystemRoot%\system32\dllcache\ 的 .old 用 copy }
copy /y %SystemRoot%\system32\dllcache\comctl32.dll %SystemRoot%\system32\dllcache\comctl32.old
copy /y comctl32.dll %SystemRoot%\system32\dllcache
move %SystemRoot%\system32\comctl32.dll %SystemRoot%\system32\comctl32.old
copy /y comctl32.dll %SystemRoot%\system32
cd /d %SystemRoot%\system32\dllcache
fc /b comctl32.old comctl32.dll
cd /d %SystemRoot%\system32
fc /b comctl32.old comctl32.dll
期间会弹出 Windows 文件保护的对话框,请选“取消”,系统会继续追问
你是否确实保留这些不可识别的文件版本,请选“是”。如果系统继续弹出
对话框,按上面的方法回答。通常一到两次左右就好了。
现在验收一下替换文件的成果啦,请注意两个目录的文件都变了。如果第一
次没能做出正确的效果,那么就从拷贝文件开始按流程再做一次。如果系统
文件已经被菜鸟级的同胞弄乱了,那就按本文最后的办法来恢复。
D:\WINDOWS\system32>cd /d %SystemRoot%\system32\dllcache
D:\WINDOWS\system32\dllcache>fc /b comctl32.old comctl32.dll
正在比较文件 comctl32.old 和 COMCTL32.DLL
00053ED4: 01 81
D:\WINDOWS\system32\dllcache>cd /d %SystemRoot%\system32
D:\WINDOWS\system32>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 (将当前代码页和界面语言切换为繁体中文)