Microsoft Windows 操作系统是美国微软公司研发的一套操作系统,它问世于1985 年,起初仅仅是 Microsoh - DO 拟环境,后续的系统版本不断更新升级,不但易用,而且是当前应用最广泛的操作系统。
Windows 系统常见目录
目录 | 说明 |
---|---|
system32 | 存放系统配置文件 |
SysWOW64 | Windows操作系统的子系统 |
Config/SAM | 存放 Windows 账号和密码 |
etc/hosts | DNS解析文件 |
Program files/Program files ( x86) | Windows程序目录(32位程序安装在x86 目录下) |
Perflogs | 日志目录 |
Windows 系统常用指令
命令 | 说明 |
---|---|
ver | 查看系统版本 |
hostname | 查看主机名 |
ipconfig/all | 查看网络配置 |
net user/localgroup/share/config | 查看用户/用户组/共享/当前运行可配置服务 |
at | 建立或查看系统作业 |
netstat | 查看开放端口 |
secpol. msc | 查看和修改本地安全设置 |
services. msc | 查看和修改服务 |
eventvwr.msc | 查看日志 |
regedit | 打开注册表 |
whoami | 查看当前操作用户的用户名 |
net命令的使用
命令 | 说明 |
---|---|
net user abc /add | 创建 (空密码) 账户 abc |
net user abc | 查看账户 abe 的详细信息 |
net user abc /del | 删除账户 abc |
net user abc 123 /add | 创建普通账户 abc,密码为123 |
net localgroup administrators abc /add | 把abc 用户加人管理员组 |
net localgroup administrators abc /del | 把 abc用户退出管理员组 |
net user abc /active: yes [no] | 启用/停用abc账户 |
net localgroup admin /add [ del] | 新建/删除组 admin |
net share | 查看本地开启的共享 |
netstat | 查看开启的端口 |
Windows系统常见的开放端口
端口 | 说明 |
---|---|
80/8080/8081 | HTTP协议代理服务器常用端口号 |
443 | HTTPS协议代理服务器常用端口号 |
21 | FTP(文件传输协议) 协议代理服务器常用端口号 |
24 | Telnet(远程登录)协议代理服务器常用端口号 |
22 | SSH (安全登录)、SCP (文件传输) |
1521 | Oracle 数据库 |
1433 | MSSQL Server 数据库 |
3306 | MySQL数据库 |
25 | SMTP(简单邮件传输协议) |
Windows 操作系统作为目前个人电脑中用得最广泛的操作系统,从它诞生以来,总存在些安全漏洞,如缓冲区溢出漏洞、TCP/IP 协议漏洞、Web 应用安全漏洞、开放端口的安全漏洞等。以下是一些 Windows 加固的基本策略;
设置方法:单击“开始”一“运行”,输入“secpol.msc”,Windows 账户策略设置界面,账户策略见表。
Windows 账户策略
选项 | 要求 |
---|---|
密码必须符合复杂性要求 | 启用 |
密码长度最小值 | 8 个字符 |
密码最长使用期限 | 30天 |
强制密码历史 | 3个记住的密码 |
账户锁定时间 | 30 min |
复位账户锁定计数器 | 30 min之后 |
右击“我的电脑”,单击“打开”一“计算机管理”一“本地用户和组”一“用户”“Guest”,右击,单击“属性”一“常规”,选择“账户已禁用”。也可以使用cmd 命令“net user guest/active:no”
重命名Administartor账户,可增加账户的安全性,如图7-1-4 所示。也可以使用 Windows命令“wmic useraccount where name ='Administrator' call Rename test
进行重命名。
在针对 Windows 进行攻击时,135、139、445 端口往往成为黑客入侵的端口,以下演示如何关闭3 个端口。首先查看系统的开放端口:
单击“开始”一“运行”,输入“dcomcnfg”,单击“确定”按钮,打开组件服务。右击“我的电脑”,单击“属性”,在默认属性中取消勾选“在此计算机上启用分布式 COM”。选择“默认协议”选项卡,选中“面向连接的TCP/IP”,单击“移除”一“确定”按钮,设置完成。
打开“开始”菜单,单击“运行”,输入“regedit”,进入注册表,定位到HKEY_LOCALMACHINE\SOFTWARE\MicrosofRpc,右击“Rpc”,单击“新建项”,输人“Intermet”,然后重启,查看系统端口,135 端口被关闭了。
右击“网上邻居”,单击“属性”,打开“本地连接 属性”窗口,选中“Internet 协议4(TCP/IPv4)”,单击“常规”选项卡,单击“高级”按钮,在“WINS”选项卡中选中“禁用TCP/IP 上的 NetBIOS”。重启计算机,端口状态139 端口被关闭了。
在注册表 HKEY_LOCALMACHINE\SYSTEM\CurrentControlSet Services NetBT\Parameters目录下,新建“SMBDeviceEnabled”项,类型为REG_DWORD,键值为0。
或者使用命令行指令:reg add"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSetservices\NetBT”/vSMBDeviceEnabled/ REGDWORD/d0/f
。
依次单击“开始”一“运行”,输入“services.msc
”,进入服务管理控制台,找到“Server”服务,双击进入管理控制页面,把服务的启动类型更改为“禁用”,服务状态更改为“停止”,最后单击“应用”按即可。端口状态,445 端口被关闭了。
3389是 Windows 远程桌面端口,通过它可以控制 Windows 系统,为了安全,可以修改这个端口。两个注册表路径为:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TerminalServer\Wds\rdpwd\Tds\tcp\PortNumber
HKEY_LOCALMACHINESYSTEM\CurrentControlSet\Control\TerminalServer\WinStations\RDPTcp\PortNumber
它们的默认值是 3389,修改成 445 端口。
由于445 端口上的服务改成了远程桌面服务,用Kali 扫描该主机,判断服务类型时,445 端口的服务描述中会出现问号。
Iptables 防火墙可以用于创建过滤 (filter) 与 NAT 规则。所有 Linux 发行版都能使用Iptables,因此,理解如何配置 Iptables 将会帮助用户更有效地管理 Linux 防火墙。
首先介绍Iptables 的结构:Iptables-+Tables-Chains-Rules。简单地讲,Tables 由 Chains组成,而 Chains 又由 Rules 组成。
(1) Iptables 的表与链
Iptables 具有 Filter、NAT、Mangle、Raw 四种内建表
(2) Iptables 规则 (Rules)
牢记以下三点是理解 Iptables 规则的关键
下面是可以在目标里指定的特殊值:
如果执行 iptables -list,将看到防火墙上的可用规则。下例说明当前系统没有定义防火墙,可以看到,它显示了默认的 Filter 表,以及表内默认的INPUT 链、FORWARD链、OUTPUT链。
#iptables -t filter-list
Chain INPUT(policy ACCEPT)
target prot opt source destination
Chain FORWARD(policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
查看Mangle表:
#iptables -t mangle -list
查看NAT表:
#iptables -t nat -list
查看 Raw 表:
#iptables -t raw -ist
注意:如果不指定 -t 选项,就只会显示默认的 Flter 表。因此,以下两种命令形式是个意思:
#iptables -t filter -list
或者
#iptables-list
下例表明在 Filter表的INPUT链、FORWARD链、OUTPUT 链中存在规则
# iptables -list
Chain INPUT (policy ACCEPT)
num target prot opt source destination
1 RH-Firewall -1 -INPUT all 0.0.0.0/0 0.0.0.0/0
Chain FORWARD(policy ACCEPT)
num target prot opt source destination
1 RH-Firewall -1 -INPUT all 0.0.0.0/0 0.0.0.0/0
Chain FORWARD(policy ACCEPT)
num target prot opt source destination Chain RH -Firewall-1 -INPUT(2 references)
num target prot opt source destination
1 ACCEPT all - 0.0.0.0/0 0.0.0.0/0
2 ACCEPT icmp - 0.0.0.0/0 0.0.0.0/0
icmp type 255
3 ACCEPT esp - 0.0.0.0/0 V0.0.0.0/0
4 ACCEPT ah - 0.0.0.0/0 0.0.0.0/0
5 ACCEPT udp - 0.0.0.0/0 224.0.0.251
udp dpt;5353
6 ACCEPT udp - 0.0.0.0/0 0.0.0.0/0
udp dpt:631
7 ACCEPT tcp - 0.0.0.0/0 0.0.0.0/0
tcp dpt:631
8 ACCEPT all - 0.0.0.0/0 0.0.0.0/0
state RELATED,ESTABLISHED
g ACCEPT tcp - 0.0.0.0/0 0.0.0.0/0
state NEW tcp dpt;22
10 REJECT all - 0.0.0.0/0 0.0.0.0/0
reject -with icmp -host -prohibited
以上输出包含下列字段:
(3)清空所有 Iptables 规则
在配置Iptables 之前,通常需要用iptables -list 命令或者iptables - save 命令查看有无现存规则,因为有时需要删除现有的 Iptables 规则:
iptables -flush
或者
iptables -F
这两条命令是等效的。但是并非执行后就可以了,仍然需要检查规则是不是真的清空因为有的 Linux 发行版上这个命令不会清除NAT 表中的规则,此时只能手动清除:
iptables -t NAT -F
(4) 永久生效
当删除、添加规则后,这些更改并不能永久生效,这些规则很有可能在系统重启后恢复原样。为了让配置永久生效,根据平台的不同,具体操作也不同。下面进行简单介绍:
iptables -save > /etc/iptables,rules
然后新建一个bash 脚本,并保存到/ete/network/if - pre - up.d/目录下:
#! /bin/bash
iptables -restore < /etc/iptables.rules
这样,每次系统重启后,Iptables 规则都会被自动加载
注意:不要尝试在.bashrc 或者profle 中执行以上命令,因为用户通常不是 root,并且只能在登录时加载Iptables 规则。
保存Iptables 规则:
service iptables save
重启Iptables 服务:
service iptables stop service iptables start
查看当前规则:
cat/etc/sysconfig/iptables
(5)追加 Iptables 规则
可以使用iptables -A 命令追加新规则,其中-A 表示 Append。因此,新的规则将追加到链尾。
一般而言,最后一条规则用于丢弃 (DROP) 所有数据包。如果已经有这样的规则了并且使用-A 参数添加新规则,那么就没有意义了。
iptables -A chain firewall -rule
/etc/protocols
查看,还可以使用-protocl 参数代替-p 参数。
注:MASOUERADE,地址伪装,是 snat 中的一种特例,可以实现自动化的snat。
例如,-ietho 指定了要处理经由 etho 进入的数据包。
如果不指定 -i参数,那么将处理进入所有接口的数据包。
如果出现!-i eth0,那么将处理所有经由 eth0 以外的接口进人的数据包
如果出现-i eth+,那么将处理所有经由eth 开头的接口进入的数据包。
还可以使用-in -interface参数
iptables -F
接收目标端口为22 的数据包:
iptables -A INPUT -i ethO -p tcp -dport 22 -ACCEPT
拒绝所有其他数据包:
iptables -A INPUT -j DROP
6、更改默认策略
上例仅对接收的数据包过滤,而对要发送出去的数据包却没有任何限制。本部分主要介绍如何更改链策略,以改变链的行为。
当使用-L 选项验证当前规则时,发现所有的链旁边都有 policy ACCEPT 标注,这表明当前链的默认策略为 ACCEPT:
#iptables -L
Chain INPUT(policy ACCEPT)
target prot opt source destination
ACCEPT tcp - anywhere anywhere tcp dpt:shh
DROP all - anywhere anywhere
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
这种情况下,如果没有明确添加 DROP 规则,那么默认情况下将采用ACCEPT 策略进行过滤。除非;
为以上三个链单独添加DROP 规则:
iptables -A INPUT -j DROP
iptables -A OUTPUT -DROP
iptables -A FORWARD - DROP
更改默认策略:
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
已经把OUTPUT链策略更改为DROP了。此时虽然服务器能接收数据,但是无法发送数据:
#iptables -L
Chain INPUT(policy DROP)
target prot opt source destination
ACCEPT tcp - anywhere anywhere tcp dpt;ssh
DROP all - anywhere anywhere
Chain FORWARD (policy DROP)
target prot opt source destination
Chain OUTPUT (policy DROP)
target prot opt source destination
(7)配置应用程序规则
以下举个例子:
允许接收远程主机的 SSH 请求:
iptables -A INPUT -i ethO -p tcp -dport 22 -m state -state NEW,ESTABLISHED -j -ACCEPT
允许发送本地主机的SSH 响应:
iptables -A OUTPUT -o eth0 -p tcp -sport 22 -m state -state ESTABLISHED -j ACCEPT
Linux 系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面,可以帮助用户组织文件,并为用户提供安全性保护。每个用户账号都拥有唯一的用户名和各自的口令。Linux账户和密码存放在/etc/passwd 和/etc/shadow 文件中。
超级管理员(root)的UID =0,系统默认用户则对应1024 以下的UID(用户标识号它与用户名唯一对应,并且 UID 越小,说明该用户的权限越大)。
AWK 是一个强大的文本分析工具,相对于 GREP 的查找、SED 的编辑,AWK 在对数据进行分析并生成报告时,其功能显得尤为强大。简单来说,AWK 就是把文件逐行读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。
使用方法:
awk'{pattern +action}' {filenames}
比如,检查/etc/shadow 中的空口令账号:
# awk -F":"'($2 = ="!"){print $1}'/etc/shadow
搜索/etc/passwd 中有 root 关键字的所有行:
#awk '/root/' /etc/passwd
为了 Linux 系统的安全,有时只允许系统开放一些常规端口。利用Iptables 只允许21、22、80、445、1433、3306 端口开放。利用Iptables 配置与 Linux 扫描结果。
Iptables 的设置是立即生效的,无须重启服务。
所谓隐藏的超级用户,是那些权限很大 (UID为0)的rot 用户Linux的普通用户权限很小。用户没有权限设置IP 地址。
当修改/etc/passwd 文件之后,abc 就有 root 的权限了。
可以利用AWK检测UID为0的用户,代码为awk -F ":" '($3=="0")print {$1}' /etc/passwd
。
查看密码策略设置:
#cat /etc/login.defs | grep PASS
配置密码文件:
#vi /etc/login.efs 修改配置文件
PASS_MAX_DAYS 90 #用户的密码最长使用天数
PASS_MIN_DAYS 0 #两次修改密码的最小时间间隔
PASS_MIN_LEN 7 #密码的最小长度
PASS_WARN_AGE 9 #密码过期前多少天开始提示
在Linux 系统中执行命令;echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
,测试能否被其他主机 ping通。
阅读量:2017
点赞量:0
收藏量:0