Environment-Variables

利用漏洞時未設置 HOME

  • January 27, 2019

我有一個錯誤 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 登錄

在此處輸入圖像描述

  1. 使用 samba userman 腳本漏洞登錄:

在此處輸入圖像描述

3)帶密碼的ssh(cd正在工作):

在此處輸入圖像描述

當您通過正常方法(在控制台、通過 SSH 等)登錄時,處理登錄的程序會設置一些環境變數,包括HOME. 如果您不是通過登錄而是通過利用程序中的漏洞來訪問 shell,您將獲得該程序的環境,該環境通常但不總是包括HOME.

在 bash 中,由於某種原因,cd不帶參數的命令使用 的值HOME作為目標。/etc/passwd但是,如果HOME未設置波浪號擴展,則從使用者數據庫(例如)回退到主目錄。因此,如果HOME未設置,則會cd抱怨,但cd ~會更改使用者的主目錄。未設置時不帶參數cd $HOME執行。cd``HOME

當您利用漏洞時,您不能指望環境是熟悉的環境。從能夠執行程式碼(例如,擁有一個外殼)到設置一個方便的環境來執行標準程式碼,這是製作漏洞利用技術的一部分——最簡單的部分。

引用自:https://unix.stackexchange.com/questions/209429