命令与脚本:网络连接与传输 · 抓包与分析无线网络至下载、共享与同步文件
抓包与分析无线网络
普通流量用 tcpdump、zeek;无线流程按进入监控模式、捕获、注入和分析的顺序列出。
tcpdump · 转储网络上的流量
- 列出所有可用的网络接口:
tcpdump {{[-D|--list-interfaces]}}- 捕获特定网络接口的流量:
sudo tcpdump {{[-i|--interface]}} {{eth0}}- 捕获所有 TCP 流量,并在控制台显示其内容(ASCII 编码):
sudo tcpdump -A tcp- 捕获发往或来自特定主机的流量:
sudo tcpdump host {{www.example.com}}- 捕获来自特定接口、源、目的地且目的端口正确的流量:
sudo tcpdump {{[-i|--interface]}} {{eth0}} src {{192.168.1.1}} and dst {{192.168.1.2}} and dst port {{80}}- 捕获特定网络的流量:
sudo tcpdump net {{192.168.1.0/24}}- 捕获除 22 端口以外的所有流量,并写入转储文件:
sudo tcpdump -w {{dumpfile.pcap}} port not 22- 从给定的转储文件中读取内容:
tcpdump -r {{dumpfile.pcap}}zeek · 被动网络流量分析器
所有输出和日志文件将保存到当前工作目录。 更多信息:https://docs.zeek.org/en/lts/quickstart.html#zeek-as-a-command-line-utility。
- 分析来自网络接口的实时流量:
sudo zeek --iface {{接口}}- 分析来自网络接口的实时流量并加载自定义脚本:
sudo zeek --iface {{接口}} {{脚本1 脚本2 ...}}- 分析来自网络接口的实时流量,不加载任何脚本:
sudo zeek --bare-mode --iface {{接口}}- 分析来自网络接口的实时流量,应用
tcpdump过滤器:
sudo zeek --filter {{路径/到/过滤器}} --iface {{接口}}- 使用看门狗计时器分析来自网络接口的实时流量:
sudo zeek --watchdog --iface {{接口}}- 分析来自 PCAP 文件的流量:
zeek --readfile {{路径/到/文件.trace}}airmon-ng · 激活无线网络设备的监控模式
属于
aircrack-ng套件的一部分。 更多信息:https://www.aircrack-ng.org/doku.php?id=airmon-ng。
- 列出无线设备及其状态:
sudo airmon-ng- 为一个特定的设备打开监控模式:
sudo airmon-ng start {{wlan0}}- 关闭使用无线设备的干扰进程:
sudo airmon-ng check kill- 关闭某个特定网络接口的监控模式:
sudo airmon-ng stop {{wlan0mon}}airodump-ng · 捕获数据包并显示有关无线网络的信息
aircrack-ng的一部分。 更多信息:https://www.aircrack-ng.org/doku.php?id=airodump-ng。
- 捕获数据包并显示有关无线网络的信息:
sudo airodump-ng {{网络接口}}- 捕获数据包并显示关于 5GHz 频段无线网络的信息:
sudo airodump-ng {{网络接口}} --band a- 捕获数据包并显示关于 2.4GHz 和 5GHz 频段无线网络的信息:
sudo airodump-ng {{网络接口}} --band abg- 捕获数据包并显示有关无线网络的信息,给定 MAC 地址和信道,并将输出保存到文件中:
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)数据包:
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。
- 使用字典文件破解捕获文件中的密钥:
aircrack-ng -w {{路径/到/字典文件.txt}} {{路径/到/捕获文件.cap}}- 使用多线程和字典文件破解捕获文件中的密钥:
aircrack-ng -p {{线程数}} -w {{路径/到/字典文件.txt}} {{路径/到/捕获文件.cap}}- 使用字典文件和接入点的 ESSID 破解捕获文件中的密钥:
aircrack-ng -w {{路径/到/字典文件.txt}} -e {{essid}} {{路径/到/捕获文件.cap}}- 使用字典文件和接入点的 MAC 地址破解捕获文件中的密钥:
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"):
wget {{https://example.com/foo}}- 将该 URL 的内容下载到文件中(在这个例子中文件名为 "bar"):
wget {{[-O|--output-document]}} {{bar}} {{https://example.com/foo}}- 以每三秒一个请求的速度下载一个网页和其所有资源(脚本,样式表,图片等等):
wget {{[-pkw|--page-requisites --convert-links --wait]}} 3 {{https://example.com/somepage.html}}- 从一个目录中下载所有列出的文件和其所有子文件夹(不下载内嵌网页):
wget {{[-mnp|--mirror --no-parent]}} {{https://example.com/somepath/}}- 限制下载速度和重试次数:
wget --limit-rate {{300k}} {{[-t|--tries]}} {{100}} {{https://example.com/somepath/}}- 使用基本授权来从 HTTP/FTP 服务器中下载文件:
wget --user {{username}} --password {{password}} {{https://example.com}}- 继续一个未完成的下载任务:
wget {{[-c|--continue]}} {{https://example.com}}- 将指定文件中所有列出的 URL 下载到一个目录中:
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 下载到一个文件:
aria2c "{{url}}"- 从一个 URI 下载文件,并指定输出文件名:
aria2c {{[-o|--out]}} {{路径/到/文件}} "{{url}}"- 并行下载多个不同的文件:
aria2c {{[-Z|--force-sequential=true]}} {{"url1" "url2" ...}}- 从不同的镜像下载相同的文件,并验证已下载文件的校验和:
aria2c --checksum {{sha-256}}={{hash}} {{"url1" "url2" ...}}- 下载文件中列出的 URI,并指定并行下载的数量:
aria2c {{[-i|--input-file]}} {{路径/到/文件}} {{[-j|--max-concurrent-downloads]}} {{下载数}}- 使用多个连接进行下载:
aria2c {{[-s|--split]}} {{连接数}} "{{url}}"- 使用用户名和密码进行 FTP 下载:
aria2c --ftp-user {{用户名}} --ftp-passwd {{密码}} "{{url}}"- 限制下载速度为字节/秒(bytes/s):
aria2c --max-download-limit {{速度}} "{{url}}"axel · 一款下载加速器
支持 HTTP、HTTPS 和 FTP。 另请参阅:
aria2c。 更多信息:https://manned.org/axel。
- 链接下载:
axel {{超链接}}- 链接下载,指定文件名:
axel {{超链接}} {{[-o|--output]}} {{路径/到/文件}}- 多连接数下载:
axel {{[-n|--num-connections]}} {{连接数量}} {{超链接}}- 查询镜像:
axel {{[-S|--search=]}}{{镜像数量}} {{超链接}}- 限制下载速度(字节 bite 每秒):
axel {{[-s|--max-speed]}} {{字节数}} {{超链接}}rsync · 一种快速,通用,远程(和本地)文件复制工具,默认使用 SSH
如果要指定远程路径,请使用
user@host:path/to/file_or_directory。 更多信息:https://download.samba.org/pub/rsync/rsync.1。
- 复制文件:
rsync {{路径/到/来源}} {{路径/到/目标}}- 使用归档模式递归复制并保留常见属性和符号链接(-a 不含硬链接、ACL与扩展属性):
rsync {{[-a|--archive]}} {{路径/到/来源}} {{路径/到/目标}}- 压缩传输文件,显示详细进度并保留部分文件;此例未带 -a 或 -r,不能直接用于递归归档:
rsync {{[-zvhP|--compress --verbose --human-readable --partial --progress]}} {{路径/到/来源}} {{路径/到/目标}}- 以递归模式传输文件:
rsync {{[-r|--recursive]}} {{路径/到/来源}} {{路径/到/目标}}- 将目录下的所有内容(不包含该目录),以递归方式传输:
rsync {{[-r|--recursive]}} {{路径/到/来源/}} {{路径/到/目标}}- 归档方式传输目录,保留几乎所有属性,跟随符号链接,并跳过目标修改时间更新的文件(-u 不等于跳过所有已传文件):
rsync {{[-auL|--archive --update --copy-links]}} {{路径/到/来源}} {{路径/到/目标}}- 从 rsyncd 模块拉取到本地,并删除本地目标中源目录不存在的文件(注意传输方向):
rsync {{[-r|--recursive]}} --delete rsync://{{host}}/{{模块名}}/{{路径/到/来源}} {{路径/到/目标}}- 指定本地和远程之间通信方式,使用指定端口,并显示进度条:
rsync {{[-e|--rsh]}} 'ssh -p {{端口}}' --info=progress2 {{host}}:{{路径/到/来源}} {{路径/到/目标}}airpaste · 在同一网络下共享信息和文件
- 等待接收消息并显示接收到的信息:
airpaste- 发送文本:
echo {{文本}} | airpaste- 发送文件:
airpaste < {{文件的路径}}- 接收文件:
airpaste > {{文件的路径}}- 创建 / 加入频道:
airpaste {{频道名}}airshare · 在本地网络中传输数据的工具
- 共享文件或目录:
airshare {{code}} {{路径/到/文件或目录1 路径/到/文件或目录2 ...}}- 接收文件:
airshare {{code}}- 主机接收服务器(使用此选项可以通过 Web 接口上传文件):
airshare --upload {{code}}- 将文件或目录发送到接收服务器:
airshare --upload {{code}} {{路径/到/文件或目录1 路径/到/文件或目录2 ...}}- 发送已复制到剪贴板的文件路径:
airshare --file-path {{code}}- 接收文件并将其复制到剪贴板:
airshare --clip-receive {{code}}updog · Python SimpleHTTPServer 的替代方案
它允许通过 HTTP/S 上传和下载,可以设置临时 SSL 证书,并使用 HTTP 基本认证。 更多信息:https://github.com/sc0tfree/updog。
- 为当前目录启动 HTTP 服务器:
updog- 为指定目录启动 HTTP 服务器:
updog --directory /{{路径/到/目录}}- 在指定端口上启动 HTTP 服务器:
updog --port {{端口}}- 使用密码启动 HTTP 服务器(要登录,请将用户名留空,并在密码字段中输入密码):
updog --password {{密码}}- 通过 SSL 启用传输加密:
updog --ssl继续阅读
- 文件与文本处理完整实践与解答
- 文件与文本处理上手与对象
- 文件与文本处理任务与配置