2009年2月20日星期五

一次糟糕的渗透网站历程

前阵子,尝试渗透一国外站点。又把过去的很多知识梳理了一遍,都是老调重弹了。不过还是发出来吧,我觉得比较有代表性。目标站点http://www.lewt.com/是一家卖游戏币的网站。这年头,此类站点比较火暴,一般商业价值比较高。关于站点不多做解释了,直接讨论技术了。 首先ping http://www.lewt.com/ ,获取了下此站点的IP地址,如图:


得到目标 IP 72.32.155.139 目标大概在美国德州的样子。个人感觉这应该属于机房的IP,初步扫描了下端口,开放3306以及80,然后打开主页简单看了下。判断为LAMP架构 LINUX+APACHE+MYSQL+PHP,首先扫描了下目标主机是否存在缓冲区溢出漏洞,呵呵。补丁打的不错,这里不得不说,国外管理员的安全意识就是比国内管理员的安全意识要高的多。象国内的LINUX一般都是批量溢出的.......自己手里没什么0DAY,直接拿ROOT有一定难度,此路不通,换种思想。 看看WEB上有什么漏洞,直接点了个新闻页面提交个单引号看看,http://www.lewt.com/index.php?cp=site_news&id=40 呵呵 直接提示报错。有门,暴出了网站路径以及当前的表名。如图:



这就意味着可能存在注入漏洞,因为显然此网站的PHP.INI中的magic_quotes_gpc=off,这样没有过滤了敏感字符,导致注入漏洞的形成。再进一步,由于ID=40,这显然是个数字型注入漏洞。在URL后面提交 and 1=1 与and 1=2分别返回了正常和错误的页面。确定此页面确实存在注入漏洞,继续 下一步判定MYSQL的版本。在URL提交 and ord(mid(version(),1,1))>51 /* ,看下MYSQL版本是否在3.0以上,如果是3.0以上的版本就支持union查询,接下来渗透就方便多了。 结果返回了正常的页面,如图:




看来MYSQL的版本是3.0以上的。既然支持union查询,直接提交 order by 10 /* ,返回了错误的页面 ,看来子段是小于10的,提交 order by 5 /* 返回正常,最终确定字段个数为8。其实开始提交单引号的时候就暴出了字段,没注意。走了弯路了,接着提交and 1=2 union select 1,2,3,4,5,6,7,8 /* ,如图:



终于见到了可以显示信息的可爱数字。 下来就可以暴一些敏感信息:user(),version(),database()。替换掉2,3的位置 用来暴敏感信息。然后得到: user()=lewt@192.168.1.177 version()=4.1.22 database()=lewt 如果数据库是以ROOT权限连接的,直接loadfile( )就可以了,不过事与愿违。确实不能loadfile的,意料之中。如果这个网站以root连接的话,恐怕早被搞了。 此路不通,那继续,看看能不能找到网站的后来www.lewt.com/admin ,直接返回了管理员登陆页面,看来运气还真不错。下来就得猜测管理员表了,通过news的表,看出来管理员还是比较有心计的。没有采用什么通用的表名,这样工具直接猜解是不可能的。接下来,自己简单做了个字典,下来用软件慢慢跑吧。 经过一天多的努力,终于获取了这个网站的管理员表名为admins。查看原代码,得到管理员的字段名为login,以及password.

直接提交and 1=2 union select 1,login,password,4,5,6,7,8 from admins /* 得到管理员的帐号,以及密码。管理员帐号为 jesse 密码 ©³Ã4˜é5V•˜¨<¥­2^。 sigh:密码竟然是被加密,以乱码的形式存放在数据库中的,呵呵,解乱码不是我的专长,就把得到的东西丢给了朋友去搞了,这样入侵到这里就算是告一段落了。在得到密码后,直接登陆后台,获取一个webshell,拿下整个网站不是什么难事。

2009年2月19日星期四

浅谈3大主流盗号木马技术

基本上所有人对木马的感觉就是窃取资料和控制计算机,也把木马基本统称为一类。市面上很多人都是提出XXX方法可以防范木马。孰不知,不同的木马编写方式其防范方法也有不同。接触这个圈子也不算短了,从2001年的中美黑客大战到05年后的黑客商业圈。人生百态,不得不使人唏嘘感叹啊,这里就对木马盗号方面的技术来一起见证黑客后门技术的发展历史吧。

2000~2002年,此时正式WINDOWS开始深入到千家万户的时候。从WIN95到WIN98,再到WINXP这是历史的变迁,同时网络也由传统的“猫”到ISDN,再到ADSL,互连网也在异常迅猛的发展。扯远了。。。这时候木马还比较单一,基本就是偷个邮箱号啊,盗QQ号什么的。2001年左右正是QQ最火热的时候,很难注册到不说,还开始出现了付费注册的局面。于是忽,盗QQ似乎成为一种时尚。那时候最喜欢看的就是,所谓的“大牛”们在论坛秀出一列列盗来的QQ号。呵呵,这时候木马主要都采取键盘记录的形式编写的。当时WIN32编程才刚刚流行起来,基本大部分程序员都停留在学习和使用API函数的地步,当时抄的最火热的就是“钩子”,虽然古老,但是其简易性现在还有大量的黑软在编写的时候采取此种方式。当时最流行的就是做一个键盘钩子,这样键盘在执行什么操作后,都会被记录下来。从而达到记录密码的作用。当然,如果把密码复制粘贴了,就很难办了。

2002~2004年,这时候最流行的就是远程线程注入,利用API函数来获取窗口句柄,然后根据WINDOWS的消息机制来获取窗口对话框的内容,从而达到截获密码的作用。其原理也不复杂,一般都是通过FindWindowEx()先获取密码窗口的句柄,然后提交例如WM_GETTEXT消息来获取窗口的帐号密码,但是有攻就有防,后来的一些游戏和软件上。过滤了从外部提交WM_GETTEXT这样的消息响应函数,于是,远程线程注入又发展起来。就是把木马的线程注入到程序本身的进程中去,从而达到盗取密码的目的。但是,后台的发展是窗口对话框禁止一切外部函数的提交,从而达到保护密码不被盗取的目的。但是技术依然在发现,因此,现在主流的盗号技术就产生了。

2005~ 由于程序本身对自身对话框的保护,木马似乎很难从程序中获取资料信息了。因此,反汇编技术在这里发挥了极大的作用。其原理就是,获取对话框控件在内存中的物理地址,然后在判断输入完帐号密码后,直接读取内存地址的具体数值,来获取帐号密码。这样的技术对黑客程序员自身素质也要求比较高,他要求最少精通一门高级语言的编程,尤其是WIN32/64内核的系统编程。其次,还要非常熟悉汇编的指令代码,对破解程序有一定的要求。因此,此类木马的门槛也比较高,据我所知。国内能写这样木马的人,是少之又少。写这篇文章,就当为以后各种技术做一铺垫,闲聊帖。

2009年2月13日星期五

隐形后门的技术HOOK SSDT

现在杀毒软件可以说对常规病毒的查杀非常完美了,无论是启发式杀毒还是特征杀毒,再或者是主动防御.基本上以前通用的病毒编写技术都被杀毒软件盯上了.为了躲避杀毒软件的查杀,以及使自己的后门更加强壮.那么就需要从RING3下进入RING0,HOOK SSDT来加载驱动是个不错的方法.

但是杀毒软件也盯上了这一块,为了防止病毒木马加载驱动,一般都采用ring0 inline hook来防止SSDT被HOOK.那么是不是就没有办法HOOK了呢?答案显然是否定的,目前有2种主流办法,一种是暴力结束杀毒软件,一种是通过替换系统内核来实现.暴力破坏杀毒软件对系统的损害是很大,一般就不得不重做系统.所以这里来说下第2种方案.以前堕落天才写过篇很经典的,这里就温故知新吧.

以NtOpenProcess为例,就是MyNtOpenProcess。然后修改SSDT表,让系统服务进入自己的函数MyNtOpenProcess。而MyNtOpenProcess要做的事就是,实现NtOpenProcess前10字节指令,然后再JMP到原来的NtOpenProcess的十字节后。这样NtOpenProcess函数头写的JMP都失效了,在ring3直接调用OpenProcess再也毫无影响。







2009年2月11日星期三

分析下QQ短信签名的QQ尾巴

无法查看这则摘要。请 点击此处查看博文。

2009年2月10日星期二

分析下牛年最新病毒"犇牛"

新年刚过,互连网和媒体就大肆报道一款名为"犇牛"的木马下载者到处传播.一时间,风声鹤唳,今天简单跑了下"犇牛".发现除了一般的关闭杀软,驱动写入,下载大量木马的功能外,多了项新能力,就是感染RAR文件,被传的神忽其神,什么杀毒软件无法彻底查杀干净,需要彻底全盘通格的屁话飞的满天都是,这里要说下,由于RAR文件不属于正常范畴的PE文件,杀毒软件在查杀的过程中自然会放弃对RAR文件的检查,开始还想,如果直接修改RAR的文件格式,增加一个区段,写入病毒代码.从而达到病毒被执行的目的,后来想了想,这就破坏了RAR文件的格式啊,会导致RAR文件损坏啊.后来,简单分析了下,恍然大悟,他原来还是靠打开RAR文件,对RAR里面本身的文件进行感染,然后在压缩,这样到是象足了感染RAR文件,嘿嘿,反正闲着也是闲着,下午就自己搞了个感染RAR文件的代码.嘿嘿,我就不CTRL+C和CTRL+V了,省的有人拿去造病毒,就成我的错类.直接发图片,在VC++6.0编译通过.



2009年2月8日星期日

谈如今的病毒和木马到底有没有技术含量

PS:无意间从黑吧看到的,有的地方我不赞同,不过还是把原文法出来,功过是非,自有人评!内容啥的我都没改。

最近半年了,从媒体恶炒的“熊猫烧香”开始,到最新的“AV终结者”,媒体、公众、网络上吵得风风火火,如此如此厉害之类的,我只是默默的下载上来,加以研究,然后归类,最后总结出来的结果就是:此类东西,根本毫无技术可言!

  1.从感染的途径说起:我看除了网页下载(含压缩包或者执行程序打包)和可移动磁盘(俗称:U盘)外,几乎没有第三种感染途径了.

  2.从感染的源头说起:除了部分可能是高手们通过隐匿的方法埋的以外,其它几乎清一色的都是注入动态网页.

  3.从被感染者说起:几乎都不打微软更新补丁,并且没有良好的安全意识的群体.
  以上三点,我下面加以详细说明.
 1.可移动磁盘感染,几乎无一例外都是使用了AUTORUN,这个方法.而且源代码都非常的统一:

[AutoRun]OPEN=setup.exe
shellexecute=setup.exe
shell打开(&O)command=setup.exe
shellexecute=setup.exe
shell资源管理器(&O)command=setup.exe

  开个玩笑说的话,如果换做是我写这东西,我一定做一个特生动的图标,然后我会很容易的加入一行:  icon=XXXX.ico
  进去,即使做,也要做得好看,不要太没技术水平.
  可是呢?我们亲爱的作者们,却是一味的抄袭,不思进取,连我说的这么简单的东西也没有实现.可见作者群的质素和能力的极端低下.

2. 网页感染,几乎都是JS和IFRAME注入式的嵌套加载,而且用的全部都是MS-06014和MS-07017这两个老旧的漏洞来实现的,极少使用了ANI的exploit,但是也无任何技术含量.我都在怀疑,你只需要打足我提到的这三个补丁,几乎可以安全的防范大半的网页注入式木马了.

  3.网页被注入,我看网页能被注入的一大半都是ASP的,少数是PHP的,而最终的原因都是服务器管理员,自身根本没有意识到自己的服务器是否存在安全漏洞,并且对权限设置方面,没有任何的了解.UNIX下直接给予777,WIN下直接完全控制的之类,甚至连口令干脆为空或者就是123或者ADMIN之类的弱口令,这不是等着让别人到你服务器上来乱搞一气??特别是G0vernment类的网站,我看那些管理员根本就是吃干饭的.

  以上的说法,并不是说我自己怎么怎么厉害了,只是我从客观的方面谈论一下这个罢了,如果您不信,以下的情况你是否有考虑到?所谓病毒木马的作者们?
  1.上面的AUTORUN,如果遇到一个非简体中文的系统,会是什么情况?
  2.如果一个打足了补丁的WIN系统,你们有办法实现木马下载么?
  3.如果一台WIN系统,禁止了ACTIVEX下载的功能,你又有办法实现自动下载么?
  4.如果一台服务器的网站使用全HTML静态页,权限设定得当,后台按一定时间自动更新静态页,你又能如何去注入?
  5.退一万步,即使这些东西都下载到机器上,你在非中文的系统下能正常运行么?
  呵呵~~如果以上的情况都没有考虑过的话,只能说明你根本不成熟,不具备病毒的任何特性.  杀毒软件厂商在商业的驱动下,也开始了一步一步的退化,也变得越来越脆弱.

  瑞星:估计一个简单的 ICE SWORD 就能让他彻底闭上那狮子嘴了
  金山:可能 WINDOWS 的 Processs kill 就能让他挂了
  江民:可能非 WINDOWS 的进程管理器,足以让他死掉
  卡巴:5.0还好一点,6.0估计一个简单的 DATE 这个 DOS 命令足以让他致命
  360:如果我将注册表编辑器禁止了,或者改名了,好像它什么事也做不了了吧
  其它的我也不好说什么了.

  如果丢开那些杀软,WINDOWS 自带命令组合,也足够让上面那些中这木马的人,心头发麻,杀软肯定也是不会提供任何可疑操作.

  举个例子:  cacls 这个权限操作命令,如果我将你的 %TEMP% 这个目录变量定成了任何人无权访问,结果会如何?

  taskkill 这个杀进程命令,如果我指令专杀你的EXPLORER.EXE进程,这个又会怎么样?  更狠一点的: del *.* /s /q 这个呢? 是不是你又准备将硬盘查个底朝天???

  其实前几天一直也和有这里发文的YKSOFT,讨论这些事情,我们想像的东西,可能比目前的举更为可怕,但是,一直却没有人去实现.我们自己测试,也基本上以成功而放弃.

  呵呵,~~其实这些简单的组合都被它们忽略了. 

 综上所述:想真正做到不被人欺骗,能自己手工处理这些事情,能好好看清所谓的“技术”,还请自己给自己好好补上一些基础课.不要认为会用,就是会维护;不要认为理解了,就不去深入研究.

  不要怕摔倒,哪里摔倒,就从怕爬起来!这才是真正你要做到的事.

  谢谢各位看完我这些乱七八糟的话,我不是学文的,能力有限,希望大家能理解,只是我想把这些道理说清楚一点,不要做某些事情而迷茫了自己的双眼.

2009年2月7日星期六

WOW帐号安全专题(六) 认识和分析系统进程

最基本的系统进程(也就是说,这些进程是系统运行的基本条件,有了这些进程,系统就能正常运行)
smss.exe Session Manager csrss.exe 子系统服务器进程

winlogon.exe 管理用户登录

services.exe 包含很多系统服务

lsass.exe 管理 IP 安全策略以及启动 ISAKMP/Oakley (IKE) 和 IP 安全驱动程序。(系统服务) 产生会话密钥以及授予用于交互式客户/服务器验证的服务凭据(ticket)。(系统服务) ->netlogon

svchost.exe 包含很多系统服务 !!!->eventsystem,
(SPOOLSV.EXE 将文件加载到内存中以便迟后打印。)
explorer.exe 资源管理器
(internat.exe 托盘区的拼音图标) ==================================================================== 附加的系统进程(这些进程不是必要的,你可以根据需要通过服务管理器来增加或减少)

mstask.exe 允许程序在指定时间运行。(系统服务)->schedule

regsvc.exe 允许远程注册表操作。(系统服务)->remoteregister

winmgmt.exe 提供系统管理信息(系统服务)。

inetinfo.exe->msftpsvc,w3svc,iisadmn

tlntsvr.exe->tlnrsvr tftpd.exe 实现 TFTP Internet 标准。该标准不要求用户名和密码。远程安装服务的一部分。(系统服务)

termsrv.exe ->termservice

dns.exe 应答对域名系统(DNS)名称的查询和更新请求。(系统服务) ================================================================= 以下全是系统服务,并且很少会用到,如果你暂时用不着,应该关掉(对安全有害 )

tcpsvcs.exe 提供在 PXE 可远程启动客户计算机上远程安装 Windows 2000 Professional 的能力。(系统服务)->simptcp

支持以下 TCP/IP 服务:Character Generator, Daytime, Discard, Echo, 以及 Quote of the Day。(系统服务)

ismserv.exe 允许在 Windows Advanced Server 站点间发送和接收消息。(系统服务)

ups.exe 管理连接到计算机的不间断电源(UPS)。(系统服务)

wins.exe 为注册和解析 NetBIOS 型名称的 TCP/IP 客户提供 NetBIOS 名称服务。(系统服务)

llssrv.exe License Logging Service(system service) ntfrs.exe 在多个服务器间维护文件目录内容的文件同步。(系统服务)

RsSub.exe 控制用来远程储存数据的媒体。(系统服务)

locator.exe 管理 RPC 名称服务数据库.->rpclocator(区 RpcSs)

lserver.exe 注册客户端许可证。(系统服务)

dfssvc.exe 管理分布于局域网或广域网的逻辑卷。(系统服务)

clipsrv.exe 支持“剪贴簿查看器”,以便可以从远程剪贴簿查阅剪贴页面。(系统服务)

msdtc.exe 并列事务,是分布于两个以上的数据库,消息队列,文件系统,或其它事务保护资源管理器。(系统服务)

faxsvc.exe 帮助您发送和接收传真。(系统服务)

cisvc.exe Indexing Service(system service)!!!

dmadmin.exe 磁盘管理请求的系统管理服务。(系统服务)

mnmsrvc.exe 允许有权限的用户使用 NetMeeting 远程访问 Windows 桌面。(系统服务)

netdde.exe 提供动态数据交换 (DDE) 的网络传输和安全特性。(系统服务)

smlogsvc.exe 配置性能日志和警报。(系统服务)

rsvp.exe 为依赖质量服务(QoS)的程序和控制应用程序提供网络信号和本地通信控制安装功能。(系统服务)

RsEng.exe 协调用来储存不常用数据的服务和管理工具。(系统服务) RsFsa.exe 管理远程储存的文件的操作。(系统服务)

grovel.exe 扫描零备份存储(SIS)卷上的重复文件,并且将重复文件指向一个数据存储点,以节省磁盘空间。(系统服务)

SCardSvr.exe 对插入在计算机智能卡阅读器中的智能卡进行管理和访问控制。(系统服务)

snmp.exe 包含代理程序可以监视网络设备的活动并且向网络控制台工作站汇报。(系统服务)

snmptrap.exe 接收由本地或远程 SNMP 代理程序产生的陷阱消息,然后将消息传递到运行在这台计算机上 SNMP 管理程序。(系统服务)

UtilMan.exe 从一个窗口中启动和配置辅助工具。(系统服务)

msiexec.exe 依据 .MSI 文件中包含的命令来安装、修复以及删除软件。(系统服务)

总结: 发现可疑进程的秘诀就是要多看任务管理器中的进程列表,看多了以后,一眼就可以发现可疑进程,就象 找一群熟悉人中的陌生人一样。
51La