当前位置:首页 > 时尚 > 植入webshell 正文

植入webshell

时间:2026-10-17 05:06:55 来源:力不从心网

拿到一台机器的植入权限,往里面扔个webshell,植入这事儿听起来挺简单,植入实际上每一步都有讲究。植入我见过太多人上来就传个大马,植入结果被WAF拦得死死的植入,连个回显都没有。植入

webshell本质就是植入一段能在目标服务器上执行的代码。PHP、植入ASP、植入JSP,植入甚至Python都行。植入关键不在于代码多复杂,植入而在于它能不能活下来,植入能不能稳定执行命令。植入

最原始的做法是直接写文件。比如利用文件上传漏洞,传一个.php文件上去。但现在的系统不傻,后缀名白名单、内容检测、文件头校验,层层设卡。我试过一个站,上传目录里明明有我的文件,访问却返回403——权限被改成了000,根本读不了。

绕过的思路五花八门。改后缀算基础操作,php3、phtml、php5,看服务器怎么解析。再狠一点,用.htaccess把.jpg当PHP跑。有次我碰到一个Apache环境,传了个.htaccess上去,里面写AddType application/x-httpd-php .abc,然后传个shell.abc,直接执行。那台机器没开AllowOverride,白忙一场。

文件内容检测更麻烦。很多WAF会扫<?php这种特征。那就别用标准标签,短标签<?配合eval或者assert。再不行就拆分、编码、混淆。我常用的一句话是<?=加反引号执行,短小精悍,不容易触发规则。

数据库写入是另一条路。利用SQL注入的INTO OUTFILE直接写文件。前提是secure_file_priv没限制,目录有写权限。MySQL 5.7之后这个配置默认收紧,成功率大不如前。但有些老站还在用5.5,一写一个准。

日志包含也挺有意思。把PHP代码塞进User-Agent,然后通过文件包含漏洞去读access.log。这招隐蔽,不落地文件,但依赖include漏洞,条件苛刻。我见过有人把代码写进SSH的auth.log,再配合LFI,照样能打通。

webshell传上去只是第一步。怎么连、怎么用、怎么藏,才是真功夫。

连接方式上,菜刀、蚁剑、冰蝎、哥斯拉,一代比一代加密强。冰蝎的流量加密做得不错,但特征也被人扒得差不多了。哥斯拉更灵活,支持自定义加密器。我最近偏向用curl直接发POST,不依赖GUI工具,流量更干净。

藏webshell是个技术活。别放在上传目录,太显眼。找那些没人看的角落——includes、cache、tmp,甚至图片目录里混一个。文件名别用shell、cmd这种,改成config、index、style。内容上,把PHP代码嵌在正常文件中间,前面加一堆注释,后面跟点无害函数。

有次我在一个站里发现管理员半年没登过后台,webshell放了三个月没人动。那感觉,就像在别人家客厅住了半年,主人愣是没发现。

检测webshell的手段也在进化。静态扫描查特征,动态监控看行为。文件完整性校验一开,你改任何文件都会告警。所以现在流行无文件webshell——内存马。利用PHP-FPM或者Java的机制,把代码加载进内存,不落盘。查文件?查不到。重启?那就没了。

内存马是趋势,但门槛也高。PHP的auto_prepend_file配合.user.ini算轻量级方案,能实现类似效果。Java的Filter型内存马更稳,但需要能注入Filter。这已经超出“植入webshell”的范畴了,更像是一场持久战。

说到底,webshell是手段不是目的。拿到权限之后干什么,比怎么拿更有意思。但那是另一个话题了。

上一篇:web渗透基础知识
下一篇:外网纪录片
推荐内容