|
1 | 1 | # LinuxCheck |
2 | 2 |
|
3 | 3 | Linux应急处置/信息搜集/漏洞检测工具,支持基础配置/网络流量/任务计划/环境变量/用户信息/Services/bash/恶意文件/内核Rootkit/SSH/Webshell/挖矿文件/挖矿进程/供应链/服务器风险等13类70+项检查 |
4 | | -### 功能 |
| 4 | + |
| 5 | +## 更新 |
| 6 | + |
| 7 | +更新日志:2024年4月20日 |
| 8 | + |
| 9 | +- 调整输出为Markdown报告 |
| 10 | +- 弃用ag,还是使用Linux原生的grep命令,避免额外安装 |
| 11 | +- 优化代码格式,不在每条都要tee -a |
| 12 | +- 更新Webshell检测逻辑 |
| 13 | +- 更新authorized_keys检测逻辑 |
| 14 | +- 服务器风险检查添加JDWP和Python HTTP Server检查 |
| 15 | +- 添加Docker 容器检测 |
| 16 | +- 添加PAM后门检测 |
| 17 | +- 添加本地报告上传能力,应对批量机器应急的情况。 |
| 18 | + |
| 19 | +更新日志:2022年08月05日 |
| 20 | + |
| 21 | +- 修复内核模块检查日志过多问题 |
| 22 | + |
| 23 | +更新日志:2022年03月07日 |
| 24 | + |
| 25 | +- 添加SSH软连接后门检测 |
| 26 | + |
| 27 | +更新日期:2021年10月17日 |
| 28 | + |
| 29 | +- 添加Ntpclient/WorkMiner/TeamTNT挖矿木马检测 |
| 30 | +- 添加Rootkit模块检测逻辑 |
| 31 | +- 添加Python pip投毒检测 |
| 32 | +- 添加$HOME/.profile查看 |
| 33 | +- 添加服务器风险检查(Redis) |
| 34 | + |
| 35 | +## 功能 |
5 | 36 |
|
6 | 37 | * 基础配置检查 |
7 | 38 | * 系统配置改动检查 |
@@ -94,41 +125,75 @@ Linux应急处置/信息搜集/漏洞检测工具,支持基础配置/网络流 |
94 | 125 | * Python PIP 投毒检查 |
95 | 126 | * 服务器风险检查 |
96 | 127 | * Redis弱密码检测 |
| 128 | + * JDWP 服务检测 |
| 129 | + * Python http.server 检测 |
| 130 | +* Docker 权限检查 |
97 | 131 |
|
98 | | -### Usage |
| 132 | +## Usage |
99 | 133 |
|
100 | | -联网状态: |
101 | | - - apt-get install silversearcher-ag |
102 | | - - yum -y install the_silver_searcher |
| 134 | +第一种方式:通过git clone 安装 |
103 | 135 |
|
104 | | -离线状态: |
105 | | - - Debian:dpkg -i silversearcher-ag_2.2.0-1+b1_amd64.deb |
106 | | - - Centos:rpm -ivh the_silver_searcher-2.1.0-1.el7.x86_64.rpm |
107 | | - |
108 | | -``` |
109 | | -git clone https://github.com/al0ne/LinuxCheck.git |
110 | | -``` |
111 | | -``` |
| 136 | +```bash |
| 137 | +git clone https://github.com/al0ne/LinuxCheck.git |
112 | 138 | chmod u+x LinuxCheck.sh |
| 139 | +./LinuxCheck.sh |
113 | 140 | ``` |
| 141 | +第二种方式:直接在线调用【在线调用就没办法使用报告上传的能力】 |
114 | 142 |
|
115 | 143 | ``` |
116 | | -./LinuxCheck.sh |
| 144 | +bash -c "$(curl -sSL https://raw.githubusercontent.com/al0ne/LinuxCheck/master/LinuxCheck.sh)" |
117 | 145 | ``` |
118 | 146 |
|
119 | | -如果已经安装了ag和rkhunter可以直接使用以下命令 |
| 147 | +文件会保存成ipaddr_hostname_username_timestamp.log 这种格式 |
| 148 | + |
| 149 | +### 报告自动上传 |
| 150 | + |
| 151 | +如果是批量机器下发,脚本执行后会自动提交到某一个url下,将脚本里面的webhook_url 改成你自己的地址 |
120 | 152 |
|
| 153 | +```shell |
| 154 | +# 报告上报的地址 |
| 155 | +webhook_url='http://localhost:5000/upload' |
| 156 | + |
| 157 | +upload_report() { |
| 158 | + |
| 159 | + # 上传到指定接口 |
| 160 | + if [[ -n $webhook_url ]]; then |
| 161 | + curl -X POST -F "file=@$filename" "$webhook_url" |
| 162 | + fi |
| 163 | + |
| 164 | +} |
121 | 165 | ``` |
122 | | -bash -c "$(curl -sSL https://raw.githubusercontent.com/al0ne/LinuxCheck/master/LinuxCheck.sh)" |
| 166 | + |
| 167 | +在你的服务器上用Flask起一个服务,接收服务器上报的Markdown报告。 |
| 168 | + |
| 169 | +```python |
| 170 | +from flask import Flask, request |
| 171 | + |
| 172 | +app = Flask(__name__) |
| 173 | + |
| 174 | +@app.route('/upload', methods=['POST']) |
| 175 | +def upload_file(): |
| 176 | + if 'file' not in request.files: |
| 177 | + return "No file part", 400 |
| 178 | + file = request.files['file'] |
| 179 | + if file.filename == '': |
| 180 | + return "No selected file", 400 |
| 181 | + if file: |
| 182 | + filename = file.filename |
| 183 | + file.save(filename) |
| 184 | + return "File successfully uploaded", 200 |
| 185 | + |
| 186 | +if __name__ == '__main__': |
| 187 | + app.run(debug=True) |
123 | 188 | ``` |
124 | 189 |
|
125 | | -文件会保存成ipaddr_hostname_username_timestamp.log 这种格式 |
126 | 190 |
|
127 | | -### 参考 |
| 191 | + |
| 192 | +## 参考 |
128 | 193 |
|
129 | 194 | 此工具的编写主要参考了以下几款工具/文章并结合个人经验完成 |
130 | 195 |
|
131 | | -Linenum |
| 196 | +Linenum |
132 | 197 | https://github.com/lis912/Evaluation_tools |
133 | 198 | https://ixyzero.com/blog/archives/4.html |
134 | 199 | https://github.com/T0xst/linux |
|
0 commit comments