学校做的网站外面访问不了,给传销做网站,优秀摄影作品欣赏,互联网营销 网站 推荐前言费尽心思上传了webshell#xff0c;上传下载都没问题#xff0c;却发现命令执行总是失败#xff1f;最近也打点也遇到了这些问题#xff0c;网上有部分文章#xff0c;但都是零碎知识点并且实战不一定能用#xff0c;今天就结合我个人经验剖析webshell上线后cmd命令执…前言费尽心思上传了webshell上传下载都没问题却发现命令执行总是失败最近也打点也遇到了这些问题网上有部分文章但都是零碎知识点并且实战不一定能用今天就结合我个人经验剖析webshell上线后cmd命令执行失败的几种常见原因和解决方法有其他方法欢迎在评论区分享交流。命令执行失败场景当你上传webshell执行命令失败时以哥斯拉为例报错一般如下表示不能fork一个进程去调用cmd去执行命令可能是webshell的问题也可能是杀毒软件的问题。1.用编程语言内置命令函数执行命令以php的webshell为例我们可以先查看phpinfo的disable_fuctions选项表示执行命令的函数是否有被禁用的像这张图就是没有禁用任何函数如有禁止的函数会在对应的地方写上禁止的函数如eval(),exec()system()等针对这种情况我们可以梭哈一波把常用的执行函数全部跑一遍一般webshell都会有相应的执行php代码的地方
?php$test1exec(whoami);echo $test1;$test2system(ipconfig);echo $test2;$test3passthru(whoami);echo $test3;$test4shell_exec(net user);echo $test4;
可以看见在这个目标下四个函数都没被禁止通过这种方式不用起cmd也可以执行命令。2 上传cmd或利用平替程序执行命令1.上传自己的cmd有些杀毒软件可能对在webshell下执行本地system32下的cmd.exe有拦截我们可以考虑自己上传一个本地的cmd.exe去执行你可以尝试上传本机的cmd.exe或者自己写一套调用cmd的api这里可以给一段代码参考可以让deepseek自己生成一份另外如果你只是要做信息收集你可以直接执行system32下的netstat.exe、whoami.exe、tasklist.exe并不一定要执行cmd。甚至你可以直接运行你的C2直接跳过执行命令这步在C2上在进行更多的操作这里的prevhost.exe是我的loaderMicrosoft是我设置的一个抗沙箱的参数我在命令行中敲个1目标就会上线到我的cobaltstrike上。2.cmd.exe的平替选项另外cmd.exe还有一些平替的程序如forfile.exe也是可以执行命令的大家可以举一反三自己搜集一下平替程序如mshta.exe、msxsl.exe等等3 利用大马绕过杀软对进程链查杀执行命令有些杀毒软件对进程链查杀是相当严格的比如你在php环境下用冰蝎、哥斯拉等工具去执行一个systeminfo你的进程链是这样的,可以看到是通过webshell的cmd.exe再起一个cmd.exe这里的php-cgi.exe会被部分杀软认为是灰进程IIS下是w3wp.exe在会进程下连续起两个cmd.exe是相当可疑的在有杀软的环境下大概率都会被查杀在这种情况下我们可以通过免杀大马去代替webshell连接工具一是消除掉webshell工具的特征二是减短进程链直接用大马执行命令会少一层cmd.exe。也可以直接利用大马直接上线大马github有很多开源项目deepseek也可以自己生成实战效果都还不错。结语webshell上线之后执行不了命令是红队实战过程中相当常见的问题总结起来无非就是webshell工具、杀软进程链、cmd工具三个方面的问题。以上思路都是个人在实际环境中用到的效果都还可以希望能对师傅们有所帮助。