Linux应急处置/
- 调整输出为Markdown报告
- 弃用ag,还是
使用 Linux原生 的 grep命令 ,避免额外安 装 - 优化
代 码格式 ,不在 每 条 都 要 tee -a 更新 Webshell检测逻辑更新 authorized_keys检测逻辑服 务器风险检查添加 JDWP和 Python HTTP Server检查添加 Docker容器 检测添加 PAM后 门检测添加 本地 报告上 传能力 ,应对批量机 器 应急的 情 况。
修 复内核 模 块检查日志 过多问题
添加 SSH软连接 后 门检测
添加 Ntpclient/WorkMiner/TeamTNT挖矿木 马检测添加 Rootkit模 块检测逻辑添加 Python pip投 毒 检测添加 $HOME/.profile查看添加 服 务器风险检查(Redis)
基 础配置 检查系 统配置 改 动检查系 统信息 (IP地 址 /用 户/开机时间/系 统版本 /Hostname/服 务器SN)- CPU
使用 率 登 录用户信息 - CPU TOP 15
内 存 TOP 15- 磁盘
剩余 空 间检查 硬 盘挂载常用 软件检查- /etc/hots
- 网络/
流量 检查- ifconfig
- 网络
流量 端 口 监听- 对外开放
端 口 - 网络连接
- TCP连接
状 态 路 由 表 路 由 转发- DNS Server
- ARP
- 网卡
混 杂模式 检查 - iptables
防火 墙
任 务计划检查当 前 用 户任务计划- /etc/
系 统任务计划 任 务计划文件 创建时间- crontab
后 门排查
- 环境变量检查
- env
- path
- LD_PRELOAD
- LD_ELF_PRELOAD
- LD_AOUT_PRELOAD
- PROMPT_COMMAND
- LD_LIBRARY_PATH
- ld.so.preload
用 户信息 检查可 登 陆用户- passwd
文 件 修 改 日 期 - sudoers
登 录信息 (w/last/lastlog)- 历史
登 陆ip
- Services 检查
- SystemD运行
服 务 - SystemD
服 务创建 时间
- SystemD运行
- bash检查
- History
- History
命令 审计 - /etc/profile
- $HOME/.profile
- /etc/rc.local
- ~/.bash_profile
- ~/.bashrc
- bash
反 弹shell
文 件 检查- ...隐藏
文 件 系 统文件 修 改 时间检测- 临时
文 件 检查(/tmp /var/tmp /dev/shm) - alias
- suid
特殊 权限检查 - 进程
存在 文 件 未 找到 近 七天文件改动 mtime近 七天文件改动 ctime大 文 件 >200mb敏感 文 件 审计(nmap/sqlmap/ew/frp/nps等 黑 客 常用 工具 )可 疑 黑 客 文 件 (黑 客 上 传的wget/curl等 程 序 ,或 者 将 恶意程 序 改 成 正常 软件例 如nps文 件 改 为mysql)
- ...隐藏
内 核 Rootkit 检查- lsmod
可 疑 模 块 内 核 符号 表 检查- rootkit hunter 检查
- rootkit .ko
模 块检查
- lsmod
- SSH检查
- SSH
爆破 - SSHD 检测
- SSH
后 门配置 - SSH inetd
后 门检查 - SSH key
- SSH
- Webshell 检查
- php webshell检查
- jsp webshell检查
- 挖矿
文 件 /进程检查- 挖矿
文 件 检查 - 挖矿进程检查
- WorkMiner检测
- Ntpclient检测
- 挖矿
供 应链投 毒 检查- Python PIP
投 毒 检查
- Python PIP
服 务器风险检查- Redis
弱 密 码检测 - JDWP
服 务检测 - Python http.server 检测
- Redis
- Docker 权限检查
git clone https://github.com/al0ne/LinuxCheck.git
chmod u+x LinuxCheck.sh
./LinuxCheck.sh
bash -c "$(curl -sSL https://raw.githubusercontent.com/al0ne/LinuxCheck/master/LinuxCheck.sh)"
如果
# 报告上 报的地 址
webhook_url='http://localhost:5000/upload'
upload_report() {
# 上 传到指定 接 口
if [[ -n $webhook_url ]]; then
curl -X POST -F "file=@$filename" "$webhook_url"
fi
}
from flask import Flask, request
app = Flask(__name__)
@app.route('/upload', methods=['POST'])
def upload_file():
if 'file' not in request.files:
return "No file part", 400
file = request.files['file']
if file.filename == '':
return "No selected file", 400
if file:
filename = file.filename
file.save(filename)
return "File successfully uploaded", 200
if __name__ == '__main__':
app.run(debug=True, host="0.0.0.0", port=9999)
此工
Linenum
https://github.com/lis912/Evaluation_tools
https://ixyzero.com/blog/archives/4.html
https://github.com/T0xst/linux
https://github.com/grayddq/GScan