Linux Shell Shock漏洞利用和实战
漏洞介绍:
Shellshock,又称Bashdoor,是在Unix中广泛使用的Bash shell中的一个安全漏洞,首次于2014年9月24日公开。许多互联网守护进程,如网页服务器,使用bash来处理某些命令,从而允许攻击者在易受攻击的Bash版本上执行任意代码。这可使攻击者在未授权的情况下访问计算机系统。——摘自维基百科
漏洞实验环境搭建:
1、 以root权限安装4.1版本的bansh。下载地址:
http://labfile.oss.aliyuncs.com/bash-4.1.tar.gz
2、 安装:
tar xf bash-4.1.tar.gz
cd bash-4.1
./configure
Make && make install
3、 链接:
rm / bin/bash
ln -s /usr/local/bin/bash /bin/bash
4、 检查漏洞是否存在:
Env x=’() { :; };echo vulnerable’ bash -c “echo this is a test”
5、 如果上一步输出vulnerable,那么让/bin/sh指向/bin/bash
Sudo ln -sf /bin/bash /bin/sh
漏洞真身复现:
Export foo=’() { :; }; echo hello world’
Bash读取了环境变量,在定义foo之后就直接调用了后面的函数,一旦调用bash,自定义语句就直接触发。
- 攻击Set-UID程序。
我们知道system()函数将调用“/bin/sh -c”来运行指定的命令,这也意味着/bin/bash会被调用。你能够利用shellshock漏洞来获取权限吗?首先确保安装了带有漏洞版本的bash版本,并让/bin/sh指向/bin/bash
编辑如下C代码:
并给其赋一个SUID权限。
成功拿到root权限:
重点函数还是C代码中的setuid(geteuid());可以尝试,如果这段代码被删除,那么就无法成功提权。
原理分析:
我们这里使用该语句的原因是希望read uid = effective uid
这就说明如果real uid 和effective uid相同的话,定义在环境变量中的内容 在该程序中任然有效,但是两个uid如果不同,环境变量失效,就无法发动攻击了,这可以从bash的源代码中得到印证。
Linux Shell Shock漏洞利用和实战相关推荐
- android4 设置栈大小,【技术分享】Android内核漏洞利用技术实战:环境搭建栈溢出实战...
[技术分享]Android内核漏洞利用技术实战:环境搭建&栈溢出实战 2017-08-14 16:22:02 阅读:0次 预估稿费:300RMB 投稿方式:发送邮件至linwei#360.cn ...
- ctf安全竞赛入门|漏洞利用、实战练习平台、CTF比赛资源库
一.漏洞利用.实战练习平台 1.WebGoat漏洞练习环境 https://github.com/WebGoat/WebGoat https://github.com/WebGoat/WebGoat- ...
- Linux下堆漏洞利用(off-by-one)
一个字节溢出被称为off-by-one,曾经的一段时间里,off-by-one被认为是不可以利用的,但是后来研究发现在堆上哪怕只有一个字节的溢出也会导致任意代码的执行.同时堆的off-by-one利用 ...
- linux shell脚本,入门到实战详解(二)
三.shell 编程流程控制语句 (点击进入Linux实战课程↑↑) 3.1 if 条件语句介绍 3.1.1 常用的单/双分支 if 条件语句: # If条件判断语句,通常以if开头,fi结尾.也可加 ...
- linux获取字符格式化,Linux 格式化字符串漏洞利用
目的是接觸一些常見的漏洞,增加自己的視野.格式化字符串危害最大的就兩點,一點是leak memory,一點就是可以在內存中寫入數據,簡單來說就是格式化字符串可以進行內存地址的讀寫.下面結合着自己的學習 ...
- linux shell ddos木马,利用Shell 脚本解决DDOS攻击问题
思路:主要利用 awk ,if结构,sort,uniq #!/bin/bash FilePath="access.log" awk '{print $1}' $FilePath | ...
- linux php mysqldump,Linux Shell脚本之利用mysqldump备份MySQL数据库(详细注解)
利用mysqldump命令备份MySQL数据库的脚本(不带注释版,适合生产环境使用) 设计该脚本的一些设计.编写考虑: 利用mysqldump命令备份MySQL数据库的脚本(不带注释版,适合生产环境使 ...
- Linux Shell脚本之利用mysqldump备份MySQL数据库(详细注解)
设计该脚本的一些设计.编写考虑: 该脚本适用于编译安装mysql和通过yum或apt-get等安装方式 该脚本可以反复执行,不会重复覆盖数据 可增加,删除N天前的备份以节省磁盘空间 充分利用mysql ...
- Linux shell 脚本之shift 命令实战
位置参数可以用shift命令左移.比如shift 3表示原来的$4现在变成$1,原来的$5现在变成$2等等,原来的$1.$2.$3丢弃,$0不移动.不带参数的shift命令相当于shift 1. 非常 ...
最新文章
- 神经网络变成小怪兽,还能互相 battle!这款游戏用最简单的方式训练神经网络...
- WPF基础入门2 - WPF窗口类和垂直布局面板基本使用
- 创建虚拟机以及安装Linux操作系统
- 文献记录(part40)--An adversarial human pose estimation network injected with graph structure
- mysql大数据更新缓存_redis缓存mysql
- arduino蓝牙通讯代码_蓝牙4.0模块 无线数据传输模块 无线蓝牙串口 Arduino
- 可到了关键部分的作文
- 3G移动通信技术分析
- java程序利用HttpSessionListener实现统计在线人数(示例代码)
- 微软 Fluent 设计体系, Fluent UI
- 神经网络——基础思想
- 到底如何理解文本?一文读懂命名实体识别(实体消歧和实体统一)
- 计算机网络什么是互联网什么是网速,网速慢是什么原因怎么解决?
- ios开发之使用bundle来管理资源文件
- vue使用高德地图的搜索地址和拖拽选址
- 怎样做优化才能提升网站的SEO排名?
- Java字符串使用Split以竖线作为分隔符
- 微信小程序支付 php后台对接完整代码
- 中国电子邮件的发展史
- 局域网共享工具_Win10创建网络共享文件夹|设置局域网共享文件夹
热门文章
- excel表格横向纵向变换_表格的制作方法
- 20162311 2016-2017-2《程序设计与数据结构》课程总结
- Python学会这一招让你穷游全世界(驴友必备)
- 连接oracle数据库出现“ORA-12541:TNS:无监听程序”解决方法
- 自动化运维平台功能大纲
- 编写CSDN博客,如何去掉插入的图片上的水印
- meb4.0.3(mysql enterprise backup)原理分析
- linux定向查日志_Linux之screen创建、切换、记录屏幕日志
- “yield”关键字有什么作用?
- CSS标准文档流与脱离文档流,成功拿到offer