被动os指纹更改为MacOS

时间:2018-10-16 16:02:40

标签: linux ubuntu proxy fingerprint

Ubuntu 16.04服务器,在服务器上引发了代理(3代理)。通过Macbook通过代理连接时,操作系统指纹定义为Linux 3.11,从不[fuzzy](http://witch.valdikss.org.ru/) 目前,通过对/etc/sysctl.conf内核设置使用非复杂的操作,事实证明可以更改为Android(Linux 2.2.x-3.x [通用] [模糊])和Windows NT。

需要更改操作系统指纹,以便http://witch.valdikss.org.ru/将连接定义为Mac OS X [通用] [模糊]

1 个答案:

答案 0 :(得分:-1)

根据p0f README“最有价值的TCP指纹信号之一”是TCP选项布局。应用于MacOS和Linux指纹条目,这意味着我们应该从以下位置更改布局:

mss,sok,ts,nop,ws

mss,nop,ws,nop,nop,ts,sok,eol+1

sysctl无法完成此操作,因为Linux内核将此命令硬编码到tcp_connect syscall中:https://github.com/torvalds/linux/blob/bab5c80b211035739997ebd361a679fa85b39465/net/ipv4/tcp_output.c#L458

因此,您必须编写netfilter内核模块,以便稍后像TCPMSS模块那样处理TCP选项: https://github.com/torvalds/linux/blob/master/net/netfilter/xt_TCPMSS.c

修补tcp_connect或编写自定义netfilter模块都需要强大的内核编程技能。

另一种选择是通过用户空间程序以某种方式拦截TCP SYN/SYN+ACK数据包(也许nfqueue或带有原始套接字的tproxy可以提供帮助),处理它并写回到内核。这会严重影响性能,但更易于实现。

UPD:我已经搜索了一些基于nfqueue / python的可行且肮脏的技术示例:https://forums.hak5.org/topic/33532-p0f-mangler/