以每周一个节点,记录知识点。
2024-6-24~30
混淆shell 脚本
Bashfuscator
Bashfuscator 是一个用 Python 3 编写的模块化和可扩展的 Bash 混淆框架。
https://github.com/Bashfuscator/Bashfuscator
# 低混淆程度
bashfuscator -s 1 -t 1 --layers 1 --no-file-write -f script.sh -o output.sh
# 正常混淆
bashfuscator -f test.sh -o output.sh
shc打包二进制文件
shc把shell脚本封装为一个可执行的二进制文件。
yum install shc -y
shc -v -U -r -f output.sh
gzexe压缩shc生成exe
gzexe script.sh会把原来没有加密的文件备份为 script.sh~ ,同时 script.sh 即被变成加密文件。 gzexe -d script.sh会解密还原脚本,所以只能够满足一般的加密用途。
gzexe output.sh
一键混淆
bashfuscator -s 1 -t 1 --layers 1 --no-file-write -f test.sh -o output.sh && shc shc -v -U -r -f output.sh && gzexe output.sh.x
arthas 排查内存马
# JVM 只能 attach 同样用户下的 java 进程, 使用tomcat命令运行arthas
runuser -l tomcat -c "java -jar /usr/share/tomcat/arthas-boot.jar"
# 排查内存马命令总结
classloader
sc *.Filter
sc *.Servlet
jad
heapdump
strings /var/cache/tomcat/temp/heapdump2022-10-19-12-464292342944555007800.hprof | grep "POST /"
https://zgao.top/%e5%86%b0%e8%9d%8e%e3%80%81%e5%93%a5%e6%96%af%e6%8b%89-%e5%86%85%e5%ad%98%e9%a9%ac%e5%ba%94%e6%80%a5%e6%8e%92%e6%9f%a5/
2024-6-10~16
并发触发 jenkins job
import time
import random
import jenkins
import threading
# 构建 Jenkins Job,传递参数
def build_job(job, job_parameters):
server = jenkins.Jenkins(url, username=user, password=token)
print("queue: ", server.build_job(job, parameters=job_parameters))
if __name__ == '__main__':
url = "https://jenkins.test.com"
user = "root"
token = "abc123123"
job = "test_job"
job_parameters = {
'APP': "test",
'GUID': 0
}
for item in range(0, 10):
# 这里注意,参数一定要不同,jenkins 不允许重复构建排队
job_parameters['GUID'] = random.randint(1, 100000) + time.time_ns()
t = threading.Thread(target=build_job, args=(job, job_parameters))
t.start()
注意点
- 在并发构建
jenkins
job
时,job
参数一定不能相同, 否则只有第一个构建成功,其他的都会失败,提示403
参考:
- https://issues.jenkins.io/browse/JENKINS-2483