系统安全和应用及实验部分(弱口令扫描、密码破解、NMAP嗅探)
文章目录
- 一、账号安全控制
- 1.基本安全措施
- (1)系统账号的清理
- (2)密码安全控制
- (3)历史命令、自动注销
- 二、用户切换、提权
- 1.用户切换
- 2. 提升执行权限
- 三、PAM安全认证
- 1.PAM认证模块介绍
- 2.PAM认证用法
- 3.PAM验证流程
- 四、系统引导和登录控制
- 1.开关机安全控制
- 2.限制更改GRUB引导参数
- 3.终端及登录控制
- 五、弱口令扫描、端口扫描
- 1.弱口令扫描
- 2.网络扫描--NMAP
所有实验均在虚拟机CentOS7.6下完成
本章主要从清理用户账号、锁定用户账号或账号配置文件、设置用户密码有效期限、设置历史命令清除、设置账号超时自动登出、结合PAM认证模块设置用户账号的切换su和提权sudo来提升系统的安全性。
一、账号安全控制
1.基本安全措施
(1)系统账号的清理
在Linux系统中,存在大量用户,除了超级用户root外,其他大量用户只是用来维护系统运作、启动或保持服务进程,为了系统安全,这些用户的登录Shell通常是/sbin/nologin,表示禁止终端登录,确保不被人改动。
有一部分用户是很少用到的,我们可以到/etc/passwd加“#”进行注释或使用usermod命令对用户进行锁定。
对用户进行注释
vi /etc/passwd
找到相应用户对他进行注释#
对用户进行锁定
usermod -L tom2 ##锁定账户
tail -10 /etc/shadow ##查看
passwd -S tom2 ##查看
当服务器中的用户账号已经固定,我们可以锁定账户配置文件
chattr +i /etc/passwd ##锁定配置文件
lsattr /etc/passwd ##查看锁定状态,-----i------这样的标志表示锁定
usreadd zhang ##创建用户,是创不了的
chattr -i /etc/passwd ##解锁
lsattr /etc/passwd ##查看解锁状态
(2)密码安全控制
在Linux系统中,为了降低密码暴露的风险,需要经常改密码;管理员可以在服务器上限制密码的最大有效天数,要求用户登录时修改密码,否则不能登录。
vi /etc/login.defs
PASS_MAX_DAYS 30 ##密码有效期30天
保存退出
此种方法修改完配置文件,下次新建用户时,用户密码最大有效天数为30天
chage -M 30 bely
此种方法可以对已有用户修改密码最大有效天数
chage -d 0 tom
强制要求用户下次登录时重设密码
(3)历史命令、自动注销
shell环境中的历史命令机制,记录用户命令操作过程,提供便利的同时,也暴露出安全威胁,只要找出历史命令文件,便可查看很多操作,甚至发现密码。
bash终端环境中,历史命令的记录条数由变量HISTSIZE控制,默认1000条。修改/etc/profile文件,可修改历史命令条数,可以影响系统中的所有用户。
vi /etc/profile
HISTSIZE=200
清除历史命令
修改用户登出时执行的文件~/.bash_logout
vi ~/.bash_logout
history -c
clear
保存退出
bash终端环境中,可以用变量TMOUT设置自动注销,当用户超过一定时间内没有任何输入,便自动注销,避免被其他人员误操作,默认单位时间秒。
vi ~/.bash_profile ##适用于新登录的用户
export TMOUT=60
保存退出
重启后生效,等待60s后会登出
或
export TMOUT=60 ##适用于当前用户,一次性的
当我们需要有较长耗时的操作时,必要时可执行“unset TMOUT”命令取消TMOUT变量设置。
二、用户切换、提权
在大多数Linux服务器中,一般不会直接用root用户登录,因为root特权用户权限太高,如果误操作会造成很大程度的破坏,且担心root用户密码在不安全网络中暴露。所以我们需要为普通用户切换身份和提升权限机制,以便管理执行任务。
Linux系统中用su命令来切换用户,sudo命令来提升权限。
1.用户切换
切换用户后可以获得该用户的所有权限
su - root
输入密码便可切换,root用户切换其他用户不需要输入密码
默认情况下,任何用户都可以使用su命令,这样可以反复尝试root用户的密码,这样带来安全隐患。可以使用pam_wheel认证模块,限制使用su命令的用户,将要使用su的用户加入wheel组,修改/etc/pam.d/su的认证配置,启用pam_wheel认证。
useradd tom1
gpasswd -a tom1 wheel
vi /etc/pam.d/su
将下图第六行的#注释号去掉
保存退出
登录tom1登录,切root用户可以切换
登录tom2用户,切root用户,不能切换
2. 提升执行权限
可以以root用户的身份,进行授权,让指定用户可以执行一部分本身不能执行的命令。
在配置文件/etc/sudoers中添加授权,文件默认权限为440,需要使用专门的visudo命令工具进行编辑;若使用vi编辑,使用w!保存。
授权命令格式如下:
user MACHINE=COMMANDS
包括用户(user)、主机(MACHINE)、命令三部分。
1)用户(user):授权的用户名,或采用“%组名”的形式授权一个组
2)主机(MACHINE):使用此配置文件的主机名,一般设为localhost
3)命令(COMMANDS):允许授权用户通过sudo方式执行的特权命令,需要填写命令程序的完整路径,多个命令之间以逗号“,”进行分隔。
配置举例
授权用户tom1能够执行ifconfig命令来修改IP地址。
visudo
tom1 localhost=/sbin/ifconfig
保存退出
部分配置文件如下:
sudo ifconfig ens33:0 192.168.2.20/24
/sbin/ifconfog ens33:0 ##可查看网卡ip地址
在当前会话中,第一次用过sudo执行命令时,必须验证用户自己的密码,5分钟间隔内不用再次验证。
sudo -l
可以查看授权的设置
三、PAM安全认证
1.PAM认证模块介绍
PAM认证模块,叫做可插拔式的认证模块。一项重要的功能就是为了加强su命令的使用控制,可以借助于PAM认证模块,只允许极个别用户使用su命令进行切换。PAM提供了对所有服务进行认证的中央机制,适用于login,远程登录(telnet,rlogin,fsh,ftp),su等应用程序中,系统管理员通过PAM配置文件来制定不同应用程序的不同认证策略。
PAM认证首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib/security下)进行安全认证。用户访问服务器的时候,服务器某一个服务程序把用户的请求发送到PAM模块进行认证,不用的应用程序对应的PAM模块也是不同的。
2.PAM认证用法
例如查看su的PAM配置文件:cat /etc/pam.d/su 每一行都是一个独立的认证过程,每一行可以区分为三个字段:1)认证类型 2)控制类型 3)PAM模块及其参数。
下面简单的介绍四种常见认证类型:
(1)认证管理(authentication management)接受用户名和密码,进而对该用户的密码进行认证
(2)账户管理(account management)检查账户是否被允许登录系统,账号是否已经过期,账号的登录是否有时间段的限制等
(3)密码管理(password management)主要是用来修改用户的密码
(4)会话管理(session management)主要是提供对会话的管理和记账(accounting)
那么控制类型也可以称做Control Flags,用于PAM验证类型的返回结果,具体有以下四种:
(1)required验证失败时仍然继续验证,但返回Fail
(2)requisite验证失败则立即结束整个验证过程,返回Fail
(3)sufficient验证成功则立即返回,不再继续,否则忽略结果并继续
(4)optional不用于验证,只是显示信息(通常用于session类型)
3.PAM验证流程
当发起一个有PAM认知的服务请求后,对请求服务的用户身份和密码进行认证,认证失败则结束,认证成功继续向下验证;向下进行权限认证,验证成功程序执行后续动作,失败则结束。
四、系统引导和登录控制
1.开关机安全控制
在开关机方面,系统本身要做一些安全措施,去保护服务器的安全。
(1)调整BIOS引导设置
将第一优先引导设备(First Boot Device)设为当前系统所在磁盘
禁止从其他设备(如光盘、U盘、网络等)引导系统,对应项设为Disabled
将BIOS的安全级别改为“set up”,并设置好管理密码,以防为授权的修改
(2)禁止Ctrl+Alt+del键重启
2.限制更改GRUB引导参数
GRUB引导菜单可以对系统问题进行修复、修改,但如果谁都可以去修改的话,就会造成很大的安全隐患,所以我们应该对GRUB菜单设置一个密码。其实在centos7中基本上使用急救模式去对系统进行修复。
grub2 -setpassword ##设置密码
输入密码
cat /boot/grub2/user.cfg ##查看密码,有那一大推的字母就是了
reboot ##重启
重启按E,一定要把鼠标点进虚拟机再按E
按ctrl+c可进入到grub界面
3.终端及登录控制
Linux服务器中,默认开启6个tty终端,可以使用Ctrl+Alt+Fn允许任何用户进行本地登录。(1)减少开放的tty终端
(2)禁止root用户登录
vi /etc/securetty
#tty5
#tty6
这样tty5 6就不可以root用户登录了
(3)禁止普通用户登录
当服务器在维护使,可能不希望有其他用户登录,只需要建立/etc/nologin文件,如果这个文件存在就会拒绝普通用户的登录
touch /etc/nologin
我们登tom2账号时,便不能登录
五、弱口令扫描、端口扫描
1.弱口令扫描
对于简单的口令可以使用John the Ripper来破解,此工具为穷举破解,取决于字典内容。
(1)下载安装John the Ripper密码破解
下载安装包使用ftp传到虚拟机中/opt下,解压
yum install -y gcc gcc-c++
cd /opt
tar zxvf john-1.8.0.tar.gz /opt
cd src
make linux-x86-64 ##编译,完成后在run运行目录下就会有john可执行脚本文件,就可以使用这就文件来破解密码了
cp /etc/shadow /root/shadow.txt
cd /opt/john-1.8.0/run
./john /root/shadow.txt ##破解密码,破解文件为/root/shadow
等待破解完成
(2)查看破解的密码
/opt/john-1.8.0/run/john --show /root/shadow.txt
(3)使用密码字典文件
2.网络扫描–NMAP
nmap工具可以探测对方存活状态和端口服务
探测本地对外开启的端口
nmap 127.0.0.1
探测主机状态
nmap -sP 20.0.0.0/24 ##-sP 是ICMP扫描,类似ping检查,查看主机是否存活
探测TCP协议端口
nmap -sT 127.0.0.1 ##-sT是TCP端口协议扫描
nmap -sU 127.0.0.1 ##-sU 是UDP端口协议扫描
系统安全和应用及实验部分(弱口令扫描、密码破解、NMAP嗅探)相关推荐
- lqc_更新系统+弱口令扫描+nmap
实验四:更新系统+弱口令扫描+nmap 1.添加yum及更新系统 a.更新设置:(必须先安装好三个yum源) echo "0 3 * * 6 yum -y update" > ...
- 弱口令扫描工具mysql ftp_基于端口的弱口令检测工具--iscan
iscan: 基于端口的弱口令检测工具 亲手打造了一款基于端口的弱口令检测工具,使用python进行编写,主要可以用于渗透测试中常见服务端口弱口令的检测.目前支持以下服务: 系统弱口令:ftp.ssh ...
- 局域网弱口令扫描工具_漏洞扫描软件AWVS的介绍和使用
什么是AWVS? Acunetix Web Vulnerability Scanner(AWVS)是用于测试和管理Web应用程序安全性的平台,能够自动扫描互联网或者本地局域网任何网站中是否存在漏洞,并 ...
- 打造自己的弱口令扫描工具
在内网检测中,弱口令扫描是必不可少的环节,选择一个好用的弱口令扫描工具,尤为重要. 我曾写过一款弱口令检测工具,经常有童鞋在后台询问关于iscan源代码的事情,但其实通过Python打造自己的弱口令扫 ...
- 弱口令介绍及破解方式
一.弱口令的定义 仅包含简单数字和字母的口令,例如"123"."abc"等,因为这样的口令很容易被别人破解,从而使用户的计算机面临风险,因此不推荐用户使用. 二 ...
- 实验任务(三)---密码破解技术
中国人民公安大学 Chinese people' public security university 网络对抗技术 实验报告 实验三 密码破解技术 学生姓名 陈秋雨 年级 2015 区队 ...
- 〖教程〗NbtScan 139端口弱口令/Netbios密码爆破
版本 Ladon >= 7.1 139端口 NetBIOS File and Print Sharing 通过这个端口进入的连接试图获得NetBIOS/SMB服务.这个协议被用于Windows& ...
- 弱口令扫描、暴力破解密码
1使用场景 在internet环境中,过于简单的口令时服务器面临的最大风险.尽管大家都知道复杂的口令更安全,但仍然有很多用户贪图方便而采用简单的口令.对于任何一个承担安全责任的管理员,及时找出这些弱口 ...
- 局域网弱口令扫描工具_安全测试技术 | 渗透测试获取弱口令密码,你的账号安全了吗?...
1.Burp suite官网下载 Burp Suite 是用于攻击web 应用程序的集成平台.它包含了许多Burp工具,这些不同的burp工具通过协同工作,有效的分享信息,支持以某种工具中的信息为基础 ...
最新文章
- Linux下使用ssh密钥实现无交互备份
- Linux移植之auto.conf、autoconf.h、Mach-types.h的生成过程简析
- 莫斯科保卫战之PHP-502 Bad Gateway
- python—unittest—数据驱动详细讲解(ddt)
- 缓存redis的实现思路
- 蒙提霍尔悖论(三门问题)终极分析(补充)附完整源码
- spring 注解方式配置Bean
- js中判断值不等于undefined
- 这40张图送给单身程序员,情人节请一笑而过!
- linux下tcpdump的使用简介
- OPPO Reno 3 Pro细节流出:同价位最轻薄的双模5G手机
- vue store的值刷新就被覆盖解决方案
- worker进程和task进程区别_swoole中使用task进程异步的处理耗时任务
- 怎么样更好的做好站内的优化
- 【Android进阶】使用Andbase快速开发框架实现常见侧滑栏和滑动标签页组合效果...
- pygame安装教程(window)
- Android Binder机制介绍
- 【fiddler手机抓包不能上网问题解决】
- 【Unity实战100例】技能伤害区域判定(矩形,圆,三角形,扇形)(三)
- word论文页码排版
热门文章
- 技能终将过时,而能力与时俱进
- TI培训——电子电路基础知识讲座(第三章上)
- Codeforces Round #693 (Div. 3)部分题解
- Web安全 -- 信息收集(上)
- 【Android】高德地图在Debug模式下运行正常但是打Release包时则闪退解决办法
- LAYUI 数据表格table 监听switch/checkbox事件
- 7-1 求1到N的和 (5 分)
- python-清华大学镜像源
- 软件测试周度目标,部门周度工作计划表(新)-
- Active-Directory-Security-101 手册