作业所属课程:https://edu.cnblogs.com/campus/besti/19attackdefense/

作业要求:https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10635

实践内容

Linux操作系统安全攻防
linux.png

Linux内核机制和模块

1、进程与线程管理机制

  • linux内核:抢占式多用户进程
  • 进程管理模块 其中schedule进程调度函数
  • 进程控制块PCB

2、内存管理机制

  • 可虚拟化,每个进程独享4GB虚拟内存空间
  • 允许多个进程安全地共享物理内存区域
  • 用户态代码访问内核态需要通过系统调用和中断
  • 内存管理模块:为进程提供内存分配、内存回收、请求分页和交换分页等系统调用服务

3、文件系统管理机制

  • 虚拟文件管理机制VFS
  • 支持的逻辑文件系统:ext2,ext3,ext4,vfat,ntfs
  • 通过设备驱动程序访问特定硬件设备
  • 提供通用文件系统调用【函数】(open/close/read/write)</br/>
    4、设备控制机制
  • 设备驱动程序:处理或管理【硬件控制器】的软件
  • 设备驱动程序大多通过LKM可【动态】加载内核模块机制
  • linux支持的硬件设备:字符设备、块设备、网络设备

字符设备:无缓冲区、直接I/O 如系统串行端口dev/cua0和/dev/cua1

块设备:按照一个块(512或1024字节)的倍数进行I/O,buffer cache,随机存取

网络设备:通过BSD socket网络接口访问

5、网络机制

  • 网络接口(网络协议栈、网络驱动程序)

网络协议栈:实现每一种可能的网络传输协议

IPX:分组交换协议

1156ff264bd799d657f25cbf04b30ad8.png
网络设备驱动程序:负责与硬件设备通信

6、系统调用机制

实现:软中断

硬中断:外部设备对CPU的中断

软中断:硬中断服务程序对内核的中断

安全机制

身份认证、授权与访问控制机制、安全审计

1、身份认证机制

不支持完整的ACL访问控制列表设置,补丁:POSIX ACLs for linux

用户:root,唯一的超级用户;普通用户;系统用户,不可登陆,但系统运行时不可缺少,如daemon、apache,匿名访问的nobody、ftp等用户。

用户信息文件:/etc/passwd

加密口令:/etc/shadow 只对root可读

用户组:用户组信息文件:/etc/group

用户组加密口令字:/etc/gshadow

查询当前用户所属组:id -a

添加用户组:groupadd

向某用户组添加用户:usermod -G group_name user_name

本地登陆用户验证:

bb398d20e1d3eb22a52ef8135d3b6f91.png
远程登录用户认证:

使用SSH服务

  • 基于口令:内建用户账号和口令
  • 基于非对称秘钥用户自己创建一对非对称密钥,将公钥放到服务器上。可抵御会话劫持和中间人攻击。

一些网络服务的身份认证

apache MD5散列口令字

samba文件服务 SMB文件共享服务中的LANMAN或NTLM散列算法

MySQL PASSWORD()函数加密口令存放于user系统表

统一身份认证中间件————PAM(可插入身份认证模块)

提供动态链接库和统一的API,将系统提供的服务和器认证方式分开

系统管理员:通过PAM配置文件(/etc/pam.conf或者/etc/pam.d)制定神风认证策略

应用服务开发者:在服务程序中使用PAM API对认证方法调用

PAM服务模块开发者:使用PAM SPI(service module API)编写认证模块,在PAM中间件中加入不同的认证机制

PAM核心库:读取配置文件,将相应的服务程序与相应的认证方法联系起来。

pam.png
PAM支持的管理界面:认证管理、账户管理、密码管理、会话管理

2、授权与访问控制机制

一切皆文件

文件所有者 uid gid 修改权限:chown

文件的访问权限 10个标志位 文件类型+文件权限

文件的特殊执行权限

SUID: 允许执行者在运行时从运行者身份提升至文件所有者权限,可任意存取文件所有者能使用的全部系统资源。设置了SUID位的root所有的文件:/etc/login

GUID: 设置SGID位的程序执行时以所有者的组的权限进行运行

2、安全审计机制

日志子系统:连接时间日志(登录时记录、/var/log/wtmp和/var/run/utmp)、进程统计日志(进程的开始与结束pacct或acct)、错误日志记录(/var/log/messages)。

linux常见日志文件

日志文件 日志文件内容
acct/pacct 记录用户命令
aculog 记录MODEM活动
btmp 记录登录失败的记录
lastlog 记录最近几次登录成功的时间和最后一次不成功的登录
message 从syslog中记录信息,有的链接到syslog文件
sudolog/sulog 使用sudo 和su发出的命令
syslog 从syslog中记录信息(通常链接到messages文件)
utmp 记录当前登录的每个用户
wtmp 一个用户每次登录进入和退出时间的永久记录

审计守护进程:检测系统用户对某些安全措施的违背并记录、监控用户空间程序对内核发起的系统调用、对违反SELinux策略的时间进行审计记录

远程攻防技术

1、远程口令字猜测攻击

2、针对网络服务漏洞

3、安装木马、垃圾邮件

4、构造数据包

1、远程口令字猜测攻击

针对SSH、etlnet、FTP、HTTP

基本原理:用户设置弱口令字

口令猜测攻击工具

Brutus:HTTP,POP3,FTP,SMB,telnet,IMAP等

THC Hydra:telnet,FTP,HTTP/HTTPS,SMB,SSH等 字典攻击,口令穷举暴力破解

Cain and Abel:windows、linux

防御措施:

设置强口令字

不要都使用root登录

不允特权用户远程登录

多次认证的进行记录,断线重连

不要在多个系统上使用相同口令字

使用基于公开密钥证书的身份认证机制

在非标准端口运行易遭受远程口令猜测攻击的服务

使用口令猜测攻击检测与防御软件 DenyHosts、BlockHosts、fail2ban

防火墙限制网络服务的访问源IP地址

2、网络服务远程渗透攻击

对监听网络服务安全漏洞的利用

(1)网络协议栈的实现代码有漏洞

(2)LAMP架构搭建网站

对于MySQL证书名称处理时的边界条件错误引起的缓冲区溢出漏洞的攻击:exploit/linux/mysql/mysql_yassl_getname

(3)FTP tcp21控制命令传输 tcp20数据传输

proFTPD:FTP服务软件

vs-ftpd很少有漏洞

(4)Samba:使类unix系统与windows的smb/cifs网络协议连接,漏洞如:负责处理链接起SMB1报文的代码没有正确地验证客户端所提供的输入字段,恶意客户端可以向Samba服务器发送特制的SMB报文触发堆内存破坏,导致以Samba服务器(smbd)的权限执行任意代码。利用这个漏洞无需认证,且samba的默认配置便受这个漏洞影响。

(5)电子邮件收发服务:sendmail服务

(6)其他网络服务

防范措施:

  • 禁用不必要的网络服务
  • 选择更安全的网络协议与服务软件,最佳安全配置架构网络服务(关闭默认口令)
  • 及时更新网络服务版本
  • 使用xinetd(网络访问控制机制)、防火墙为网络服务添加访问控制机制
  • 建立入侵检测与应急响应计划流程

3、攻击客户端程序和用户

web浏览器攻击

网站挂马攻击:在网站上植入JavaScript脚本代码的链接

对系统用户进行攻击

社会工程学

对软件分发站点上的软件进行特洛伊木马化

防范措施:

及时更新客户端软件

提高安全意识

4、攻击linux路由器和监听器:wireshark、snort、netfilter/iptables

linux以路由器模式运行:ip_forward=1

内核中:net子系统的route.c实现路由器的寻址与数据包转发功能

这些区域有漏洞救护让攻击者有机可乘

防范措施:

健全安全意识,关注安全设备与软件自身安全性

本地安全攻防技术

一般的网络服务以特意分配的系统用户,而非root用户权限来启动和运行。

提权:

1、最简单的提权途径:破解出root用户口令。(通过利用一些以root特权运行服务中存在的文件任意读/写漏洞,先获取到/etc/shadow文件,之后破解口令字)

linux系统口令字破解工具:John the Ripper(字典攻击、暴力破解)

2、发掘利用su或sudo程序中的安全漏洞

sudo -g/sudoedit绕过验证

提示-g是非法的option
3、直接攻击那些具有root特权程序中的任意代码执行漏洞,让他们代替攻击者打开具有root权限的shell命令行连接。

攻击用户态SUID特权提升漏洞

真实UID:运行该进程的用户ID

有效UID:进程当前实际继承权限的用户ID

在设置了SUID之后,真实ID和有效ID可以不一样,有效UID就变成了文件所有者的用户ID,如passwd命令

  • 针对SUID程序的本地缓冲区溢出攻击,如Ettercap软件的漏洞
  • 针对SUID程序的符号链接攻击,SUID程序盲目沿着符号链接引用其他文件,而不进行有效验证
  • 针对SUID程序的竞争条件攻击,一些程序软件没有遵循操作的原子特性而存在竞争条件漏洞,在进行操作过程中,另一边可能完成身份认证。如Exim(带有SUID)
  • 针对SUID程序的共享函数库攻击,共享函数库:函数库动态加载机制。
    修改环境变量提供含有恶意功能的替换共享函数库、使用共享函数库中的漏洞
    如:libpcprofile,使用LD_AUDIT环境变量启动suid程序。
  • 利用内核空间代码漏洞进行特权提升
  • 利用系统中配置不当,通过从系统中搜索全局可写的敏感文件与目录位置并加以利用、SUID

防范措施:
SUID不能滥用
及时更新软件
安装安全增强模块。

消踪灭迹

认证授权记录:/var/log/auth.log
系统报警、信息、认证、计划任务日志:/var/log/messages
对于用户登录记录wtmp二进制文件,可用wzap工具清除指定日志项。
清除在shell中所输入的命令历史记录,如用户目录下的.bash_history文件。或者禁止shell历史记录功能:unset HISTFILE;unset SAVEHIST

防范措施:

  • 将日志信息写到难以修改的媒介上

远程控制后门程序

类型:
特洛伊木马化的系统程序:替换rlogin、ssh
命令行后门工具:提供远程命令行shell访问,使用Netcat后门工具在系统上运行
图形化后门工具:VNC

实践过程

一、使用metasploit渗透测试软件,攻击linux靶机上的samba服务usermap_script安全漏洞,获取目标linux靶机的主机访问权限。实践步骤如下:

1、启动metasploit软件,可根据个人喜好使用msfonsole、msfgui、msfweb之一;

2、使用exploit: exploit/multi/damba/usermap_script渗透攻击模块;

3、选择攻击PAYLOAD为远程shell(正向或者反向连接均可);

4、选择渗透攻击参数(RHOST,LHOST,TARGET等)

5、执行渗透攻击

6、查看是否正确得到远程shell,并查看获得的权限。
SMB1报文链接内存破坏漏洞

这个实践用了两个攻击机(winattack与kali,刚开始渗透失败,所有换了个攻击机,后来发现和选择的渗透模块有关系)和一个靶机(metasploitable-linux)。

首先对靶机进行扫面,看一下它是否有samba服务程序,以及它的版本:

image65992e4ce448e8a6.md.png

也可以看到扫描结果,靶机上有装3.0版本的samba服务。

那么就可以对它进行渗透

选择渗透模块:

image704c5f3c4bbc18a9.md.png

选择负载:

image32fc25ed9d119246.md.png

渗透成功,按提示,键入python进入shell,再退出(其实这里直接输入命令就可以了~~~):

imagef5be672854862842.md.png

imagee71fdce5a5695c79.md.png

查看当前登录用户(这里截的图有问题,原图也找不到了,输入whoami 查看当前用户就好了)

可以看出是root权限。

二、攻防对抗实践
使用nessus扫描到linux-netasploitable的漏洞:

image4ed0f3230f1030fa.md.png
还是对samba渗透吧。
渗透过程与上一题相同。
分析wireshark包:

image8e5cffb6f0226e1e.md.png
源IP地址:192.168.200.4
目标IP地址:192.168.200.123 端口:139
image.md.png

从第一个SMB数据包中找到shellcode如图所示,nohup放在后台运行,mkfifo创建命名管道,/bash/sh写到文件中。
image1740b6182b2e3dc9.md.png
攻击过程中使用的命令:
image9da0c39564dbd55a.png

关于打补丁,我使用了apt-get install samba更新samba

遇到的问题:

1、在做第一个实践的时候,渗透不成功,解决办法:更换渗透模块和负载。
2、做第二个实践的时候,因为第一种渗透方法直接获得的是root权限,然后使用su msfadmin转为一个普通用户,之后使用SUID的方法提权,但是失败了。
3、在更新samba时遇到了网络问题,还没有找到解决办法。

心得体会

本地提权的内容有点抽象,不是很懂。

posted on 2020-04-19 22:01  20199302  阅读(254)  评论(0编辑  收藏  举报