老早就打算写这样一篇文章:能够细致地反映出入侵中攻防的具体内容,我想这比单纯的技术文章有趣的多。有鉴于此,我将尽力完整描述入侵过程中的思考方式。
1.石榴裙下的kk
说实话,就第一次拿到权限而言,没有多少技术含量。我花了N久时间收集KK网络的各种信息,最终以arp欺骗获取权限。
kk的重要端口配置:ftp-21212;mssql-12345;terminal services-54321;
我们可以看到kk网管是有安全意识的,他把重要的数据端口改成10000以上的高端口,这在入侵之初就让我吃了闭门羹。因为我有个不太好的习惯,第一次扫描端口总是在1-10000内。而以上端口是我某次发狠心扫描1-65000发现的。
有了这个发现,我成功利用cain的arp欺骗功能获得:ftp口令,mssql口令,终端口令
2.webshell下的徘徊
再次证明kk网管对安全的意识就是在webshell环境中的遭遇,我是直接使用ftp上传shell,起初是海阳的2006版,shell没有写权限。
当时还没有嗅到终端口令,我在webshell里考虑着提权的可能性。mssql是2005版的,连接用户权限是db_owner,作为不大。ftp是FileZilla Server这款软件配置的。我之前入侵kk同段server的时候遇到过,这玩意的配置文件默认会泄漏口令,而且是明文的。
但令我失望的是kk网管的专业再次延长了其沦陷的时间。我从他的配置信息里读到32位的md5加密口令,破解失败。
当然我收获了第一步的成功果实,利用数据库管理功能刷了些点,自己爽了一晚上。
3.天堂与地狱的距离仅一步之遥
在我嗅到终端口令后,我一举拿下kk的2台重要server,其中一台是数据服务器。(口令不一样)
我很明白:kk网管很专业,也很勤快,几乎每天都会上来几次。我必须把后门做的隐蔽些。于是我做了较为详细的计划,如下:
a.我上线的时间应该是周末早上(这类成人站点晚上营业,周末早上是最安全的),避开网管
b.两台机子上的后门放置方式应该不一样(防治一台被查出,另一台也挂掉),后门也应该是多道的
c.日志处理要极谨慎
于是我在周六的早上6:00,悄悄登陆,分别做了以下工作。
1.我在有web的服务器上(有多个网站)的几个网站都插了一句话马,在隐蔽目录直接留了马,并修改了时间属性
2.一台机子我做了name$这样的隐藏帐号;而另一台我把sqldebugger用户克隆成administrator
3.我在数据库服务器上放了端口复用后门(后来发现tcp/ip筛选导致我这个后门无法使用)
4.我记录了所有已经获得的口令,并仔细查看了web网站结构,后台登陆口,数据库内的管理帐号(密码是加密的),包含经销商、主播、会员等的数据
5.我清理了曾经用过的程序日志,悄悄退出,并决定不再轻易登陆
6.arp依然是我的一道后门
然而,即便如此,接下来的几天,我都无法阻止权限的丢失。(当然主要暴露原因是我刷库造成的)
先是管理员发现了webshell的存在,他果断的直接使用备份还原。(kk的网站不大)接下来他又觉察到了FTP口令泄密,修改口令,并且做了ip限制。(这是我在后面使用放置在其他站的webshell查看配置文件知道的)。
再接下来,他又对sql端口,终端端口做了ip安全策略,仅允许指定的ip和ip段访问。这样我即使有口令也无可奈何了。
4.领土之争
kk的web脚本是aspx的,原先我留的aspshell总是被他抓到,我于是留了个心眼,藏了几个aspxshell混在里面。果然管理员并没有发现。(后来知道是禁用了asp)
于是我面临这样的处境:
我有一个aspxshell(lake2的)可以运行cmd,一个admin权限的用户口令。
限制是:shell没有写权限,lake2的这款shell连接sql时,遇到非1433端口,无法连接。而我又不能上传新的shell上去。
有人问:你怎么不用nc反弹呢?
kk做了tcp/ip筛选,对tcp端口的出站访问做了严格限制,仅允许80,21212,12345,54321,1935(flash media server).这也是我的端口复用后门失效的原因.(其实端口复用后门不是真正的复用,还是要用到其他端口的)
又有人问:psexec(pstools套件里的这个工具不是可以用吗?)
psexec的运行需要先决条件:即rpc共享开启,需要开启server,workstation服务.(kk的这两个服务是关闭的,而我在shell下是没有权限启动服务的).即便如此我在本地测试的时候都没有成功.
我考虑了3套可行方案:
a.我想到了runas命令可以其他用户身份执行指令,运行程序
b.sql的命令行用法:isql
c.入侵他允许连接的那些ip和ip段中的至少一台,作为跳板进去.(这个列表我已经获得)
最终我成功的2条.
a.runas需要二次交互,直接命令行是无法完成的,需要写脚本,或利用第三方程序.脚本我google到一些例子,本地都没有测试成功.工具也只是听说,无缘得见,本方案失败.
b.isql的用法
isql -S ip,port -U login_id -P pass -d database -Q "SELECT * FROM TABLE"
我翻阅了网上的资料,以上命令是正确的,但我在shell下连接时,却提示“登陆失败”。苦恼许久,最后才发现当pass中含有特殊字符时需要用“”包含起来。这一发现让我顺利的解决刷库问题。
接下来我尝试了猜解sa用户的口令,以期望用此来提升权限。失败
c.当我在第二套方案遇到问题时,我一边在网上翻阅资料,一边尝试了第三套方案。这中间遇到了一个问题。
我成功的拿到一个shell,并且找到了sa口令,本以为事情会很顺利。问题却来了:
内网,我需要上传lcx端口转发工具,才能远程登陆。在我上传的时候,我发现无论我上传什么,都只出现一个21B大小的文件。然后我利用tftp,ftp,vbs下载均告失败。
这个问题困扰了我几天。
后来我想起是不是因为组件的问题,导致我上传文件失败?我浏览了server的程序文件夹发现其安装有另外的上传组件。这坚定了我的判断。于是解决方案也随之出炉了:
我找了一个无组件上传脚本,顺利的解决了文件上传问题。当然这里遇到我们亲爱的瑞星的小小阻扰。(以前瑞星对加壳的文件查杀能力是很弱的,新版这方面有所提升,当然免杀一个lcx并非难事,就此不表)
有了上面的成功,我成功的再次进入kk的服务器。
5.好事多磨
当我得意的用刷库的帐号去网站溜达的时候,却发现我无法正常使用该帐号,总是在连接到它的3号视讯服务器的时候,当掉。更严重的时,几次之后我的ip就会被封锁。
我意识到问题的棘手。通过抓包,我获取了3号视讯服务器的ip。
并再一次成功入侵,这次入侵更有了一些意外收获。我在翻查msn聊天记录的时候,得到很多重要的口令。更对整个公司的运作有了充分的了解。
6.尾声
这场领土之争谈不上谁胜了,而我写此文的目的也不仅是展现一次入侵,更是一次防守。立体的攻防演练,我们不防当作一次黑盒测试。
1.石榴裙下的kk
说实话,就第一次拿到权限而言,没有多少技术含量。我花了N久时间收集KK网络的各种信息,最终以arp欺骗获取权限。
kk的重要端口配置:ftp-21212;mssql-12345;terminal services-54321;
我们可以看到kk网管是有安全意识的,他把重要的数据端口改成10000以上的高端口,这在入侵之初就让我吃了闭门羹。因为我有个不太好的习惯,第一次扫描端口总是在1-10000内。而以上端口是我某次发狠心扫描1-65000发现的。
有了这个发现,我成功利用cain的arp欺骗功能获得:ftp口令,mssql口令,终端口令
2.webshell下的徘徊
再次证明kk网管对安全的意识就是在webshell环境中的遭遇,我是直接使用ftp上传shell,起初是海阳的2006版,shell没有写权限。
当时还没有嗅到终端口令,我在webshell里考虑着提权的可能性。mssql是2005版的,连接用户权限是db_owner,作为不大。ftp是FileZilla Server这款软件配置的。我之前入侵kk同段server的时候遇到过,这玩意的配置文件默认会泄漏口令,而且是明文的。
但令我失望的是kk网管的专业再次延长了其沦陷的时间。我从他的配置信息里读到32位的md5加密口令,破解失败。
当然我收获了第一步的成功果实,利用数据库管理功能刷了些点,自己爽了一晚上。
3.天堂与地狱的距离仅一步之遥
在我嗅到终端口令后,我一举拿下kk的2台重要server,其中一台是数据服务器。(口令不一样)
我很明白:kk网管很专业,也很勤快,几乎每天都会上来几次。我必须把后门做的隐蔽些。于是我做了较为详细的计划,如下:
a.我上线的时间应该是周末早上(这类成人站点晚上营业,周末早上是最安全的),避开网管
b.两台机子上的后门放置方式应该不一样(防治一台被查出,另一台也挂掉),后门也应该是多道的
c.日志处理要极谨慎
于是我在周六的早上6:00,悄悄登陆,分别做了以下工作。
1.我在有web的服务器上(有多个网站)的几个网站都插了一句话马,在隐蔽目录直接留了马,并修改了时间属性
2.一台机子我做了name$这样的隐藏帐号;而另一台我把sqldebugger用户克隆成administrator
3.我在数据库服务器上放了端口复用后门(后来发现tcp/ip筛选导致我这个后门无法使用)
4.我记录了所有已经获得的口令,并仔细查看了web网站结构,后台登陆口,数据库内的管理帐号(密码是加密的),包含经销商、主播、会员等的数据
5.我清理了曾经用过的程序日志,悄悄退出,并决定不再轻易登陆
6.arp依然是我的一道后门
然而,即便如此,接下来的几天,我都无法阻止权限的丢失。(当然主要暴露原因是我刷库造成的)
先是管理员发现了webshell的存在,他果断的直接使用备份还原。(kk的网站不大)接下来他又觉察到了FTP口令泄密,修改口令,并且做了ip限制。(这是我在后面使用放置在其他站的webshell查看配置文件知道的)。
再接下来,他又对sql端口,终端端口做了ip安全策略,仅允许指定的ip和ip段访问。这样我即使有口令也无可奈何了。
4.领土之争
kk的web脚本是aspx的,原先我留的aspshell总是被他抓到,我于是留了个心眼,藏了几个aspxshell混在里面。果然管理员并没有发现。(后来知道是禁用了asp)
于是我面临这样的处境:
我有一个aspxshell(lake2的)可以运行cmd,一个admin权限的用户口令。
限制是:shell没有写权限,lake2的这款shell连接sql时,遇到非1433端口,无法连接。而我又不能上传新的shell上去。
有人问:你怎么不用nc反弹呢?
kk做了tcp/ip筛选,对tcp端口的出站访问做了严格限制,仅允许80,21212,12345,54321,1935(flash media server).这也是我的端口复用后门失效的原因.(其实端口复用后门不是真正的复用,还是要用到其他端口的)
又有人问:psexec(pstools套件里的这个工具不是可以用吗?)
psexec的运行需要先决条件:即rpc共享开启,需要开启server,workstation服务.(kk的这两个服务是关闭的,而我在shell下是没有权限启动服务的).即便如此我在本地测试的时候都没有成功.
我考虑了3套可行方案:
a.我想到了runas命令可以其他用户身份执行指令,运行程序
b.sql的命令行用法:isql
c.入侵他允许连接的那些ip和ip段中的至少一台,作为跳板进去.(这个列表我已经获得)
最终我成功的2条.
a.runas需要二次交互,直接命令行是无法完成的,需要写脚本,或利用第三方程序.脚本我google到一些例子,本地都没有测试成功.工具也只是听说,无缘得见,本方案失败.
b.isql的用法
isql -S ip,port -U login_id -P pass -d database -Q "SELECT * FROM TABLE"
我翻阅了网上的资料,以上命令是正确的,但我在shell下连接时,却提示“登陆失败”。苦恼许久,最后才发现当pass中含有特殊字符时需要用“”包含起来。这一发现让我顺利的解决刷库问题。
接下来我尝试了猜解sa用户的口令,以期望用此来提升权限。失败
c.当我在第二套方案遇到问题时,我一边在网上翻阅资料,一边尝试了第三套方案。这中间遇到了一个问题。
我成功的拿到一个shell,并且找到了sa口令,本以为事情会很顺利。问题却来了:
内网,我需要上传lcx端口转发工具,才能远程登陆。在我上传的时候,我发现无论我上传什么,都只出现一个21B大小的文件。然后我利用tftp,ftp,vbs下载均告失败。
这个问题困扰了我几天。
后来我想起是不是因为组件的问题,导致我上传文件失败?我浏览了server的程序文件夹发现其安装有另外的上传组件。这坚定了我的判断。于是解决方案也随之出炉了:
我找了一个无组件上传脚本,顺利的解决了文件上传问题。当然这里遇到我们亲爱的瑞星的小小阻扰。(以前瑞星对加壳的文件查杀能力是很弱的,新版这方面有所提升,当然免杀一个lcx并非难事,就此不表)
有了上面的成功,我成功的再次进入kk的服务器。
5.好事多磨
当我得意的用刷库的帐号去网站溜达的时候,却发现我无法正常使用该帐号,总是在连接到它的3号视讯服务器的时候,当掉。更严重的时,几次之后我的ip就会被封锁。
我意识到问题的棘手。通过抓包,我获取了3号视讯服务器的ip。
并再一次成功入侵,这次入侵更有了一些意外收获。我在翻查msn聊天记录的时候,得到很多重要的口令。更对整个公司的运作有了充分的了解。
6.尾声
这场领土之争谈不上谁胜了,而我写此文的目的也不仅是展现一次入侵,更是一次防守。立体的攻防演练,我们不防当作一次黑盒测试。
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
本文地址:/websafe/jbgongfang/149087.html