Linux入侵踪迹隐藏

上传人:ldj****22 文档编号:28938472 上传时间:2018-01-21 格式:DOC 页数:9 大小:45KB
返回 下载 相关 举报
Linux入侵踪迹隐藏_第1页
第1页 / 共9页
Linux入侵踪迹隐藏_第2页
第2页 / 共9页
Linux入侵踪迹隐藏_第3页
第3页 / 共9页
Linux入侵踪迹隐藏_第4页
第4页 / 共9页
Linux入侵踪迹隐藏_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《Linux入侵踪迹隐藏》由会员分享,可在线阅读,更多相关《Linux入侵踪迹隐藏(9页珍藏版)》请在金锄头文库上搜索。

1、Linux 入侵踪迹隐藏 zzh , 2010/02/05 12:22 , 系统安全 , 评论(0) , 阅读(770) , Via 本站原创 大 | 中 | 小 作者 xi4oyu 是百度的安全人员 Linux 功力很深厚的噢#正文#文章作者:xi4oyuLinux 入侵踪迹隐藏攻略 v0.1免责声明:本文仅用于教学目的,如果因为本文造成的攻击后果本人概不负责,转载请保留。0前言:被警察叔叔请去喝茶时间很痛苦的事情,各位道长如果功力不够又喜欢出风头的想必都有过这样的“待遇 ”。如何使自己在系统中隐藏的更深,是我们必须掌握的基本功。当然,如果管理员真的想搞你而他的功力又足够足的话,相信没什么人

2、能够真正的“踏雪无痕” 。Forensic 与 Anti-Forensic,说到底只是你和管理员之间的技术间较量而已。貌似很少有专门说这个的文章,大部分就是下载个日志擦除的软件,然后运行下就可以了,对小站可以,但对方如果是经验丰富的管理员呢?我们该如何应对?我在这里只介绍 unix-like system下的,至于 windows 或者其他什么系统下的,欢迎各位道友补充。1. 最小化你的日志P.S 访问目标前用跳板我就不废话了,你是 VPN 也好 3389 也罢,ssh 中转,代理都行。总之记住一点直接连接攻击目标是愚蠢的1.1 shell 使用问题目前 linux 下大多数的 shell 都

3、是采用 bash 或者其他的什么 shell 通过输入输出重定向来实现与服务器的交互的,当我们使用 ssh 或者 telnet 之类的登录的时候,我们的命令都会被记录在 shell 的 history 文件下面。举例来说 bash 会在当前目录下面.bash_history 文件里记录下你此次登陆操作的命令,如果你拿这台机器当跳板的话,或者扫描其他机器,你的命令都会被记录下来哦。呵呵,所以我们登录的第一件事就是执行如下命令:unset HISTORY HISTFILE HISTSAVE HISTZONE HISTORY HISTLOG; export HISTFILE=/dev/null; e

4、xport HISTSIZE=0; export HISTFILESIZE=0当然不同的 shell 写法可能不同,像有的 set 设置环境变量什么的。大家根据自己的 shell自行修改。记住:从 webshell 弹回的 shell 也会记录你的操作,值得庆幸的是现在很多弹shell 的脚本都预先 unset 环境变量。我们还需要记住的是在登录的时候出现在登录窗口的一些信息,比如该用户在什么时候从哪个 IP 登录进来的等等,这在我们后面的用于日志清除与修改的时候要用到。如图:作为跳板的时候,我们有可能需要用本机的 ssh 去访问别的机器,但是别的机器的公钥呢?总不能放在当前用户的目录下吧?当

5、然你可以事后删除,但多一事不如少一事,你说对么?ssh -o UserKnownHostsFile=/dev/null -T userhost /bin/bash i就可以了,但在这样运行某些命令的时候可能会有提示,说你的 stdin 不是个 terminal,这里可以这样解决:python -c import pty; pty.spawn(/bin/sh) 或者自己再建立个 ttyshell。1.2 webshell 的选择问题可能各位道友的日常生活中最主要目标瞄向了 webserver 。现在的 web 也是大多数入侵的一个突破口。Linux 下用的最多的就是 apache 服务器了,当我

6、们发觉一个服务器的漏洞时候很可能要上传一个 webshell 来进行对服务器文件进一步的操作和信息的搜集,部分webshell 也提供了反弹 shell 的功能。 如何能够在 apache 服务器的日志文件中留下最小的记录也是需要深究的。这种情况通常发生在没能够获得足够的权限来清除 apache 日志。如果能够 root 了,则可以将重点放在第二节日志清除上。通常,日志只记录 GET 的信息,比如你的注入,你采用了那种方式提交数据等等。如果我们的 webshell 采用的多是 GET方式交互的话,就很容易在 httpd 的 access_log 中留下很多日志。这些以后都会被作为证据所采纳的。

7、Phpspy 是个很好的选择,作者也注意掉了这点,取消了 GET 方式的交互,再给 webshell 起一个比较迷惑的名字,这样我们与 webshell 的交流就更加隐秘。2. 日志的清除与改写日志清除与改写,俗称擦 PP,这是个很重要的过程,日志记录了你对目标机器的操作记录,大部分的入侵者查找都是通过日志来确定的,因此,我们需要对日志文件进行操作。对日志操作有这么个说法,能修改的就不清除,这样才能最小的减少管理员的怀疑。Linux 下的大多数文件是以文本方式,或者以简单的结构体方式存入文件的,这就为我们修改某个日志记录里的具体内容提供了前提条件。需要注意的一点是,我们需要先看看日志的存放位置

8、,有的管理员会修改日志保存的位置,一般来说,我们可以查看/etc/syslog.conf 来获得 log 文件存放的位置。但要注意的是,有的管理员(及其负责 )会重新编译 syslogd 文件来重新指定 log 存放的位置,怎么办?在这种情况下可以用 strings 来看下/sbin/syslogd 这个文件,这种管理员我只在书里看到过,至少我没遇到过: P。这个配置文件里面记录了系统存放某些 log 的目录,如 secure 文件等。下面我们就会根据这个文件来清理和修改日志。现在可以在网上公开获得的日志清除程序代码很粗糙,我曾经看到过最夸张的清日志的代码像这样:rm -rf /var/log

9、/lastlog ; rm -rf /var/log/telnetd ; rm -rf /var/run/utmp ; rm -rf /var/log/secure ; rm -rf /root/.ksh_history ; rm -rf /root/.bash_history ; rm -rf /root/.bash_logut ; rm -rf /var/log/wtmp ; rm -rf /etc/wtmp ; rm -rf /var/run/utmp ; rm -rf /etc/utmp ; rm -rf /var/log ; rm -rf /var/adm ; rm -rf /var

10、/apache/log ; rm -rf /var/apache/logs ; rm -rf /usr/local/apache/log ; rm -rf /usr/local/apache/logs ; rm -rf /var/log/acct ; rm -rf /var/log/xferlog ; rm -rf /var/log/messages ; rm -rf /var/log/proftpd/xferlog.legacy ; rm -rf /var/log/proftpd.access_log ; rm -rf /var/log/proftpd.xferlog ; rm -rf /v

11、ar/log/httpd/error_log ; rm -rf /var/log/httpd/access_log ; rm -rf /etc/httpd/logs/access_log ; rm -rf /etc/httpd/logs/error_log ;rm -rf /var/log/news/suck.notice ; rm -rf /var/spool/tmp ; rm -rf /var/spool/errors ; rm -rf /var/spool/logs ; rm -rf /var/spool/locks ; rm -rf /usr/local/www/logs/thttpd

12、_log ; rm -rf /var/log/thttpd_log ; rm -rf /var/log/ncftpd/misclog.txt ; rm -rf /var/log/ncftpd.errs ; rm -rf /var/log/auth ; rm -rf /root/.bash_history ; touch /root/.bash_history ; history r整个一 rm 集合,要是服务器跑了很长时间,积累了很多日志。你这样一删除,的,你帮他省事了,他也省事,一眼就看出有人进来了。先不说其他,用 rm 删除就不可取,正确的删除文件做法是用 shredshred -n 31

13、337 -z -u file_to_delete这样多次擦除才够安全。呵呵下面具体的针对日志文件进行分析。W 命令提供了管理员查看当前登录帐户的功能,所以与管理员同台共演是件很危险的事情,能不做就不做,但也有人曾经上演过 local exp 后,装上 tty 然后 T 管理员下线截获登录密码的好戏。呵呵,如何让 w 不显示你登录了呢?用 rootkit 我就不废话了,这里有个小窍门,即使是普通用户登录管理员也不能看见:在跳板上登录目标 ssh -T somebody1.1.1.1 /bin/bash i 你可以试试,很好用哦。OK,言归正传首先第一个概念是 timstamp,也就是你用 ls

14、l 看到的东西,我们在修改一个 LOG 文件之前或者留后门之后都得留心下这个时间,有很多管理员喜欢通过 timestamp 来查找入侵者留下的东西。记住以下命令touch -r 具有你希望改成的时间的文件 你要改变的文件 他能够使得两个文件的 timestamp 保持一致。在你修改日志之前,你可以在/dev/shm 下面建立一个临时文件,并将 log 的 timestamp 保存下来,然后再 touch 回去。为什么要用/dev/shm 目录在第三节会有说明。当然我们也可以用程序实现,不过有的时候我们会碰到没有见过的日志类型,所以有时候需要手工改写日志。除了时间之外,还需要注意文件的其他属性,

15、比如所有者或是否有粘滞位等等。这些都需要注意。Linux 的日志散落在系统各处,同时系统管理员也能够灵活的制定日志保存的位置,这就要求我们非常小心,采用通用的日志移除或改写工具是很不明智的,为此我们要对需要修改的日志系统有个全面的了解。具体的内容请参看文章Linux 服务器日志管理详解。这里提供个工具http:/lists.darklab.org/pipermail/darklab/2006-May/000234.html怎么使用自己去看看吧。我个人还是倾向于某个日志用某个特定的清除或修改器,这样灵活性更大点。我们也可以使用 sed 命令行工具来清除某些日志,通常我会这样修改 web 日志:

16、touch /dev/shm/timestamp; touch -r access_log /dev/shm/timestamp;sed /192.168.44.1/d access_log /dev/shm/backlog ; cat /dev/shm/backlog access_log; touch -r /dev/shm/timestamp ./access_log ;shred -n 255 -z -u /dev/shm/timestamp;这里 192.168.44.1 是我跳板的 IP。具体的 log 修改和擦除工具,各位道长就从网上下个现成的自己改改吧,呵呵,我就不在这献丑了。还有一点,我们要将 wtmp 文件中的登录日志修改成原来管理员登陆的 IP 和时间 也就是第一节中记下的时间与 IP。如果实在得不到 root 权限,我们也可以 ssh loca

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号