Windows隐藏账户处置
实验目的
理解windows隐藏账户建立原理,掌握windows隐藏账户处置过程
实验环境
一台windows server 2012 r2
实验原理
通过注册表实现隐藏账户的建立,可以通过手工来建立隐藏账户
实验步骤
一、使用命令行创建用户
1、打开命令行
2、新建test$用户
1 |
|
二、观察test$用户
1、使用系统计算机管理工具
发现可以看到test$用户
2、使用命令行查看用户
在命令行输入
1 |
|
无法看到test$用户
三、导出test$和administrator用户注册表信息
1、打开注册表
命令行中输入
1 |
|
2、获取SAM项权限
刷新权限
3、导出test$用户信息
导出下面键为test.reg
这里0X3EA为随机值,每台主机都会不一样
1 |
|
4、导出test$的UID值
5、导出administrator的UID项
在windows下,administrator的UID固定为1F4
四、修改导出的注册表信息
1、将admin_id中的F值,复制到uid中的F值
编辑admin_id
复制F的值
编辑uid
粘贴F值
保存文件
五、删除test$用户,导入注册表
1、删除test$用户
使用下面命令
1 |
|
2、导入桌面上的 test 和 uid注册表文件
导入test
导入uid
六、查看隐藏账户
1、使用计算机管理,查看用户,并未发现test$
2、修改组策略,允许自定义用户登录
在命令提示符中输入
1 |
|
定位到安全选项,不显示最后的用户名
启用,确定
注销administrator用户
使用test$用户登录
输入用户名 test$
输入密码sxf!7890
登录成功
使用任务管理器,查看当前用户
实验总结
通过手动建立隐藏账户,了解windows隐藏账户工作原理。通过原理,反向可以处理隐藏账户。也可以使用一些工具处理隐藏账户。
沙箱分析浏览器病毒
实验目的
掌握windows下文件监控工作的应用
实验环境
一台windows server 2012 r2 ,浏览器被首页劫持。无法更改。病毒位和检测工具都位于环境之中。
实验原理
通过本地工具和云沙箱,监测样本运行,发现样本操作,进行针对性处理。
实验步骤
一、使用微软的process monitor监测病毒运行
本病毒是一个借助激活工具,二次打包后劫持浏览器的病毒。
病毒名为”mlxg.exe”,位于桌面mlxg文件夹中
打开微软的process monitor
双击打开,按图配置监控规则。
监控规则的含义是,监控进程名为mlxg.exe
点击OK
此时,我们还没有运行病毒,所以屏幕没有任何显示
二、运行病毒程序
双击mlxg.exe
运行
三、查看precess monitor
可以看到mlxg进程对系统的操作,
先停止捕获信息,(如果捕获太多,会让软件有些卡顿)
点一下放大镜,停止捕获
重点关注新建注册表和新建文件,可以重点发现一些操作和目录
如
创建一个DLL文件
写临时文件
写驱动文件
写EXE文件
过滤注册表操作
写注册表操作,尝试建立一个GRE隧道
四、使用云沙箱分析样本
打开桌面chrome浏览器,输入域名s.threatbook.cn
上传我们的病毒样本
因为我们是64位系统,所以选win7 64,查看报告,
等待,系统分析完成,可以查看处置建议
等等一系列处理
再可以使用桌面的pchunter或其它类似工具,进行应急响应处置
总结
使用分析工具,分析样本行为,然后针对性处理,是应急响应中的常用方法。
使用此方法的前提是知晓病毒来源与样本文件。怎么样找到此类文件,我们需要更多的经验和日志分析技巧。
勒索病毒处置
实验目的
掌握针对勒索病毒的判断、识别、处置方法
实验环境
一台Windows server 2012r2 已经中了勒索病毒
实验原理
识别勒索病毒,有些勒索病毒因为程序编写漏洞或开发者放弃,可以找到解密密钥。进行解密
实验步骤
一、观察勒索病毒
登录系统,发现桌面背景提示
初步可以判断,系统已经中了勒索病毒
尝试用记事本,打开桌面的文本文档
双击记事本
发现文件被加密,是乱码
确定中了勒索病毒
二、查看桌面提示关键字
通过桌面背景发现加密关键字
ENCRYPTED BY GANDCRAB 5.0.3
三、了解GRANCRAB勒索病毒
通常各大安全厂商有勒索病毒专区,如国际厂商kaspersky、bitdefender、avast、symantec,国内厂商Sangfor、360等
如Avast的
https://www.avast.com/zh-cn/ransomware-decryption-tools
如深信服的
http://edr.sangfor.com.cn/#/information/ransom_search
这里我们使用深信服的页面 搜索该病毒名
查看报告,该报告为5.2版本的病毒原理介绍
同学可以自行查看
四、尝试使用工具解密病毒
尝试去寻找不同的厂商的解密工具
在bitdefender寻找解密工具
在avast页面找到gandcrab的标签
下载软件
这里有很多不同版本的解密工具,为避免下载问题,实验环境中已经内置好解密工具。学员也可以自行尝试下载不同工具,尝试解密。
打开文件夹C:\USERS\download2\
双击运行软件BDGandCrabDecryptTool
同意许可
确定提示
选择要解密的文件夹,这里以桌面为例
开始解密
解密完成
再次查看桌面的记事本,已经解密成功。
接下就是备份解密后的文件,重装系统,安装补丁等操作
总结
勒索病毒并不是都像实验环境中这么容易解密。目前能解密的勒索病毒只是少数,我们更多的是需要加强对勒索病毒的防御。如使用EDR软件进行保护,或加强系统补丁安装。
主流勒索病毒传播都是通过RCE漏洞或弱口令进行自动化攻击,针对这两点做好防御,加强主动防御。可防范勒索病毒。
挖矿病毒处置
实验目的
了解挖矿病毒的现象,学会处置挖矿病毒
实验环境
一台Windows server 2012R2 已经中了控矿病毒
实验原理
通过任务管理器、进程、启动项等对挖矿病毒进行处置
实验步骤
一、登录系统,查看任务管理器
发现CPU占用满了,按CPU对进程排序
结束CPU占用高的进程
可以观察到 结束后,进程会重新自启动。确定有父进程。
转到进程详细信息
看到进程名为xmrig.exe
二、找到父进程
直接使用wmic工具
打开命令行
输入下面命令
1 |
|
找到父进程ID为1048
三、查找父进程启动方式
将任务管理器按PID排序,找到1048的进程
发现进程用户名为SYSTEM,通常SYSTEM用户是使用系统服务启动。查找系统服务
停用服务
停用服务后,发现xmrig.exe进程也停止。CPU利用率也降下来
四、处理文件和服务
此病毒仅使用服务加载,并没有hook系统函数,所以对文件和服务的处理相对较为容易
1、查看服务和文件
打开服务
双击服务名
记住服务名称和 可执行文件路径
2、删除文件
找到路径,删除文件夹 C:\USERS\Administrator\c3pool
删除后如图
3、删除服务
使用命令行删除服务
1 |
|
五、重启验证
重启后打开任务管理器,CPU占用已经下去,病毒已被清除。
总结
通过实验 结合wmic与任务管理器,处理了一个很普通的“矿机”病毒
通常挖矿病毒会占用大量CPU,所以会很直接的暴露自己,并不太需要使用驱动级或HOOK等隐藏方式。
挖矿病毒因为利益原因,通常也是自动传播,传播方式与勒索病毒相似,但病毒表现完全不同。具体传播原因多为RCE漏洞与弱口令。做好基础防护工作,可轻松应对。
浏览器劫持事件处置
实验目的
掌握windows下驱动级病毒处理过程
实验环境
一台windows server 2012 r2 ,浏览器被首页劫持。无法更改。
实验原理
通过驱动级工具,发现驱动级病毒。清除病毒,恢复系统。
实验步骤
一、观察劫持现象
1、打开桌面上的chrome浏览器
发现浏览器首页域名为hp1.dhwz444.top
然后快速的会跳转到 hao123.com
2、打开IE浏览器
点击开始
点击IE浏览器
发现首页同样被劫持
二、尝试手动恢复浏览器首页
打开IE设置
选择Internet选项
使用新选项卡
关闭IE浏览器
再次打开IE浏览器,首页依然被劫持。
三、检查系统驱动
1、使用微软套件autoruns工具
打开桌面tools文件夹,打开autoruns64.exe
同意申明
autoruns打开后会列出系统所有的开机加载项。 重点关注红色项、黄色项,或签名有问题的项
如图,红框,标注的部分,显示为(Not verifiedt)Microsoft Corporation,说明这两个声称是微软的文件,但并没有获取微软的签名。
尝试删除这两个文件。
删除后刷新页面,发现这两个链接仍然存在。
再次删除,提示标记为已删除
四、重启计算机,看能否删除上面两个驱动级服务。
再次打开autoruns ,观察发现仍然存在这两个服务。可以推定这两个服务一定是“非正常的”
五、尝试删除文件
右键,选择jump to image,打开文件路径
发现无法直接看到文件
打开windows的隐藏文件与系统文件显示
查看 选项
如图设置
文件夹仍然为空。
此时可以断定此驱动服务为恶意程序。 且hook了系统的api,隐藏自身。
六、使用驱动级工具PC HUNTER进行对抗
打开桌面PCHunter工具
查看驱动模块
可以发现PCHunter 检查驱动模块时,并没有校验签名,只是查看了文件信息。
记住这两个文件的路径,C:\USER\Administartor\AppData\Local\Microsoft\WindowsApps\
浏览文件,定位到这个路径
删除文件
观察发现无效 ,选中文件后,右键 “删除后阻止文件再生”
强制删除
强制删除目录
再次重启系统。
打开IE浏览器或chrome浏览器,首页已经恢复正常
到此,我们解决了病毒的释放驱动,及其启动文件的删除。
接下来,进行注册表信息的清理,因为已删除相关文件,病毒对注册的表保护也没有了,直接删掉即
打开autoruns,删除相关注册表信息即可。
实验总结
本实验,我们通过windows提供的atuoruns 发现驱动级病毒, 通过pchunter进行驱动级查找删除。
当然本实验只是对病毒进行了初步的处理工作,没有深入分析病毒来源与病毒是否清楚干净。
每个工具都有自己不同的特点,但想充分使用这些工具,还需要更多的了解操作系统基础知识。
基线管理之Windows安全配置
实验目的
理解windows安全配置选项,掌握Windows组策略配置,理解Windows安全配置检查工具的应用。
实验拓扑
略
实验环境
一台windows server 2012 R2
实验原理
windows通过组策略展示了详细的操作系统配置,通过配置组策略,将设置保存于windoows注册表,以便操作系统加载各项配置。
实验步骤
一、登录服务器,打开组策略
开始–运行
输入gpedit.msc,点确定
二、账户策略配置
1、密码策略
依次如图展开,密码策略,如图进行配置
2、账户锁定策略
配置账户锁定阈值
三、配置安全选项
1、账户配置
如图
重命名管理员账号为test1234(配置完后,可以尝试注销,看看administrator是否能登录)
禁止使用Microsoft账户登录
2、交互式登录配置
如图,配置
3、用户账户控制
如图,配置以下四项
四、高级安全审核配置
1、账户登录
2、账户管理
3、详细跟踪
4、登录/注销
5、对象访问
6、特权使用
实验总结
本实验讲了windows常用安全配置,但不够全面,仅仅列举了一部分配置。
学员可以先理解这些配置的具体作用,以及尝试验证配置生效。再来举一返三的理解其它配置。
除了手动配置外,windows提供了一些基线管理工具,可以便于我们更加方便的维护windows基线。有兴趣的学员可以自己研究。参考网址如下
基线管理之Centos安全配置
实验目的
通过配置Centos配置文件,加强Centos默认安全配置。同时也是理解linux一切皆文件的思想。尝试用shell脚本来处置Centos的安全配置。
实验环境
一台Centos 7.2 无需其他环境。
实验原理
Linux操作系统的配置基本上以配置文件展示,通过不同配置文件理解不同的配置。
实验步骤
一、网络配置
1、检查不用的连接
使用以下命令
1 |
|
如下图,发现有两个连接一个为lo,一个为eth0,如果有需要关闭的接口,可以使用ip link set down
2、关闭IP转发
先查看ip转发配置
1 |
|
查看发现为0,如果是1,可以使用下面命令改为0
1 |
|
3、关闭数据包重定向
查看数据包重定向设置
1 |
|
查看发现为1,可以使用下面命令改为0
1 |
|
4、开启SYN cookies
查看syn cookies配置
1 |
|
发现为1,已经开启。如果为0,则使用下面命令改为1
1 |
|
二、查看审计服务
1、查看服务是否开启
1 |
|
如上图显示服务已经开启,如未开启可以使用下面命令开启
1 |
|
2、查看审计日志大小
1 |
|
如图显示最大日志为6M,可以自己修改文件,然后重启auditd服务后生效。
三、查看并配置日志审计
1、查看日志文件权限,日志权限应为600,仅root可读写
使用下面命令
1 |
|
非600的文件,如wpa_supplicant.log 可以使用下面命令改为600
1 |
|
再次查看
2、查看日志归档处理
确保存在/etc/logrotate.d/syslog文件
使用以下命令
1 |
|
四、查看SSH认证配置
1、检查SSH配置文件权限
1 |
|
如图显示权限为644,建议改为600,使用以下命令
1 |
|
2、配置允许SSH允许的验证失败次数
查看当前配置
1 |
|
如上图显示,默认为6次登录失败后断开连接。
可以修改/etc/ssh/sshd_config文件的MaxAuthTires值进行修改。
3、禁止空密码登录SSH
1 |
|
4、查看SSH支持密码算法,确保没有md5 des等已经不安全的算法
1 |
|
五、认证模块配置
Linux的认证模块由PAM处理,PAM中可以配置认证的账号、密码强度等操作。
1、密码强度配置
1 |
|
如下图
可以自己修改配置,去掉行首#号
如将密码最小设为10位,设置minlen = 10
将密码复杂度为4种类型(包含大写字母、小写字母、数字、符号),设置minclass =4
如图设置,设置后保存退出。
2、密码过期时间设置
查看过期时间
1 |
|
默认过期时间为9999天,修改相应文件即可修改过期时间
3、查看用户密码过期时间
(学员们还记得Linux操作系统里面的正则表达式吗?)
1 |
|
修改root用户过期时间
1 |
|
4、自动禁用账号
1 |
|
如图显示-1表示不会自动禁用账号
使用下面设置30天未使用的账号自动禁用
1 |
|
实验总结
通过本实验,理解Centos的基本安全加固配置
同学们也可以去网上找一些centos安全加固脚本,进行配置,尝试理解脚本原理
基线管理之apache安全配置
实验目的
理解apache安全配置项的作用,掌握安全配置项的配置方法
实验拓扑
实验环境
一台Centos 7.2服务器,已安装apache httpd ,并开机自启动。
实验原理
通过编辑apache配置文件实现apache的安全配置,apache默认配置文件路径是/etc/httpd/conf/httpd.conf
实验步骤
一、确保apache无法访问根目录
查看apache配置文件,确定里面对根目录是拒绝所有请求
1 |
|
按箭头,下翻可以找到以下配置
其中,第一行和第四行,指明了目录,即Linux的根目录 /
第二行,表示禁止使用.htaccess文件,覆盖此处配置
第三行,表示禁止访问根目录
二、删除网站的目录浏览权限
apache会在默认路径下开启目录浏览
继续查看apache配置文件,如图,其中Indexes即为目录浏览权限,直接删除掉即可。
三、限制HTTP方法
apache默认没有限制限制http方法,我们可以在需要的路径下进行限制
如下代码限制了在根目录下,只能使用GET与POST方法
(注意,由于apache实现代码的原因,这里HEAD方法与GET方法等同,所以HEAD方法也可以访问)
1 |
|
如图
四、错误页面重定向
http的错误页面可能会暴露服务器信息,我们可以将错误页面都重点向到某文件
新建一个错误页面文件,文件内容为error
1 |
|
编辑配置文件,指定错误代码400 401 402 403 404 500 指向error
五、限制POST数据大小
编辑配置文件
在文件中加下行,注意不要放在路径的申明中
1 |
|
六、记录下post的数据
很多攻击行为由post发起,记录post数据可以便于追踪溯源
编辑配置文件
加载记录IO的模块
1 |
|
指定日志级别,记录IO (位置一定要对,不能随意编辑)
1 |
|
七、保存退出,并重启服务
退出vim ,使用以下命令重启apache服务
1 |
|
八、验证配置
前面我们已经完成了apache的加固,下面进行验证,这里我们使用linux自带的curl工具进行验证
1、验证当前的HTTP限制的方法,如我们OPTIONS方法进行测试
如图curl -i -X OPTIONS 127.0.0.1/1.txt
2、验证错误页面重定向
1 |
|
因为服务器上并不存在test.html,所以重定向到了error.txt
3、验证限制post数据大小
curl使用-d选项时,会使用post,前面我们限制post的body为100字节,下面引号中随便输入足够长的数据即可
1 |
|
4、验证日志记录post数据
使用下面命令向服务器post的数据为11223344
1 |
|
服务器无法处理post请求,直接报错error
查看日志,可以在日志中找到11223344
总结
通过实验学会Linux下的apache安全配置,同时学会基本的curl命令应用。
作业
我们配置了错误重定向和限制http方法,思考为什么我们使用head方法访问服务器时,服务器提示的403错误为什么没有重定向到error文件中,请将思考结果写在实验报告中
基线管理之MariaDB安全配置
实验目的
MariaDB的安全配置过程与配置方法,掌握数据库安全配置对安全运维至关重要。
实验环境
一台Centos7 已安装MariaDB数据库
实验原理
通过配置文件与数据库的配置,实现MariaDB安全配置
实验步骤
一、操作系统级权限检查
1、检查数据库的运行权限,不建议以root运行数据库,防止越权攻击
1 |
|
如图显示mysqld的运行用户为mysql
2、禁用mariadb的历史记录功能
查找缓存文件
1 |
|
将缓存文件指向空文件
1 |
|
3、查看并配置数据库存放路径权限
登录数据库
1 |
|
查看数据库存放路径
1 |
|
退出数据库
1 |
|
查看数据库存放路径权限
1 |
|
如图权限为755,使用以下命令改为700
1 |
|
二、Mariadb数据库的通用安全配置
1、删除默认的test数据库
进入数据库
1 |
|
1 |
|
删除数据库
1 |
|
2、禁用local_infile参数
查看local_infile参数是否开启
1 |
|
如上图显示local_infile 是开启状态,需要修改mariadb配置文件。修改方法,见后文。
3、修改secure_file_priv参数
查看secure_file_priv参数
1 |
|
如图显示路径为空,表示所有路径,建议设置为固定值,需要修改mariadb配置文件。修改方法,见后文。
4、确定只有root用户有内置数据库mysql的权限
查看内置数据库的权限
1 |
|
5、查看file_priv权限,确定只有root用户有
1 |
|
撤销用户权限
如果在上例检查中,发现非root用户,可以使用下面命令撤销
1 |
|
同时这里检查权限还应有process_priv、super_priv这些字段。
6、配置允许用户登录的主机
查看当前用户可以登录的主机
1 |
|
更新用户允许登录的主机,如
1 |
|
7、查看密码安全策略
1 |
|
三、验证安全配置
1、生成两个任意文件
1 |
|
2、进入数据库
1 |
|
3、导入文件,前面我们查看参数时,发现local_infile参数为on
执行以下操作
创建数据库
1 |
|
创建表,并导入/tmp/111.txt
1 |
|
再次导入/var/lib/mysql/222.txt
1 |
|
发现导入成功
3、配置禁止导入,与导入路径
退出数据库
1 |
|
编辑数据库配置文件
1 |
|
加入下面行,指定允许导入的路径,如/tmp
1 |
|
保存并退出文件
重启mariadb数据库
1 |
|
进入数据库
1 |
|
尝试导入文件
1 |
|
虽然提示执行成功,但查看数据库时,发现值为NULL
实验总结
通过mariadb的配置文件与参数查看,理解mariadb的一些安全配置。
安全基线之MongDB安全配置
实验目的
理解MongoDB的安全配置选项,掌握Mongodb的安全配置方法
实验环境
一台服务器,已经安装好MongDB,
实验原理
通过修改配置文件,加强安全配置
实验步骤
一、查看MongoDB监听的端口
编辑mongdob的配置文件
1 |
|
查看配置文件监听的端口与IP,Mongodb默认监听127.0.0.1的27010端口,可以按实际情况进行修改。
二、开启mongodb的验证
1、开启验证功能
在配置文件,开启security,并加在security:下面加入下面行
1 |
|
保存退出文件
2、新建用户
使用下面命令连接mongdb服务器
1 |
|
输入下面命令 新建用户
1 |
|
3、退出数据库
输入exit
三、配置mongodb日志
查看mongodb配置文件
1 |
|
找到auditlog行,发现未配置auditlog
改为下图
保存并退出文件
四、修改相关文件权限
1、查看数据库文件路径
1 |
|
mongodb的数据库文件为/var/lib/mongo
2、检查上述文件权限,建议设置为770 文件所有者和所属组为mongod
1 |
|
如图文件夹权限为755
使用下面命令修改为770
1 |
|
五、验证配置生效
1、因为修改了配置文件,需要重启mongodb服务
1 |
|
2、使用客户端连接mongodb
1 |
|
提示未验证
使用exit退出当前连接
3、使用账号密码连接mongodb
1 |
|
查看数据库
1 |
|
4、查看日志
1 |
|
可以看到mongodb日志
实验总结
通过mongodb的配置,完善了mongdb最弱的验证与日志两个功能。
加强了文件权限管理。同时仍然还有一些配置需要加强,具体参照不同应用场景需求。