DefiRWA

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 464|回复: 6

Docker安装Kali Linux

[复制链接]

276

主题

317

帖子

1252

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1252
发表于 2025-2-4 21:26:02 | 显示全部楼层 |阅读模式



在Windows上使用Docker安装Kali Linux的过程大致如下。请注意,你需要使用Windows 10(64-bit)或更新的版本,且启用了Windows Subsystem for Linux (WSL) 2或使用Docker Desktop

1. 安装Docker Desktop
  • 下载Docker Desktop:从Docker官网下载适用于Windows的Docker Desktop。
  • 安装
    • 运行下载的安装程序,按照提示安装。
    • 安装过程中,如果提示需要启用WSL 2,请按指示启用它。这可能需要重启你的电脑。

  • 配置Docker Desktop
    • 启动Docker Desktop后,可能会需要登录Docker Hub账户或创建一个新账户。
    • 在Docker Desktop设置中,确保WSL 2后端已选中(如果你的系统支持)。



2. 拉取Kali Linux Docker镜像
打开一个Windows PowerShell或命令提示符(以管理员身份运行以避免权限问题),执行以下命令:

powershell



docker pull kalilinux/kali-rolling



这将从Docker Hub下载最新的Kali Linux滚动发布版镜像。

3. 运行Kali Linux容器
在同一命令行窗口中,输入以下命令来启动一个新的Kali Linux容器:

powershell



docker run -it kalilinux/kali-rolling /bin/bash



这个命令会启动一个新的容器,并以交互模式运行,进入到Kali Linux的Bash shell中。

4. 在容器内配置和使用Kali Linux
  • 更新系统
    bash



    apt update && apt upgrade -y


  • 安装工具(例如Nmap):
    bash



    apt install nmap




5. 管理容器
  • 查看正在运行的容器
    powershell



    docker ps


  • 重新进入一个已经运行的容器
    powershell



    docker exec -it <container_id> /bin/bash


  • 停止容器
    powershell



    docker stop <container_id>


  • 删除容器(如果你不再需要它):
    powershell



    docker rm <container_id>




6. 持久化数据(可选)
如果你希望在容器重启后数据仍然存在,可以使用Docker volumes或挂载主机目录:

powershell



docker run -it -v C:\path\on\host:/path/in/container kalilinux/kali-rolling /bin/bash



这会将C:\path\on\host目录挂载到容器里的/path/in/container。

注意事项
  • 网络:默认情况下,Docker容器在Windows上使用NAT网络,你可以通过docker network命令配置网络或检查Docker Desktop的设置。
  • 权限:如果你需要在容器中执行需要提升权限的操作,可能需要以管理员身份运行Docker Desktop或使用--privileged标志(但要小心使用这个选项,因为它会降低容器的隔离安全性)。
  • WSL 2:使用WSL 2作为后端可以提供更好的性能和Linux兼容性,但确保你的Windows版本支持它。


使用Docker在Windows上运行Kali Linux是一个学习和测试的好方法,但请确保所有活动都是合法的,尊重隐私和安全的最佳实践。

回复

使用道具 举报

276

主题

317

帖子

1252

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1252
 楼主| 发表于 2025-2-4 21:38:18 | 显示全部楼层

在Docker中运行Kali Linux的基本命令如下:

拉取Kali Linux镜像
首先,你需要从Docker Hub拉取一个Kali Linux镜像。最常用的镜像是kalilinux/kali-rolling:

bash
docker pull kalilinux/kali-rolling

运行Kali Linux容器
以下是一个基本的命令来启动一个Kali Linux容器:

bash
docker run -it kalilinux/kali-rolling /bin/bash

-it 标志使你可以以交互模式进入容器,并将你的终端附加到容器的bash会话。
/bin/bash 指定启动bash shell。

常用附加参数
持久化数据:如果你想在容器重启后保留数据,可以使用卷(volume)或挂载主机目录:
bash
docker run -it -v /path/on/host:/path/in/container kalilinux/kali-rolling /bin/bash
设置容器名称:为了以后容易管理,可以给容器命名:
bash
docker run -it --name my-kali-container kalilinux/kali-rolling /bin/bash
网络配置:如果你需要特定网络配置,可以指定网络模式:
bash
docker run -it --net=host kalilinux/kali-rolling /bin/bash

注意:--net=host使用宿主机的网络栈,可能会有安全隐患。
特权模式:某些工具可能需要特权模式运行,但要非常谨慎使用:
bash
docker run -it --privileged kalilinux/kali-rolling /bin/bash

管理容器
查看容器:
bash
docker ps -a
进入正在运行的容器:
bash
docker exec -it <container_id_or_name> /bin/bash
停止容器:
bash
docker stop <container_id_or_name>
删除容器(如果不再需要):
bash
docker rm <container_id_or_name>

注意事项
安全性:在Docker中运行Kali Linux时,特别是使用--privileged时要注意安全风险。确保只在受控的环境中运行。
资源:Docker容器共享主机资源,资源密集型任务可能会影响主机系统的性能。
持久化:如果需要保存数据,考虑使用Docker卷或挂载主机目录。

这些命令应该是你开始在Docker环境中使用Kali Linux的基本步骤。记住,任何使用Kali Linux进行网络扫描、渗透测试或其他安全活动都应在合法和有明确许可的条件下进行。
回复 支持 反对

使用道具 举报

276

主题

317

帖子

1252

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1252
 楼主| 发表于 2025-2-4 21:49:37 | 显示全部楼层

nmap(Network Mapper)是一款非常强大的网络扫描和安全审计工具,用于发现网络上的主机、服务、操作系统、网络结构等信息。它常用于网络管理、安全审计、渗透测试等领域。以下是一些nmap的常见用途和指令:

nmap的用途:
主机发现:检测网络上哪些IP地址有活跃的主机。
端口扫描:找出主机上开放的端口和运行的服务。
服务和版本检测:识别服务的版本,帮助评估潜在的安全漏洞。
操作系统检测:尝试通过TCP/IP堆栈指纹来识别目标主机的操作系统。
网络脚本扫描:使用NSE(Nmap Scripting Engine)运行脚本以检测更多的网络特性和漏洞。

常用nmap指令:
基本扫描:
扫描单个主机:
bash
nmap 192.168.1.1
扫描整个子网:
bash
nmap 192.168.1.0/24
快速扫描(只扫描最常见的1000个端口):
bash
nmap -F 192.168.1.1

端口扫描:
扫描特定端口:
bash
nmap -p 22,80,443 192.168.1.1
扫描所有端口(可能耗时):
bash
nmap -p- 192.168.1.1

服务和版本检测:
增加服务和版本检测:
bash
nmap -sV 192.168.1.1

操作系统检测:
操作系统指纹识别:
bash
nmap -O 192.168.1.1

扫描类型:
TCP SYN扫描(半开放扫描):
bash
nmap -sS 192.168.1.1
TCP连接扫描(全开放扫描):
bash
nmap -sT 192.168.1.1
UDP扫描:
bash
nmap -sU 192.168.1.1

其他选项:
跳过主机发现,只扫描给定的IP:
bash
nmap -Pn 192.168.1.1
使用nmap脚本来执行特定的任务:
bash
nmap --script http-title 192.168.1.1
保存扫描结果到文件:
bash
nmap -oN outputfile 192.168.1.1
增加扫描速度:
bash
nmap -T4 192.168.1.1
其中-T选项的值从0到5,数字越大速度越快,但也可能更容易被检测到。

注意事项:
法律和道德:在进行网络扫描之前,务必确保你有适当的授权。未经许可的扫描可能违法。
网络流量:nmap扫描可能会生成大量网络流量,特别是使用某些选项时,可能会影响网络性能或引起防火墙的注意。
隐私:扫描网络可能会暴露敏感信息,确保你尊重隐私和数据保护法规。

nmap的功能非常丰富,这里只列出了一部分常用命令。通过学习nmap的官方文档或相关书籍,可以更深入地了解其所有功能和使用技巧。
回复 支持 反对

使用道具 举报

276

主题

317

帖子

1252

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1252
 楼主| 发表于 2025-2-4 21:50:01 | 显示全部楼层

黑客(特别是在进行合法渗透测试或安全审计时)使用的一系列工具远远超过nmap。以下是一些常用的工具和软件,分类如下:

网络扫描和信息收集
Masscan:据称是世界上最快的TCP端口扫描器,面向大规模扫描。
Shodan:用于搜索连接到互联网的设备,提供设备信息。
Recon-ng:一个全面的Web侦察框架。

网络分析
Wireshark:用于捕获和分析网络流量。
Tcpdump:命令行工具,用于捕获网络包。
Netcat(nc)或其变体**ncat**:网络工具箱,用于读写网络连接。

漏洞扫描和利用
Metasploit Framework:一个非常强大的漏洞利用开发和执行框架。
Nessus:商业级的漏洞扫描器,提供详细的漏洞报告。
OpenVAS:开源的漏洞扫描系统,类似于Nessus。
Exploit-DB:一个数据库和搜索引擎,保存了大量已知的漏洞利用代码。
Burp Suite:主要用于Web应用安全测试,包括拦截和修改HTTP请求。

密码攻击
John the Ripper(John):用于离线密码破解。
Hydra:一个并行登录破解器,支持多种协议。
Hashcat:最快的密码恢复工具,支持GPU加速。

无线网络安全
Aircrack-ng:一组用于评估无线网络安全的工具。
Kismet:无线网络探测器,捕获和分析Wi-Fi网络。

Web应用安全
OWASP ZAP(Zed Attack Proxy):用于发现Web应用中的安全漏洞。
SQLmap:自动检测和利用SQL注入漏洞的工具。

提权和后门
LinEnum:Linux权限提升枚举脚本。
WinPEAS:Windows权限提升自动化脚本。
Meterpreter(Metasploit的一部分):提供高级命令行访问权限。

反向工程和恶意软件分析
Ghidra:NSA开发的反向工程工具。
IDA Pro:高级的反向工程和静态代码分析工具。
OllyDbg:Windows下常用的调试器。

其他工具
Empire:PowerShell后渗透框架。
Responder:网络响应和欺骗工具。
BloodHound:用于分析Active Directory(AD)环境的安全性。

注意事项:
合法性:所有这些工具的使用都应在合法和授权的范围内进行。未经许可的使用可能会导致法律后果。
教育和道德:这些工具也被广泛用于教育目的,学习如何保护网络和系统。理解道德黑客的原则非常重要。
持续更新:网络安全是一个快速发展的领域,工具和方法也在不断更新。保持学习和更新工具知识是必要的。

这些工具只是冰山一角,真正的专业人士还会使用定制脚本、结合多个工具的使用策略,以及不断学习最新的技术和漏洞利用方法。
回复 支持 反对

使用道具 举报

276

主题

317

帖子

1252

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1252
 楼主| 发表于 2025-2-4 21:59:58 | 显示全部楼层
在Kali Linux的Docker容器中安装Wireshark,可按以下步骤操作:

### 1. 启动Kali Linux容器
若容器尚未启动,需先启动它。可以使用以下命令以交互模式启动Kali Linux容器:
```bash
docker run -it kalilinux/kali-rolling /bin/bash
```
如果容器已经在运行,要进入容器,可使用 `docker exec` 命令,例如:
```bash
docker exec -it <容器ID或名称> /bin/bash
```

### 2. 更新软件源列表
在安装Wireshark之前,需要更新容器内的软件源列表,以确保获取到最新的软件包信息。在容器的命令行中执行以下命令:
```bash
apt update
```

### 3. 升级已安装的软件包(可选但推荐)
更新软件源列表后,建议升级已安装的软件包到最新版本,以避免潜在的兼容性问题:
```bash
apt upgrade -y
```
`-y` 选项表示自动回答所有提示为 “是”,避免手动确认。

### 4. 安装Wireshark
使用以下命令在容器中安装Wireshark:
```bash
apt install wireshark -y
```

### 5. 配置Wireshark权限
安装完成后,Wireshark需要一些权限才能正常捕获网络数据包。在Kali Linux中,可将用户添加到 `wireshark` 组(在容器中默认是 `root` 用户,本身就有较高权限,但如果后续使用其他用户,该步骤很重要),并配置相应的捕获权限:
```bash
usermod -aG wireshark root
chgrp wireshark /usr/bin/dumpcap
chmod 750 /usr/bin/dumpcap
setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap
```

### 6. 验证安装
安装完成后,可以通过以下命令验证Wireshark是否安装成功:
```bash
wireshark --version
```
若成功安装,会显示Wireshark的版本信息。

### 注意事项
- **图形化界面支持**:Wireshark是一个图形化工具,在Docker容器中运行图形化应用需要额外配置。如果是在Linux主机上,要将容器连接到主机的X服务器;若是Windows主机,需要安装并配置X服务器软件(如VcXsrv)。
- **网络捕获权限**:虽然在容器中 `root` 用户有较高权限,但某些网络环境下可能仍会受到限制,需要确保容器有足够的网络访问权限。
- **安全风险**:在容器中安装和使用Wireshark时,要注意容器的安全设置,避免因配置不当导致安全漏洞。
回复 支持 反对

使用道具 举报

276

主题

317

帖子

1252

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1252
 楼主| 发表于 2025-2-4 22:38:38 | 显示全部楼层
要在 Kali Linux 容器中安装图形界面,需要完成一系列步骤,以下是详细介绍:

### 1. 启动并进入 Kali Linux 容器
首先要确保已经拉取了 Kali Linux 镜像,若未拉取,可使用以下命令拉取:
```bash
docker pull kalilinux/kali-rolling
```
接着启动并进入容器:
```bash
docker run -it --name kali-gui-container --net=host -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix kalilinux/kali-rolling /bin/bash
```
- `--name kali-gui-container`:为容器指定名称,可按需修改。
- `--net=host`:让容器使用主机的网络栈。
- `-e DISPLAY=$DISPLAY`:传递主机的显示环境变量到容器。
- `-v /tmp/.X11-unix:/tmp/.X11-unix`:将主机的 X11 套接字挂载到容器。

### 2. 更新系统软件包
在容器内部,执行以下命令更新软件包列表和已安装的软件包:
```bash
apt update
apt upgrade -y
```

### 3. 安装图形界面相关组件

#### 选择桌面环境
常见的桌面环境有 Xfce、GNOME、KDE 等,这里以 Xfce 为例,它相对轻量级且资源占用少。

#### 安装 Xfce 桌面环境和 VNC 服务器
```bash
apt install -y xfce4 xfce4-goodies x11vnc
```
- `xfce4`:Xfce 桌面环境的核心组件。
- `xfce4-goodies`:Xfce 的额外功能组件。
- `x11vnc`:用于通过 VNC 协议远程访问图形界面。

### 4. 配置 VNC 服务器
设置 VNC 密码:
```bash
x11vnc -storepasswd
```
按照提示输入并确认 VNC 访问密码。

### 5. 启动 VNC 服务器和 Xfce 桌面环境
启动 VNC 服务器,绑定到指定显示:
```bash
x11vnc -display :0 -forever -bg -rfbport 5900
```
- `-display :0`:指定显示设备。
- `-forever`:让 VNC 服务器持续运行。
- `-bg`:在后台运行。
- `-rfbport 5900`:指定 VNC 服务端口。

启动 Xfce 桌面环境:
```bash
startxfce4
```

### 6. 从主机访问图形界面
在主机上安装 VNC 客户端(如 RealVNC Viewer、TightVNC 等),然后使用客户端连接到容器的 VNC 服务:
- 若主机和容器在同一台机器上,连接地址为 `localhost:5900`。
- 输入之前设置的 VNC 密码,即可访问 Kali Linux 容器的图形界面。

### 注意事项
- **安全性**:VNC 服务默认未加密,建议使用 SSH 隧道来加密 VNC 连接,提高安全性。
- **资源占用**:图形界面会消耗较多系统资源,确保主机有足够的资源来运行容器。
- **权限问题**:如果在启动图形界面时遇到权限问题,可检查容器和主机的文件权限以及环境变量设置。
回复 支持 反对

使用道具 举报

276

主题

317

帖子

1252

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1252
 楼主| 发表于 2025-2-5 00:41:26 | 显示全部楼层
https://sigvids.gitlab.io/tor-obfs4-bridges.html  Tor web
如何优雅地用Tor
更新了一下Windows版的单文件Tor,直接tor_start.bat启动,同时开启新插件snowflake和obfs4网桥连接,内置几十个可用网桥,首次连接需要等待几分钟。
如何优雅地用Tor_上篇
原文链接:https://111111.online/posts/tor_obfs4_proxy.html

Tor这篇教程拖了好久,今天,讲讲Windows和Linux上怎么流畅地用Tor,并摆脱臃肿的自带浏览器?Linux下怎么编译Tor和obfs4proxy?另外Tor广播的Bridge时常处于不可用状态,那么怎么在自己的VPS上搭建Tor的Bridge来自用?废话不多讲,开搞。

服务端搭建Tor Bridge
这一步是非必须的,你也可以自己找网桥使用,当然自己搭建的速度可能更好,具体怎么寻找和使用网桥请看俺的下一篇博文。

vps上安装tor和obfs4proxy:

apt install tor

apt install obfs4proxy

tor和obfs4都安装成功了,那么编辑tor的配置文件torrc:

vi /etc/tor/torrc

填入下面内容:

Log notice file /var/log/tor/notices.log
RunAsDaemon 1
ORPort auto
Exitpolicy reject *:*
BridgeRelay 1
ServerTransportPlugin obfs4 exec /usr/bin/obfs4proxy #这个是obfs4路径
ServerTransportListenAddr obfs4 [::]:41563 #这个是自定义obfs4端口
ExtORPort auto
PublishServerDescriptor 0 #如果想分享你的obfs4网桥给其它人用,请删除这一行或者把0改成bridge,你的中继将发布到网桥授权机构

保存,然后重启tor:

systemctl restart tor

执行无错后查看tor的日志文件

cat /var/log/tor/notices.log

会出现下图这样的输入:

Tor notices log
记下图片上部的server's identity key

server's identity key 8975AAF1A5317E04600F30AD3ED43083820FF516

然后找到obfs4网桥的cert

cat /var/lib/tor/pt_state/obfs4_bridgeline.txt

会看到下面内容:

Bridge obfs4 <IP ADDRESS>:<PORT> <FINGERPRINT> cert=6LMNcXh6MIfApbZiMksnS4Kj+2sffZ5pybSqtcOO5YoHgfrMpkBJqvLxhuR2Ppau0L2seg iatmode=0

把上面IP ADDRESS换成自己的IP,PORT换成自定义的obfs4端口,FINGERPRINT换成你上面记下的key,就是一个完整的obfs4网桥了。下面是一个完整的网桥例子:

Bridge obfs4 66.42.73.78:41563 8975AAF1A5317E04600F30AD3ED43083820FF516 cert=6LMNcXh6MIfApbZiMksnS4Kj+2sffZ5pybSqtcOO5YoHgfrMpkBJqvLxhuR2Ppau0L2seg iatmode=0

接下来就可以使用自己的网桥进行连接了。当然你也可以从官方获取网桥进行桥接,下面是免费获取网桥页面:

https://bridges.torproject.org/options

下面,讲讲在Windows和Linux客户端下怎么用?

Tor Bridge video
Windows上Tor的使用
由于对Windows不是很熟悉,也就没有专门去编译tor和obfs4的exe单文件,直接去官方选择Windows下载:

https://www.torproject.org/zh-CN/download/tor/

下载解压后,把tor里面的文件按照下面的文件格式组装一下:

+---Data
|       geoip
|       geoip6
|
+---PluggableTransports
|       obfs4proxy.exe
|
|   libcrypto-1_1.dll
|   libevent-2-1-6.dll
|   libevent_core-2-1-6.dll
|   libevent_extra-2-1-6.dll
|   libgcc_s_sjlj-1.dll
|   libssp-0.dll
|   libssl-1_1.dll
|   libwinpthread-1.dll
|   tor.exe
|   torrc
|   zlib1.dll
\   tor_start.bat
上面看不懂的可看下图:

Files and folders
Windows下的obfs4proxy.exe文件比较麻烦,单文件没找到,直接去tor浏览器Tor Browser\Browser\TorBrowser\Tor\PluggableTransports文件夹提取一下。

然后用文本编辑器或记事本新建一个名为torrc文件,不需要后缀,填入下面内容:

#下面是跨机共享代理,去掉前面#号即可开启
#SocksPort 0.0.0.0:9050
#下面是前置代理,去掉前面#号即可开启
#HTTPSProxy 127.0.0.1:8787
#Socks5Proxy 127.0.0.1:1080
#下面数字改为0,关闭自带网桥连接,开启前置代理
UseBridges 1
DataDirectory ./Data
GeoIPFile ./Data/geoip
GeoIPv6File ./Data/geoip6
#下面日志路径,打开后终端不会显示连接日志
#Log notice file ./Data/tor.log
#StrictNodes 1
AvoidDiskWrites 1
#下面是排除邪恶国家节点,去掉前面#号即可开启
#ExcludeExitNodes {cn},{hk},{mo},{sg},{th},{pk},{by},{ru},{ir},{vn},{ph},{my},{cu}
#ExcludeNodes {cn},{hk},{mo},{sg},{th},{pk},{by},{ru},{ir},{vn},{ph},{my},{cu}

ClientTransportPlugin obfs4 exec ./PluggableTransports/obfs4proxy managed
#普通网桥格式
Bridge 66.42.73.78:40367 8975AAF1A5317E04600F30AD3ED43083820FF516
#obfs4网桥按下面这样填写,注意:自己网桥请严格按下面格式填写,否则会报错!
Bridge obfs4 66.42.73.78:41563 8975AAF1A5317E04600F30AD3ED43083820FF516 cert=6LMNcXh6MIfApbZiMksnS4Kj+2sffZ5pybSqtcOO5YoHgfrMpkBJqvLxhuR2Ppau0L2seg iatmode=0
#tor默认的重建链路的时间是30s,可以适当延长时间保证速度
NewCircuitPeriod 900

默认是使用网桥连接,如果你没有搭建网桥或者获取的网桥连接不上,你也可以开启前置代理使用。

开启前置代理方法:去掉 Socks5Proxy 127.0.0.1:1080 前面的#号,当然也可以改为你前置客户端使用的其它端口,tor支持socks5和https前置。然后把 UseBridges 1 改为 0 就可以使用前置了。

torrc文件放在上面主目录,参照上面文件结构。完成后,还需要新建一个bat启动脚本,记事本或编辑器新建tor_start.bat文件,填入下面内容即可:

tor -f torrc
cmd/k

本来只需要tor -f torrc就可以了,如果闪退,就添加下面cmd/k,tor_start.bat文件放入主目录,参照上面文件结构。

完成后,点击tor_start.bat启动就好了。Tor的端口 Socks5 127.0.0.1:9050 可以配合浏览器插件SwitchyOmega,或者其它方式使用。

Linux下编译使用Tor
其实Tor和obfs4proxy安装很简单,因为软件库里都有,直接下面两条命令即可安装完成,但碰上俺这种有洁癖的,就是喜欢自己编译。

apt安装
apt install tor

apt install obfs4proxy

经推友提醒,这里讲下apt安装后的运行路径

apt安装后tor和obfs4proxy二进制文件分别在/usr/bin/里面,这里需要修改一下torrc文件,一起启动obfs4proxy.

vi /etc/tor/torrc

添加ClientTransportPlugin路径为

ClientTransportPlugin obfs4 exec /usr/bin/obfs4proxy managed

当然,网桥和前置什么的都可以在这里面设置。

保存后就可以直接tor运行了。

编译Tor
由于系统不一,编译时缺什么依赖的话,自己按错误提示添加。

git clone https://github.com/torproject/tor.git

cd tor

sh autogen.sh && ./configure --disable-asciidoc && make && make install

Tor二进制文件在/src/app/里面。

编译obfs4
go的版本号必须是1.11.0或更高版本,go get需要挂代理。

git clone https://github.com/Yawning/obfs4.git

cd obfs4

go get -d ...

go build -o obfs4proxy/obfs4proxy ./obfs4proxy

obf4proxy二进制文件在/obfs4/obfs4proxy/里面。

上面apt安装和手工编译二选一,然后,就是编写torrc文件了:

#SocksPort 0.0.0.0:9050

#HTTPSProxy 127.0.0.1:8787
#Socks5Proxy 127.0.0.1:1080

UseBridges 1
#Log notice file ./tor.log
AvoidDiskWrites 1

#StrictNodes 1
#ExcludeExitNodes {cn},{hk},{mo},{sg},{th},{pk},{by},{ru},{ir},{vn},{ph},{my},{cu}
#ExcludeNodes {cn},{hk},{mo},{sg},{th},{pk},{by},{ru},{ir},{vn},{ph},{my},{cu}

ClientTransportPlugin obfs4 exec ./obfs4proxy managed
#下面是apt安装路径
#ClientTransportPlugin obfs4 exec /usr/bin/obfs4proxy managed

Bridge 66.42.73.78:40367 8975AAF1A5317E04600F30AD3ED43083820FF516

Bridge obfs4 66.42.73.78:41563 8975AAF1A5317E04600F30AD3ED43083820FF516 cert=6LMNcXh6MIfApbZiMksnS4Kj+2sffZ5pybSqtcOO5YoHgfrMpkBJqvLxhuR2Ppau0L2seg iatmode=0

NewCircuitPeriod 900

Linux下把编译好的tor obfs4proxy 和 torrc 放在同一个文件夹下,给文件夹755权限,cd到文件夹,运行下面命令即可:

./tor -f torrc

到此,教程也就写的差不多了。最后Tor的端口 Socks5 127.0.0.1:9050 可以配合浏览器插件SwitchyOmega,或者其它方式使用。

下面页面有俺用最新源码编译的Linux_amd64,Tor和obfs4proxy,当然Windows版本也有,里面内置几十个可用网桥,当然你也可以开启前置使用。下载页面:

https://111111.online/cloud/docs/

其它
下面就聊聊关于安全的问题,本教程不为安全负责,只是写出一种轻量便携的方法,其后的浏览器加固,可以看俺下一篇博文。

关于匿名并不是你想象的这么简单,技术方面讲,无非就是前置,网桥,虚拟机,浏览器加固等等,这其中有几项争议比较大:

1:到底是用前置更安全还是使用网桥安全?

2:邪恶国家节点需不需要排除?

3:Tor流量特征是不是很明显?在现有的用户基数下这些特征够不够得上威胁?

以上问题,有些人会说,这些问题太简单了。呵呵,你认为俺会提简单问题?大家可以Google多看看,算是增长一些匿名知识。有些问题的答案并非你想象的那样子,俺这里就不给出答案了,需要你自己去探索。

然后说的是,技术以外的部分,匿名时的环境隔离和互动频率,这其实是很重要的部分,是不是彻底与内网隔离?包括身份,付款方式,行为特征,互动规律等等,这一部分建议大家看看编程随想的博客,他讲的比较详细,俺也就是献献丑。

参考:

Tor GitHub
obfs4 GitHub
如何优雅地用Tor_下篇
原文链接:https://111111.online/posts/tor_bridges_proxy.html

为了庆祝三胖去见马克思,特写下tor教程第二篇,上一篇博文已经详细说过Windows和Linux下怎么快捷地用tor,这一篇主要讲tor网桥直连,怎么寻找普通网桥和obfs4网桥?怎么灵活配置torrc文件?以及怎么设置浏览器插件和安全加固?

获取tor网桥
tor网桥洋文叫“Tor Bridge”,用于桥接洋葱网络,而俺们要找的网桥是入口节点,用于直接连接tor,下面讲讲怎么找这个入口节点并测试节点可用性以及速度快慢。

1:首先可以去官方页面获取,此页面点击上面“直接给我网桥”获取的是普通网桥,点击下面“获取网桥”获取的是obfs4网桥,也就是你每次可以获取6个网桥,如果是用tor连接此页面的话,因为tor的IP总是在变的,于是你隔过几分钟就可以再次获取一次,这样的话,你可以短时间内获取大量网桥。下面是获取页面:

https://bridges.torproject.org/options

2:然后是邮件获取,gmail发送邮件至bridges@torproject.org,稍后就会收到torproject给你发来的网桥,如果没收到,那肯定是在垃圾邮件内。

邮件主题: get bridges

邮件内容: get transport obfs4

3:最后是Telegram订阅,订阅地址:

https://t.me/tor_bridges

上面各种渠道获取后,相信你已找到大量的网桥了。当然,这些网桥在天朝不是个个都能用的,下面就来测试节点的可用性。

测试入口节点可用性
Bridge obfs4 212.83.188.151:9822 0F2A94473B79300F9AF0D52C756F64B9D93D5C7B cert=U09xY9yyqQbtHBiW7fTJgnty7L3s9S5GztGJcMTciVYQK0cRiPUYdaIbEfpZUptbYx2CeQ iat-mode=0

上面是一个完整的obfs4网桥地址,Windows打开CMD窗口,ping一下前面的数字IP

ping 212.83.188.151

留下能ping通的,建议延时500ms以内,丢包不超过25%,不通的直接就可以扔掉了。ping通的网桥,俺们可以到下面页面测试一下速率。

https://metrics.torproject.org/rs.html

输入IP后面的40位ID进行测试,以上面网桥例,也就是:

0F2A94473B79300F9AF0D52C756F64B9D93D5C7B

建议留下带宽512 KiB/s及以上的网桥,当然带宽是越大越好,取决于你手上有多少网桥了。好了,下面讲讲这些网桥怎么用。

torrc文件详解
torrc文件也就是tor的配置文件,上面找好的网桥,添加到torrc里就可以使用了。下面详细讲讲torrc怎么配置,当然具体用法你得结合上一篇博文使用:

#下面是跨机共享代理,去掉前面#号即可开启
#SocksPort 0.0.0.0:9050
#下面是前置代理,去掉前面#号即可开启
#HTTPSProxy 127.0.0.1:8787
#Socks5Proxy 127.0.0.1:1080
#下面数字改为0,关闭自带网桥连接,开启前置代理
UseBridges 1

DataDirectory ./Data
#下面是geoip文件路径,geoip的作用也就是判定节点地理位置,配合节点排除或指定节点国家使用,另外作用是显示洋葱浏览器上的国旗、地区。
GeoIPFile ./Data/geoip
GeoIPv6File ./Data/geoip6
#下面日志路径,打开后终端不会显示连接日志
#Log notice file ./Data/tor.log

#较少对硬盘的读写
AvoidDiskWrites 1

#下面是排除邪恶国家节点,去掉前面#号即可开启
#ExcludeExitNodes {cn},{hk},{mo},{sg},{th},{pk},{by},{ru},{ir},{vn},{ph},{my},{cu}
#ExcludeNodes {cn},{hk},{mo},{sg},{th},{pk},{by},{ru},{ir},{vn},{ph},{my},{cu}
#下面是强制排除邪恶国家节点,即使Tor找不到可用的线路,也不会去尝试这些国家的节点,去掉前面#号开启
#StrictNodes 1

#下面是指定国家出口节点,比如德国,法国,荷兰
ExitNodes {de},{fr},{nl}
#下面是指定出口IP,和上面指定出口国家不可同时开启,二选一
#ExitNodes 185.248.160.65,54.37.16.241,46.182.106.190
#StrictExitNodes的意思是需要按照ExitNodes指定节点作为出口
StrictExitNodes 1

#这个是obfs4proxy的路径
ClientTransportPlugin obfs4 exec ./PluggableTransports/obfs4proxy managed

#下面是普通网桥写法:
Bridge 66.42.73.78:40367 8975AAF1A5317E04600F30AD3ED43083820FF516
#下面是obfs4网桥,可以多填,一行一个,按下面格式填写:
Bridge obfs4 66.42.73.78:41563 8975AAF1A5317E04600F30AD3ED43083820FF516 cert=6LMNcXh6MIfApbZiMksnS4Kj+2sffZ5pybSqtcOO5YoHgfrMpkBJqvLxhuR2Ppau0L2seg iatmode=0

#tor默认的重建链路的时间是30s,可以适当延长时间保证速度
NewCircuitPeriod 900

torrc配置文件尽量简洁,可用网桥不要填太多,建议10个左右,太多的话不利于排错,而且会拖慢整体速度。

指定出口节点
上面影响tor速度的是入口节点,也就是俺们找的网桥,另一个是出口节点,中间节点不可控所以不做考虑。简单点讲也就是控制好入口和出口的带宽,也就相应能提升速度。

入口刚才已经讲过了,那么讲讲出口节点,出口节点可以在YouTube上观察各个地区的速率,然后根据快慢设置出口国家,俺这边测试欧洲国家节点比较友好。具体设置出口国家方法看上面torrc文件注释。附上:国家地区代码

另外还有一种方法,会影响tor的匿名性,可相应稳定tor的速度。就是指定出口IP,怎么指定出口IP呢?下面给出方法:

首先,打开Tor官方所有实时出口节点列表:

https://check.torproject.org/exit-addresses

然后,复制出口IP的40位identity key到测速页面测试,选择带宽大于20MiB/s并且支持80和443端口的节点。

最后,在torrc文件里配置如下,即可指定出口节点。注:这样配置虽然能稳定tor的速度,但会影响tor的匿名性,本人是不建议采用的,大家酌情配置!

#建议填3,5个大带宽、支持80和443端口的IP,然后IP不要填错了,填写测速页面Exit Addresses下面的IP
StrictExitNodes 1
ExitNodes 185.248.160.65,54.37.16.241,46.182.106.190

另,本人建议:注重安全的用户尽量不要折腾出口节点,包括指定出口国家,保持默认就好。因为更改节点会导致指纹增加,详情见下文。

浏览器加固
首先是打上Privacy Badger和HTTPS Everywhere插件,来自大名鼎鼎的 EFF 也就是电子前哨基金会。

1:Privacy Badger中文名隐私獾,主要是限制各类商业trackers,此插件还能关闭WebRTC,插件安装后,点击设置标志然后勾选“阻止 WebRTC 泄露本地 IP 地址”即可。插件下载页面:

https://privacybadger.org/

2:使用HTTPS Everywhere插件强制https连接,tor上可以防止蜜罐窥探到访问内容:

https://www.eff.org/https-everywhere

3:Neat URL此插件能清除URL内的parameters,防止类似Google Analytics的分析流量,项目地址:

https://github.com/Smile4ever/Neat-URL

4:还有一个很野蛮的加固浏览器方法,此方法会严重影响浏览器易用性,严重警告,大家酌情添加,下面是项目地址:

https://github.com/pyllyukko/user.js

简单点讲就是下载user.js文件放入火狐 [firefox directory]\Data\profile\ 文件夹里,重启即可。

浏览器加固就先讲这么多,其它还有阻止部分Javascript APIs生成指纹乃至直接禁用JS脚本,删除不安全的根证书,启用DNS Over HTTPS等老生常谈的话题就不展开了。

5:最后,推荐一下SwitchyOmega插件,tor的端口是:Socks5 127.0.0.1:9050 下面是SwitchyOmega插件用法:

https://yuan.ga/switchyomega-tutorial/

回答几个问题
下面是回答上一篇博文的几个问题。

1:到底是用前置更安全还是使用网桥安全?

回答这个问题之前,先普及一个安全概念:“使用服务越多,中间环节越长,越会增大攻击面。”前置也不例外,比如前置VPS商,如果是TLS前置的话,那中间环节就更多了比如域名商,DNS解析商等等。一次意外的拖库将导致你的整个互联网身份全部暴露。洋文比较好的可以看看下面这篇文章的详细论述:

https://matt.traudt.xyz/p/mRikAa4h.html

所以对于前置,大家也不要过度解读,以为前置会比裸tor安全,别忘了tor还有个obfs4proxy混淆,这个下一个问题会详细解答。

2:Tor流量特征是不是很明显?

既然讲到流量特征,那么就得先讲讲tor内置的obfs4proxy,下面是obfs4网桥工作路径:

tor client ----> obfs4proxy client ----> censor ----> obfs4proxy server ----> tor bridge

可以看到,tor客户端发送数据到obfs4proxy,obfs4proxy会对数据包进行拆分或填充模糊其网络指纹,再转发给tor网桥。obfs4proxy主要进行以下工作:

1:obfs4通过填充数据(包括在握手数据包中添加填充数据)来加密tor流量并混淆数据包大小特征。

2:通过IAT模式拆分较大的obfs4数据包,以模糊其网络指纹。

以上,可以知道obfs4proxy就是用来模糊tor的流量特征的。再加上tor的用户基数是不小的,即使有特征,在现有用户基数下也够不上威胁。下面是全球Tor用户使用人数的统计:

https://metrics.torproject.org/userstats-bridge-country.html

3:邪恶国家节点需不需要排除?

关于tor节点排除和出口更改,官方是明确不建议这么做的:

https://2019.[url]www.torproject.org/docs/faq#ChooseEntryExit[/url]

更改节点会导致指纹增加:

https://2019.[url]www.torproject.org/docs/faq#ChoosePathCountries[/url]

网桥这一块并不能成为tor安全环境的重点环节,因现在的网站基本都是SSL加密,网桥是无日志的,即使是蜜罐也不能拿你怎么办;靠蜜罐抓人相当于守株待兔,收益与成本明显不成正比;再说,人家设置蜜罐节点干嘛不去自由国家,就非得傻愣愣地在你们知道的几个专制国家设置蜜罐?

最后,下面页面有俺用最新源码编译的Linux_amd64,Tor和obfs4proxy,当然Windows版本也有,内置几十个可用网桥。运行后,浏览器设置端口 Socks5 127.0.0.1:9050 即可过墙,下载页面:

https://111111.online/cloud/docs/

具体用法见上一篇博文。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|货物清仓|Archiver|手机版|小黑屋|倒数|舒尔特|好邻卡|RWA+DeFi|融资计划|内购渠道|MoltList|Web4

GMT+8, 2026-4-20 13:02 , Processed in 0.075075 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.