利用漏洞时未设置HOME

利用漏洞时未设置HOME

我有一个错误 sh: line 61: cd: HOME not set。

在此输入图像描述

发行版:Metasploitable 2 (Ubuntu 8.04)

/root/.bashrc(删除注释和空格):

[ -z "$PS1" ] && return
shopt -s checkwinsize
[ -x /usr/bin/lesspipe ] && eval "$(lesspipe)"
if [ -z "$debian_chroot" -a -r /etc/debian_chroot ]; then
    debian_chroot=$(cat /etc/debian_chroot)
fi
case "$TERM" in
xterm-color)
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
;;
*)
    PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
    ;;
esac
case "$TERM" in
xterm*|rxvt*)
    PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"'
    ;;
*)
    ;;
esac
if [ "$TERM" != "dumb" ]; then
    eval "`dircolors -b`"
    alias ls='ls --color=auto'
fi

猫 /root/.profile

# ~/.profile: executed by Bourne-compatible login shells.

if [ "$BASH" ]; then
    if [ -f ~/.bashrc ]; then
    . ~/.bashrc
    fi
fi

mesg n

ps -p $$ -ocomm=

sh

我尝试从我的kali到这台机器使用“rlogin -l root xxxx”,但它不起作用。 .rhosts 文件没问题,但我收到此错误消息,所以也许这就是它不起作用的原因。

1)使用1524后门通过telnet登录

在此输入图像描述

2) 使用 samba userman 脚本登录:

在此输入图像描述

3)带密码的 ssh(cd 正在工作):

在此输入图像描述

答案1

当您通过常规方法(在控制台上、通过 SSH 等)登录时,处理登录的程序会设置一些环境变量,包括HOME.如果您不是通过登录而是通过利用程序中的漏洞来访问 shell,您就可以获得该程序的环境,其中通常但并不总是包括HOME.

在 bash 中,由于某种原因,cd不带参数的命令使用 的值HOME作为目标。但是,如果未设置,波浪号扩展将从用户数据库回退到主目录(例如/etc/passwd) 。HOME因此,如果HOME未设置,cd则会抱怨,但cd ~会更改用户的主目录。未设置时不带参数cd $HOME运行。cdHOME

当您利用漏洞时,您不能指望环境是熟悉的。这是利用技术的一部分——简单的部分——从能够执行代码(例如,拥有一个 shell)到建立一个方便的环境来运行标准代码。

相关内容