基于IPsec VPN构建中转隧道,并应用于HTB 靶机练习和OSCP考试

慕鸢 2026-02-16 01:44 1

前言



这是一个目录/清单贴(随缘更),在这里,我会按照每日1~2台的进度完成htb的73台靶机(后续可能更新更多靶机),并更新渗透测试详细记录,我会记录我的来时路,以期望帮助到每一个后来人!
欢迎大家监督,也欢迎大家一起学习,共同进步!
我会边打靶边记录我的渗透测试过程,并形成一篇完整的报告,这个过程短则三、四小时,长则七、八小时,可能会有疏漏,欢迎大家斧正!
我的最终目标是在年底之前,获得OSC…


我时常苦恼于网络波动,尤其是当我在HTB的靶机上练习的时候。


举几个例子


比如刚刚回弹一个shell,直接断开连接


比如在目录遍历,结果由于丢包,导致漏掉了一个关键后台或者api接口


比如刚拿到root权限,正准备提取flag交上去的时候,ssh卡死不动



网络中断在我初期学习的时候,对我造成了极大的困扰,经常打一台靶机,可以能有百分之五十的时间和精力,都浪费在了重连和重新走流程敲命令上,毕竟有时候shell是十分脆弱的,要组合利用漏洞,要发两三个包,才能获得一个一个相对稳定的交互性shell,但是如果这时候,网络波动一下,就得从头来过,这个过程是极度让我红温的。


但是我确实没有什么办法,那时候手里只有辣鸡机场用,看看论坛谁推荐什么机场,就买一个回来试试,但是说实话,都差不多,该掉线还是掉线,新加坡总掉线,那就连欧洲,欧洲不行就美国,美国不行就加拿大,最开始我就只能这样学习,周游世界。


后面被逼的没办法了,在中气爱佬友和一众佬友的帮助下,买下了第一台搬瓦工美西CN2,并在他的帮助下,起了第一个自建节点。


https://linux.do/t/topic/781694


https://linux.do/t/topic/838423


但是新的问题接踵而至,只有一个节点,sla是无法保证的,断流也是时有发生,突然的中断或者线路波动,也会让我抓狂,我继续寻找解决的办法。


因为HTB 在 新加坡是提供靶机的,所以我其实更倾向于连HTB在新加坡的服务器,网络延时会更低,所以,我的目光投向了香港、澳门、日本、新加坡的vps节点。


但是那段时间,香港在ddos大战,日本尚可,新加坡的优化线路属实是贵的要死,我实在是没办法,我买了HTB的VIP+,这样HTB就提供了一个浏览器的vnc 攻击机使用(不限时间),同时也提供ssh连接,这样攻击流量就全部走内网,不会因为网络问题导致一些奇奇怪怪的情况发生。


但是问题还是接踵而至。首先HTB 的 vip+ 很贵,其次VNC的连接,很吃延时,如果延时和丢包波动,也基本上是用不了的,直接卡成PPT,晚高峰的时候,更甚。


不过我还是有解决方案的,尽管vnc有时候卡成ppt,不过很多攻击动作在命令行就可以完成,所以我一般只连接攻击机的ssh,尽可能用命令行完成攻击,毕竟谁也不想看ppt。


解决方案


目前的解决方案,使用 IPsec VPN ,我参考的是这个开源项目 GitHub - hwdsl2/setup-ipsec-vpn: Scripts to build your own IPsec VPN server, with IPsec/L2TP, Cisco IPsec and IKEv2 · GitHub


需要买一台带宽在20Mps-50Mps的亚太地区服务器(港澳台日新),当然如果你连欧洲就买法兰克福的,连美国就是洛杉矶。


我选择亚太地区,是因为我既要连美国,又要连新加坡,加上最近香港有了一些相对便宜好用的vps


具体的可以私信问我,点我头像。


买下vps之后,系统就装Ubuntu24.04x64,执行下面的脚本部署 IPsec VPN 。


简单介绍一下这个IPsec VPN。


机翻:IPsec VPN 可以加密你的网络流量,以防止在通过因特网传送时,你和 VPN 服务器之间的任何人对你的数据的未经授权的访问。


而且由于 IPsec 运行在网络层(L3),所以它可以对所有 IP 流量(包括 TCP, UDP, ICMP 等)进行无差别加密。


基本上所有的操作系统原生支持 IPsec ,硬件也是原生支持的,性能很高。


具体的我不展开了,我不是专业的网络工程师。


wget https://get.vpnsetup.net -O vpn.sh && sudo sh vpn.sh

言归正传,当你在vps上执行完这个脚本之后,所有的一切都自动化完成了,终端会显示 认证信息,主要包括四样,IP,PSK(预共享密钥),用户名,密码,这四个保存好。


顺便再给主机开启BBR


sudo bash -c 'echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf'
sudo bash -c 'echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf'
sudo sysctl -p

如何连接


kali右上角添加vpn或者配置vpn



连接类型选择 L2TP



然后填IP,用户名,密码,这些都是执行完脚本获得的



最后填PSK,点应用和保存,记得改一下连接名称。



完成这几步,基本上就大功告成了


解决MTU包大小问题


由于默认包大小是1500,然后 IPsec VPN 的ppp0网卡把 MTU设置成 1280,但是,当启动openVPN连接练习环境的时候,新的网卡(通常叫tun0),它的MTU 默认情况下是1500。


因为 OpenVPN (tun0) 是跑在 IPsec (ppp0) 之上的,这就形成了“隧道嵌套”。


为了让网络正常工作,要确保最内层的 tun0 的 MTU 比 ppp0 更小,以预留出 OpenVPN 自身的报头空间。


所以就需要调整tun0的MTU (这一步在每次连接openVPN之后都要执行


sudo ip link set dev tun0 mtu 1100

在嵌套环境下,报头开销计算如下:



  • 物理层 (eth0): 1500 字节

  • IPsec/L2TP 封装 (ppp0): 自动缩减到了 1280 字节

  • OpenVPN 封装 (tun0): 再缩减 180 字节,设为 1100


最终效果


1500个包,零丢包。



隧道共享


这条IPsec VPN 隧道是我是打算免费共享给需要的佬友用的,如果你也有HTB 打靶需要,或者考取 OSCP 需要,可以私信我获取连接方式,毕竟要是大家都去为了这点需要,人手一台vps,那些商家岂不是赚麻了。


为了避免滥用,如果佬友需要使用,需要向我展示一些能证明你你将合法使用隧道的凭证,例如:



  • 你持有的网络安全证书

  • 你的HTB账号等级

  • 你的OSCP课程或其他课程页面


当然如果有人愿意赞助我vps的钱,我也是愿意接受的,ldc也行。(我只接受无偿赞助)


又熬夜写文章了,睡觉睡觉!!!

最新回复 (10)
  • schneider 02-16 01:51
    2

    很有帮助啊佬,我是在htb给的vpn基础上改了改openvpn文件,代理梯子的流量,不过最近也是梯子卡的不行。网络波动很大,看了佬的这篇文章我也打算搭建一个了

  • Muse 02-16 01:52
    3

    佬友半夜码字,太幸苦了。

  • Grogu 02-16 05:45
    4

    学习一下,感谢慕鸢佬分享 ^-^

  • Ken 02-16 09:06
    6

    涉及gfw了 友情帮你上了个lv1 如果你觉得没必要再调回来哈

  • H.I.A 02-16 11:02
    7

    每次看佬友的帖子都能学习到很多,太强了佬友

  • O & M 02-16 11:24
    9

    感谢慕鸢佬的分享~

  • 近战法师 02-16 12:21
    10

    ipsec能过墙?

  • 02-16 22:49
    11

    中气爱佬友



    是那位B站UP嘛 ^-^ 还是撞名?

  • 慕鸢 楼主 02-16 23:15
    12

    撞名字了

  • 5a1F-OEd-INC-q2E 09-16 04:18
    13

    近期试了下直接在vps使用exegol进行测试,体验更好些。SSH使用优化线路拉

    攻击环境不需要额外部署,并且似乎工程化?

* 帖子来源Linux.do
返回