Linux性能测试UnixBench一键脚本

作者 https://teddysun.com/245.html

一键测试脚本bench.sh

作者 https://teddysun.com/444.html

## bench-sh-2

https://github.com/hidden-refuge/bench-sh-2

0x00 实验目的

根据文章”PHP绕过open_basedir列目录的研究”通过测试不同的配置验证本文的绕过basedir的方法是否有效,从而安全配置php open_basedir的目的.
文中后面几个方法都是windwos下采用枚举的方式列出目录,linux下需要做暴力猜解的方式才可以,所以不做测试.

测试”DirectoryIterator + Glob”方式是否可以绕过open_basedir
测试webshell工具”菜刀”是否可以绕过open_basedir

0x01 实验环境

nginx + PHP 5.6.7 fastcgi模式, centos7 linux
目前配置open_basedir有三处地方php-fpm.conf,nginx fastcgi_param,php.ini
下面逐一测试

0x02 测试详细

只在php-fpm.conf中配置

结果

open_basedir的目录以外不能读,不能写,不过DirectoryIterator + Glob 可以成功列出全盘文件

菜刀不可跨出basedir

 

只在nginx的fastcgi_param配置

这里的”$document_root”是nginx中的变量,为nginx的每个server里的root目录
比如server www.iamle.com配置的root目录为/home/wwwroot/www.iamle.com

认真读php手册有下面这段话
PHP配置值通过 php_value 或者 php_flag 设置,并且会覆盖以前的值。
请注意 disable_functions 或者 disable_classes 在 php.ini 之中定义的值不会被覆盖掉,但是会将新的设置附加在原有值的后面。
使用 php_admin_value 或者 php_admin_flag 定义的值,不能被 PHP
代码中的 ini_set() 覆盖。自 5.3.3 起,也可以通过 web 服务器设置
PHP 的设定。也就是nignx中fastcgi_param配置php的配置
php_flag用来专门设置布尔值,如on, off, 1, 0, true, false, yes, no,
而php_value用来设置所有类型的值

结果和上面一样

open_basedir的目录以外不能读,不能写,不过DirectoryIterator + Glob 可以成功列出全盘文件

菜刀不可跨出basedir

 

只在php.ini配置

意思是当HOST=www.iamle.com设置open_basedir,当PATH=/home/wwwroot/www.iamle.com/

设置open_basedir,我测试的时候2个任意设置一个都是有效的

结果和上面一样

open_basedir的目录以外不能读,不能写,不过DirectoryIterator + Glob 可以成功列出全盘文件

菜刀不可跨出basedir

 

0x03 个人结论

DirectoryIterator + Glob的方式可以列出php服务器上所有文件,看似没什么危害,实际上对于长期的APT绝对有帮助.
open_basedir不是想象的那么安全,说不定别人手上有甚至有能读写open_basedir的0day

0x04 个人推荐的nginx + php(fastcgi fpm-php)(lnmp) open_basedir的配置

先设置fpm-php中pool池中的总open_basedir这叫顶层设计,有个总限制,比如统一限制到/home/wwwroot/这样的web目录下
再对nginx中单个server 通过 fastcgi_param PHP_ADMIN_VALUE 设置
再对php.ini设置 [HOST=XXX] [PATH=XXX]
三管齐下妈妈再也不用担心我的php open_basedir了(希望吧)
虽然很啰嗦,但是这样岂不是更放心
总而言之就是下面的结果,我就是下面这种啰嗦的配置

 

 

测试中还发现这三个地方配置的优先级如下

“php.ini” > “nginx fastcgi fastcgi_param” > “php-fpm.conf”

 

如果有错误欢迎大家留言斧正,感谢!

 

0x05 参考文档

PHP绕过open_basedir列目录的研究
open_basedir bypass exploit
php-fpm.conf 全局配置段
php.ini HOST PATH配置

检查是否有 linux bash的ShellShock系列漏洞

ShellShock系列漏洞包含有

CVE-2014-6271

CVE-2014-7169

CVE-2014-7186

CVE-2014-7187

CVE-2014-6277

CVE-2014-6278

 

检查是否有ShellShock系列漏洞

有漏洞显示为

shellshock20141011151023

 

检查方式任选1

检查方式1

在 bash 中输入如下命令可以检测是否受影响:如果显示You are vulnerable,很遗憾,必须立即打上安全补丁修复

检查方式2

在 bash 中输入如下命令可以检测是否受影响:如输出 vulnerable,很遗憾,必须立即打上安全补丁修复

 

修复bash ShellShock系列漏洞

包管理器更新bash版本即可

修复后检查

 

shellshock20141011151102

参考

Bash Code Injection Vulnerability via Specially Crafted Environment Variables (CVE-2014-6271)

Resolution for Bash Code Injection Vulnerability via Specially Crafted Environment Variables (CVE-2014-6271) in Red Hat Enterprise Linux

CVE-2014-6271: remote code execution through bash

Bash 远程任意代码执行安全漏洞(最严重漏洞)

centos7没有ifconfig怎么看ip?

ip addr  #看网卡接口和ip

ip addr add 10.8.8.2.24 dev  网卡名  #临时加ip

centos7没有netstat怎么看网络连接?

ss -ano #看网络连接状态

ss -anl #看网络监听状态

centos7怎么看某个tcp端口是什么进程开的,这个进程的pid是多少?

lsof -i:22 #看tcp22端口

centos7用systemd替换了SysV没有service了改用systemctl后怎么看当前的服务项?

systemctl list-unit-files |grep enabled  #查看当前启用的服务。

systemctl disable 服务名称   #禁止某服务

 

centos7 怎么打开http  tcp 80端口?

 

(Linux)的提权是怎么一回事:

系统类型

系统是什么版本?

它的内核版本是什么?

它的环境变量里有些什么?

是否有台打印机?

应用与服务

正在运行什么服务?什么样的服务具有什么用户权限?

哪些服务具有root的权限?这些服务里你看起来那些有漏洞,进行再次检查!

安装了哪些应用程序?他们是什么版本?哪些是当前正在运行的?

Service设置,有任何的错误配置吗?是否有任何(脆弱的)的插件?

主机上有哪些工作计划?

主机上可能有哪些纯文本用户名和密码?

通信与网络

NIC(s),系统有哪些?它是连接到哪一个网络?

网络配置设置是什么?网络中有什么样的服务器?DHCP服务器?DNS服务器?网关?

其他用户主机与系统的通信?

缓存?IP和/或MAC地址?

数据包可能嗅探吗?可以看出什么?监听流量

你如何get一个shell?你如何与系统进行交互?

如何端口转发?(端口重定向)

# rinetd

# fpipe

#ssh

#mknod

mknod

建立隧道可能吗?本地,远程发送命令

秘密信息和用户

你是谁?哪个id登录?谁已经登录?还有谁在这里?谁可以做什么呢?

可以找到什么敏感文件?

什么有趣的文件在home/directorie(S)里?如果有权限访问

是否有任何密码,脚本,数据库,配置文件或日志文件?密码默认路径和位置

用户做过什么?是否有任何密码呢?他们有没有编辑什么?

可以找到什么样的用户信息

private-key 信息能否被发现?

文件系统

哪些用户可以写配置文件在/ etc /?能够重新配置服务?

在/ var /有什么可以发现?

网站上的任何隐藏配置/文件?配置文件与数据库信息?

有什么在日志文件里?(什么能够帮助到“本地文件包含”?)

auth.log, boot, btmp, daemon.log, debug, dmesg, kern.log, mail.info,

mail.log, mail.warn, messages, syslog, udev, wtmp(有什么文件?log.系统引导……)

如果命令限制,你可以打出哪些突破它的限制?

如何安装文件系统?

是否有挂载的文件系统?

什么是高级Linux文件权限使用?Sticky bits, SUID 和GUID

在哪些目录可以写入和执行呢?几个“共同”的目录:/ tmp目录,/var / tmp目录/ dev /shm目录

准备和查找漏洞利用代码

安装了什么开发工具/语言/支持?

如何上传文件?

查找exploit代码

http://www.exploit-db.com

http://1337day.com

http://www.securiteam.com

http://www.securityfocus.com

http://www.exploitsearch.net

http://metasploit.com/modules/

http://securityreason.com

http://seclists.org/fulldisclosure/

http://www.google.com

查找更多有关漏洞的信息

http://www.cvedetails.com

http://packetstormsecurity.org/files/cve/[CVE]

http://cve.mitre.org/cgi-bin/cvename.cgi?name=[CVE]]http://cve.mitre.org/cgi-bin/cvename.cgi?name=[CVE]

http://www.vulnview.com/cve-details.php?cvename=[CVE]]http://www.vulnview.com/cve-details.php?cvename=[CVE]

http://www.91ri.org/

(快速)“共同的“exploit,预编译二进制代码文件

http://tarantula.by.ru/localroot/

http://www.kecepatan.66ghz.com/file/local-root-exploit-priv9/

上面的信息很难吗?

快去使用第三方脚本/工具来试试吧!

系统怎么打内核,操作系统,所有应用程序,插件和Web服务的最新补丁?

服务运行所需的最低的权限?

例如,你需要以root身份运行MySQL?

能够从以下网站找到自动运行的脚本?!

http://pentestmonkey.net/tools/unix-privesc-check/

http://labs.portcullis.co.uk/application/enum4linux/

http://bastille-linux.sourceforge.net

(快速)指南和链接

例如

http://www.0daysecurity.com/penetration-testing/enumeration.html

http://www.microloft.co.uk/hacking/hacking3.htm

其他

http://jon.oberheide.org/files/stackjacking-infiltrate11.pdf

http://pentest.cryptocity.net/files/clientsides/post_exploitation_fall09.pdf

http://insidetrust.blogspot.com/2011/04/quick-guide-to-linux-privilege.html

文章中文来源: http://www.91ri.org/7459.html

英文原文:http://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/

1、aide介绍

AIDE(Adevanced Intrusion Detection Environment,高级入侵检测环境)是个入侵检测工具,主要用途是检查文本的完整性。

AIDE能够构造一个指定文档的数据库,他使用aide.conf作为其配置文档。AIDE数据库能够保存文档的各种属性,包括:权限(permission)、索引节点序号(inode number)、所属用户(user)、所属用户组(group)、文档大小、最后修改时间(mtime)、创建时间(ctime)、最后访问时间(atime)、增加的大小连同连接数。AIDE还能够使用下列算法:sha1、md5、rmd160、tiger,以密文形式建立每个文档的校验码或散列号。

常见的入侵检测软件: tripwire–操作比较复杂,aide–用以代替tripwire,比较简单.

2、aide安装 配置使用

#yum rpm二进制安装

yum -y install aide

我的配置文件
mv /etc/aide.conf /etc/aide.conf.bak
vim /etc/aide.conf

 

-C参数和 –check是一个意思
-V 报告的详细程度可以通过-V选项来调控,级别为0-255, -V0 最简略,-V255 最详细。
[root@dev ~]# aide –help
Aide 0.14
Usage: aide [options] command
Commands:
  -i, –initInitialize the database
  -C, –checkCheck the database
  -u, –updateCheck and update the database non-interactively
      –compareCompare two databases
Miscellaneous:
  -D, –config-checkTest the configuration file
  -v, –versionShow version of AIDE and compilation options
  -h, –helpShow this help message
Options:
  -c [cfgfile]–config=[cfgfile]Get config options from [cfgfile]
  -B “OPTION”–before=”OPTION”Before configuration file is read define OPTION
  -A “OPTION”–after=”OPTION”After configuration file is read define OPTION
  -r [reporter]–report=[reporter]Write report output to [reporter] url
  -V[level]–verbose=[level]Set debug message level to [level]

4、使用中遇到的问题 错误

执行 /usr/sbin/aide -c /etc/aide.conf –init 或者 aide -i 后报错

lgetfilecon_raw failed for /var/log/yum.log:No data available
lgetfilecon_raw failed for /var/log/messages.2:No data available
lgetfilecon_raw failed for /var/log/cron:No data available
lgetfilecon_raw failed for /var/log/messages.3:No data available
lgetfilecon_raw failed for /var/log/messages.1:No data available
lgetfilecon_raw failed for /var/log/sdsvrd.log:No data available
lgetfilecon_raw failed for /var/log/spooler.3:No data available
lgetfilecon_raw failed for /var/log/cron.3:No data available
lgetfilecon_raw failed for /var/log/cron.1:No data available
lgetfilecon_raw failed for /var/log/sdupdate.log:No data available
lgetfilecon_raw failed for /var/log/rsyncd.log:No data available
lgetfilecon_raw failed for /var/log/maillog.3:No data available
lgetfilecon_raw failed for /var/log/rpmpkgs.3:No data available
lgetfilecon_raw failed for /var/log/pm/suspend.log:No data available
lgetfilecon_raw failed for /var/log/prelink/prelink.log:No data available

以下配置项改为如下.

参考来源:How to Fix Aide “lgetfilecon_raw failed for / : No data available” errors

5、参考

AIDE –Linux高级入侵检测 http://gupt12.blog.51cto.com/7651206/1263183