黑客技术渗透拿站 数据劫持
2.75K subscribers
423 photos
15 links
Download Telegram
tcpdump 的 MAN
在 Linux 系统中,如果您不了解任何应用程序的详细信息。您可以查阅 man 以获取其用户手册。以下是 tcpdump 的 MAN。

在特定网络接口上捕获数据包
sudo tcpdump -i <接口名称>下图中选择的接口是 ens33
sudo tcpdump -i ens33

应用特定协议的过滤器
sudo tcpdump -i <接口名称> -s0 -w <文件名.pacp > <协议>
sudo tcpdump -i ens33 -s0 -w s1_setup.pcap sctp
应用具有源 IP、特定端口和目标 IP 的多重过滤器
sudo tcpdump -i src <ip 地址> port <端口号> dst <ip 地址> -s0 -w <文件名.pacp >
sudo tcpdump -i src 192.168.3.1 端口 36422 dst 192.168.3.100 -s0 -w s1_setup.pacp
以十六进制 和 ASCII格式 显示运行时数据包链接级别标头
如何使用 tcpdump
让我们看一下使用 tcpdump 命令的一些基本语法和高级过滤。这些包括:

在特定网络接口(例如 eth0)上捕获数据包:
tcpdump -i eth0
仅捕获特定接口上发往或来自特定 IP 地址(例如 192.168.37.152)的数据包:
tcpdump -i eth0 host 192.168.37.152
仅捕获来自 eth0 且经过 ARP 协议过滤的数据包:
tcpdump -i eth0 arp
将捕获的数据包保存到文件:
tcpdump -i eth0 -w capture.cap
从保存的文件中读取:
tcpdump -r capture.cap
在 eth0 接口上捕获 TCP 数据包,其中 TCP 有效负载的前四个字节与 ASCII 字符串 SSH 匹配 - 这将查找 SSH 服务器给出的答复:
tcpdump -i eth0 'tcp[(tcp[12]>>2):4] = 0x5353482D'
如果您想了解更多可以与 tcpdump 一起运行的过滤器和命令
第一想的包是二次反序列化的,而且最明显的是在于没有过滤
signobject

因为我们的 normal 的 waf 是可以这样绕过的

然后就是选择调用链的过程了,首先依赖

熟悉的只有 cc 链和 jackson 的打原生反序列化链的

cc 链被强 waf 禁用得差不多了,而且不能使用 TemplatesImpl

然后就是学都没有学过的 Vaadin 依赖,当然刚刚学过了

一开始眼瞎,没有看到禁用了 jackson,还说 jackson+signobject 二次反序列化打个 jndi 呢

构造半天 paylaod,最后直接无情 waf 了

换思路,就使用 Vaadin 依赖,但是再去打 rce 肯定是不可能了 NestedMethodProperty 没了
DOS头 (DOS Header + DOS Stub)
PE 文件的开头通常包含一个 DOS 头,用于向后兼容早期的 MS-DOS 操作系统,使得 DOS 识别出这是有效的执行体,然后运行紧随之后的是 DOS Stub

DOS Header 由一个 0x40 大小的 IMAGE_DOS_HEADER 结构体组成

其中主要关注 e_magic 和 e_lfanew 这俩成员变量即可。e_magic 位于文件首,其值对应的 ASCII 为 MZ,标识该文件为可执行文件;e_lfanew 的值表示 PE 头的偏移地址

DOS Stub 在多数情况下由汇编器/编译器自动生成,由代码和数据混合而成,大小不固定,在不支持 PE 文件格式的操作系统中,它将简单显示一个错误提示。不需要过多关注,在 Windows OS 下不会运行这部分代码,但在DOS环境中可以运行。
0xD8 的 Address of Entry Point,指向程序入口 RVA,这个千万不能修改错。0xE4 的镜像基址不能动,0xE8 和 0xEC 的两个对齐大小需要注意。0xF8 的主子系统版本号不能动,0x100 的镜像在内存中大小,感觉改大了无所谓,别改小了导致不够用就行,这后面的 Size of Headers 标识着 PE 头的大小,要注意修改,不然就无法寻址到后面的节区了。0x10C 开始的两个字节的子系统号和两个字节的 DLL 标志不能动,0x124 是数据目录项数,是能改的,而且这个程序只需要导入表和导入地址表,但是一改就报错,所以先没管了... 然后这两个表的 rva 和 size 都是要去修改的,它俩的相对偏移也不能变

0x1A8 - 节表
这个程序有三个节,自然就有三个节表,分别是 .text 节表,.rdata 节表,.data 节表

这三个表的前八个字节都别去动,后面的真实大小不用管,要修改的是 RVA, Size, Pointer, 然后最后的四个字节的特征值也不能改,其他的都无所谓,每一个节表头都是这样

0x400 - .text
注意改这些 rva 地址,分析的方法是丢进 ida 去看代码段的每一句汇编代码分别对应了什么字节码,对比着就很容易把这些直接寻址的地方找出来,要注意的是最后两个地址其实是与 .rdata 段存储的 dll 的名字有关的