|
在攻击结束后,如何不留痕迹的清除日志和操作记录,以掩盖入侵踪迹,这其实是一个细致的技术活。你所做的每一个操作,都要被抹掉;你所上传的工具,都应该被安全地删掉。
01、清除history历史命令记录 第一种方式: (1)编辑history记录文件,删除部分不想被保存的历史命令。
2 x: {3 ?: w5 z) E8 h& z- vim ~/.bash_history
复制代码 ) Z. c# p' G6 N0 `# |* w: a5 B
(2)清除当前用户的history命令记录
" o u# N/ }9 p8 r( o! L- history -c
复制代码 ) p2 y; m) p+ D! N
第二种方式: (1)利用vim特性删除历史命令 - 8 | Z3 Y" l5 J: ~; L4 u5 u6 _
- #使用vim打开一个文件5 l/ }5 C" T0 y/ M8 q& M
- vi test.txt& K& P# ^% Z/ }2 a* V7 A
- 0 [6 U3 g! P. U/ a, f
- # 设置vim不记录命令,Vim会将命令历史记录,保存在viminfo文件中。
. X' d! F) A, f8 b+ Y - :set history=0
) _+ F+ p4 _$ B, D6 O - # 用vim的分屏功能打开命令记录文件.bash_history,编辑文件删除历史操作命令+ s8 t6 K1 F6 r0 m
- vsp ~/.bash_history. J% D' H$ k7 G7 K! g3 f! Y; j% V: d( z
- # 清除保存.bash_history文件即可。
复制代码 0 F# d5 P- h1 k8 u" C7 n( V/ k
(2)在vim中执行自己不想让别人看到的命令
* Y5 y# l9 c6 D& Z# B- :set history=0" Y, X; ~* A4 e; _1 l! c3 ~
- :!command
复制代码
# t. X: C5 R* p5 [( I第三种方式: 通过修改配置文件/etc/profile,使系统不再保存命令记录。 - 1 y$ D+ Z+ u# U
- HISTSIZE=0
复制代码
& e# i: ~7 m& x, H+ Z第四种方式: 登录后执行下面命令,不记录历史命令(.bash_history) - ; Q3 t1 M) Q& V' L1 v2 s! b
- unset HISTORY HISTFILE HISTSAVE HISTZONE HISTORY HISTLOG; export HISTFILE=/dev/null; export HISTSIZE=0; export HISTFILESIZE=0
复制代码
8 a; L/ b$ E, i# @7 D5 o6 V02、清除系统日志痕迹 Linux 系统存在多种日志文件,来记录系统运行过程中产生的日志。
. |" S- L: k$ z! o" g- /var/log/btmp 记录所有登录失败信息,使用lastb命令查看$ u/ C) ?. `* K/ n5 \! h
- /var/log/lastlog 记录系统中所有用户最后一次登录时间的日志,使用lastlog命令查看+ ]! x4 H) v3 Y0 N3 g
- /var/log/wtmp 记录所有用户的登录、注销信息,使用last命令查看
4 A+ g. A# r/ y. t - /var/log/utmp 记录当前已经登录的用户信息,使用w,who,users等命令查看2 P; v) z7 c5 D8 T5 } S* J) Q& p
- /var/log/secure 记录与安全相关的日志信息
' s* y% D1 g; s% W5 ~8 _: ` - /var/log/message 记录系统启动后的信息和错误日志
复制代码 " H" L4 u% `& B3 j
第一种方式:清空日志文件 清除登录系统失败的记录:
6 F8 {& B6 O% ^4 k: {! o- [root@centos]# echo > /var/log/btmp
$ L& e$ c" v- d9 r) [( R) ] - [root@centos]# lastb //查询不到登录失败信息
复制代码 " n) ~. Y& f1 Y$ I" s) z
清除登录系统成功的记录:
3 o1 j0 Z. `( x- [root@centos]# echo > /var/log/wtmp ) z: R% E- ^9 s) Z7 M0 t
- [root@centos]# last //查询不到登录成功的信息
复制代码 n U6 k3 i' G( g! x z( \
清除相关日志信息:
3 v/ x2 Z ]1 _- 清除用户最后一次登录时间:echo > /var/log/lastlog #lastlog命令$ D+ B" }4 e8 j/ C
- 清除当前登录用户的信息:echo > /var/log/utmp #使用w,who,users等命令
4 X1 A4 r; q) T' \2 `- g% V$ J - 清除安全日志记录:cat /dev/null > /var/log/secure
; @7 | B& Q+ w; \2 m - 清除系统日志记录:cat /dev/null > /var/log/message
复制代码 ; s* C$ F4 X; D1 U
第二种方式:删除/替换部分日志 日志文件全部被清空,太容易被管理员察觉了,如果只是删除或替换部分关键日志信息,那么就可以完美隐藏攻击痕迹。 - " }. P$ m( c3 X/ F$ u
- # 删除所有匹配到字符串的行,比如以当天日期或者自己的登录ip
6 v E3 \, s( }9 C - sed -i '/自己的ip/'d /var/log/messages [3 T2 k' a) G/ ?
1 s! S/ o2 u& T+ c* `. M- # 全局替换登录IP地址:
! z, d2 U1 }2 D m - sed -i 's/192.168.166.85/192.168.1.1/g' secure
复制代码
) b2 y1 E+ E7 j7 y' F: H03、清除web入侵痕迹 第一种方式:直接替换日志ip地址
0 D' u9 y9 D4 |% w- sed -i 's/192.168.166.85/192.168.1.1/g' access.log
复制代码
7 u2 e8 ^% \( N g第二种方式:清除部分相关日志 - 0 R9 q4 j. h8 |& U4 X. O& \
- # 使用grep -v来把我们的相关信息删除,
1 z0 @, r, o" c7 P j- m8 g - cat /var/log/nginx/access.log | grep -v evil.php > tmp.log4 N5 B% \- p/ Z, Q4 Q/ _, _
, R( R' y3 |7 k l4 x; s3 E- # 把修改过的日志覆盖到原日志文件, Q4 l! l7 r1 s; x Y# N
- cat tmp.log > /var/log/nginx/access.log/
复制代码
, R) e& ?, z! u" W. ]. x! d04、文件安全删除工具 (1)shred命令 实现安全的从硬盘上擦除数据,默认覆盖3次,通过 -n指定数据覆盖次数。
7 u( }( G. U1 G, ~; C: f9 h5 L& P- [root@centos]# shred -f -u -z -v -n 8 1.txt
- H$ M' w+ f/ N5 E - shred: 1.txt: pass 1/9 (random)...5 ^& w9 L4 |' F4 ^7 h I% R
- shred: 1.txt: pass 2/9 (ffffff)...9 C% \7 S- N& n0 I
- shred: 1.txt: pass 3/9 (aaaaaa)..., Q% A# t0 F. O# N p; p
- shred: 1.txt: pass 4/9 (random)...
8 C" G& a% ]. l7 i - shred: 1.txt: pass 5/9 (000000)...# I$ F* ^% P# d$ H- }
- shred: 1.txt: pass 6/9 (random)...
C$ f9 I ?; j- E; X4 z - shred: 1.txt: pass 7/9 (555555)...3 P. C7 [* ~1 Q: j& p
- shred: 1.txt: pass 8/9 (random)...& \$ d/ K: F- C% D C
- shred: 1.txt: pass 9/9 (000000)...
! O m, F; Y5 Y7 q" Y3 o% ]3 P - shred: 1.txt: removing
; s1 t- w: g' }3 c - shred: 1.txt: renamed to 00000
' u! T9 N) y- |9 o9 b - shred: 00000: renamed to 00008 ~0 w% Y8 M1 t+ k! f
- shred: 0000: renamed to 000
9 T" |; J$ Z/ `: q' Q7 U5 B - shred: 000: renamed to 00, L: T" E! r: H. w7 N* B8 e0 T8 E2 ]% F
- shred: 00: renamed to 0
7 ]! Y" T* D# i - shred: 1.txt: removed
复制代码
|* i8 q) R- M9 n( b(2)dd命令 可用于安全地清除硬盘或者分区的内容。 - + d& ~1 V0 }" ?# n
- dd if=/dev/zero of=要删除的文件 bs=大小 count=写入的次数
复制代码
4 M5 |) O/ S/ u. }(3)wipe Wipe 使用特殊的模式来重复地写文件,从磁性介质中安全擦除文件。 - " A# D D0 U9 @" Q6 ?
- wipe filename
复制代码 9 g/ S/ z. G1 [4 B, U
(4)Secure-Delete Secure-Delete 是一组工具集合,提供srm、smem、sfill、sswap,4个安全删除文件的命令行工具。 - ( }) I7 J+ @' @4 r" l
- srm filename* u7 M: M/ s; p7 O+ @
- sfill filename
3 |8 S! Q9 v; z) K/ l - sswap /dev/sda1
1 K! u8 z. q& w - smem
复制代码
0 `, m) {! \, y. N6 z1 Q$ b( g05、隐藏远程SSH登陆记录 隐身登录系统,不会被w、who、last等指令检测到。
# s, p+ _: }, J! {1 z- ssh -T root@192.168.0.1 /bin/bash -i
复制代码
! E0 U4 F& S4 r! A1 R( M不记录ssh公钥在本地.ssh目录中
0 s; I! O- \ _/ A1 s- ssh -o UserKnownHostsFile=/dev/null -T user@host /bin/bash –i
复制代码 ' {% z j: D- Y" C
|