ssh不留痕迹登录

 

 欢迎大家一起来Hacking水友攻防实验室学习,渗透测试,代码审计,免杀逆向,实战分享,靶场靶机,求关注

一、远程登录ssh时候w和last无法发现

ssh -T root@127.0.0.1 /bin/bash -i

ssh -lroot 目标ip /usr/bin/bash

/usr/bin/bash -i 表示在登录之后 调用bash命令

-i 表示是交互式shell

原因:w和last,只能发现完整的tty交互式终端,而上述命令并不会分配一个真正的tty,仅仅是调用了/bin/bash而已(接受我们的输入然后输出)

#不留下.bash_history

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

参考大佬的解释:

这是因为w 命令显示信息来源于utmp,last 来源于wtmp,并不是所有程序登录的时候都会调用utmp 和wtmp 日志记录接口,只有交互式会话,才会调用utmp 和 wtmp的日志记录接口,比如 通过tty 或者pts或者图形界面登录的都会调用utmp 和wtmp 日志记录接口,然后我们在使用w 和last 命令的时候就会发现登录信息

ssh -lroot 192.168.12.51 /usr/bin/bash 为什么不属于交互式会话

ssh -lroot 192.168.12.51 /usr/bin/bash 其实就相当于登录之后直接调用bash这个名,此时系统没有为其分配tty,不算一个完整交互式会话,只不过bash 接受输入,然后有输出,让我们误以为是交互式会话,其实不然,你可以将/usr/bin/bash 替换成/usr/bin/ls 试一下,就是简单执行以下就退出了

二、pst,tty区别

pst/0就是地0个终端窗口   tty是完整的交互式终端 

三、如何发现隐藏的ssh登录行为?

如果是隐匿的ssh正在进行,可以通过lsof 或者 netstat 或者ps 命令发现

1)通过lsof发觉异常ssh登录

2)通过ps命令发现异常ssh登录 

这里有个notty的 sshd 进程,说明就是通过上文所述的trick隐匿于w和last命令的ssh登录行为

3)如果是历史ssh 隐匿登录行为,如何找出历史登录行为呢

通过分析/var/log/secure 日志(有的系统是/var/log/auth.log)

 

从 Accepted publickey for root from 192.168.12.54 一行可以得出ssh的登录时间

从Disconnected from 192.168.12.54 port 43000 一行可以得出ssh的退出时间

如果从secure中的分析结果和 last 对不上,那么这些对不上的登录行为有可能就是通过本文所介绍的隐匿方式登录的

其实像scp 、sftp 等也涉及到ssh登录,但却不会在w 和last中留下日志的程序,也都是因为他们不输入交互式会话。

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值