




已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
CentOSCentOS 服务器优化服务器优化 时间 2014 04 05 22 12 来源 作者 Boo st 举报 点击 312 次 序言 序言 服务器操作建议 1 严格按照目录规范操作服务器 2 远程服务器不允许关机 3 不要在服务器访问高峰运行高负载命令 4 远程配置防火墙时 不要把自己踢出服务器 一 禁用不必要的服务一 禁用不必要的服务 ntsysv 命令 前面带 号的代表下次开机自启动 一定要开启的基础服务 network 网络服务 sshd ssh 远程管理服务 syslog 系统日志服务 iptables 防火墙服务 crond 系统计划任务服务 xinetd 系统超级守护进程服务 二 关闭多余的控制台及禁止二 关闭多余的控制台及禁止 ctrl alt delctrl alt del 1 修改 etc inittab 文件 注释掉多余的控制台 保留 2 个就可以 如 3 2345 respawn sbin mingettytty3 2 禁止 ctrl alt del 快捷键 热启动快捷键 如 ca ctrlaltdel sbin shutdown t3 r now 三 网络优化三 网络优化 1 禁止 ping echo1 proc sys net ipv4 icmp echo ignore all 原值为 0 2 禁止源路由包 防止源欺骗 echo1 proc sys net ipv4 conf accept source route 3 打开 SYNcookie 选项 禁止 SYN 攻击 echo1 proc sys net ipv4 tcp syncookies 注意 因为这些数据是保存在 proc 目录下的 所以 一旦服务器重启 这 些数据就会归零 所以 应该将这些命令写到开机自启动的目录下 四 严格的安全策略四 严格的安全策略 1 密码合理并定期跟换 密码三原则 复杂性 易记忆性 时效性 2 合理分配权限 3 使用 ssh 远程管理 最好不要使用 telnet 因为 telnet 是明文传输的 4 保证 etc shadow 的安全 shadow 文件保存了 Linux 中的真正的密码 5 定期备份重要数据和日志 五 定时升级五 定时升级 LinuxLinux 系统系统 yum y update 在线自动升级 附 附 JohnJohn 暴力破解工具暴力破解工具 1 下载 1 2 下载字典 2 安装 1 安装 gccyum y install gcc 2 解压 tar zxvf john 1 7 9 tar gz 3 cd 解压目录 src 4 make make clean linux x86 mmx 3 使用 cp etc shadow root chmod 777 root shadow john 目录 run john root shadow 如果需要使用字典 则需要在需破解的文件前加 w 选项 4 查看 run john show etc shadow cat run john pot CentOSCentOS 安全加固安全加固 时间 2014 04 23 00 29来源 作者 xyz846 举报 点击 373 次 Redhat 是目前企业中用的最多的一类 Linux 而目前针对 Redhat 攻击的黑客也越来越多 了 我们要如何为这类服务器做好安全加固工作呢 一一 账户安全账户安全 1 1 锁定系统中多余的自建帐号 检查方法 执行命令 cat etc passwd cat etc shadow 查看账户 口令文件 与系统管理员确认不必要的账号 对于一些保留的系统伪帐户 如 bin sys adm uucp lp nuucp hpdb www daemon 等可根据需要锁定登陆 备份方法 cp p etc passwd etc passwd bak cp p etc shadow etc shadow bak 加固方法 使用命令 passwd l 锁定不必要的账号 使用命令 passwd u 解锁需要恢复的账号 风险 需要与管理员确认此项操作不会影响到业务系统的登录 1 2 设置系统口令策略 检查方法 使用命令 cat etc login defs grep PASS 查看密码策略设置 备份方法 cp p etc login defs etc login defs bak 加固方法 vi etc login defs 修改配置文件 PASS MAX DAYS 90 新建用户的密码最长使用天数 PASS MIN DAYS 0 新建用户的密码最短使用天数 PASS WARN AGE 7 新建用户的密码到期提前提醒天数 PASS MIN LEN 9 最小密码长度 9 风险 无可见风险 1 3 禁用 root 之外的超级用户 检查方法 cat etc passwd 查看口令文件 口令文件格式如下 login name password user ID group ID comment home dir command login name 用户名 password 加密后的用户密码 user ID 用户 ID 1 6000 若用户 ID 0 则该用户拥有超级用户的权限 查看此 处是否有多个 ID 0 group ID 用户组 ID comment 用户全名或其它注释信息 home dir 用户根目录 command 用户登录后的执行命令 备份方法 cp p etc passwd etc passwd bak 加固方法 使用命令 passwd l 锁定不必要的超级账户 使用命令 passwd u 解锁需要恢复的超级账户 风险 需要与管理员确认此超级用户的用途 1 4 限制能够 su 为 root 的用户 检查方法 cat etc pam d su 查看是否有 auth required lib security pam wheel so 这样的配置 条目 备份方法 cp p etc pam d etc pam d bak 加固方法 vi etc pam d su 在头部添加 auth required lib security pam wheel so group wheel 这样 只有 wheel 组的用户可以 su 到 root usermod G10 test 将 test 用户加入到 wheel 组 风险 需要 PAM 包的支持 对 pam 文件的修改应仔细检查 一旦出现错误会导致无法 登陆 和管理员确认哪些用户需要 su 当系统验证出现问题时 首先应当检查 var log messages 或者 var log secure 中的输 出信息 根据这些信息判断用户账号的有效 性 如果是因为 PAM 验证故障 而引起 root 也无法登录 只能使用 single user 或者 rescue 模式进行排错 1 5 检查 shadow 中空口令帐号 检查方法 awk F print etc shadow 备份方法 cp p etc shadow etc shadow bak 加固方法 对空口令账号进行锁定 或要求增加密码 风险 要确认空口令账户是否和应用关联 增加密码是否会引起应用无法连接 二 最小化服务二 最小化服务 2 1 停止或禁用与承载业务无关的服务 检查方法 who r 或 runlevel 查看当前 init 级别 chkconfig list 查看所有服务的状态 备份方法 记录需要关闭服务的名称 加固方法 chkconfig level on off reset 设置服务在个 init 级别下开机是否启动 风险 某些应用需要特定服务 需要与管理员确认 三 数据访问控制三 数据访问控制 3 1 设置合理的初始文件权限 检查方法 cat etc profile 查看 umask 的值 备份方法 cp p etc profile etc profile bak 加固方法 vi etc profile umask 027 风险 会修改新建文件的默认权限 如果该服务器是 WEB 应用 则此项谨慎修改 四 网络访问控制四 网络访问控制 4 1 使用 SSH 进行管理 检查方法 ps aef grep sshd 查看有无此服务 备份方法 加固方法 使用命令开启 ssh 服务 service sshd start 风险 改变管理员的使用习惯 4 2 设置访问控制策略限制能够管理本机的 IP 地址 检查方法 cat etc ssh sshd config 查看有无 AllowUsers 的语句 备份方法 cp p etc ssh sshd config etc ssh sshd config bak 加固方法 vi etc ssh sshd config 添加以下语句 AllowUsers 10 138 此句意为 仅允许 10 138 0 0 16 网段所有用户通过 ssh 访 问 保存后重启 ssh 服务 service sshd restart 风险 需要和管理员确认能够管理的 IP 段 4 3 禁止 root 用户远程登陆 检查方法 cat etc ssh sshd config 查看 PermitRootLogin 是否为 no 备份方法 cp p etc ssh sshd config etc ssh sshd config bak 加固方法 vi etc ssh sshd config PermitRootLogin no 保存后重启 ssh 服务 service sshd restart 风险 root 用户无法直接远程登录 需要用普通账号登陆后 su 4 4 限定信任主机 检查方法 cat etc hosts equiv 查看其中的主机 cat HOME rhosts 查看其中的主机 备份方法 cp p etc hosts equiv etc hosts equiv bak cp p HOME rhosts HOME rhosts bak 加固方法 vi etc hosts equiv 删除其中不必要的主机 vi HOME rhosts 删除其中不必要的主机 风险 在多机互备的环境中 需要保留其他主机的 IP 可信任 4 5 屏蔽登录 banner 信息 检查方法 cat etc ssh sshd config 查看文件中是否存在 Banner 字段 或 banner 字段为 NONE cat etc motd 查看文件内容 该处内容将作为 banner 信息显示给登录用户 备份方法 cp p etc ssh sshd config etc ssh sshd config bak cp p etc motd etc motd bak 加固方法 vi etc ssh sshd config banner NONE vi etc motd 删除全部内容或更新成自己想要添加的内容 风险 无可见风险 4 6 防止误使用 Ctrl Alt Del 重启系统 检查方法 cat etc inittab grep ctrlaltdel 查看输入行是否被注释 备份方法 cp p etc inittab etc inittab bak 加固方法 vi etc inittab 在行开头添加注释符号 ca ctrlaltdel sbin shutdown t3 r now 风险 无可见风险 五 用户鉴别五 用户鉴别 5 1 设置帐户锁定登录失败锁定次数 锁定时间 检查方法 cat etc pam d system auth 查看有无 auth required pam tally so 条目的设置 备份方法 cp p etc pam d system auth etc pam d system auth bak 加固方法 vi etc pam d system auth auth required pam tally so onerr fail deny 6 unlock time 300 设置为密码连续错误 6 次锁定 锁定时间 300 秒 解锁用户 faillog u r 风险 需要 PAM 包的支持 对 pam 文件的修改应仔细检查 一旦出现错误会导致无法 登陆 当系统验证出现问题时 首先应当检查 var log messages 或者 var log secure 中的输 出信息 根据这些信息判断用户账号的有效 性 5 2 修改帐户 TMOUT 值 设置自动注销时间 检查方法 cat etc profile 查看有无 TMOUT 的设置 备份方法 cp p etc profile etc profile bak 加固方法 vi etc profile 增加 TMOUT 600 无操作 600 秒后自动退出 风险 无可见风险 5 3 Grub Lilo 密码 检查方法 cat etc grub conf grep password 查看 grub 是否设置密码 cat etc lilo conf grep password 查看 lilo 是否设置密码 备份方法 cp p etc grub conf etc grub conf bak cp p etc lilo conf etc lilo conf bak 加固方法 为 grub 或 lilo 设置密码 风险 etc grub conf 通常会链接到 boot grub grub conf 5 4 限制 FTP 登录 检查方法 cat etc ftpusers 确认是否包含用户名 这些用户名不允许登录 FTP 服务 备份方法 cp p etc ftpusers etc ftpusers bak 加固方法 vi etc ftpusers 添加行 每行包含一个用户名 添加的用户将被禁止登录 FTP 服务 风险 无可见风险 5 5 设置 Bash 保留历史命令的条数 检查方法 cat etc profile grep HISTSIZE cat etc profile grep HISTFILESIZE 查看保留历史命令的条数 备份方法 cp p etc profile etc profile bak 加固方法 vi etc profile 修改 HISTSIZE 5 和 HISTFILESIZE 5 即保留最新执行的 5 条命令 风险 无可见风险 六 审计策略六 审计策略 6 1 配置系统日志策略配置文件 检查方法 ps aef grep syslog 确认 syslog 是否启用 cat etc syslog conf 查看 syslogd 的配置 并确认日志文件是否存在 系统日志 默认 var log messages cron 日志 默认 var log cron 安全日志 默认 var log secure 备份方法 cp p etc syslog conf 6 2 为审计产生的数据分配合理的存储空间和存储时间 检查方法 cat etc logrotate conf 查看系统轮询配置 有无 rotate log files weekly weekly keep 4 weeks worth of backlogs rotate 4 的配置 备份方法 cp p etc logrotate conf etc logrotate conf bak 加固方法 vi etc logrotate d syslog 增加 rotate 4 日志文件保存个数为 4 当第 5 个产生后 删除最早的日志 size 100k 每个日志的大小 加固后应类似如下内容 var log syslog log missingok notifempty size 100k log files will be rotated when they grow bigger that 100k rotate 5 will keep the logs for 5 weeks compress log files will be compressed sharedscripts postrotate etc init d syslog condrestart dev null 2 1 true endscript linuxlinux 系统安全日志分析系统安全日志分析 时间 2014 03 10 23 45来源 作者 虎子 举报 点击 348 次 我们主要讲一下 Linux 环境中的系统记帐和系统日志管理以及怎么用一些工具更加方便有 效的管理日志信息 当我们用上面的方法进行了 Linux 服务器的安装和一些基本的设置后 我们的服务器应该 说来是比较安全的 但是总是还会有黑客可以通过各种方法利用系统管理员的疏忽侵入我 们的系统 他们的一举一动都会记录到系统的日志之中 尽管他们可能可以改变这些日志 信息 甚至用自己的程序替换掉我们系统本身的命令程序 但是通过日志我们总还是能找 到一些蛛丝马迹 下面我们主要讲一下 Linux 环境中的系统记帐和系统日志管理以及怎么 用一些工具更加方便有效的管理日志信息 1 系统记帐 最初开发的系统记帐用于跟踪用户资源消费情况 从用户帐号中提取费用为目地的 现在 我们可以把它用于安全目的 给我们提供有关在系统中发生的各种活动的有价值信息 系统记帐主要非为两类 1 连接记帐连接记帐 连接记帐是跟踪当前用户当前对话 用户登录和退出的活动 在 Linux 系统中使用 utmp 动态用户对话 和 wtmp 登录 退出日志记录 工具来完成这一记帐过程 Wtmp 工具同时维 护重新引导和系统状态变化信息 各种程序对这些工具进行刷新和维护 因此无须进行特 殊的后台进程或程序 然而 utmp 和 wtmp 输出结果文件必须存在 如果这些文件不存在 会关闭连接记帐 与 utmp 和 wtmp 有关的所有数据将分别保存在 var run utmp 和 var log wtmp 中 这些文件归根用户所有 这些文件中的数据是用户不可读的 但也有工 具可以转换成可读的形式 dump utmp 可以转换连接记帐数据为可读的 ASCII 格式数据 ac 命令提供了有关用户连接的大概统计 我们可以使用带有标志 d 和 p 的 ac 命令 标志 d 显示了一天的总连接统计 标志 p 显示了每一个用户的连接时间 这种统计信息的方式 对了解与探测入侵有关的用户情况及其他活动很有帮助 Last 和 who 是出于安全角度定 期使用的最常用命令 last 命令提供每一个用户的登录时间 退出登录时间 登录位置 重新引导系统及运行级 别变化的信息 last 10 表示 last 的最多输出结果为最近的 10 条信息 缺省时 last 将列出 在 var log wtmp 中记录的每一连接和运行级别的变化 从安全角度考虑 last 命令提供了 迅速查看特定系统连接活动的一种方式 观察每天的输出结果是个好习惯 从中可以捕获 异常输入项 Last 命令的 x 选项可以通知系统运行级别的变化 who 命令主要作用是报告目前正在登录的用户 登录设备 远程登录主机名或使用的 Xwindows 的 X 显示值 会话闲置时间以及会话是否接受 write 或 talk 信息 例如 who iwH 的输出结果 USER MESG LINE LOGIN TIME IDLE FROM Denny tty1 Feb 18 08 42 old 这就表示用户 Denny 不能接受 write 或 talk 信息 2 月 18 日 8 42 从 tty1 登录 该命令的 安全值提供了用户连接的大致情况 这也为监视可疑活动提供了条件 其他的有关命令有 lastlog 命令 该命令报告了有关 var log lastlog 中记录的最后一次登录的数据信息 2 进程记帐进程记帐 进程记帐是对进程活动的记录 原数据保存在 var log pacct 文件中 其许可权限为 600 该文件的存在是进程记帐有效的保障 与连接记帐不同 进程记帐必须处于打开状态 使 用下面的命令设置打开状态 accton var log pacct 可以使用自选文件代替 var log pacct 但必须记住这一文件并且设置适当的许可权限 必 须在每次引导的时候执行该命令 可以在 etc rc d rc local 中输入以下脚本 initiate process account if x sbin accton then sbin accton var log pacct echo process accounting initiated fi 一旦在系统中配置进程记帐后 将使用 3 个命令解释在 var log pacct 中的非用户可读的 原数据 这些命令分别为 dump acct 该命令与 dump utmp 完全相似 sa 命令用于统计 系统进程记帐的大致情况 最后一个是 lastcomm 命令列出了系统执行的命令 1 sa 命令命令 与 ac 命令一样 sa 是一个统计命令 该命令可以获得每个用户或每个命令的进程使用的 大致情况 并且提供了系统资源的消费信息 在很大程度上 sa 又是一个记帐命令 对于 识别特殊用户 特别是已知特殊用户使用的可疑命令十分有用 另外 由于信息量很大 需 要处理脚本或程序筛选这些信息 可以用这样的命令单独限制用户 sa u grep joe joe 0 00 cpu bash joe 0 00 cpu ls joe 0 01 cpu ls joe 0 01 cpu lastcomm joe 0 01 cpu tcpdump joe 0 01 cpu reboot 输出结果从左到右依次为 用户名 CPU 使用时间秒数 命令 最多为 16 个字符 2 lastcomm 命令命令 与 sa 命令不同 lastcomm 命令提供每一个命令的输出结果 同时打印出与执行每个命令 有关的时间印戳 就这一点而说 lastcomm 比 sa 更有安全性 lastcomm 命令使用命令名 用户名或终端名作为变量 该命令可以查询进程记帐数据库 下面显示 lastcomm joe 的输出结果 每行表示命令的执行情况 从左到右为 用户 设备 使用的 cpu 时间秒数 执行命令的日期和时间 lastcomm joe reboot joe ttyp1 0 01 secs Fri Feb 26 18 40 tcpdump joe ttyp1 0 01 secs Fri Feb 26 18 39 lastcomm joe ttyp1 0 01 secs Fri Feb 26 18 32 ls joe ttyp1 0 01 secs Fri Feb 26 18 30 ls joe ttyp1 0 00 secs Fri Feb 26 18 28 bash joe ttyp1 0 00 secs Fri Feb 26 18 25 如果系统被入侵 请不要相信在 lastlog utmp wtmp pacct 中记录的信息 但也不要忽 略 因为这些信息可能被修改过了 另外有可能有人替换了 who 程序来掩人耳目 通常 在已经识别某些可疑活动后 进程记帐可以有效的发挥作用 使用 lastcomm 可以 隔绝用户活动或在特定时间执行命令 但是使用该命令必须设置为打开状态 基本上 var log pacct var run utmp var log pacct 是动态数据库文件 其中 var log pacct 和 var log wtmp 文件随着输入项的增加和修改而增加 问题在于这些文件处 于动态增加状态 因此到一定程度就会变的很大 我们可以通过一个叫 logrotate 的程序来解决上面这个问题 该程序读 etc logrotate conf 配置文件 该配置文件告诉 logrotate 所要读 etc logrotate d 目录中的文件 可以通过它 来设定日志文件的循环时间 2 系统日志 回页首回页首 在 Linux 下使用各种日志文件 有些用于某些特殊用途 例如 var log xferlog 用于记录 文件传输协议 FTP 的信息 其他日志文件 例如 var log messages 文件通常包含许多系 统和内核工具的输入项 这些日志文件为系统的安全状态提供了信息 我们主要讲解两个日志守护程序 syslog 和 klogd 并且简要叙述了由 Linux 操作系统 生成的其他其他日志文件 目的是提供基本的配置情况 2 1 syslog 系统日志工具系统日志工具 大部分的 Linux 系统中都要使用 syslog 工具 它是相当灵活的 能使系统根据不同的日志 输入项采取不同的活动 下面将详细讨论 syslog 的工作机制以及在配置文件 etc syslog conf 中的配置 还将论述利用 syslog 灵活性和功能性进行工作的各种方法 1 概述概述 非常简单 syslog 工具由一个守护程序组成 它能接受访问系统的日志信息并且根据 etc syslog conf 配置文件中的指令处理这些信息 程序 守护进程和内核提供了访问系统 的日志信息 因此 任何希望生成日志信息的程序都可以向 syslog 接口呼叫生成该信息 通常 syslog 接受来自系统的各种功能的信息 每个信息都包括重要级 etc syslog conf 文件通知 syslogd 如何根据设备和信息重要级别来报告信息 2 etc syslog conf etc syslog conf 文件使用下面的形式 facility level action 空白行和以 开头的行可以忽略 Facility level 字段也被称做 seletor 应该使用一次或多 次 tab 键分隔 facility 和 action 大部分 Linux 使用这些空格为分隔符 现在分析一下 etc syslog conf 中的三个要素 facility 指定 syslog 功能 主要包括以下这些 auth 由 pam pwdb 报告的认证活动 authpriv 包括特权信息如用户名在内的认证活动 cron 与 cron 和 at 有关的信息 daemon 与 inetd 守护进程有关的信息 kern 内核信息 首先通过 klogd 传递 lpr 与打印服务有关的信息 mail 与电子邮件有关的信息 mark syslog 内部功能用于生成时间戳 news 来自新闻服务器的信息 syslog 由 syslog 生成的信息 user 由用户程序生成的信息 uucp 由 uucp 生成的信息 local0 local7 与自定义程序使用 例如使用 local5 做为 ssh 功能 通配符代表除了 mark 以外的所有功能 与每个功能对应的优先级是按一定顺序排列的 emerg 是最高级 其次是 alert 依次类推 缺省时 在 etc syslog conf 记录中指定的级别为该级别和更高级别 如果希望使用确定的 级别可以使用两个运算符号 不等 和 user info 表示告知 syslog 接受所有在 info 级别上的 user 功能信息 syslog 级别如下 emerg 或 panic 该系统不可用 alert 需要立即被修改的条件 crit 阻止某些工具或子系统功能实现的错误条件 err 阻止工具或某些子系统部分功能实现的错误条件 warning 预警信息 notice 具有重要性的普通条件 info 提供信息的消息 debug 不包含函数条件或问题的其他信息 none 没有重要级 通常用于排错 所有级别 除了 none action 字段所表示的活动具有许多灵活性 特别是 可以使用名称管道的作用是可以使 syslogd 生成后处理信息 syslog 主要支持以下活动 file 指定文件的绝对路径 terminal 或 print 完全的串行或并行设备标志符 host 远程的日志服务器 username 发送信息到使用 write 的指定用户中 named pipe 指定使用 mkfifo 命令来创建的 FIFO 文件的绝对路径 3 调用调用 syslogd 守护程序守护程序 syslog 守护程序是由 etc rc d init d syslog 脚本在运行级 2 下被调用的 缺省不使用选项 但有两个选项 r 和 h 很有用 如果将要使用一个日志服务器 必须调用 syslogd r 缺省情况下 syslog 不接受来自远程 系统的信息 当指定 r 选项 syslogd 将会监听从 514 端口上进来的 UDP 包 如果还希望日志服务器能传送日志信息 可以使用 h 标志 缺省时 syslogd 将忽略使其 从一个远程系统传送日志信息到另一个系统的 etc syslog conf 输入项 4 klogd 守护进程守护进程 klogd 守护进程获得并记录 Linux 内核信息 通常 syslogd 会记录 klogd 传来的所有信息 然而 如果调用带有 f filename 变量的 klogd 时 klogd 就在 filename 中记录所有信息 而不是传给 syslogd 当指定另外一个文件进行日志记录时 klogd 就向该文件中写入所有 级别或优先权 Klogd 中没有和 etc syslog conf 类似的配置文件 使用 klogd 而避免使用 syslogd 的好处在于可以查找大量错误 如果有人入侵了内核 使用 klogd 可以修改错误 5 其他日志其他日志 在 var log 和不同版本的系统中以及自己配置的应用程序中都可以找到其他日志文件 当 然 etc syslog conf 列出了由 syslogd 管理的所有日志文件名和位置 其他日志由其他应 用程序管理 例如在 Redhat6 2 中 apache server 生成 var log htmlaccess log 文件记录 客户访问 生成 var log httpd error log 文件在 syslog 以外查找错误 cron 工具维护的信息日志文件 var log cron 当 Linuxconf 工具记录系统重新配置信息时 将生成日志文件如 var log nerconf log samba 在 var log samba 中维护其日志信息 另外由于 syslogd 在系统非常繁忙时 可能会丢失信息 所以 可以用 cyclog 替换 syslog LinuxLinux 入侵检查实用指令入侵检查实用指令 时间 2013 10 21 01 40来源 作者 本站 举报 点击 453 次 1 可以得出 filename 正在运行的进程 pidof filename 2 可以通过文件或者 tcp udp 协议看到进程 fuser n tcp port 3 可以看文件修改时间 大小等信息 stat filename 4 看加载模块 lsmod 5 看 rpc 服务开放 rpcinfo p 6 看网卡是否混杂模式 promiscuous mod dmesg grep eth0 7 看命令是否被更改 象 md5sum 一样 rpm Vf bin ls rpm Vf bin ps 正常无输出 否则输出 SM5 T bin su 之类提示 如果 rpm 的数据库被修改则不可靠了 只能通过网络或则 cdrom 中的 rpm 数据 库来比较 如 rpm Vvp ftp mirror site dir RedHat RPMS fileutils 3 16 10 i386 rpm 以下常用命令需要检查 usr bin chfn usr bin chsh bin login bin ls usr bin passwd bin ps usr bin top usr sbin in rshd bin netstat sbin ifconfig usr sbin syslogd usr sbin inetd usr sbin tcpd usr bin killall sbin pidof usr bin find 8 如果检查的是已经确认被黑客攻击的机器 完美建议 1 dd 一个备份硬盘上 2 mount 一个光驱 上面有静态编译好的程序 ls ps netstat 等常用工具 3 用 nc 把执行步骤输出到远程机器上 9 用 md5sum 保存一个全局的文件 find sbin type f xargs md5sum 1st 检查是否改变 md5sum c 1st grep OK 10 避免在已经攻击的机器上过多写操作 可以 1 在另一个机器 192 168 20 191 上运行 nc L p 1234 some audit output log 注意 L 是大写 可以永久侦听 2 被攻击机器上运行 command nc 192 168 20 191 1234 或 script mnt export log 检测完毕后用 ctrl d 保存记录 11 通过进程查找可疑程序方法 stat anp 这步主要靠经验 把可疑的都记录下来 2 进入内存目录 cd proc 3299 3 ls la 一般 exe 可以看到执行文件路径 4 再进入 fd 目录查看文件句柄 至此一般都可以找出执行程序 5 ps awx 把刚才可疑的进程观察一遍 12 如果 hacker 把日志删除了 1 查找所有未被删除彻底的日志 比如 history sniffer 日志 2 proc pid fd 目录里提示已经删除的文件 l wx 1 root root 64 Aug 10 20 54 15 var log httpd error log deleted l wx 1 root root 64 Aug 10 20 54 18 var log httpd ssl engine log deleted l wx 1 root root 64 Aug 10 20 54 19 var log httpd ssl mutex 800 deleted l wx 1 root root 64 Aug 10 20 54 20 var log httpd access log deleted l wx 1 root root 64 Aug 10 20 54 21 var log httpd access log deleted l wx 1 root root 64 Aug 10 20 54 22 var log httpd ssl request log deleted l wx 1 root root 64 Aug 10 20 54 23 var log httpd ssl mutex 800 deleted lrwx 1 root root 64 Aug 10 20 54 3 var run httpd mm 800 sem deleted lrwx 1 root root 64 Aug 10 20 54 4 var log httpd ssl scache sem deleted 3 用静态编译的 lsof grep deleted 查看哪些被删除 COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME gpm 1650 root 1u REG 8 2 5 149743 var run gpm208raa deleted 4 得到文件 inode 号 这里是 149743 5 使用 sleuthkit 工具来恢复 df var 得出硬盘位置是 sda1 icat dev sda1 149743 6 把恢复的文件仔细查看 一般都可以找到痕迹了 这样会使分析编译后的程序困难 gcc 04 evil c o evil strip evil 1 file 查看文件类型 是否静态编译 是否 strip 过 2 strings 显示程序中的 asicc 字符串 通过字符串再到 google 上找 3 strace 是跟踪系统调用 这个还不知道怎么样用 strace p pid 4 gdb 更不会用啦 13 有些进程不在进程里显示 但在 proc 中有痕迹 可比较找出隐藏的进程 proc 是伪文件系统 为 dev kmem 提供一个结构化的接口 便于系统诊断并查 看每一个正在运行的可执行文件的环境 ps ef awk print 2 sort n uniq 1 ls porc sort n uniq 2 diff 1 2 14 应急工具 tct 里面有许多使用工具 包括 icat 等数据恢复 如果在被攻击的机器取证 可以 mount 一块硬盘 也可以备份到网络中 方法 a 在网络机器运行 nc L p 1234 abc img b 肉鸡运行 dd if dev hdb5 count 20000 bs 1024 nc 192 168 0 1 1234 w 3 如果备份过大 则可以侦听多个端口 执行多个 dd 拷贝 然后把文件合并 cat 2 1 img 15 ldd 可以显示一个可执行程序所依赖的动态库 但间接依赖库无法显示出来 root rh9bk root ldd bin ls libtermcap so 2 lib libtermcap so 2 0 x40022000 libc so 6 lib tls libc so 6 0 x42000000 lib ld linux so 2 lib ld linux so 2 0 x40000000 strace 工具是一个调试工具 它可以显示出一个程序在执行过程中的所有系统 调用 root rh9bk root strace eopen bin ls dev null open etc ld so preload O RDONLY 1 ENOENT No such file or directory open etc ld so cache O RDONLY 3 open lib libtermcap so 2 O RDONLY 3 open lib tls libc so 6 O RDONLY 3 open usr lib locale locale archive O RDONLY O LARGEFILE 3 open O RDONLY O NONBLOCK O LARGEFILE O DIRECTORY 3 open etc mtab O RDONLY 3 open proc meminfo O RDONLY 3 strace o out telnet 192 168 100 100 o 参数的含义是将 strace 的输出信息生成到 out 文件中 这个文件名是可以随 意制定的 我们打开 out 文件会发现大量的系统调用信息 我们关心的主要是 open 这个系 统调用的信息 open 是用来打开文件的 不仅调用动态库要先用 open 打开 读取配置文件也使用 open 所以用 sed 写一个简单的脚本就可以输出 out 文件 中所有的 open 信息 sed n e open p out 输出信息如下 open etc ld so preload O RDONLY 1 ENOENT No such file or directory open etc ld so cache O RDONLY 3 open lib libutil so 1 O RDONLY 3 open usr lib libncurses so 5 O RDONLY 3 open lib i686 libc so 6 O RDONLY 3 open etc resolv conf O RDONLY 3 open etc nsswitch conf O RDONLY 3 open etc ld so cache O RDONLY 3 open lib libnss files so 2 O RDONLY 3 open etc services O RDONLY 3 open etc host conf O RDONLY 3 open etc hosts O RDONLY 3 open etc ld so cache O RDONLY 3 open lib libnss nisplus so 2 O RDONLY 3 open lib libnsl so 1 O RDONLY 3 open var nis NIS COLD START O RDONLY 1 ENOENT No such file or directory open etc ld so cache O RDONLY 3 open lib libnss dns so 2 O RDONLY 3 open lib libresolv so 2 O RDONLY 3 open etc services O RDONLY 3 open root telnetrc O RDONLY 1 ENOENT No such file or directory open usr share terminfo l linux O RDONLY 4 从输出中可以发现 ldd 显示不出来的几个库 lib libnss dns so 2 lib libresolv so 2 lib libnsl so 1 lib libnss nisplus so 2 lib libnss files so 2 strace o aa ff p PID 会产生 aa 名称开头的多个文件 grep open aa grep v e No e null e denied grep WR 查看其打开调 用的文件信息 16 要把日志发送到日志主机步骤 a vi etc syslog conf 192 168 20 163 把所有日志发送到 192 168 20 163 b service syslog restart c 在 192 168 20 163 安装 kiwisyslogd d 远程登陆 故意输入错误密码 可看到日志主机上马上有报警 也可以 tcpdump port 514 观察 17 如果知道黑客是 0927 入侵的 则 touch t 09270000 tmp a find newer tmp a o cnewer tmp a l 这样那天改变和创建的文件被列出 18 整盘复制 dd if dev sda of dev sdb bs 1024 分区复制 测试过 dd if dev sda1 of abc bs 1024 这里是保存在了根分区 用 mount 查看是 sda2 启动另一个 linux 输入 mount dev sda2 mnt 这里可以看到刚才的 abc 文件 输入 mount aa tmp o loop 这里看到就是刚才镜像的文件内容 19 find 查找指定字符的文件 测试发现二进制也可以发现 是 strings 后的内容 find tmp type f exec grep no exist print find etc rc d name crond exec file 查找 etc rc d 目录下面所有以 crond 结束的文件 并使用 file 指令查看其属 性 注意 exec 和 file 间是一个空格 file
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商业建筑方案设计评审要点
- 楼房建筑整体平移方案设计
- 国庆地产活动主题方案策划
- 高空建筑拆卸方案设计要点
- 赞助商活动策划方案
- 电焊培训教学课件
- 电热设备安全培训课件
- 电热安全培训课题研究课件
- 电烙铁的使用课件
- 测绘土地安全培训课件
- 技术方案评审表
- 人教版九年级数学下册第二十六章反比例函数-作业设计
- 人美小学美术五上《第1课:肖像艺术》课件
- 边坡削坡施工方案
- 湘美版五年级上册美术全册教案
- 浙江省通用安装工程预算定额第八册
- 乡村振兴战略实施与美丽乡村建设课件
- 视听语言PPT完整版全套教学课件
- 医学信息检索与利用智慧树知到答案章节测试2023年杭州医学院
- MT/T 548-1996单体液压支柱使用规范
- 实验室常规玻璃仪器的操作及注意事项课件
评论
0/150
提交评论