一、 说明:
1.所有截图要求截图界面、 字体清晰;
2.文件名命名及保存: 网络安全模块 D- XX(XX为工位号), PDF 格式保存;
3.文件保存到 U盘提交。
4.linux 系统 root 密码 123456;
请对服务器进行相应的设置, 提高服务器的安全性。 将加固过程截图, 并
自行制作系统防御实施报告。 报告需要包含以下三个部分:
1.漏洞发现的过程(漏洞验证);
2.漏洞加固的思路;
3.加固成功后再次验证。
Windows 部分
一、 服务器 administrator 用户弱口令
(1)漏洞发现过程
模拟攻击者思维对服务器进行黑盒测试,通过扫描发现服务器开放了
远程桌面。

使用 Hydra 尝试对服务器 administrator 用户进行暴力破解, 成功爆破
出密码,密码为弱口令, 证实了服务器 administrator 用户存在弱口令。

(2)漏洞加固过程
将服务器 administrator 用户的密码修改为强密码,防止攻击者利用弱
口令远程登录服务器。

(3)漏洞加固验证过程
再次对服务器 administrator 用户的密码进行暴力破解,已无法爆破出
密码,加固成功。

二、 RDP 远程代码执行漏洞(MS12-020)
(1)漏洞发现过程
通过模拟攻击者思维对服务器进行黑盒测试,通过扫描发现服务器开
放了远程桌面,且操作系统为 Windows Server 2008 R2, 为 MS12-020
漏洞影响范围,初步判断存在此漏洞。

使用 msf 渗透测试平台载入 MS12-020 检测模块对服务器进行检测,
证实服务器存在此漏洞

(2)漏洞加固过程
禁用远程桌面,防止攻击者利用此漏洞攻击服务器导致服务器蓝屏宕
机。

(3)漏洞加固验证过程
再次使用 msf 渗透测试平台对服务器进行检测,漏洞已无法被利用,
加固成功。

三、 永恒之蓝漏洞(MS17-010)
(1)漏洞发现过程
通过模拟攻击者思维对服务器进行黑盒测试,通过扫描发现服务器开
放了 SMB 协议端口(445),且服务器操作系统为 Windows Server 2008
R2, 为 MS17-010 漏洞影响范围,初步判断服务器存在此漏洞。

使用 msf 渗透测试平台载入 MS17-010 攻击模块对服务器进行检测,
证实了服务器存在此漏洞。

(2)漏洞加固过程
关闭 Server 服务,以防止攻击者利用此漏洞以夺取服务器权限。

(3)漏洞加固验证过程
再次使用 msf 渗透测试平台对载入 MS17-010 攻击模块对服务器进行
检测, 漏洞已无法被利用,加固成功。

四、 HTTP.SYS 远程代码执行漏洞(MS15-034)
(1)漏洞发现过程
通过模拟攻击者思维对服务器进行黑盒测试,通过扫描发现服务器开
放了 HTTP 端口(80), 版本为 IIS7.5,且服务器版本为 Windows Server
2008 R2,为 MS15-034 漏洞影响范围内,初步判断存在该漏洞。

使用msf渗透测试平台对载入MS15-034攻击模块对服务器进行检测,
证实了服务器存在此漏洞。

(2)漏洞加固过程
在服务器 IIS 管理器中取消“启用内核缓存” 选项的勾选, 以禁用 IIS
内核缓存, 防止攻击者利用此漏洞对服务器进行攻击导致服务器蓝
屏宕机。

(3)漏洞加固验证过程
再次使用 msf 渗透测试平台载入 MS15-034 攻击模块对服务器进行检
测, 漏洞已无法被利用, 加固成功。

五、 服务器后门用户
(1)漏洞发现过程
通过查看所有用户,发现后门用户“hacker” , 证实了服务器存在后
门用户。

(2)漏洞加固过程
将后门用户删除, 防止攻击者通过后门用户登录服务器。

(3)漏洞加固验证过程
再次查看所有用户, 发现后门用户已经被删除, 加固成功。

Linux 部分
一、 服务器 root 用户弱口令
(1)漏洞发现过程
模拟攻击者思维对服务器进行黑盒测试,通过扫描发现服务器开放了
SSH 端口。
使用 Hydra 尝试对服务器 root 用户的密码进行暴力破解, 成功爆破出
密码, 密码为弱口令, 证实服务器 root 用户的密码存在弱口令。


(2)漏洞加固过程
将服务器 root 用户的密码修改为强密码。

(3)漏洞加固验证过程
再次对服务器 root 用户的密码进行暴力破解, 已经无法爆破出密码,
加固成功。

二、 MySQL 数据库 root 用户弱口令
(1)漏洞发现过程
通过模拟攻击者思维对服务器进行黑盒测试,通过扫描发现服务器开
放了 MySQL 服务端口(3306)。

使用 Hydra 尝试对 MySQL 数据库 root 用户的密码进行暴力破解。
成功爆破出密码,密码为弱口令, 证实了服务器 MySQL 数据库 root 用
户存在弱口令。

(2)漏洞加固过程
将 root 用户的密码修改为强密码。

(3)漏洞加固验证过程
再次对 MySQL 数据库 root 用户的密码尝试暴力破解, 已经无法爆破
出密码, 加固成功。

三、 MySQL 数据库 root 用户任意地点登录
(1)漏洞发现过程
通过 MySQL 客户端尝试进行远程登录,发现可以成功远程登录, 证实
了服务器 MySQL 数据库 root 用户存在任意地点登录。

(2)漏洞加固过程
禁止 root 用户任意地点登录,仅允许本地登录。

(3)漏洞加固验证过程
再次尝试远程登录, 发现已经不允许登录, 加固成功。

四、 服务器 root 用户任意地点登录
(1)漏洞发现过程
通过 ssh 客户端尝试远程登录服务器,发现可以登录成功,证实了服务
器 root 用户存在任意地点登录。

(2)漏洞加固过程
修改 SSHD 配置文件,禁止 root 用户通过远程登录。

(3)漏洞加固验证过程
再次尝试远程登陆,发现已经不能登录成功, 加固成功。

五、 后门程序
(1)漏洞发现过程
通过模拟攻击者思维对服务器进行黑盒测试,通过扫描发现了非正常
服务的高位端口 60007, 疑似后门端口,初步判断服务器存在后门程序
尝试连接后门端口执行命令, 发现可以成功连接并执行命令, 证实服
务器存在后门程序。


(2)漏洞加固过程
结束后门进程

删除后门程序

移除后门程序开机启动配置

(3)漏洞加固验证过程
再次尝试连接后门端口, 发现已经无法连接, 加固成功。

六、 服务器后门用户
(1)漏洞发现过程
通过查看用户配置文件(/etc/passwd), 发现存在两个后门用户, 证实
了服务器存在后门用户。

(2)漏洞加固过程
将后门用户删除, 防止攻击者通过后门用户登录服务器。

(3)漏洞加固验证过程
再次查看用户配置文件, 后门用户已不存在, 加固成功。

七、 Samba 远程代码执行漏洞(CVE-2017-7494)
(1)漏洞发现过程
模拟攻击者思维对服务器进行黑盒测试,通过扫描发现服务器开放
445 端口, 服务版本为 Samba 3.5.11, 受漏洞 CVE-2017-7494 的影响,
初步判断存在此漏洞。

使用 msf 渗透测试平台载入 CVE-2017-7494 攻击模块进行检测, 证
实服务器存在此漏洞。

(2)漏洞加固过程
修改/etc/smb.conf 配置文件,在 global 节点内新增配置项“ nt pipe
support = no” ,以缓解漏洞带来的影响。

(3)漏洞加固验证过程
再次使用 msf 渗透测试平台载入 CVE-2017-7494 攻击模块进行检测,
漏洞已无法被利用, 加固成功。

八、 笑脸漏洞(vsFTPd 2.3.4 Backdoor)
(1)漏洞发现过程
通过模拟攻击者思维对服务器进行黑盒测试,通过扫描发现了服务器
开放了 ftp 端口,且版本为 vsFTPd 2.3.4 受笑脸漏洞(vsFTPd 2.3.4
Backdoor)的影响, 初步判断服务器存在此漏洞。

手动对漏洞进行验证, 尝试激活后门端口。

尝试对后门端口进行连接

可以成功的执行命令, 证实了服务器存在此漏洞。
(2)漏洞加固过程
通过 iptables 防火墙禁止外部连接至后门端口(6200)。

(3)漏洞加固验证过程
再次尝试激活后门端口。

尝试连接到后门

此时后门已无法连接, 通过扫描可以发现后门端口(6200)已经被防火
墙过滤, 漏洞无法利用, 加固成功。
九、 FTP 匿名登录
(1)漏洞发现过程
通过模拟攻击者思维对服务器进行黑盒测试,通过扫描发现 ftp 服务允
许匿名登录。

使用 ftp 客户端连接至服务器可以成功匿名登录 ftp 服务, 证实了服务
器存在 ftp 匿名登录

(2)漏洞加固过程
修改 vsftpd 配置文件, 禁止 ftp 匿名登录。

(3)漏洞加固验证过程
再次使用 ftp 客户端连接至服务器进行匿名登录, 发现已经无法匿名
登录到服务器

假设我做了一个模块如下:m=Module.newdoclassCendend三个问题:除了对m的引用之外,还有什么方法可以访问C和m中的其他内容?我可以在创建匿名模块后为其命名吗(就像我输入“module...”一样)?如何在使用完匿名模块后将其删除,使其定义的常量不再存在? 最佳答案 三个答案:是的,使用ObjectSpace.此代码使c引用你的类(class)C不引用m:c=nilObjectSpace.each_object{|obj|c=objif(Class===objandobj.name=~/::C$/)}当然这取决于
作为我的Rails应用程序的一部分,我编写了一个小导入程序,它从我们的LDAP系统中吸取数据并将其塞入一个用户表中。不幸的是,与LDAP相关的代码在遍历我们的32K用户时泄漏了大量内存,我一直无法弄清楚如何解决这个问题。这个问题似乎在某种程度上与LDAP库有关,因为当我删除对LDAP内容的调用时,内存使用情况会很好地稳定下来。此外,不断增加的对象是Net::BER::BerIdentifiedString和Net::BER::BerIdentifiedArray,它们都是LDAP库的一部分。当我运行导入时,内存使用量最终达到超过1GB的峰值。如果问题存在,我需要找到一些方法来更正我的代
我有一个包含模块的模型。我想在模块中覆盖模型的访问器方法。例如:classBlah这显然行不通。有什么想法可以实现吗? 最佳答案 您的代码看起来是正确的。我们正在毫无困难地使用这个确切的模式。如果我没记错的话,Rails使用#method_missing作为属性setter,因此您的模块将优先,阻止ActiveRecord的setter。如果您正在使用ActiveSupport::Concern(参见thisblogpost),那么您的实例方法需要进入一个特殊的模块:classBlah
我正在编写一个小脚本来定位aws存储桶中的特定文件,并创建一个临时验证的url以发送给同事。(理想情况下,这将创建类似于在控制台上右键单击存储桶中的文件并复制链接地址的结果)。我研究过回形针,它似乎不符合这个标准,但我可能只是不知道它的全部功能。我尝试了以下方法:defauthenticated_url(file_name,bucket)AWS::S3::S3Object.url_for(file_name,bucket,:secure=>true,:expires=>20*60)end产生这种类型的结果:...-1.amazonaws.com/file_path/file.zip.A
我刚刚被困在这个问题上一段时间了。以这个基地为例:moduleTopclassTestendmoduleFooendend稍后,我可以通过这样做在Foo中定义扩展Test的类:moduleTopmoduleFooclassSomeTest但是,如果我尝试通过使用::指定模块来最小化缩进:moduleTop::FooclassFailure这失败了:NameError:uninitializedconstantTop::Foo::Test这是一个错误,还是仅仅是Ruby解析变量名的方式的逻辑结果? 最佳答案 Isthisabug,or
我想获取模块中定义的所有常量的值:moduleLettersA='apple'.freezeB='boy'.freezeendconstants给了我常量的名字:Letters.constants(false)#=>[:A,:B]如何获取它们的值的数组,即["apple","boy"]? 最佳答案 为了做到这一点,请使用mapLetters.constants(false).map&Letters.method(:const_get)这将返回["a","b"]第二种方式:Letters.constants(false).map{|c
我的假设是moduleAmoduleBendend和moduleA::Bend是一样的。我能够从thisblog找到解决方案,thisSOthread和andthisSOthread.为什么以及什么时候应该更喜欢紧凑语法A::B而不是另一个,因为它显然有一个缺点?我有一种直觉,它可能与性能有关,因为在更多命名空间中查找常量需要更多计算。但是我无法通过对普通类进行基准测试来验证这一点。 最佳答案 这两种写作方法经常被混淆。首先要说的是,据我所知,没有可衡量的性能差异。(在下面的书面示例中不断查找)最明显的区别,可能也是最著名的,是你的
我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b
我一直致力于让我们的Rails2.3.8应用程序在JRuby下正确运行。一切正常,直到我启用config.threadsafe!以实现JRuby提供的并发性。这导致lib/中的模块和类不再自动加载。使用config.threadsafe!启用:$rubyscript/runner-eproduction'pSim::Sim200Provisioner'/Users/amchale/.rvm/gems/jruby-1.5.1@web-services/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:105:in`co
在Ruby中是否有Gem或安全删除文件的方法?我想避免系统上可能不存在的外部程序。“安全删除”指的是覆盖文件内容。 最佳答案 如果您使用的是*nix,一个很好的方法是使用exec/open3/open4调用shred:`shred-fxuz#{filename}`http://www.gnu.org/s/coreutils/manual/html_node/shred-invocation.html检查这个类似的帖子:Writingafileshredderinpythonorruby?