PVE集群重建和涉案网站重构工作

网络拓扑

PVE集群

仿真

将数据盘(data)和系统盘(sys)进行挂载并仿真

涉案网站重构工作

做法一

绕密+端口转发

虚拟化配置

虚拟网络配置:目的是让本机可以访问到;根据管理平台的地址我们对子网和网关进行配置。并将网络设置改为nat设置

随后访问平台地址https://192.168.71.133:8006/

软路由部分(Router)

访问http://192.168.71.100:8080/cgi-bin/luci/

javaserver

绕密

因为在MobaXterm的历史连接记录中没有出现该虚拟机的密码,所以此时我们需要对其进行一个密码绕过的操作;在进行连接中的时候我们就按下esc

选择继续

继续按下esc键

输入normal后按下回车然后再按下esc键;此时就可以进入引导页面

选择第二个之后,进入修改界面;选择第二个选择

按下e进行修改

修改前:

修改后:

接下来就可以进行改密码的操作了

进入后发现该机器处于192.168.100.111段,此时与我们的网段不符合

sqlserver

绕密

sql服务器使用了国产操作系统openEuler,单用户修改密码时需要输入grub的密码,该系统的默认配置为:系统默认用户名:root,密码openEuler#12

依旧是在服务器启动后按下esc键;然后continue进入;继续按下e进入

输入默认账号和密码后进入引导界面

然后按下ctrl x后即可修改密码;修改完后保存再重启即可;这个时候发现依旧和我们的pve平台不在一个网段

采用软路由进行端口转发

这个时候我们就要依赖软路由来对我们100段的机器进行端口流量转发的功能

这个时候是将ng服务器的80端口转发到虚拟化平台的端口上面,这个时候我们就可以对其进行添加

此时我们将javaserver的22转发到外面的33322(任意)端口上面

继续将sqlserver的22端口转发到外部的44422端口

配置完转发后就可以用我们本地的ssh来连接服务器了;我们看javaserver的历史命令可以知道需要启动两个jar包来对网站进行启动

我们先对api进行启动时发现存在报错为无法连接

此时我们就要分析jar包了;此时分析后得知时sqlserver服务器没有开始数据库服务导致的

启动后可以成功的构建api

接下来对web界面进行重构;因为前面已经对数据库进行启动了,所以此时已经可以成功启动(有些题目可能要对jar包进行修改地址、端口之类的操作)

这个时候我们需要进入到ng服务器对配置文件进行检查/etc/nginx/nginx.conf

发现包含了两个路径

1
2
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;

继续对该文件进行查看

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
#H5+API代理 20221227
server {
server_name jy.proxy2.jshcloud.cn api.jy.proxy2.jshcloud.cn jy.proxy.jshcloud.cn api.jy.proxy.jshcloud.cn jy.jshcloud.cn api.jy.jshcloud.cn;

listen 80 ;
root /usr/share/nginx/html;
index index.html index.htm;

#API接口服务配置
location ^~ /jinyi/ {
proxy_pass http://192.168.100.111:9031/;
set $RealIP $proxy_add_x_forwarded_for; if ( $RealIP ~ (.*),(.*) ){set $RealIP $1;}#关于cdn多层代理逻辑下客户端真实IP截取 20230130
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $RealIP;#$remote_addr ;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}

#API接口服务配置 追梦猿临时
location ^~ /zhuimengyuan/ {
proxy_pass http://192.168.100.111:9041/;
set $RealIP $proxy_add_x_forwarded_for; if ( $RealIP ~ (.*),(.*) ){set $RealIP $1;}#关于cdn多层代理逻辑下客户端真实IP截取 20230130
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $RealIP;#$remote_addr ;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}

location / {
root /home/www/h5;
try_files $uri $uri/ /index.html;
#解决Router(mode: 'history')模式下,刷新路由地址不能找到页面的问题
if (!-e $request_filename) {
rewrite ^(.*)$ /index.html?s=$1 last;
break;
}
}

error_page 404 /404.html;
location = /40x.html {
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}

#info代理 20221227
server {
server_name info.jy.proxy2.jshcloud.cn info.jy.proxy.jshcloud.cn info.jy.jshcloud.cn;

listen 80 ;
root /usr/share/nginx/html;
index index.html index.htm;

#后台接口服务配置
location ^~ /jinyi/ {
proxy_pass http://192.168.100.111:9031/;
set $RealIP $proxy_add_x_forwarded_for; if ( $RealIP ~ (.*),(.*) ){set $RealIP $1;}#关于cdn多层代理逻辑下客户端真实IP截取 20230130
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $RealIP;#$remote_addr ;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}

location / {
root /home/www;
try_files $uri $uri/ /index.html;
#解决Router(mode: 'history')模式下,刷新路由地址不能找到页面的问题
if (!-e $request_filename) {
rewrite ^(.*)$ /index.html?s=$1 last;
break;
}
}

error_page 404 /404.html;
location = /40x.html {
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}


#管理后台代理 20221227
server {
server_name master.jy.proxy2.jshcloud.cn master.jy.proxy.jshcloud.cn;

listen 80 ;
root /usr/share/nginx/html;
index index.html index.htm;

#后台接口服务配置
location ^~ /adminAPI/ {
proxy_pass http://192.168.100.111:9032/;
set $RealIP $proxy_add_x_forwarded_for; if ( $RealIP ~ (.*),(.*) ){set $RealIP $1;}#关于cdn多层代理逻辑下客户端真实IP截取 20230130
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $RealIP;#$remote_addr ;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;

# 新增如下
proxy_buffer_size 1024k;
proxy_buffers 16 1024k;
proxy_busy_buffers_size 2048k;
proxy_temp_file_write_size 2048k;
}

location / {
root /home/www/jinyi;
try_files $uri $uri/ /index.html;
#解决Router(mode: 'history')模式下,刷新路由地址不能找到页面的问题
if (!-e $request_filename) {
rewrite ^(.*)$ /index.html?s=$1 last;
break;
}
}

error_page 404 /404.html;
location = /40x.html {
}

error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}

此时是将其转发到本地的80端口上面,并配置了域名

这样的话我们就可以去修改一下本地的hosts文件:C:\Windows\System32\drivers\etc

此时已经可以成功解析该域名地址;访问后如下

因为不知道密码,所以我们继续使用软路由对数据库服务做一个映射;

然后使用本地进行连接

一眼bcrypt;我们直接生成一个进行替换

再次登录即可

经过总结后整个的网络拓扑如下

本题的考点主要在于虚拟机的密码绕过和软路由的配置。

学习视频

【2024FIC取证大赛决赛(PVE服务器)-哔哩哔哩】 https://b23.tv/YY1sTZn

做法二

仿真绕密+添加网卡

配置一下网络让本机可以通过ssh连接到PVE服务器中的虚拟机当前给PVE服务器分配的网卡是NAT;在192.168.71这个网段下面

这个时候我们在pve的管理面板发现还有一张网卡为192.168.100.0/24

我们在虚拟机再添加一张网卡,配置如下

然后配置一下本地的静态ip

然后给虚拟机添加一张网卡

这个时候在管理面板中会发现多了一张网卡

让vmbr1从属于ens36

这个时候重启一下pve然后使用ssh连接node1发现已经可以管理了

找到sqlserver和javaserver的两个虚拟磁盘并导出;使用仿真软件进行绕过密

sqlserver

仿真后先将我们先前配置的网卡信息补上去,但是仿真后是没有配置网卡的

查看查看/etc/sysconfig/network-scripts/ifcfg-enp6s18

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
DEVICE:指定网络接口的名称,例如 enp6s18。

BOOTPROTO:定义接口的启动协议。常见值包括:

none:手动配置,静态 IP。
dhcp:通过 DHCP 获取 IP 地址。
ONBOOT:指示系统启动时是否启用该接口。值可以是 yes 或 no。

IPADDR:如果使用静态 IP 配置,这里指定接口的 IP 地址。

NETMASK:指定子网掩码,通常与 IP 地址配合使用。

GATEWAY:指定默认网关的 IP 地址。

DNS1, DNS2:定义 DNS 服务器的 IP 地址。

HWADDR:可选参数,用于指定网络接口的硬件地址(MAC 地址)。

USERCTL:指定普通用户是否可以启用或禁用该接口。值为 yes 或 no。

可以看到设置的网卡是enp6s18;我们将配置了静态IP为192.168.100.112;修改NAME和DEVICE为ens33。

改完后重启网络systemctl restart NetworkManager

javaserver

对于javaserver也是如此;

查看/etc/netplan/00-installer-config.yaml,可以看到设置的网卡是enp6s18

使用vi修改为enp2s1

即可

nginx

因为之前给PVE服务器新增了一张IP在192.168.100.x网段的网卡,此时的nginx容器是可以和单独仿真的javaserver、sqlserver服务器联通的。