我有一个错误 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
运行。cd
HOME
当您利用漏洞时,您不能指望环境是熟悉的。这是利用技术的一部分——简单的部分——从能够执行代码(例如,拥有一个 shell)到建立一个方便的环境来运行标准代码。