首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Go中原始套接字的深度实践

    原始套接字(raw socket)是一种网络套接字,允许直接发送/接收更底层的数据包而不需要任何传输层协议格式。平常我们使用较多的套接字(socket)都是基于传输层,发送/接收的数据包都是不带TCP/UDP等协议头部的。 当使用套接字发送数据时,传输层在数据包前填充上面格式的协议头部数据,然后整个发送到网络层,接收时去掉协议头部,把应用数据抛给上层。如果想自己封装头部或定义协议的话,就需要使用原始套接字,直接向网络层发送数据包。 为了便于后面理解,这里统一称应用数据为 payload,协议头部为 header,套接字为socket。由于平常使用的socket是建立在传输层之上,并且不可以自定义传输层协议头部的socket,约定称之为应用层socket,它不需要关心TCP/UDP协议头部如何封装。这样区分的目的是为了理解raw socket在不同层所能做的事情。

    02

    Metasploit获取不到会话原因

    (1) 快速判断Metasploit会话完整性 如果直接通过浏览器访问监听IP:Port,或者是在获取会话的过程中按Ctrl+C键强制结束掉了,这时我们获取到的会话可能都是不完整的,即使成功得到了会话,进去之后会发现很多命令都执行不了。 这时可以通过session命令来快速判断我们得到的会话完整性,如果“Information”列中为空白则是不完整,反之则完整。 (2) Payload与目标系统架构不一样 这里说的系统架构不一样是因为我们生成的Msf Payload是x64,而目标系统是x86,在执行Payload过程中会出现“不是有效的Win32应用程序”报错,所以无法获取到会话。 这种情况一般出现在XP/2003机器上,不过x86的Payload可以在x64上成功运行,不存在兼容性问题。 (3) Payload与监听模块设置不一样 我们生成的Msf Payload是x86的,但是在handler监听模块里设置的Payload为x64时就会出现这种会话自动断开的情况。 不过在这种情况下如果Payload是可执行的,我们只需要将handler监听模块里设置的Payload改为对应的x86即可解决。 重点注意:

    04
    领券