From 2717927ac89348d8de1c50be7927ba3e8047503e Mon Sep 17 00:00:00 2001 From: gameloader Date: Fri, 20 May 2022 16:29:31 +0800 Subject: [PATCH] change pic url --- content/posts/ex2.md | 100 ++++++++++++------------ content/posts/ex3.md | 46 +++++------ content/posts/ex4.md | 150 ++++++++++++++++++------------------ content/posts/ex5.md | 178 +++++++++++++++++++++---------------------- content/posts/ex6.md | 130 +++++++++++++++---------------- 5 files changed, 302 insertions(+), 302 deletions(-) diff --git a/content/posts/ex2.md b/content/posts/ex2.md index 7ef4c86..9d8cebe 100644 --- a/content/posts/ex2.md +++ b/content/posts/ex2.md @@ -16,57 +16,57 @@ author = "Logic" 在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服务器地址并保存 -{{< 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服务器 -{{< 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代理管理程序 -{{< 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管理器窗口,保存 -{{< 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程序 -{{< 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状态信息 -{{< 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 -{{< 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信息,发现如下: -{{< 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端有如下配置: -{{< 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可知 -{{< 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 -{{< 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是删除后重新添加了两次) @@ -75,41 +75,41 @@ author = "Logic" 登陆到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代理管理器程序,新建一个代理,生成并添加密钥。 -{{< 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目录下,查看其内容可以看到 -{{< 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文件信息。可发现如下错误: -{{< 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文件,我们创建这个文件,重启客户端。再次在服务端查看客户端状态 -{{< 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,已经成功上线。 @@ -121,85 +121,85 @@ ossec.conf在/var/ossec/etc目录下,查看其内容可以看到 打开火狐,输入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--->Detection--->HIDS--->Config--->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回到图形界面。 -{{< 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 -{{< 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---> 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信息为 -{{< 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报警数据过滤 -{{< 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的远程非法入侵检测} 使用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远程登陆系统的用户. -{{< 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文件配置生效。 -{{< 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 -{{< 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拒绝该用户登陆 -{{< 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规则对应的报警信息 -{{< 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用户情况} 在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 -{{< 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 -{{< 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报警信息。 -{{< 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服务器的访问日志} @@ -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服务 -{{< 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" >}} 在windows2012(IP为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警报数据的过滤,可以看到访问禁止目录时的报警信息。 -{{< 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" >}} diff --git a/content/posts/ex3.md b/content/posts/ex3.md index 97f8ffe..8891af7 100644 --- a/content/posts/ex3.md +++ b/content/posts/ex3.md @@ -16,31 +16,31 @@ author = "Logic" 使用nmap扫描192.168.1.0网段的存活主机,并探测其主机相关信息。能够探测到192.168.1.3,192.168.1.4,192.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服务。 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 -{{< 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->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->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转发功能已经打开。为了让操作机能嗅探到数据包,要打开路由转发功能。等待一段时间后为 -{{< 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 @@ -52,11 +52,11 @@ author = "Logic" 使用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文件 -{{< 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模块是否需要额外的参数 -{{< 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表示爆破成功一个后停止。 -{{< 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。 @@ -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文件,并查看其中的内容 -{{< 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 @@ -97,44 +97,44 @@ author = "Logic" 打开网站,可以看到该网站使用了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就是大致的时间戳。 -{{< 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的部分如下 -{{< 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函数中 -{{< 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 -{{< 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,连接主机 -{{< 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文件的可读权限,并查看该文件的具体内容。 -{{< 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" >}} diff --git a/content/posts/ex4.md b/content/posts/ex4.md index 6d685f2..ad4c3a2 100644 --- a/content/posts/ex4.md +++ b/content/posts/ex4.md @@ -13,9 +13,9 @@ author = "Logic" 双击桌面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 ``` -{{< 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内核模块并检查 -{{< 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数据包。两个路由器之间的任何路由器都不会打开封装的数据包;它们仅引用封装数据包外层的标头进行转发。 > ip_gre内核模块是gre通过IPv4隧道的驱动程序 @@ -40,287 +40,287 @@ vpn1和vpn2主机分别加载gre内核模块并检查 vpn1创建一个GRE类型隧道设备gre1, 并设置对端IP为192.168.2.11。 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,检测是否添加并启动 -{{< 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主机进行相应的配置 -{{< 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模块 -{{< 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命令基本帮助 -{{< 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协议,并提供了丰富的应用程序供测试或其它目的使用。 产生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对应的用法 -{{< 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。 -{{< 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加密的文件和未使用其加密的文件进行转换 -{{< 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签名请求文件(生成过程中输错了一次密码故产生了错误) -{{< 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并验证 -{{< 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的配置文件目录下 -{{< 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因为无法连通外网。 -{{< 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的权限,增强其安全性。 -{{< 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注释掉以关闭显式退出提示 -{{< 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 -{{< 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文件夹下 -{{< 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,并重新生成 -{{< 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。 -{{< 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握手,不易被干扰。 -{{< 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的配置文件目录下 -{{< 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的客户端证书 -{{< 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服务并设置为开机自启动,随后查看服务的状态并检查服务对应的端口是否处于监听状态 -{{< 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 -{{< 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拷贝到客户端 -{{< 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等级等,这一部分与服务端配置上大体保持一致。 -{{< 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客户端并挂后台运行,并可实时查看其日志。 -{{< 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通道的建立情况 -{{< 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处于同一网段下,故可以连通。 -{{< 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进行配置,使用的工具是iptables,iptables是一款管理员工具,用于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机器上访问百度进行测试 -{{< 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机器上查看对应规则下的数据包 -{{< 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服务 -{{< 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重定向并使之生效。 -{{< 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上安装openswan,libreswan并验证安装 -{{< 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监听的端口 -{{< 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文件,在末尾添加如下 -{{< 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 -{{< 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,搭建完成后如下 -{{< 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测试,可以成功 -{{< 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用法 -{{< 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查看其用法,如下 -{{< 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生成一个新的认证密钥,为 -{{< 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 查看本机的认证密钥,使用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配置文件中我们将密钥输出到文件中 -{{< 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上进行同样操作,最终如下 -{{< 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则连接成功 -{{< 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测试,可以成功 -{{< 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并启动服务 -{{< 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 -{{< 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 -{{< 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。 -{{< 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上进行同样的设置 -{{< 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 -{{< 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通说明连接成功 diff --git a/content/posts/ex5.md b/content/posts/ex5.md index 1938977..0b247f2 100644 --- a/content/posts/ex5.md +++ b/content/posts/ex5.md @@ -16,35 +16,35 @@ author = "Logic" 查看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` -{{< 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 方法。因为未指定任何其他选项,故为放行所有输入的数据包。 -{{< 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,即丢弃转发包。 -{{< 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 -{{< 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选项增加自定义链 -{{< 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 -{{< 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协议的数据包通过。 -{{< 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主机的数据包通过。 -{{< 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的数据包通过。 -{{< 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网卡进入的数据包通过。 -{{< 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网卡离开的数据包通过。 -{{< 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" >}} 这里要注意该匹配操作只能用于OUTPUT,FORWARD和POSTROUTING这三个链,因为INPUT和PREROUTING是没有离开网络的包的。 --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连接的数据包。 -{{< 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的数据包通过 -{{< 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的数据包 -{{< 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的数据包。 -{{< 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之间的数据包通过。 -{{< 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连接,超过的连接数据包拒绝。 -{{< 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(一个客户端) -{{< 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算法的数据包。 -{{< 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日志记录} @@ -124,19 +124,19 @@ echo "kernel.warning /var/log/iptables.log" >> /etc/rsyslog.conf 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` -{{< 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日志且给出相应前缀为 @@ -165,7 +165,7 @@ iptables -A INPUT -p tcp --dport 22 -j LOG --log-prefix "iptables SSH " 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不会向客户端返回任何信息,可以避免在遭到攻击时让攻击者确定服务的存在。放行状态为已连接的数据包 @@ -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 ``` -{{< 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个数据包。 @@ -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 @@ -209,38 +209,38 @@ systemctl status openvswitch 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使用} 查看使用帮助 -{{< 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。查看网络设备信息 -{{< 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的信息 -{{< 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可以查看更详细的信息 -{{< 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用于查看某一虚拟网卡的统计信息 -{{< 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等同 -{{< 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 -{{< 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。 -{{< 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并启用 -{{< 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 -{{< 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 -{{< 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安装的命令行工具 -{{< 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中的所有网桥 -{{< 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,查看网桥信息 -{{< 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中所有端口,这里将新建网卡和添加网卡到网桥合并为一条命令。 -{{< 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 -{{< 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的属性 -{{< 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 -{{< 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 ``` -{{< 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。 @@ -345,13 +345,13 @@ ip netns exec ns-tap1 ip addr 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 @@ -376,17 +376,17 @@ ip netns exec ns-tap2 ip route show 最终查看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此时的信息 -{{< 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 -{{< 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互通 @@ -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中的防火墙匹配到的数据包 -{{< 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地址,将链路层信息显示出来,并指定监听的接口。 @@ -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经过继续配置SNAT,SNAT为源地址转换,能改变数据包的源地址。 @@ -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匹配情况 -{{< 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" >}} 可见成功匹配到数据包配置DNAT,DNAT为目的地址转换,改变数据包的目的地址。 @@ -468,7 +468,7 @@ ip netns exec router iptables -t nat -I PREROUTING -i r1 -p tcp --dport 80 -j DN 进行连接测试并查看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的匹配情况 -{{< 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 @@ -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匹配情况 -{{< 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即可,配置完成后查看匹配情况 -{{< 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服务 @@ -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服务并查看匹配情况 -{{< 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服务 @@ -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 @@ -564,19 +564,19 @@ ip netns exec ns-tap1 ip addr add dev tap1 10.0.0.2/24 配置完成后查看网桥信息和内网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信息 -{{< 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中测试测试二层同网段通信 -{{< 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内核模块并查看加载情况 -{{< 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数据包 @@ -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链所有流量导入自定义链 @@ -601,7 +601,7 @@ iptables -A FORWARD -j openvswitch-forward 导入后查看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 # 添加in方向链表 @@ -615,7 +615,7 @@ iptables -A openvswitch-forward -m physdev --physdev-in tap11 --physdev-is-bridg 导入后查看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添加规则 @@ -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 ``` -{{< 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添加规则 @@ -642,7 +642,7 @@ iptables -A openvswitch-o-tap1 -j openvswitch-s-tap1 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添加安全规则 @@ -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的情况 -{{< 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 ``` -{{< 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的连通性 -{{< 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规则生效的地址集。 -{{< 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地址 @@ -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 ``` -{{< 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匹配到了应该丢弃的数据包 @@ -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 ``` -{{< 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传递过来的数据包才能通过防火墙。 diff --git a/content/posts/ex6.md b/content/posts/ex6.md index e53de5f..b155177 100644 --- a/content/posts/ex6.md +++ b/content/posts/ex6.md @@ -13,55 +13,55 @@ author = "Logic" 查看操作机的内网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: -{{< 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对目标网站的后台地址进行扫描,扫描结果为 -{{< 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,密码随意 -{{< 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个密码的文本文件作为字典,开始爆破 -{{< 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,尝试使用改密码登陆后台 -{{< 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} -{{< 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注入,使用最为经典的单引号判断法,在参数后加',结果为 -{{< 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语句后面的句子),页面报错,显示有语法错误 -{{< 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#` ,页面显示正常 -{{< 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#` ,页面返回正常 -{{< 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注入 -{{< 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列 -{{< 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也被过滤,同样尝试使用大写来绕过 -{{< 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#` 结果为 -{{< 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,3位置将1,3替换为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')` ,查看结果 -{{< 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,可以找到根目录对应的内容 -{{< 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` 我们通过INTO OUTFILE来向文件中写入一句话木马,构造参数为 `id=1 UNION SELECT 1,'',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编码。如下 -{{< 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进制字符串,转换结果为 -{{< 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进制串传入参数,发送请求 -{{< 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文件,查看其内容为 -{{< 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}` @@ -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的登陆页面,查看该网址,得到 -{{< 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,我们使用默认用户名和密码尝试登陆 -{{< 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配置文件的内容 -{{< 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内容 -{{< 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文件,因为没有过滤,故可以直接将一句话木马写入,如下 -{{< 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表,如下 -{{< 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}` @@ -194,46 +194,46 @@ flag为 `flag3{fd5d4d5a199e9e8bfadead5f5e52895a}` 使用菜刀上传内网扫描脚本到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文件下载下来并查看 -{{< 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的用法 -{{< 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文件 -{{< 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文件,我们将这个文件上传到服务端,访问该文件,得到 -![](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文件 -![](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。 -![](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脚本自身 -![](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中找到这个表,查看其中的内容 -![](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,我们尝试使用这个密码登录,登陆成功 -![](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}` -![](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)是指在计算机网络域内响应安全身份认证请求的网络服务器,负责允许发出请求的主机访问域内资源,以及对用户进行身份验证,存储用户账户信息,并执行域的安全策略。 可见在域控主机上存储着域内所有主机的用户账户信息,在验证用户身份的过程中要使用用户的账户名和密码,而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文件拷贝到远程主机的硬盘中即可。 -![](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, 提升权限 -![](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` -![](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 -![](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}` -![](https://testingcf.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421qsk77l.png) +![](https://gcore.jsdelivr.net/gh/game-loader/picbase@master/uPic/0421qsk77l.png)