1、从根目录(/)使用ls命令来探索Linux的目录结构。使用cd命令移动到各个目录,并运行pwd命令来验证你在目录结构中的位置。
操作步骤
查看目录内容
在根目录使用
命令查看目录内容。
ls
示例:
ls
进入具体目录
使用
命令进入具体目录。
cd
示例:进入
目录:
/etc
cd /etc
验证当前目录
使用
命令查看当前所在目录路径。
pwd
示例:
pwd
执行结果将显示当前目录路径。
2、使用 whoami 命令来验证你当前登录的用户是谁。
在终端输入
命令,系统会返回你当前登录的用户名。
whoami
例如:
kali > whoami
若返回
,则表示你以 root 用户登录;若返回其他用户名,如
root
,则表示你以该用户登录。
OTW
3、使用locate命令查找可用于密码破解的单词列表。
在终端中输入
,即可查找 Kali Linux 中众多可用于密码破解的单词列表。
locate wordlist
4、使用 cat 命令创建一个新文件,然后向该文件追加内容。请记住,> 用于将输入重定向到文件,>> 用于向文件追加内容。
创建新文件:
cat > hackingskills
输入内容如:
Hacking is the most valuable skill set of the 21st century!
按
退出。
Ctrl-D
追加内容:
cat >> hackingskills
输入要追加的内容如:
Everyone should learn hacking
按
退出。
Ctrl-D
5、创建一个名为 hackerdirectory 的新目录,并在该目录中创建一个名为 hackedfile 的新文件。现在将该文件复制到 /root 目录并将其重命名为 secretfile。
创建新目录:
进入新目录:
mkdir hackerdirectory
创建新文件:
cd hackerdirectory
复制文件到
touch hackedfile
目录并重命名:
/root
cp hackedfile /root/secretfile
6、使用 cat 命令查看 passwords.lst 文件的内容。
在命令行输入:cat passwords.lst
7、使用 more 命令显示文件 passwords.lst 的内容。
在终端中输入以下命令:more passwords.lst
8、使用less命令查看文件passwords.lst。
在终端输入命令:less passwords.lst
9、现在使用nl命令为passwords.lst文件中的密码添加行号。该文件中应该有88396个密码。
使用命令
为文件中的密码添加行号,可验证是否有88396个密码。
nl passwords.lst
10、使用tail命令查看passwords.lst文件中的最后20个密码。
在终端中输入命令:
tail -20 /usr/share/wordlists/metasploit/passwords.lst
11、使用 cat 命令显示 passwords.lst 文件内容,并通过管道操作找出所有包含 123 的密码。
在命令行中可以使用以下命令:cat passwords.lst | grep 123
12、查找你活跃网络接口的信息。
可以使用
命令来查找活跃网络接口的信息,在终端中输入以下命令即可查询:
ifconfig
ifconfig
13、将 eth0 接口的 IP 地址更改为 192.168.1.1
在命令行输入:ifconfig eth0 192.168.1.1
14、更改 eth0 接口的硬件地址。
要更改
接口的硬件地址,可按以下步骤操作:
eth0
使用
命令的
ifconfig
选项关闭接口,输入:
down
bash kali > ifconfig eth0 down
输入
命令,后跟接口名称(
ifconfig
表示硬件,
hw
表示以太网)和新的伪造 MAC 地址,例如:
ether
bash kali > ifconfig eth0 hw ether 00:11:22:33:44:55
使用
选项重新启用接口,使更改生效,输入:
up
bash kali > ifconfig eth0 up
15、检查你是否有任何可用的无线接口处于活动状态。
可以使用
命令检查网络设备并留意无线扩展,还可以使用
ifconfig
命令查看无线接口及其关键数据,以此判断是否有可用的无线接口处于活动状态。
iwconfig
16、将你的 IP 地址重置为 DHCP 分配的地址。
通常,要从局域网连接到互联网,必须有一个 DHCP 分配的 IP。设置静态 IP 地址后,需要返回并获取新的 DHCP 分配的 IP 地址。可以通过重启系统来实现,也可以在不关闭并重启系统的情况下获取新的 DHCP 地址。
要从 DHCP 请求 IP 地址,使用命令
后跟要分配地址的接口,例如在 Kali 系统中:
dhclient
kali > dhclient eth0
该
命令会从指定的网络接口(这里是
dhclient
)发送一个
eth0
请求,然后从 DHCP 服务器接收一个
DHCPDISCOVER
,并通过
DHCPOFFER
请求向 DHCP 服务器确认 IP 分配。
dhcp
17、查找你最喜欢网站的名称服务器和邮件服务器。
可使用
命令获取相关信息。若要获取名称服务器信息,使用
dig
,如
dig 网站域名 ns
;若要获取邮件服务器信息,使用
dig hackers-arise.com ns
,如
dig 网站域名 mx
。
dig hackers-arise.com mx
18、将谷歌的 DNS 服务器添加到你的 /etc/resolv.conf 文件中,这样当你的系统无法使用本地 DNS 服务器解析域名查询时,就会参考该服务器。
可以通过以下两种方式操作:
使用文本编辑器(如 Leafpad)打开
文件,在文件中添加一行“nameserver 8.8.8.8”,然后保存文件。
/etc/resolv.conf
命令示例:
kali > leafpad /etc/resolv.conf
直接在命令行输入以下命令(注意这里用
是追加内容,若用
>>
会替换原内容):
>
kali > echo "nameserver 8.8.8.8" >> /etc/resolv.conf
该命令会将“nameserver 8.8.8.8”追加到
文件中。
/etc/resolv.conf
19、从Kali软件源安装一个新的软件包。
在终端中使用
命令,后跟关键字
apt-get
,再加上你要安装的软件包名称,语法如下:
install
apt-get install packagename
例如,要安装 Snort,可输入:
apt-get install snort
20、如何在系统中移除同一个软件包,以及如何同时移除软件包的配置文件?
使用
命令搭配
apt-get
选项,后跟要移除的软件名称,例如:
remove
kali > apt-get remove snort
若要同时移除配置文件,可使用
选项,例如:
purge
kali > apt-get purge snort
21、更新你的软件仓库。
你可以通过输入
命令并跟上关键字
apt-get
来更新软件仓库。该命令会搜索系统上的所有软件包,并检查是否有可用的更新。如果有,更新将被下载。示例命令如下:
update
kali > apt-get update
22、如何升级系统上现有的软件包?
要升级系统上现有的软件包,使用
命令。
apt-get upgrade
由于升级软件包可能会对你的软件进行更改,你必须以 root 用户身份登录,或者在输入
命令前使用
apt-get upgrade
命令。
sudo
该命令将升级系统上 apt 所知的每个软件包,即仅升级存储在仓库中的软件包。
升级可能会很耗时,因此你可能有一段时间无法使用系统。
23、从GitHub上选择一款新软件并将其克隆到你的系统中。
以克隆
软件为例,首先在 GitHub 搜索栏输入
bluediving
找到其仓库,若存在会在搜索结果中显示。
bluediving
该软件的 GitHub 地址为:
https://www.github.com/balle/bluediving.git
在终端输入以下命令即可将其克隆到系统中:
git clone https://www.github.com/balle/bluediving.git
可使用以下命令查看目标目录:
ls -l
若成功克隆,会看到名为
的新目录。
bluediving
24、选择一个目录并对其执行长列表命令。记录文件和目录的权限。
可使用
命令查看目录下文件和目录权限,权限信息在输出每行左侧,由一串字母和短横线表示。
ls -l
第一个字符表示文件类型(
为目录,
d
为文件) 后续三组三个字符分别代表文件所有者、所属组和其他用户的权限
-
表示可读
r
表示可写
w
表示可执行
x
表示无该权限
-
25、选择一个你没有执行权限的文件,使用chmod命令给自己添加执行权限。尝试使用数字方法(777)和UGO方法。
权限设置方法
数字方法
使用
命令可给文件所有者、所属组和其他用户添加所有权限(包括执行权限)。
chmod 777 文件名
UGO方法
使用
命令分别给用户、组和其他用户添加执行权限。
chmod u+x,g+x,o+x 文件名
26、选择另一个文件并使用chown命令更改其所有权。
使用
命令更改文件所有权的示例命令为:
chown
chown 用户名 文件名
例如:
chown bob /tmp/bobsfile
该命令将
文件的所有权授予用户
/tmp/bobsfile
。
bob
27、在你的系统上使用
aux
选项运行
ps
命令,并记录第一个和最后一个进程分别是什么。
aux
ps
使用
命令后,第一个进程通常是
ps aux
,最后一个进程是执行显示操作的
init
命令。
ps aux
28、使用 kill 命令杀死占用最多资源的进程。
首先使用 `top` 命令找出占用最多资源的进程的 PID,`top` 命令会按资源使用量从大到小动态刷新进程列表。找到该进程的 PID 后,使用 `kill` 命令结合合适的信号来杀死进程。若要强制终止,可使用绝对终止信号 `SIGKILL`,命令格式为:
kill -9
若使用默认信号,可直接使用:
kill
##29、使用renice命令将一个正在运行的进程的优先级降低到+19。
要使用 `renice` 命令将一个正在运行的进程的优先级降低到 `+19`,需要知道该进程的 PID。假设进程的 PID 为 `xxxx`,可使用以下命令:
kali > renice 19 xxxx
`renice` 命令接受 `-20` 到 `19` 之间的数值来设置进程的优先级,这里设置为 `19` 以将进程优先级降低到 `+19`。
注意:
- 只有 root 用户可以使用 `renice` 命令将进程优先级设置为负值以提高优先级。
- 任何用户都可以使用 `renice` 降低进程优先级。
##30、使用文本编辑器创建一个名为 myscanning 的脚本(内容无关紧要),然后安排它在下周三凌晨 1 点运行。
```markdown
首先,使用文本编辑器创建脚本 `myscanning`,例如使用 `nano` 编辑器:
```bash
nano myscanning
编辑完成后保存退出。
接着,编辑
文件来安排脚本运行,执行命令:
crontab
crontab -e
在打开的文件中添加一行:
0 1 * * 3 /path/to/myscanning
其中
是脚本的实际路径,保存文件即可完成调度。
/path/to/myscanning
##31、使用 more 命令查看所有环境变量。
在任意目录的终端中输入 `set | more` 命令,可逐行查看所有环境变量。使用该命令查看输出时,按回车键可逐行滚动查看变量,输入 `q` 可退出查看并返回命令提示符。
##32、使用echo命令查看HOSTNAME变量。
在终端输入命令:echo $HOSTNAME
##33、创建一个名为 MYNEWVARIABLE 的变量,并将你的名字存储在其中。
在命令行中输入:
```bash
MYNEWVARIABLE="你的名字"
例如:
MYNEWVARIABLE="张三"
34、使用 echo 命令查看 MYNEWVARIABLE 变量的内容。
在终端输入命令
即可查看
echo $MYNEWVARIABLE
变量的内容。
MYNEWVARIABLE
35、导出 MYNEWVARIABLE 变量,使其在所有环境中都可用。
在终端中输入命令:export MYNEWVARIABLE
36、使用 echo 命令查看 PATH 变量的内容。
在终端中输入命令:echo $PATH,即可查看 PATH 变量的内容。
37、将你的主目录添加到 PATH 变量中,以便主目录中的任何二进制文件可以在任何目录中使用。
可以使用以下命令将主目录添加到
变量中:
PATH
kali > PATH=$PATH:/home/<your_username>
注 :
需要替换为你实际的用户名。如果不确定主目录路径,可使用
<your_username>命令查看。
echo $HOME
38、将你的PS1变量更改为“World’s Greatest Hacker:”。
可以在终端中输入命令:
PS1="World's Greatest Hacker:"
若要使更改在所有会话中永久生效,还需输入命令:
export PS1
39、创建一个类似于HelloHackersArise脚本的自定义问候脚本。
以下是创建自定义问候脚本的步骤:
打开文本编辑器,输入以下内容:
bash #! /bin/bash # 这是一个自定义问候脚本。 echo "你自定义的问候语,例如:Hello, 世界!"
保存文件,例如保存为
,不添加扩展名。
CustomGreeting
设置执行权限,在命令行中使用
命令:
chmod
bash kali > chmod 755 CustomGreeting
运行脚本:
bash kali > ./CustomGreeting
40、修改MSSQLscanner脚本,提示用户输入起始和结束IP地址以及要搜索的端口。然后过滤掉所有端口关闭的IP地址,只显示端口开放的IP地址。
首先,使用
命令提示用户输入起始IP地址、结束IP地址和端口号,使用
echo
命令将用户输入存储到相应变量中。接着,编辑
read
命令,使用变量指定IP地址范围和端口进行扫描,并将输出重定向到一个文件。之后,使用
nmap
命令过滤包含
grep
关键字的行并存储到新文件,最后显示该新文件内容。
open
示例代码框架如下:
#! /bin/bash
echo "Enter the starting IP address : "
read FirstIP
echo "Enter the last IP address : "
read LastOctetIP
echo "Enter the port number you want to scan for : "
read port
nmap -sT $FirstIP-$LastOctetIP -p $port >/dev/null -oG MSSQLscan
cat MSSQLscan | grep open > MSSQLscan2
cat MSSQLscan2
41、从三个文件创建一个 tarball。将该 tarball 命名为 L4H。注意这三个文件在打包成 tarball 后,文件总和的大小是如何变化的。
可使用命令
创建名为 L4H 的 tarball。打包时 tar 操作会有显著开销,通常打包后的 tarball 大小会比三个文件原始大小总和大。如示例中三个文件原始大小总和为 35,094 字节,打包成 HackersArise.tar 后大小变为 40,960 字节,增加了超 5,000 字节,但随着文件增大,这种开销占比会越来越小。
tar -cvf L4H Linux4Hackers1 Linux4Hackers2 Linux4Hackers3
42、已知有一个名为L4H的文件,需要对其进行压缩和解压缩操作,先重复使用gzip时的操作(压缩L4H文件并记录文件大小变化,研究如何控制覆盖现有文件,然后解压缩L4H文件),分别使用bzip2和compress工具来完成。
练习3内容
使用gzip压缩与解压缩
压缩
文件并使用
L4H
记录文件大小变化 研究如何控制覆盖现有文件 解压缩
gzip
文件
L4H
使用bzip2压缩与解压缩
输入命令进行压缩:
压缩后文件扩展名变为
kali > bzip2 L4H.*
记录文件大小变化 使用以下命令进行解压缩:
.tar.bz2
研究如何控制覆盖现有文件
kali > bunzip2 L4H.*
使用compress压缩与解压缩
输入命令进行压缩:
压缩后文件扩展名变为
kali > compress L4H.*
记录文件大小变化 使用以下命令之一进行解压缩:
.tar.Z
kali > uncompress L4H.*
或
研究如何控制覆盖现有文件
kali > gunzip L4H.*
43、使用dd命令对其中一个闪存驱动器进行逐位物理复制。
以下是将给定文本内容调整为 Markdown 格式的结果:
假设闪存驱动器为
,可在命令行输入:
sdb
dd if=/dev/sdb of=/root/flashcopy
其中:
是物理“复制”命令;
dd
指定输入文件,
if
表示
/dev/sdb
目录下的闪存驱动器;
/dev
指定输出文件;
of
是要将物理副本复制到的文件名。
/root/flashcopy
若要使用选项,例如
和
noerror
(块大小)选项,命令可写为:
bs
dd if=/dev/sdb of=/root/flashcopy bs=4096 conv=noerror
44、使用 mount 和 umount 命令挂载和卸载你的闪存驱动器。
挂载与卸载闪存驱动器
挂载闪存驱动器
可使用
命令进行挂载。例如,将新的闪存驱动器
mount
挂载到
sdc1
目录,输入以下命令:
/media
mount /dev/sdc1 /media
卸载闪存驱动器
使用
命令进行卸载。例如,卸载闪存驱动器
umount
,输入以下命令:
sdb1
umount /dev/sdb1
45、检查你的主硬盘上的可用磁盘空间。
可以使用
命令来检查磁盘空间信息。若不添加任何选项,
df
默认检查系统的第一个驱动器(如
df
);若要检查其他驱动器,在
sda
命令后加上要检查的驱动器标识(例如
df
)。
df /dev/sdb
示例命令:
df
46、使用fsck命令检查你的闪存驱动器是否存在错误。
首先要卸载设备,如执行:
umount /dev/sdb1
然后可以添加
选项让
-p
自动修复设备问题,如:
fsck
fsck -p /dev/sdb1
以此来检查设备是否有坏扇区或其他问题。
47、使用 dd 命令将一个闪存驱动器的全部内容(包括已删除的文件)复制到另一个闪存驱动器。
以下是调整为 Markdown 格式的文本内容:
假设源闪存驱动器为
,目标闪存驱动器为
/dev/sdb
,可使用命令:
/dev/sdc
dd if=/dev/sdb of=/dev/sdc
若要使用
和
noerror
选项加速并处理错误,命令可写成:
bs
dd if=/dev/sdb of=/dev/sdc bs=4096 conv=noerror
48、使用locate命令查找所有与rsyslog相关的文件。
在Kali系统中打开终端,输入命令:
locate rsyslog
结果可能如下:
/etc/rsyslog.conf
/etc/rsyslog.d
/etc/default/rsyslog
/etc/init.d/rsyslog
/etc/logcheck/ignore.d.server/rsyslog
/etc/logrotate.d/rsyslog
/etc/rc0.d/K04rsyslog
49、打开rsyslog.conf文件并将日志轮转设置为一周。
使用文本编辑器(如Leafpad)打开rsyslog的配置文件:
bash kali > leafpad /etc/rsyslog.conf
在配置文件中找到日志轮转相关设置。默认设置可能是“rotate 4”(每四周轮转一次),将其修改为“rotate 1”;
保存修改后的文件。
50、使用shred命令粉碎并删除所有内核日志文件。
要粉碎并删除所有内核日志文件,可使用如下命令:
shred -f -n [次数] /var/log/kern.log.*
其中
可根据需求设定,如设定为10次,命令即为:
[次数]
shred -f -n 10 /var/log/kern.log.*
选项用于在必要时更改文件权限以允许覆盖,
-f
选项用于指定覆盖文件的次数。
-n
51、通过命令行启动你的apache2服务。
在命令行输入
来启动 apache2 服务,原答案中的
service apache2 start
不是命令组成部分,且
kali >
拼写错误。
services
52、通过命令行启动 SSH 服务,然后从局域网中的另一台系统连接到 Kali 系统,请描述具体操作步骤。
在 Kali 系统中通过命令:
service ssh start
启动 SSH 服务;在另一台系统上使用:
ssh <Kali 系统用户名>@<Kali 系统 IP 地址>
例如:
ssh pi@192.168.1.100
进行连接,之后按提示输入密码完成连接。
53、启动PostgreSQL数据库服务,并设置它以供Metasploit使用,具体该如何操作?
启动PostgreSQL服务:在命令行输入
kali >service postgresql start
启动Metasploit:输入
kali >msfconsole
Metasploit启动完成后会看到提示符
。
msf >
设置PostgreSQL以存储Metasploit活动数据:在提示符
下输入
msf >
msf >msfdb init
按提示创建数据库
和
msf
,创建配置文件
msf_test
,创建初始数据库模式。
/usr/share/metasploit-framework/config/database.yml
以root身份登录Postgres:在提示符
下输入
msf >
msf >su postgres
创建用户和密码:登录Postgres后,在提示符
下输入
postgres@kali:/root$
postgres@kali:/root$ createuser msf_user -P
按提示输入新角色的密码。
54、尝试使用proxychains和Firefox浏览器访问指定网站。
可以按照以下步骤操作:
若不添加自己的代理且想使用Tor,保持proxychains默认配置(即让流量先通过127.0.0.1的9050端口,这是Tor的默认配置);若不使用Tor,注释掉配置文件中指向Tor的那一行(在该行前加
)。
#
若要添加更多代理,可访问 http://www.hidemy.name 查找代理IP地址,然后将其添加到
文件的
/etc/proxychains.conf
部分,例如:
[ProxyList]
socks4 114.134.186.12 22020
保存配置文件后,在终端输入命令:
kali > proxychains firefox www.指定网站域名
即可通过代理在Firefox中打开该网站。