本笔记为 泷羽sec 《红队全栈课程》学习笔记,课程请可自行前往B站学习,课程/笔记主要涉及网络安全相关知识、系统以及工具的介绍等,请使用该课程、本笔记以及课程和笔记中提及工具的读者,遵守网络安全相关法律法规,切勿进行违法违规违纪的操作。
写在最前面的话,我们为什么要学习网络安全这门技术:
- 维护国家安全
防范网络攻击:网络安全威胁已成为国家安全的重要挑战。学习网络安全有助于识别和防范来自国内外的网络攻击,防止敌对势力通过网络手段窃取敏感信息、破坏关键基础设施或干扰社会正常运作。
保护关键基础设施:现代社会高度依赖网络技术,金融系统、交通网络、电力供应等关键基础设施都依赖于稳定的网络环境。掌握网络安全知识有助于保护这些基础设施免受网络攻击,确保国家的正常运转。
- 促进经济发展
保障数字经济安全:数字经济已成为国家经济增长的重要引擎。通过学习网络安全,可以保障数字经济的健康发展,防止数据泄露和网络犯罪对经济活动的干扰。
增强国际竞争力:在全球化的背景下,网络安全技术水平直接影响国家的国际竞争力。掌握先进的网络安全技术和策略,有助于提升国家在全球数字经济中的地位。
提升社会稳定
防范社会风险:网络犯罪和网络恐怖主义对社会稳定构成严重威胁。学习网络安全有助于及时发现和应对这些风险,维护社会的和谐与稳定。
保护公民权益:网络安全直接关系到公民的隐私权和信息安全。通过学习网络安全,可以更好地保护公民的合法权益,增强公众对政府和企业的信任。
- 推动科技进步
创新安全技术:网络安全领域的技术创新不断推动信息技术的进步。学习网络安全有助于推动新技术的研发和应用,提升国家在科技领域的整体实力。
促进国际合作:网络安全是全球性问题,需要各国共同努力应对。通过学习网络安全,可以参与国际网络安全合作,共同制定国际标准和规范,提升全球网络安全水平。
- 强化法治建设
完善法律法规:学习网络安全有助于推动和完善相关法律法规的制定和实施,确保网络安全工作有法可依、有章可循。
提升执法能力:掌握网络安全知识可以提升执法部门的网络侦查和取证能力,有效打击网络犯罪,维护法律权威。
- 培养专业人才
构建人才梯队:网络安全领域需要大量高素质的专业人才。通过系统学习和培训,可以培养出一批具备专业知识和实战经验的网络安全专家,为国家的网络安全事业提供坚实的人才保障。 总之,学习网络安全不仅是个人职业发展的需要,更是维护国家安全、促进经济发展、保障社会稳定和推动科技进步的重要手段。通过不断提升网络安全意识和能力,我们可以更好地应对日益复杂的网络安全挑战,为实现国家的长期稳定和发展贡献力量。
系列课程视频详见泷羽sec 的小破站主页 传送门 ==> 泷羽sec个人主页-哔哩哔哩视频
本笔记为kali linux的安装说明,适合新手从未接触过该操作系统的小伙伴,老鸟请忽略。
另请注意,kali linux内置各种攻击性软件,在未取得授权的情况下,请各位小伙伴仅在自行搭建的靶场上进行测试,而不要对互联网上的目标(包括但不限于网站/服务器/设备/手机等),进行诸如注入扫描/嗅探/投毒/钓鱼等攻击行为,否则会面临牢狱之灾。
一、VMware下安装kali linux
1、安装VMware软件
网上资源较多,具体过程略,许可证请b自a行i解d决u。
2、下载kali
2.a 官网下载kali
官网地址 www.kali.org ,但是更建议到国内镜像源下载,速度更快
下图为kali官网,点击download

初学者不建议下载iso文件一步步安装,建议使用右边虚拟机pre-build版,解压缩就可以用。

进入后页面如下,上面四个是四种虚拟机的kali稳定版,我们一般使用红色方框内的VMware版或VirtualBox版。下面四个是每周更新版,可能不是太稳定,一般情况下不用周更新版。
以VMware为例,鼠标放在红色小圆圈处就可以下载,可以先看下它的pre-build的版本号是多少,目前2024.3,点进去的话就可以下载了,不过可能速度不是很稳定,因为不知会不会分发到国外的服务器下载。所以可以继续下看,下面有国内的镜像源下载地址,速度会很快。

2.b 镜像源下载kali
国内镜像源较多,以中科大镜像源为例,https://mirrors.ustc.edu.cn 进去搜下kali,安装文件在images红色箭头处,黄色箭头是中科大的apt源,apt是kali内安装软件用的,后面会用到。

点进去后看到了2024.3文件夹,这个源和官网是同步的,我们继续点进去。

点进去后看到有很多文件,红色的是VMware的64位版kali,黄色是VirtualBox版的kali,鼠标点vmware这个7z文件(注意,不要鼠标右键另存为,要直接左键点击链接)

3、VMware虚拟机导入kali
上面下载好的文件进行解压缩,解压完毕后会有个文件夹,约13G不到

个人建议是给文件夹改个名,比如kali2403-bak,这样知道是kali的202403版备份,进入文件夹后,复制下 kali-linux-2024.3-vmware-amd64.vmx 这个文件,或者复制下文件夹所在的地址。

WMware虚拟机点文件==>打开(或者直接快捷键ctrl+o)
把文件夹地址贴进去或者把上面的文件地址贴进去,按回车或者点打开


几秒钟后,VMware就会多一个虚拟机系统,就是我们要用的kali,留意下图红框处,告诉我们用户名和密码都是kali。

另外,建议是给这个虚拟机换个名字,比如和文件夹名字一样kali2403-bak,见名知意就知道这个是2403的kali的备份文件夹。下图修改虚拟机名称后,按保存即可。另外,这里只是这个镜像的名字,不会修改里面实际内容。

点击开启虚拟机,用户名和密码都输入kali,登录kali后,则第一步安装则大功告成,另外,默认情况下,如果物理机可以上网,则vmware pre-build的kali理论上也可以直接上网,无需额外设置。


关于网卡问题,vmware的kali默认是NAT的网卡,如果有需要的话可以调整为桥接模式(比如后面说的vulnhub镜像靶场,有些靶机可能默认就是桥接模式),另外,如果有需求的话也可以增加块网卡,一块桥接,一块NAT。

二、VirtualBox下安装kali linux
如只使用VMware的小伙伴可跳过本章节
VirtualBox 安装过程略,下载地址可到其官网下载

kali的VirtualBox Pre-build版本镜像可以到kali官网或者国内镜像源下载
目前稳定版是 2024.03 Index of /kali-images/kali-2024.3/ (ustc.edu.cn)
下载完成后解压即可,双击里面的 .vbox文件

虚拟机会自动导入到virtualbox中去,点击启动即可。

关于virtualbox的网络问题
VirtualBox的预装的kali网段是10.x.x.x(下下图黄框),和我们windows的网段不在一起,ssh什么的可能都无法连接。我们可以在kali关机的时候,在设置的网络这里,添加一张网卡,选择仅主机Host-Only,这样就可以多一张网卡,和物理机在一个C段,这样物理机ssh什么都可以连接了(下下图蓝框)。


三、apt、pypi、docker换源,开启ssh等操作
kali 新建个Terminal,也可以用快捷键Ctrl+Alt+T


0、修改 root 账号密码
安全性问题放在最前面,因为渗透测试的时候可能会运行一些来历不明的软件,不能保证一定安全的情况下,建议任何操作都使用 kali 账号,而不是 root 账号。有过反弹 shell 经验的小伙伴知道,如果一个应用可以让我们执行反弹 shell ,如果应用是 root 账号启动的,那么反弹 shell 的话就可以直接拿到 root 账号权限,所以任何操作都直接用 root 是比较危险的。也因为这个原因,我们一般建议:日常操作都使用 kali 账号,有些需要 root 权限的,建议使用 sudo + command 来执行。
sudo passwd root # 使用这条命令给 root 账号设置密码

另外建议给 kali 账号也修改个密码:
passwd kali
1、apt换源
1.a、apt源做好备份(非必须)
使用下面这条命令,复制一份sources.list到同路径的sources.list.bak中去
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
如果后续sources.list被不小心改坏了,可使用下面这条命令还原
sudo cp /etc/apt/sources.list.bak /etc/apt/sources.list
1.b、更换apt源为中科大源
至中科大镜像源 ==> Kali Linux - USTC Mirror Help
复制deb 开头的这串地址,红圈这里有个复制按钮。

备注:其余如阿里源、华为源、清华源等等,也都是可以的。
kali内输入以下命令:
sudo vim /etc/apt/sources.list
注意:回车后会要求输入密码,密码也是kali,linux系统这类密码都是盲打,用户是看不到自己输入的密码。

接下来如果是第一次接触vim这个文本编辑器的小伙伴,操作流程如下:
首先光标应该在第一行第一个字符#号这里,如果不在的话,可以用快速按2下gg,光标就会回到首行的行首。
分别按下1、0 、 d、d 从光标开始删除10行,把里面所有的信息都删掉,然后按下shift+insert,把刚才复制的源地址就会粘贴进去。
注意:粘贴这个步骤,也可以用鼠标右键选Paste Clipboard代替,也可以用它自带的快捷键Ctrl+Shift+V代替。

接下来,按一下esc键,依次输入:qw后,回车,退出vim编辑文件模式。
如果你始终没搞定vim,那么用下面这条命令编辑文本,mousepad和windows记事本差不多。
sudo mousepad /etc/apt/sources.list
1.c、apt更新软件
使用下条命令,注意整个更新过程会比较漫长,遇到弹出要选择的时候直接选默认选项即可。
sudo apt update && sudo apt upgrade -y

出现这种就小键盘选到yes,然后按回车

出现这种事按tab选到ok,然后按回车

2、pip换源
因为后续渗透学习过程中,用到python比较多,使用下面命令将python的pip源更换成国内源
mkdir ~/.pip
vim ~/.pip/pip.conf
下面源随便选个就可以,然后保存退出。
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
# 上面是阿里源,下面是中科大源,选一个就可以
[global]
index-url = https://mirrors.ustc.edu.cn/pypi/
[install]
trusted-host=mirrors.ustc.edu.cn
3、docker安装以及换源
sudo apt update && sudo upgrade -y
# 更新apt源,如觉得upgrade下载较多,则至少apt update
sudo apt install docker.io # 安装docker
sudo apt install docker-compose # 安装docker-compose,vulhub要用到
sudo mkdir /etc/docker #etc下创建docker文件夹,准备修改docker镜像仓库
sudo touch /etc/docker/daemon.json # 再创建一个 daemon.json 镜像仓库写在这个文件里
sudo vim /etc/docker/daemon.json # 如果vim不会用,vim可以改成mousepad
# 写入下列文本,写入完成再执行下面的命令
┌──(kali㉿kali)-[~]
└─$ cat /etc/docker/daemon.json
{"registry-mirrors" :
[
"https://docker.m.daocloud.io",
"https://noohub.ru",
"https://huecker.io",
"https://dockerhub.timeweb.cloud",
"https://docker.rainbond.cc"
]
}
重新启动下docker相关服务
sudo systemctl daemon-reload && sudo systemctl restart docker
# 到这里 docker 和 docker-compose 已经安装完毕,且 docker 源也改好了;
# 注意,如后续发生 docker 无法拉取话,可能是镜像仓库失效了
# 建议csdn或者小破站搜最新的 docker 仓库
拉取个ubuntu试试
sudo docker pull ubuntu
看到kali内已经成功拉取到ubuntu的images

4、开启ssh
sudo vim /etc/ssh/sshd_config 【注意实际这里有误,仅 ssh 登录 kali 账号的话,不用改这个配置文件】
vim 内按 / 然后输入To ,然后按回车,按i进入编辑模式,找到把黄色箭头处的#PasswordAuthentication yes前面的#号删掉,然后:wq退出

重新启动下ssh服务,再查看下自己的ip,这个ip后面要用到
sudo systemctl restart ssh # 使用 sudo systemctl start ssh 也可以,如果 ssh 仅使用 kali 账号登录的话执行这2条命令中的任一条即可。
ip a

windows打开终端cmd或者powershell都行,输入ssh检查下,一般默认都有ssh命令的

使用下面的命令在windows用ssh连接到kali,注意改成你自己的kali的ip 。
ssh kali@192.168.255.129
出现“Are you sure you want to continue connecting (yes/no/[fingerprint])?”输入yes,然后回车,这时候又要求输入kali的登录密码,输入即可按回车,顺利登录到kali系统。

除了用windows终端登录以外,一般情况下有专门的ssh软件可以登录。另外请注意,系统并没有把ssh服务设置成开机自启动,也就是kali重新启动后默认是无法连接的,如有需求可使用下面的 enable 命令,也可以自己手动开启
sudo systemctl enable ssh # enable 是开机启动 ssh 服务
sudo systemctl restart ssh
上述操作完毕后,请在kali或者ssh到kali的windows终端中输入sudo init 0 命令,我们进行虚拟机的快照管理和克隆的学习。
sudo init 0
四、快照设置以及快速克隆操作系统
1、VMware拍摄快照
鼠标右键已经创建的虚拟机

进入后点拍摄快照,给快照起个名字(比如这个阶段我们是已经换好了源)

检查下快照管理器,多了下面这个快照

外面也可以看到多了个快照

2、VMware恢复快照
先进入kali,在桌面随便建个文件,可以在桌面上鼠标右键选择 Open Terminal Hear,然后输入touch 1111.txt。另外再如果按上面流程走下来的话,我们是已经拉了个ubuntu的镜像,我们把镜像删掉
touch 1111.txt # 桌面新建个1111.txt
sudo docker images # 看下有ubuntu镜像
sudo docmer rmi ubuntu # 删掉ubuntu的镜像
sudo docker images # 再看下ubuntu的镜像已经被删了

接下来suit init 0 退出kali,点选恢复快照,然后正常登录kali。

登入kali后发现,桌面的1111.txt已经没了,再看下ubuntu的镜像还在不在,使用sudo docker images发现,ubuntu的镜像还在。

3、VMware克隆快照
在之前kali备份的文件新建个kali2403-clone-20241105文件夹(注意:文件夹名字各位可以随意起,不用照搬我的)。

回到kali2403-bak的快照管理器,点克隆。

选择从现有快照这里,点下一页。

选择创建链接克隆(磁盘占用空间小),再下一页

把上面创建的克隆的文件地址复制过来,虚拟机名字改下比如就叫kali2403-clone-20241105,好了以后点完成。

几秒钟后,VMware里就会出来个新的虚拟机,另外回到kali-bak的快照里可以看到快照多了个锁。克隆的虚拟机可以正常开机,快照多了个锁表示,提醒用户这个快照是不能删的,它创建过克隆,删了的话对应的克隆的系统就不能使用了。

开机测试下克隆的kali完全可以正常开机,另外ip a 看下,发现ip变了,之前是200.129,现在这个是200.130了,另外,之前docker拉取的ubuntu也在。
克隆一个系统的整个流程耗时很短1分钟都不到,速度快几十秒就搞定了,所以建议是每次kali更新好以后做好个镜像,再克隆个kali,日常就操作这个克隆的kali,如果玩坏了重新克隆个新的。

4、VirtualBox的备份(类似快照)
按照如下入口,进入VirtualBox的备份系统内
点击生成备份即可

如果要克隆个虚拟机,在备份的系统上点复制,但是注意默认是完全复制,可以选出连接复制。

我们测试下,克隆3个链接的kali,分别叫kali-clone1、kali-clone2、kali-clone3,都放在z:\my目录下


分别开机,验证下,全部ok可以独立工作

5、快照、克隆功能的用途
根据上面的演示,我们发现利用虚拟机在快照恢复和快速克隆个新的操作系统方面很方便(windows系统镜像也可以使用该功能)。
后续在渗透测试的学习过程中,如果某个虚拟机不小心出现故障,或者需要快速搭建各种系统的靶机的情况下,可以充分利用虚拟机的这些功能。
另外,就是一个新安装的kali,从头开始apt update && apt upgrade ,更新的软件会很多耗时长,所以一般更新好以后创建快照,以后每天可以在里面追加更新,用最新的备份来创建克隆。
五、利用虚拟机快速导入vulnhub的镜像靶场
以小破站“红队笔记”(精讲各类靶场的up主,小破站主页地址:)的《靶机精讲:W1R3S 1.0.1》为例(https://www.bilibili.com/video/BV1mB4y1j7K6),该类靶场全部都是一个虚拟机镜像(VMware或者VirtualBox类型都有)
vulnhub主页可能有些文件国内无法访问,所以导致整个网站乱码无法正常阅读,可以直接至 download.vulnhub.com 的下载页面下载靶机镜像。
根据靶机名W1R3S搜索,在页面找到该文件后,拼接成完整地址进行下载,速度浏览器下载如果比较慢,可以用迅雷等软件进行下载。
拼接下载地址时,红框内(注意不要复制点号)和上面地址拼接成完整下载地址即可。


解压缩完成后文件大致如下,和上面kali 的 pre-build版解压的文件格式差不多,双击下面或者通过VMware open打开这个文件都可以。

启动这个镜像,可以看到是个ubuntu的linux操作系统,以为这是个靶场,所以我们是不知道登录密码的,需要从web层或者其他应用程序,通过渗透的手法打进去。

VMware里靶机用的是桥接,理论上是和NAT模式的C段地址不一样,我这里演示kali用的是VirtualBox,kali有2块网卡,那这样我的kali可以扫到这台靶机,nmap的结果已经扫描出这个ip是VMware的,另外根据mac地址也可以验证出这个ip就是这个靶机了。

六、利用docker快速搭建dvwa本地靶场
如果是按照上面流程走下来的,你的kali应该已经装好了docker,并且以及换好了源,接下来我们用docker搭建个dvwa的靶场。
1、把dvwa的docker镜像拉到本地
sudo docker pull sagikazarmark/dvwa # 把docker images拉到本地
┌──(kali㉿kali)-[~]
└─$ sudo docker pull sagikazarmark/dvwa
Using default tag: latest
latest: Pulling from sagikazarmark/dvwa
693502eb7dfb: Pull complete
e6c91bb380b4: Pull complete
e111b9773d58: Pull complete
55f12e04cfae: Pull complete
8f1b50e10184: Pull complete
Digest: sha256:1224167ccb59ad64751d52d7beb75fd445a252ae3c13640cfd35c927a2a6725b
Status: Downloaded newer image for sagikazarmark/dvwa:latest
docker.io/sagikazarmark/dvwa:latest
2、检查本地镜像(非必须)
sudo docker images
┌──(kali㉿kali)-[~]
└─$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
sagikazarmark/dvwa latest e901498e651a 7 years ago 359MB
3、创建并启动容器
使用下面这条命令创建个名字叫dvwa的容器,把80端口映射到本机的8080端口,-d是后台运行。
sudo docker run -d -it --name dvwa -p 8080:80 sagikazarmark/dvwa
┌──(kali㉿kali)-[~]
└─$ sudo docker run -d -it --name dvwa -p 8080:80 sagikazarmark/dvwa
d95ca9f253c529d3e60bf08180b002f22fd273fe6ecb5dbc0df8bf76cb0e407a
这里请注意,创建好一个容器后,理论上可以一直运行,这条命令运行一次是创建一个容器(重复运行会告诉我们name冲突),我们同一时候dvwa可一般只开启一个相同类型的靶场,所以针对dvwa的这条命令一般只使用1次即可。下图新运行了个dvwa1的容器,端口在8081。

4、虚拟机和物理机分别访问该dvwa靶场
理论上虚拟机内下列地址都可以访问该靶场
localhost:8080 127.0.0.1:8080 10.0.2.15:8080 192.168.56.103:8080

打开kali的浏览器测试下都ok,实际操作中哪个都可以

5、物理机访问靶场
物理机因为C段是192.168.56.0/24 ,所以只能访问 192.168.56.103:8080 这个地址

6、docker靶场无法上线问题
如果靶场地址无法访问,请先docker ps检查容器运行情况,正常情况下 docker ps 只会列出目前运行中的容器,下图status 状态为up。如果sudo docker stop dvwa停止容器,或者容器自己下线了,docker ps 就会无法列出容器,使用 docker ps -a 可以检查不在线的容器,可以看到下图的exited状态。
sudo docker ps
sudo docker ps -a

这种情况下,理论上重新启动容器就可以了,使用docker start dvwa(容器names) 命令
sudo docker start dvwa

而如果这个靶场容器本身出问题了,我们可以选择把这个容器删掉,重新再创建个新的容器。
sudo docker rm dvwa # 删除dvwa这个容器
sudo docker rm dvwa -f # 如果dvwa在运行中,用-f可以强制删除
创建容器重复面第3条即可,如果dvwa的images在,重新创建个新的dvwa靶场容器几秒钟就可完成。
dvwa靶场本身具体演示略,各位小伙伴可自行到网上找其他师傅的帖子深入学习,也可以网上找资料学习如何创建其他的容器靶场。
七、结束
最后,欢迎各位小伙伴来 泷羽sec 的b站学习全栈红队课程。

1006





