【溯源系列】使用Wireshark分析日志文件:发现有人对网站进行了SQL注入,分析日志找到该IP地址

news/2024/11/14 12:56:57/文章来源:https://www.cnblogs.com/o-O-oO/p/18370487

工具

Wireshark

某公司安全工程师在维护网站时发现有人对网站进行了SQL注入,分析日志找到该IP地址。

要点

SQL.log文件主要显示具体的sql语句】access.log文件主要是记录web页面操作数据库的请求

解题很简单,直接打开access.log文件,一步到位,检索sql注入的常见关键词select、union、order by

得到可疑IP:163.53.64.48

某公司安全工程师抓取到一段Wireshark数据包,其中有一个IP连接过/admin_d98gD2@k/login.php

要点

一个ip连接xxxx.php的文件

首先,当看到php的一句话木马,大胆的一步到位,构造wireshark的过滤语句

http contains "/admin_d98gD2@k/login.php"

一步到位,找到source地址

某公司运维抓取一段Wireshark数据包,其中有一个DNS服务器,找到这个DNS服务器IP地址

要点

溯源DNS服务器(过滤条件检索dns)

172.16.200.101ip出现频率最高

过滤MAC地址
eth.addr == 80:f6:2e:ce:3f:00 //过滤目标或源地址是80:f6:2e:ce:3f:00的数据包
eth.src == 80:f6:2e:ce:3f:00 //过滤源地址是80:f6:2e:ce:3f:00的数据包
eth.dst == 80:f6:2e:ce:3f:00 //过滤目标地址是80:f6:2e:ce:3f:00的数据包过滤VLAN
vlan.id == 2594IP过滤
//源地址过滤
ip.src == 192.168.0.208
ip.src eq 192.168.0.208//目标地址过滤
ip.dst == 192.168.0.208
ip.dst eq 192.168.0.208//ip地址过滤。不论源还是目标
ip.addr == 192.168.0.208
ip.addr eq 192.168.0.208端口过滤
tcp.port == 80
udp.port eq 80tcp.dstport == 80 // 只显tcp协议的目标端口80
tcp.srcport == 80 // 只显tcp协议的来源端口80//过滤端口范围
tcp.port >= 1 and tcp.port <= 80常用协议过滤
tcp
udp
arp
icmp
http
smtp
ftp
dns
msnms
ip
ssl
等等排除ssl包,如!ssl 或者 not sslhttp模式过滤
http.request.method == “GET”
http.request.method == “POST”
http.request.uri == “/img/logo-edu.gif”
http contains “GET”
http contains “HTTP/1.”// GET包
http.request.method == “GET” && http contains “Host: ”
http.request.method == “GET” && http contains “User-Agent: ”
// POST包
http.request.method == “POST” && http contains “Host: ”
http.request.method == “POST” && http contains “User-Agent: ”
// 响应包
http contains “HTTP/1.1 200 OK” && http contains “Content-Type: ”
http contains “HTTP/1.0 200 OK” && http contains “Content-Type: ”运算符
less than:lt
less and equal: le
equal:eq
great then:gt
great and equal:ge
not equal:ne过滤内容
tcp[20] 表示从20开始,取1个字符
tcp[20:]表示从20开始,取1个字符以上
tcp[20:8]表示从20开始,取8个字符
tcp[offset,n]udp[8:3]==81:60:03 // 偏移8个bytes,再取3个数,是否与==后面的数据相等?
udp[8:1]==32 如果我猜的没有错的话,应该是udp[offset:截取个数]=nValue
eth.addr[0:3]==00:06:5B判断upd下面那块数据包前三个是否等于0x20 0x21 0x22
我们都知道udp固定长度为8
udp[8:3]==20:21:22判 断tcp那块数据包前三个是否等于0x20 0x21 0x22
tcp一般情况下,长度为20,但也有不是20的时候
tcp[8:3]==20:21:22matches(匹配)和contains(包含某字符串)语法
ip.src==192.168.1.107 and udp[8:5] matches "\x02\x12\x21\x00\x22"
ip.src==192.168.1.107 and udp contains 02:12:21:00:22
ip.src==192.168.1.107 and tcp contains "GET"
udp contains 7c:7c:7d:7d 匹配payload中含有0x7c7c7d7d的UDP数据包,不一定是从第一字节匹配。通过报文细节创建显示过滤规则
右键细节并使用Apply as Filter子菜单,就可以根据此细节创建过滤条件。比如使用Apply as Filter->Selected以上均为Display Filter。在开始抓包前可以进行过滤:
Capture Filter (尽量避免使用抓包过滤。即便多看几个报文,也比漏看一个报文要好)
host 10.3.1.1:抓取发到/来自10.3.1.1的数据流
host 2406:da00:ff00::6b16:f02d:抓取发到/来自IPv6地址2406:da00:ff00::6b16:f02d的数据流
not host 10.3.1.1:抓取除了发到/来自10.3.1.1以外的所有数据流
src host 10.3.1.1:抓取来自10.3.1.1的数据流
dst host 10.3.1.1:抓取发到10.3.1.1的数据流
host 10.3.1.1 or 10.3.1.2:抓取发到/来自10.3.1.1,以及与之通讯的所有数据流,与10.3.1.2,以及与之通讯的所有数据流
host www.espn.com:抓取发到/来自所有解析为www.espn.com的IP地址的数据流net 10.3.0.0/16:抓取网络10.3.0.0上发到/来自所有主机的数据流(16表示长度)
net 10.3.0.0 mask 255.255.0.0:与之前的过滤结果相同
ip6 net 2406:da00:ff00::/64:抓取网络2406:da00:ff00:0000(IPv6)上发到/来自所有主机的数据流
not dst net 10.3.0.0/16:抓取除了发到以10.3开头的IP地址以外的所有数据流
not src net 10.3.0.0/16:抓取除了来自以10.3开头的IP地址以外的所有数据流
ip proto <protocol code>:抓取ip协议字段等于<protocol code>值的报文。如TCP(code 6), UDP(code 17), ICMP(code 1)。
ip[2:2]==<number>:ip报文大小
ip[8]==<number>:TTL(Time to Live)值
ip[9]==<number>:协议值
icmp[icmptype]==<identifier>: 抓取 ICMP代码等于identifier的ICMP报文, 如icmp-echo 以及 icmp-request。方括号中第一个数字表示从协议头开始的偏移量,第二个数字表示需要观察多少位。ip broadcast:抓取广播报文
ip multicast:抓取多播报文
dst host ff02::1:抓取到IPv6多播地址所有主机的数据流
dst host ff02::2:抓取到IPv6多播地址所有路由器的数据流ether host 00:08:15:00:08:15:抓取发到/来自00:08:15:00:08:15的数据流
ether src 02:0A:42:23:41:AC:抓取来自02:0A:42:23:41:AC的数据流
ether dst 02:0A:42:23:41:AC:抓取发到02:0A:42:23:41:AC的数据流
not ether host 00:08:15:00:08:15:抓取除了发到/来自00:08:15:00:08:15以外的所有数据流
ether broadcast或ether dst ff:ff:ff:ff:ff:ff:抓取广播报文
ether multicast:多播报文
抓取指定以太网类型的报文:ether proto 0800
抓取指定VLAN:vlan <vlan number>
抓取指定几个VLAN:vlan <vlan number> and vlan <vlan number>port 53:抓取发到/来自端口53的UDP/TCP数据流(典型是DNS数据流)
not port 53:抓取除了发到/来自端口53以外的UDP/TCP数据流
port 80:抓取发到/来自端口80的UDP/TCP数据流(典型是HTTP数据流)
udp port 67:抓取发到/来自端口67的UDP数据流(典型是DHCP据流)
tcp port 21:抓取发到/来自端口21的TCP数据流(典型是FTP命令通道)
portrange 1-80:抓取发到/来自端口1-80的所有UDP/TCP数据流
tcp portrange 1-80:抓取发到/来自端口1-80的所有TCP数据流port 20 or port 21:抓取发到/来自端口20或21的UDP/TCP数据流(典型是FTP数据和命令端口)
host 10.3.1.1 and port 80:抓取发到/来自10.3.1.1端口80的数据流
host 10.3.1.1 and not port 80:抓取发到/来自10.3.1.1除了端口80以外的数据流
udp src port 68 and udp dst port 67:抓取从端口68到端口67的所有UDP数据流(典型是从DHCP客户端到DHCP服务器)
udp src port 67 and udp dst port 68:抓取从端口67到端口68的所有UDP数据流(典型是从DHCP服务器到DHCP客户端)
抓取TCP连接的开始(SYN)和结束(FIN)报文,配置tcp[tcpflags] & (tcp-syn|tcp-fin)!=0
抓取所有RST(Reset)标志位为1的TCP报文,配置tcp[tcpflags] & (tcp-rst)!=0
less <length>:抓取小于等于某一长度的报文,等同于len <=<length>
greater <length>:抓取大于等于某一长度的报文,等同于len >=<length>tcp[13] & 0×00 = 0: No flags set (null scan)
tcp[13] & 0×01 = 1: FIN set and ACK not set
tcp[13] & 0×03 = 3: SYN set and FIN set
tcp[13] & 0×05 = 5: RST set and FIN set
tcp[13] & 0×06 = 6: SYN set and RST set
tcp[13] & 0×08 = 8: PSH set and ACK not set
tcp[13]是从协议头开始的偏移量,0,1,3,5,6,8是标识位

可使用单个或多个过滤条件(可使用==,>=等),多个条件时使用and or进行连接
1.过滤IP,如来源IP或者目标IP等于某个IP

例子:

ip.src ==192.168.1.107 or ip.dst ==192.168.1.107

2.过滤端口

例子:

tcp.port eq 80 // 不管端口是来源的还是目标的都显示
tcp.port == 80
tcp.dstport == 80 // 只显tcp协议的目标端口80
tcp.srcport == 80 // 只显tcp协议的来源端口80

过滤端口范围tcp.port >= 1 and tcp.port <= 80
3.过滤协议

例子:

tcp udp arp icmp http smtp ftp dns等等

排除arp包,如!arp 或者 not arp
4.过滤MAC

例子太以网头过滤

eth.dst == A0:00:00:04:C5:84 // 过滤目标mac
eth.src eq A0:00:00:04:C5:84 // 过滤来源mac

5.包长度过滤

例子:

udp.length == 26 这个长度是指udp本身固定长度8加上udp下面那块数据包之和
tcp.len >= 7   指的是ip数据包(tcp下面那块数据),不包括tcp本身
ip.len == 94 除了以太网头固定长度14,其它都算是ip.len,即从ip本身到最后
frame.len == 119 整个数据包长度,从eth开始到最后

6.http模式过滤

例子:

http.request.method == “GET”http.request.method == “POST”http.request.uri == “/img/logo-edu.gif”http contains “GET”http contains “HTTP/1.”

7.TCP参数过滤

tcp.flags 显示包含TCP标志的封包。
tcp.flags.syn == 0x02     显示包含TCP SYN标志的封包。

8.报文

原创 燕尾笔记铺

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/785364.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【OS系列】程序是怎么一步步变成机器指令的?

程序是怎么一步步变成机器指令的? 2024年08月22日 12:03 四川 以下文章来源于码农的荒岛求生 ,作者码农的荒岛求生 大家好,今天简单聊聊程序是怎么一步步变成机器指令的。 左边是我们写的代码,右边是CPU执行的机器指令:想让CPU执行代码只需要简单的点击一下这个按钮:可是…

小米电视主页导航栏修改啦

小米电视导航栏可以修改啦,终于不再杂乱无章了。 步骤一:点击我的,拉到最下方,导航管理步骤二:进入导航管理后,按遥控器OK键,就可以移动了。OK 键 按遥控器菜单键,就可以删除或者添加了。菜单键 就是这么简单,赶紧去试试吧版权申明本文由:二萌生活发布,如需转载请注…

安装MySQL报错ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost:3306‘ (10061)

今天要在本地装个mysql,发现mysql-5.7.19-winx64版总是报错由于找不到MSVCP120.dll,无法继续执行代码。重新安装程序可能会解决此问题。,去微软官网找到了最新的Visual C++ Redistributable for Visual Studio,下载后发现还是不停地报错。怀疑是系统不兼容,没办法只好安装m…

Centos scp 免密传输文件

mkdir -p ~/.ssh 1、在 A 服务器上,进入.ssh 目录; [root@iZam205rbu8s7yra2fop0nZ ~]# cd ~/.ssh/2、在 A 服务器上面的.ssh 目录下生成密钥; [root@iZam205rbu8s7yra2fop0nZ .ssh]# ssh-keygen -t rsa 生成两个密钥,一个是私钥,一个是公钥;3、在 B 服务器上创建.ssh 文…

mysql57小版本升级操作指南

1. 关停 注意要使用 慢速关闭mysql,这样InnoDB在关闭之前执行完整的清除和更改缓冲区合并。 登录到mysql中 执行 mysql> SET GLOBAL innodb_fast_shutdown=0; mysql> shutdown;2. 备份 注:备份数据目录和应用程序,注意mysql的属主属组 数据目录查找方式: MySQL 的数据…

MySQL 亿级数据平滑迁移实战

本文介绍了一次 MySQL 数据迁移的流程,通过方案选型、业务改造、双写迁移最终实现了亿级数据的迁移。作者:来自 vivo 互联网服务器团队- Li Gang本文介绍了一次 MySQL 数据迁移的流程,通过方案选型、业务改造、双写迁移最终实现了亿级数据的迁移。 一、背景 预约业务是 vivo…

星尘智能发布AI机器人助理Astribot S1

原文链接:https://mp.weixin.qq.com/s/P26zhHzmuqe0M2TDTLRlvg星尘智能很高兴正式发布 AI 机器人助理—— Astribot S1 我们精心打磨了 S1 背后的技术与产品细节, 希望它为你而生,为你而智(Naturally Yours)。星尘智能 S1 产品视频请看:https://www.bilibili.com/video/B…

再谈《Visual Studio中编写x64汇编的具体方法》

很久以前,写了一篇 《VS2010中编写x64汇编的具体方法》 当时也没有太深入研究,只是粗粗的实现了功能而已。后来看了微软官方文档,才发现有更简单更合理的设置方法。 微软原文如下: MASM for x64 (ml64.exe) | Microsoft Learn将汇编程序语言文件添加到 Visual Studio C++ 项…

Linux安装JDK两种方式详细教程(附图)

Linux安装JDK详细教程(图文教程)这里介绍两种方式:yum安装方式和手动安装1、yum安装1.1 查看JDK版本,找到你想要安装的JDK版本,这里以 JDK1.8 为例输入命令:yum -y list java*1.2 安装JDK1.8输入命令:yum install -y java-1.8.0-openjdk.x86_64出现Complete!安装完成。…

我的新项目又来咯!

这次的项目周期计划 1 个月左右,争取带大家快速搞定,能够作为秋招时简历上的亮眼项目~大家好,我是鱼皮,今天分享个我的新项目公开课预告~ 今晚(8 月 22 号)晚 20 点 ,我会继续在 B 站和抖音《程序员鱼皮》账号 直播新项目,依然是从 0 到 1 全程直播开发! 这次的项目周…

【日记】好想换电脑(634 字)

正文最近连着发了好多高温橙色预警,就算坐在行内都能感觉到明显的闷热。每次写日记想一想今天都做了些什么,总是觉得什么也没做。上班之后感觉生活十分枯燥。明明学生时代有那么多的事情可以写。昨天涩得太晚了,2 点钟才睡。今天有些睡眠不足。也因此中午睡了一个好觉。明明…

Java学习笔记2(数据库的三大范式)

什么是范式?范式是数据库设计时遵循的一种规范,不同的规范要求遵循不同的范式。 最常用的三大范式第一范式(1NF):属性不可分割,即每个属性都是不可分割的原子项。(实体的属性即表中的列) ps:举个例子,地址列山东省青岛市市北区,可以这样存储,但是实际上不满足第一范式,…