Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/l3m0n/linux_information
自动化收集linux信息
https://github.com/l3m0n/linux_information
Last synced: about 2 months ago
JSON representation
自动化收集linux信息
- Host: GitHub
- URL: https://github.com/l3m0n/linux_information
- Owner: l3m0n
- Created: 2018-04-25T10:16:41.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2018-04-26T07:29:46.000Z (over 6 years ago)
- Last Synced: 2024-10-29T11:10:40.472Z (3 months ago)
- Size: 729 KB
- Stars: 207
- Watchers: 6
- Forks: 52
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- favorite-link - 自动化收集 linux 信息。
- awesome-hacking-lists - l3m0n/linux_information - 自动化收集linux信息 (Others)
README
[TOC]
### 产品介绍
linux_information是一款针对linux下信息收集的工具
文章介绍: http://www.cnblogs.com/iamstudy/articles/python_linux_information.html
##### 主要模块:
+ 系统信息,能了解主机的地址、版本等信息
+ 用户信息,能了解主机的用户、分组、登陆等情况
+ 服务信息,能了解主机的端口、进程、服务、软件等信息
+ 安全扫描,能了解主机的敏感文件、能利用的漏洞等信息
+ 主机存活信息,能了解当前内网存活主机信息##### 目录结构:
```
.
├── comm
│ ├── __init__.py
│ ├── function.py 数据处理
│ ├── outprint.py 结果输出html
│ └── scan.py 信息收集
├── config 配置字典
│ ├── banner.txt 端口指纹
│ ├── command.txt 常见软件
│ ├── commandInfo
│ │ ├── fileInfo.txt 文件信息的命令字典
│ │ ├── serviceInfo.txt 服务信息的命令字典
│ │ ├── systemInfo.txt 系统信息的命令字典
│ │ └── userInfo.txt 用户信息的命令字典
│ ├── conffile.txt 配置文件信息的命令字典1
│ ├── file.txt 配置文件信息的命令字典2(带绝对路径)
│ ├── ftp.sh ftp匿名猜测
│ └── service.txt 服务信息
├── go.py 主程序
└── result 存放报告
```### 配置说明
主要是用字典爆破、linux命令结果获取、python自带模块,对其进行数据处理来达到信息收集。##### 字典爆破
文件:config/*.txt比如可执行命令软件,则是通过获取每一行数据,然后执行看有无返回路径数据。其中program就是每一行的数据。
```
which {program} 2>/dev/null
```##### 命令收集
文件:config/commandInfo/*.txt命令信息格式:
```
# 标记值,最后也是做键名
+ 对命令的解释,也是最后显示到结果页面的说明
> 命令
```比如:
```
# a_sudo
+ 是否能无密码sudo
> echo '' | sudo -S -l 2>/dev/null
```##### 其他方式
文件:comm/scan.py最后的是通过其他方式,比如python自带的对系统信息收集。
添加新信息收集格式
```
一个模块的数据格式是xxInfo = {
"info" : "[[commad,readme],[result]]",
"info1" : "[[commad,readme],[result]]",
"info2" : "[[commad,readme],[result]]",
}所以为这个模块字典添加数据格式是:
self.xxxInfo['info'] = [['info','当前说明'],[获取方式]]
```比如:
```
self.systemInfo['a_info'] = [['python_get','系统名称'],[platform.platform()]]
```##### 结果显示顺序配置
由于字典在遍历字典的键名并不是有序的,所以做了一个sort排序,如果想让哪些信息放后面显示,则可以通过控制键名来。比如:
```
self.xxxInfo['info'] = [['info','当前说明'],[获取方式]]
self.xxxInfo['info1'] = [['info1','当前说明'],[获取方式]]
self.xxxInfo['info2'] = [['info2','当前说明'],[获取方式]]所以最后这个模块的数据是:
xxInfo = {
"info" : "[[commad,readme],[result]]",
"info1" : "[[commad,readme],[result]]",
"info2" : "[[commad,readme],[result]]",
}
显示顺序为:
info
info1
info2
```现在改变一下键名:
```
self.xxxInfo['c_info'] = [['info','当前说明'],[获取方式]]
self.xxxInfo['b_info1'] = [['info1','当前说明'],[获取方式]]
self.xxxInfo['a_info2'] = [['info2','当前说明'],[获取方式]]
```这样最后的显示顺序就是
```
info2
info1
info
```### 模块说明
##### 系统信息
```
系统名称
本地ip
主机名
本地dns
环境变量
shell程序
hosts文件
路由信息
arp缓存
计划任务
挂载磁盘
mail目录
history文件
home/root/bin/sbin目录
```##### 用户信息
```
当前权限
用户信息
本地用户
在线用户
hash加密规则
hash信息
用户组信息
最后登录信息
最后登录用户信息
所有用户的计划任务
```##### 服务信息
```
端口信息
进程信息
服务信息
init文件
软件信息
常用程序扫描
网卡模式
```##### 安全扫描
```
是否能无密码sudo
conf配置文件
ssh的密钥文件
是否能root登录
敏感配置文件扫描
关键字含有config、web.xml、database、pass的文件
uid为0用户
敏感服务匿名
空密码用户
zip/tar.gz/sh/pl/py/rb/txt/bak后缀文件
```##### 主机存活信息
### 生成报告
运行go.py之后,结果将在result目录下生成一个命名为当前时间戳的目录,其目录有一个result.html以及files的目录,这个files目录是存放服务器获取到的敏感配置文件信息。### 结果展示
系统信息:![](./media/15246516631074/15246516762584.jpg)
用户信息:
![](./media/15246516631074/15246517401894.jpg)
服务信息:
![](./media/15246516631074/15246518034098.jpg)
安全扫描:
![](./media/15246516631074/15246516969831.jpg)