Skip to content
← 返回文件与文本处理列表
文件与文本处理任务与配置

命令与脚本:网络连接与传输 · 抓包与分析无线网络至下载、共享与同步文件 ​

返回分篇目录

抓包与分析无线网络 ​

普通流量用 tcpdump、zeek;无线流程按进入监控模式、捕获、注入和分析的顺序列出。

tcpdump · 转储网络上的流量 ​

更多信息:https://www.tcpdump.org/manpages/tcpdump.1.html。

  • 列出所有可用的网络接口:
bash
tcpdump {{[-D|--list-interfaces]}}
  • 捕获特定网络接口的流量:
bash
sudo tcpdump {{[-i|--interface]}} {{eth0}}
  • 捕获所有 TCP 流量,并在控制台显示其内容(ASCII 编码):
bash
sudo tcpdump -A tcp
  • 捕获发往或来自特定主机的流量:
bash
sudo tcpdump host {{www.example.com}}
  • 捕获来自特定接口、源、目的地且目的端口正确的流量:
bash
sudo tcpdump {{[-i|--interface]}} {{eth0}} src {{192.168.1.1}} and dst {{192.168.1.2}} and dst port {{80}}
  • 捕获特定网络的流量:
bash
sudo tcpdump net {{192.168.1.0/24}}
  • 捕获除 22 端口以外的所有流量,并写入转储文件:
bash
sudo tcpdump -w {{dumpfile.pcap}} port not 22
  • 从给定的转储文件中读取内容:
bash
tcpdump -r {{dumpfile.pcap}}

zeek · 被动网络流量分析器 ​

所有输出和日志文件将保存到当前工作目录。 更多信息:https://docs.zeek.org/en/lts/quickstart.html#zeek-as-a-command-line-utility。

  • 分析来自网络接口的实时流量:
bash
sudo zeek --iface {{接口}}
  • 分析来自网络接口的实时流量并加载自定义脚本:
bash
sudo zeek --iface {{接口}} {{脚本1 脚本2 ...}}
  • 分析来自网络接口的实时流量,不加载任何脚本:
bash
sudo zeek --bare-mode --iface {{接口}}
  • 分析来自网络接口的实时流量,应用 tcpdump 过滤器:
bash
sudo zeek --filter {{路径/到/过滤器}} --iface {{接口}}
  • 使用看门狗计时器分析来自网络接口的实时流量:
bash
sudo zeek --watchdog --iface {{接口}}
  • 分析来自 PCAP 文件的流量:
bash
zeek --readfile {{路径/到/文件.trace}}

airmon-ng · 激活无线网络设备的监控模式 ​

属于 aircrack-ng 套件的一部分。 更多信息:https://www.aircrack-ng.org/doku.php?id=airmon-ng。

  • 列出无线设备及其状态:
bash
sudo airmon-ng
  • 为一个特定的设备打开监控模式:
bash
sudo airmon-ng start {{wlan0}}
  • 关闭使用无线设备的干扰进程:
bash
sudo airmon-ng check kill
  • 关闭某个特定网络接口的监控模式:
bash
sudo airmon-ng stop {{wlan0mon}}

airodump-ng · 捕获数据包并显示有关无线网络的信息 ​

aircrack-ng 的一部分。 更多信息:https://www.aircrack-ng.org/doku.php?id=airodump-ng。

  • 捕获数据包并显示有关无线网络的信息:
bash
sudo airodump-ng {{网络接口}}
  • 捕获数据包并显示关于 5GHz 频段无线网络的信息:
bash
sudo airodump-ng {{网络接口}} --band a
  • 捕获数据包并显示关于 2.4GHz 和 5GHz 频段无线网络的信息:
bash
sudo airodump-ng {{网络接口}} --band abg
  • 捕获数据包并显示有关无线网络的信息,给定 MAC 地址和信道,并将输出保存到文件中:
bash
sudo airodump-ng --channel {{信道}} --write {{路径/到/文件}} --bssid {{mac}} {{网络接口}}

aireplay-ng · 向无线网络注入数据包 ​

aircrack-ng 的一部分。 更多信息:https://www.aircrack-ng.org/doku.php?id=aireplay-ng。

  • 向指定的接入点(AP)MAC 地址、客户端 MAC 地址和接口发送指定数量的去关联(disassociate)数据包:
bash
sudo aireplay-ng --deauth {{count}} --bssid {{ap_mac}} --dmac {{client_mac}} {{interface}}

aircrack-ng · 破解捕获数据包中握手阶段的 WEP 和 WPA/WPA2 密钥 ​

Aircrack-ng 网络软件套件的一部分。 更多信息:https://www.aircrack-ng.org/doku.php?id=aircrack-ng。

  • 使用字典文件破解捕获文件中的密钥:
bash
aircrack-ng -w {{路径/到/字典文件.txt}} {{路径/到/捕获文件.cap}}
  • 使用多线程和字典文件破解捕获文件中的密钥:
bash
aircrack-ng -p {{线程数}} -w {{路径/到/字典文件.txt}} {{路径/到/捕获文件.cap}}
  • 使用字典文件和接入点的 ESSID 破解捕获文件中的密钥:
bash
aircrack-ng -w {{路径/到/字典文件.txt}} -e {{essid}} {{路径/到/捕获文件.cap}}
  • 使用字典文件和接入点的 MAC 地址破解捕获文件中的密钥:
bash
aircrack-ng -w {{路径/到/字典文件.txt}} --bssid {{mac}} {{路径/到/捕获文件.cap}}

下载、共享与同步文件 ​

URL 下载用 wget、aria2c 或 axel;目录同步见 rsync;同网段传输与临时文件服务单独列出。

wget · 从网络上下载文件 ​

支持 HTTP,HTTPS 和 FTP。 另请参阅:wcurl, curl。 更多信息:https://www.gnu.org/software/wget/manual/wget.html。

  • 将该 URL 的内容下载到文件中(在这个例子中文件名为 "foo"):
bash
wget {{https://example.com/foo}}
  • 将该 URL 的内容下载到文件中(在这个例子中文件名为 "bar"):
bash
wget {{[-O|--output-document]}} {{bar}} {{https://example.com/foo}}
  • 以每三秒一个请求的速度下载一个网页和其所有资源(脚本,样式表,图片等等):
bash
wget {{[-pkw|--page-requisites --convert-links --wait]}} 3 {{https://example.com/somepage.html}}
  • 从一个目录中下载所有列出的文件和其所有子文件夹(不下载内嵌网页):
bash
wget {{[-mnp|--mirror --no-parent]}} {{https://example.com/somepath/}}
  • 限制下载速度和重试次数:
bash
wget --limit-rate {{300k}} {{[-t|--tries]}} {{100}} {{https://example.com/somepath/}}
  • 使用基本授权来从 HTTP/FTP 服务器中下载文件:
bash
wget --user {{username}} --password {{password}} {{https://example.com}}
  • 继续一个未完成的下载任务:
bash
wget {{[-c|--continue]}} {{https://example.com}}
  • 将指定文件中所有列出的 URL 下载到一个目录中:
bash
wget {{[-P|--directory-prefix]}} {{path/to/directory}} {{[-i|--input-file]}} {{URLs.txt}}

aria2c · 快速下载工具 ​

支持 HTTP(S)、FTP、SFTP、BitTorrent 和 Metalink。 另请参阅:axel。 更多信息:https://aria2.github.io/manual/en/html/aria2c.html。

  • 将特定 URI 下载到一个文件:
bash
aria2c "{{url}}"
  • 从一个 URI 下载文件,并指定输出文件名:
bash
aria2c {{[-o|--out]}} {{路径/到/文件}} "{{url}}"
  • 并行下载多个不同的文件:
bash
aria2c {{[-Z|--force-sequential=true]}} {{"url1" "url2" ...}}
  • 从不同的镜像下载相同的文件,并验证已下载文件的校验和:
bash
aria2c --checksum {{sha-256}}={{hash}} {{"url1" "url2" ...}}
  • 下载文件中列出的 URI,并指定并行下载的数量:
bash
aria2c {{[-i|--input-file]}} {{路径/到/文件}} {{[-j|--max-concurrent-downloads]}} {{下载数}}
  • 使用多个连接进行下载:
bash
aria2c {{[-s|--split]}} {{连接数}} "{{url}}"
  • 使用用户名和密码进行 FTP 下载:
bash
aria2c --ftp-user {{用户名}} --ftp-passwd {{密码}} "{{url}}"
  • 限制下载速度为字节/秒(bytes/s):
bash
aria2c --max-download-limit {{速度}} "{{url}}"

axel · 一款下载加速器 ​

支持 HTTP、HTTPS 和 FTP。 另请参阅:aria2c。 更多信息:https://manned.org/axel。

  • 链接下载:
bash
axel {{超链接}}
  • 链接下载,指定文件名:
bash
axel {{超链接}} {{[-o|--output]}} {{路径/到/文件}}
  • 多连接数下载:
bash
axel {{[-n|--num-connections]}} {{连接数量}} {{超链接}}
  • 查询镜像:
bash
axel {{[-S|--search=]}}{{镜像数量}} {{超链接}}
  • 限制下载速度(字节 bite 每秒):
bash
axel {{[-s|--max-speed]}} {{字节数}} {{超链接}}

rsync · 一种快速,通用,远程(和本地)文件复制工具,默认使用 SSH ​

如果要指定远程路径,请使用 user@host:path/to/file_or_directory。 更多信息:https://download.samba.org/pub/rsync/rsync.1。

  • 复制文件:
bash
rsync {{路径/到/来源}} {{路径/到/目标}}
  • 使用归档模式递归复制并保留常见属性和符号链接(-a 不含硬链接、ACL与扩展属性):
bash
rsync {{[-a|--archive]}} {{路径/到/来源}} {{路径/到/目标}}
  • 压缩传输文件,显示详细进度并保留部分文件;此例未带 -a 或 -r,不能直接用于递归归档:
bash
rsync {{[-zvhP|--compress --verbose --human-readable --partial --progress]}} {{路径/到/来源}} {{路径/到/目标}}
  • 以递归模式传输文件:
bash
rsync {{[-r|--recursive]}} {{路径/到/来源}} {{路径/到/目标}}
  • 将目录下的所有内容(不包含该目录),以递归方式传输:
bash
rsync {{[-r|--recursive]}} {{路径/到/来源/}} {{路径/到/目标}}
  • 归档方式传输目录,保留几乎所有属性,跟随符号链接,并跳过目标修改时间更新的文件(-u 不等于跳过所有已传文件):
bash
rsync {{[-auL|--archive --update --copy-links]}} {{路径/到/来源}} {{路径/到/目标}}
  • 从 rsyncd 模块拉取到本地,并删除本地目标中源目录不存在的文件(注意传输方向):
bash
rsync {{[-r|--recursive]}} --delete rsync://{{host}}/{{模块名}}/{{路径/到/来源}} {{路径/到/目标}}
  • 指定本地和远程之间通信方式,使用指定端口,并显示进度条:
bash
rsync {{[-e|--rsh]}} 'ssh -p {{端口}}' --info=progress2 {{host}}:{{路径/到/来源}} {{路径/到/目标}}

airpaste · 在同一网络下共享信息和文件 ​

更多信息:https://github.com/mafintosh/airpaste。

  • 等待接收消息并显示接收到的信息:
bash
airpaste
  • 发送文本:
bash
echo {{文本}} | airpaste
  • 发送文件:
bash
airpaste < {{文件的路径}}
  • 接收文件:
bash
airpaste > {{文件的路径}}
  • 创建 / 加入频道:
bash
airpaste {{频道名}}

airshare · 在本地网络中传输数据的工具 ​

更多信息:https://airshare.readthedocs.io/en/latest/cli.html。

  • 共享文件或目录:
bash
airshare {{code}} {{路径/到/文件或目录1 路径/到/文件或目录2 ...}}
  • 接收文件:
bash
airshare {{code}}
  • 主机接收服务器(使用此选项可以通过 Web 接口上传文件):
bash
airshare --upload {{code}}
  • 将文件或目录发送到接收服务器:
bash
airshare --upload {{code}} {{路径/到/文件或目录1 路径/到/文件或目录2 ...}}
  • 发送已复制到剪贴板的文件路径:
bash
airshare --file-path {{code}}
  • 接收文件并将其复制到剪贴板:
bash
airshare --clip-receive {{code}}

updog · Python SimpleHTTPServer 的替代方案 ​

它允许通过 HTTP/S 上传和下载,可以设置临时 SSL 证书,并使用 HTTP 基本认证。 更多信息:https://github.com/sc0tfree/updog。

  • 为当前目录启动 HTTP 服务器:
bash
updog
  • 为指定目录启动 HTTP 服务器:
bash
updog --directory /{{路径/到/目录}}
  • 在指定端口上启动 HTTP 服务器:
bash
updog --port {{端口}}
  • 使用密码启动 HTTP 服务器(要登录,请将用户名留空,并在密码字段中输入密码):
bash
updog --password {{密码}}
  • 通过 SSL 启用传输加密:
bash
updog --ssl

继续阅读