├── .DS_Store ├── README.md └── media └── 15246516631074 ├── 15246516762584.jpg ├── 15246516969831.jpg ├── 15246517401894.jpg └── 15246518034098.jpg /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/l3m0n/linux_information/9ff313967e9e107951e79b902ccba4f27ae340ea/.DS_Store -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [TOC] 2 | 3 | ### 产品介绍 4 | 5 | linux_information是一款针对linux下信息收集的工具 6 | 7 | 文章介绍: http://www.cnblogs.com/iamstudy/articles/python_linux_information.html 8 | 9 | ##### 主要模块: 10 | 11 | + 系统信息,能了解主机的地址、版本等信息 12 | + 用户信息,能了解主机的用户、分组、登陆等情况 13 | + 服务信息,能了解主机的端口、进程、服务、软件等信息 14 | + 安全扫描,能了解主机的敏感文件、能利用的漏洞等信息 15 | + 主机存活信息,能了解当前内网存活主机信息 16 | 17 | ##### 目录结构: 18 | 19 | ``` 20 | . 21 | ├── comm 22 | │   ├── __init__.py 23 | │   ├── function.py 数据处理 24 | │   ├── outprint.py 结果输出html 25 | │   └── scan.py 信息收集 26 | ├── config 配置字典 27 | │   ├── banner.txt 端口指纹 28 | │   ├── command.txt 常见软件 29 | │   ├── commandInfo 30 | │   │   ├── fileInfo.txt 文件信息的命令字典 31 | │   │   ├── serviceInfo.txt 服务信息的命令字典 32 | │   │   ├── systemInfo.txt 系统信息的命令字典 33 | │   │   └── userInfo.txt 用户信息的命令字典 34 | │   ├── conffile.txt 配置文件信息的命令字典1 35 | │   ├── file.txt 配置文件信息的命令字典2(带绝对路径) 36 | │   ├── ftp.sh ftp匿名猜测 37 | │   └── service.txt 服务信息 38 | ├── go.py 主程序 39 | └── result 存放报告 40 | ``` 41 | 42 | ### 配置说明 43 | 主要是用字典爆破、linux命令结果获取、python自带模块,对其进行数据处理来达到信息收集。 44 | 45 | ##### 字典爆破 46 | 文件:config/*.txt 47 | 48 | 比如可执行命令软件,则是通过获取每一行数据,然后执行看有无返回路径数据。其中program就是每一行的数据。 49 | 50 | ``` 51 | which {program} 2>/dev/null 52 | ``` 53 | 54 | ##### 命令收集 55 | 文件:config/commandInfo/*.txt 56 | 57 | 命令信息格式: 58 | 59 | ``` 60 | # 标记值,最后也是做键名 61 | + 对命令的解释,也是最后显示到结果页面的说明 62 | > 命令 63 | ``` 64 | 65 | 比如: 66 | 67 | ``` 68 | # a_sudo 69 | + 是否能无密码sudo 70 | > echo '' | sudo -S -l 2>/dev/null 71 | ``` 72 | 73 | ##### 其他方式 74 | 文件:comm/scan.py 75 | 76 | 最后的是通过其他方式,比如python自带的对系统信息收集。 77 | 78 | 添加新信息收集格式 79 | 80 | ``` 81 | 一个模块的数据格式是 82 | 83 | xxInfo = { 84 | "info" : "[[commad,readme],[result]]", 85 | "info1" : "[[commad,readme],[result]]", 86 | "info2" : "[[commad,readme],[result]]", 87 | } 88 | 89 | 所以为这个模块字典添加数据格式是: 90 | 91 | self.xxxInfo['info'] = [['info','当前说明'],[获取方式]] 92 | ``` 93 | 94 | 比如: 95 | ``` 96 | self.systemInfo['a_info'] = [['python_get','系统名称'],[platform.platform()]] 97 | ``` 98 | 99 | ##### 结果显示顺序配置 100 | 由于字典在遍历字典的键名并不是有序的,所以做了一个sort排序,如果想让哪些信息放后面显示,则可以通过控制键名来。 101 | 102 | 比如: 103 | 104 | ``` 105 | self.xxxInfo['info'] = [['info','当前说明'],[获取方式]] 106 | self.xxxInfo['info1'] = [['info1','当前说明'],[获取方式]] 107 | self.xxxInfo['info2'] = [['info2','当前说明'],[获取方式]] 108 | 109 | 所以最后这个模块的数据是: 110 | xxInfo = { 111 | "info" : "[[commad,readme],[result]]", 112 | "info1" : "[[commad,readme],[result]]", 113 | "info2" : "[[commad,readme],[result]]", 114 | } 115 | 显示顺序为: 116 | info 117 | info1 118 | info2 119 | ``` 120 | 121 | 现在改变一下键名: 122 | 123 | ``` 124 | self.xxxInfo['c_info'] = [['info','当前说明'],[获取方式]] 125 | self.xxxInfo['b_info1'] = [['info1','当前说明'],[获取方式]] 126 | self.xxxInfo['a_info2'] = [['info2','当前说明'],[获取方式]] 127 | ``` 128 | 129 | 这样最后的显示顺序就是 130 | 131 | ``` 132 | info2 133 | info1 134 | info 135 | ``` 136 | 137 | ### 模块说明 138 | 139 | ##### 系统信息 140 | 141 | ``` 142 | 系统名称 143 | 本地ip 144 | 主机名 145 | 本地dns 146 | 环境变量 147 | shell程序 148 | hosts文件 149 | 路由信息 150 | arp缓存 151 | 计划任务 152 | 挂载磁盘 153 | mail目录 154 | history文件 155 | home/root/bin/sbin目录 156 | ``` 157 | 158 | ##### 用户信息 159 | 160 | ``` 161 | 当前权限 162 | 用户信息 163 | 本地用户 164 | 在线用户 165 | hash加密规则 166 | hash信息 167 | 用户组信息 168 | 最后登录信息 169 | 最后登录用户信息 170 | 所有用户的计划任务 171 | ``` 172 | 173 | ##### 服务信息 174 | 175 | ``` 176 | 端口信息 177 | 进程信息 178 | 服务信息 179 | init文件 180 | 软件信息 181 | 常用程序扫描 182 | 网卡模式 183 | ``` 184 | 185 | ##### 安全扫描 186 | 187 | ``` 188 | 是否能无密码sudo 189 | conf配置文件 190 | ssh的密钥文件 191 | 是否能root登录 192 | 敏感配置文件扫描 193 | 关键字含有config、web.xml、database、pass的文件 194 | uid为0用户 195 | 敏感服务匿名 196 | 空密码用户 197 | zip/tar.gz/sh/pl/py/rb/txt/bak后缀文件 198 | ``` 199 | 200 | ##### 主机存活信息 201 | 202 | ### 生成报告 203 | 运行go.py之后,结果将在result目录下生成一个命名为当前时间戳的目录,其目录有一个result.html以及files的目录,这个files目录是存放服务器获取到的敏感配置文件信息。 204 | 205 | ### 结果展示 206 | 系统信息: 207 | 208 | ![](./media/15246516631074/15246516762584.jpg) 209 | 210 | 用户信息: 211 | 212 | ![](./media/15246516631074/15246517401894.jpg) 213 | 214 | 服务信息: 215 | 216 | ![](./media/15246516631074/15246518034098.jpg) 217 | 218 | 安全扫描: 219 | 220 | ![](./media/15246516631074/15246516969831.jpg) 221 | 222 | 223 | -------------------------------------------------------------------------------- /media/15246516631074/15246516762584.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/l3m0n/linux_information/9ff313967e9e107951e79b902ccba4f27ae340ea/media/15246516631074/15246516762584.jpg -------------------------------------------------------------------------------- /media/15246516631074/15246516969831.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/l3m0n/linux_information/9ff313967e9e107951e79b902ccba4f27ae340ea/media/15246516631074/15246516969831.jpg -------------------------------------------------------------------------------- /media/15246516631074/15246517401894.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/l3m0n/linux_information/9ff313967e9e107951e79b902ccba4f27ae340ea/media/15246516631074/15246517401894.jpg -------------------------------------------------------------------------------- /media/15246516631074/15246518034098.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/l3m0n/linux_information/9ff313967e9e107951e79b902ccba4f27ae340ea/media/15246516631074/15246518034098.jpg --------------------------------------------------------------------------------