拦截发往特定IP地址的网络数据

为轮子而生 2019-12-18 07:40:34
想实现以下效果:
监听所有网络数据包
对发往指定IP的数据包实施拦截,使其访问不成功

试过SharpPcap,因需要给客户端安装winpcap,放弃
也试过Fiddler,通过代理来监控会导致用户体验极差,且对火狐无效
hook recv也试过,似乎只能监听本程序的收发
socket raw应该是只能抓取,但是不能拦截

公司的网络是私网,路由器在上级单位,有上千个终端,所以基本没有办法在路由或物理连接上做工作

C#有无可能实现这种功能呢? 或者有可供调用的基于NDIS什么的c++ dll也可以
...全文
345 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
为轮子而生 2020-02-25
  • 打赏
  • 举报
回复 1
引用 1 楼 wanghui0380 的回复:
引用 5 楼 datafansbj 的回复:
引用 8 楼 datafansbj 的回复:
已通过LSP实现,虽然是用c++,但代码比较简单,只需在LSP链中插入并注册WSPStartup、WSPSend等接口即可,效果还可以,能实现拦截和篡改。 谢过各位,礼貌散分。
datafansbj 2019-12-23
  • 打赏
  • 举报
回复
引用 7 楼 为轮子而生 的回复:
[quote=引用 5 楼 datafansbj 的回复:] 1、使用主机自带的防火墙可以实现,但需要配置策略,也不安全(稍微的高手就可破解) 2、使用硬件防火墙隔离,比较专业,也安全,但成本高(需要采购硬件,并需要配置其策略) 3、自己开发软件,难度大,且需要保证自身安全(不被修改、不被卸载、不被旁路) 我觉得你需要一个方案而不是技术实现。另外装 WinCap 有什么难度吗?为什么要放弃?
1、不能主动要求员工去配置防火墙,如果他在使用过程中关了防火墙而我们又不知道,就歇菜了。 2、有几千个员工终端,通过各种不同的组网方式接入进来,已经超出硬件防火墙的能力范围了,不然按网络节点来算,至少要买100多台硬件防火墙,这个费用肯定批不下来 3、不需要担心被修改或被卸载,可以统一要求员工记名安装,软件被做手脚可以追究相关负责人责任,而且我们的软件要有密码才能卸载,类似于360企业版。 所以只想探究一下,在应用层拦截数据包有无可能[/quote] 既然条件所限,就需要自己开发一套软件了。在应用层拦截,基本是不靠谱的,您必须考虑到过滤效率和安全性。我们开发过这类软件,是从驱动层入手,编写内核代码来实现的。 另外我觉得客户有几千台终端需要上安全软件,规模也不小了,只在主机上做安全还是比较脆弱,还是上一些硬件安全设备比较好,只上软件,看似成本降下来了,但是后期维护成本高,综合下来成本并不划算。
为轮子而生 2019-12-21
  • 打赏
  • 举报
回复
引用 5 楼 datafansbj 的回复:
1、使用主机自带的防火墙可以实现,但需要配置策略,也不安全(稍微的高手就可破解) 2、使用硬件防火墙隔离,比较专业,也安全,但成本高(需要采购硬件,并需要配置其策略) 3、自己开发软件,难度大,且需要保证自身安全(不被修改、不被卸载、不被旁路) 我觉得你需要一个方案而不是技术实现。另外装 WinCap 有什么难度吗?为什么要放弃?
1、不能主动要求员工去配置防火墙,如果他在使用过程中关了防火墙而我们又不知道,就歇菜了。 2、有几千个员工终端,通过各种不同的组网方式接入进来,已经超出硬件防火墙的能力范围了,不然按网络节点来算,至少要买100多台硬件防火墙,这个费用肯定批不下来 3、不需要担心被修改或被卸载,可以统一要求员工记名安装,软件被做手脚可以追究相关负责人责任,而且我们的软件要有密码才能卸载,类似于360企业版。 所以只想探究一下,在应用层拦截数据包有无可能
为轮子而生 2019-12-21
  • 打赏
  • 举报
回复
引用 3 楼 我的大神666 的回复:
只是拦截特定ip,直接使用防火墙就行了,而且不会涉及个人隐私。
引用 4 楼 by_封爱 的回复:
楼上说的没错 .. 自带防火墙即可实现.. 出站规则自己设定一下就无法访问了..
因为是对所有员工终端的强制管理,所以不能“要求”他们去做什么,而是要“悄悄”地做一些事情,否则他们不打开防火墙,岂不是就管理不了。至于为什么要这样做,企业特殊环境所致,加之上级就是这么要求的,我也没办法。
datafansbj 2019-12-19
  • 打赏
  • 举报
回复
1、使用主机自带的防火墙可以实现,但需要配置策略,也不安全(稍微的高手就可破解) 2、使用硬件防火墙隔离,比较专业,也安全,但成本高(需要采购硬件,并需要配置其策略) 3、自己开发软件,难度大,且需要保证自身安全(不被修改、不被卸载、不被旁路) 我觉得你需要一个方案而不是技术实现。另外装 WinCap 有什么难度吗?为什么要放弃?
by_封爱 版主 2019-12-19
  • 打赏
  • 举报
回复
楼上说的没错 .. 自带防火墙即可实现.. 出站规则自己设定一下就无法访问了..
「已注销」 2019-12-19
  • 打赏
  • 举报
回复
只是拦截特定ip,直接使用防火墙就行了,而且不会涉及个人隐私。
为轮子而生 2019-12-18
  • 打赏
  • 举报
回复
引用 1 楼 wanghui0380 的回复:
搜socket5代理,nuget上有一批。 简单点,可以直接改host文件,复杂点的用socket5代理
host文件只能影响域名解析,没法屏蔽ip地址吧 socket5代理不太了解,是要弄一台代理服务器,还是用代码实现一个代理的功能呢
wanghui0380 2019-12-18
  • 打赏
  • 举报
回复
搜socket5代理,nuget上有一批。

简单点,可以直接改host文件,复杂点的用socket5代理

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧