linux反dshell 什么意思

linux反dshell 什么意思,第1张

简单来说,Shell就是实现用户命令的接口,通过这个接口我们就能实现对计算机的控制,比如我们常见的ssh就是执行的Shell命令实现对远程对服务器的控制。

那反dShell是啥呢?其英文名叫做Reverse

Shell,具体干什么的呢?就是控制端首先监听某个TCP/UDP端口,然后被控制端向这个端口发起一个请求,同时将自己命令行的输入输出转移到控制端,从而控制端就可以输入命令来控制被控端了。

比如说,我们有两台主机A、B,我们最终想实现在A上控制B。那么如果用正向Shell,其实就是在A上输入B的连接地址,比如通过ssh连接到

B,连接成功之后,我们就可以在A上通过命令控制B了。

如果用反向Shell,那就是在A上先开启一个监听端口,然后让B去连接A的这个端口,连接成功之后,A这边就能通过命令控制B了。

反dshell有什么用?

还是原来的例子,我们想用A来控制B,如果想用ssh等命令来控制,那得输入B的sshd地址或者端口对吧?但是在很多情况下,由于防火墙、安全组、局域网、NAT等原因,我们实际上是无法直接连接到B的,比如:

A虽然有公网IP,但B是一个处于内网的机器,A就没法直接连到B上。

B上开了防火墙或者安全组限制,sshd的服务端口22被封闭了。

B是一台拨号主机,其IP地址经常变动。

假如B被攻击了,我们想让B向A汇报自己的状况,那自然就需要B主动去连接A。

如果是这些情况,我们就可以用反dShell用A来控制B了。

大前提,windows可以使用freesshd做ssh服务器当一级代理,但是它的端口转发功能有bug,所以还是用linux的ssh吧。

ps:Earthworm虽然简单好用,但是传输的流量是不加密的,已经碰到过好几次反d回来仍然被安全设备拦截的情况,所以还是老老实实用ssh代理了

安装sshpass,需要gcc编译安装。

ssh会话会在空闲一段时间后自动僵死,但是要注意 进程 连接 仍在。虽然客户端也可以设置心跳检测,但在服务端设置更方便。

修改/etc/ssh/sshd_config

p参数表示ssh的端口

ssh命令

ssh -fCN -L 127.0.0.1:1234:192.168.99.125:3389 root@192.168.99.199 -p 53

plink.exe命令

plink.exe -v -C -N -L 127.0.0.1:8888:127.0.0.1:3389 test@117.28.112.73 -P 9398 -pw password

直接访问 本机 开启监听的1234端口,其实等于通过 远程主机 192.168.99.199来访问 远程主机 192.168.99.125上的3389端口

-n 将 stdio 重定向到 /dev/null,与 -f 配合使用

-T 不分配 TTY 只做代理用

-q 安静模式,不输出 错误/警告 信息

-f 后台连接

-N 连接后不取得shell

-C 启动压缩,加快速度

(如不理解参数可以去掉他们看效果)

-L 1234为建立隧道后本地监听的端口,192.168.99.125是隧道出口转发到的目标地址(即xp靶机),3389是目标端口,root@192.168.99.199是建立隧道的另一方,即rolling版登录的账号和ip,-p 53是rolling版的监听端口。

ssh -fCN -R 0.0.0.0:9999:192.168.1.1:80 root@test.com

0.0.0.0表示vps上监听所有地址。

直接访问 远程主机 上开启监听的9999端口就相当于通过 本机 来访问192.168.1.1上的80端口。

其中有个 大坑

bind_address 参数默认值为空,等价于

并不意味着任何机器,都可以通过 VPS 来访问 内网 机器。建立连接后,只能在 VPS ( sshd server ) 本地 访问 「内网」 机器。要在办公网的笔记本上通过 VPS 映射的端口来访问 内网 机器,需要修改vps上的/etc/ssh/sshd_config文件,启用 VPS sshd 的 GatewayPorts 参数,set to yes or clientspecified ,允许任意请求地址,通过转发的端口访问内网机器。

-D socks代理,不多解释了。

-g 监听所有地址,允许其他主机连接。

修改Linux远程端口的方法如下:

一、首先,远程进去 linux。

二、.ssh的配置文件是在/etc/ssh/sshd_config这个文件里的。

三、修改端口就是通过编辑这个文件实现vi /etc/ssh/sshd_config。

四、找到#port 22 这一行,默认端口 22,可以把前面的#删除,然后把 22改为其它的端口。

五、例如把原来的那一行改为 Port 43999,这样子重启ssh以后ssh的端口就是43999了。

六、可以看到系统已经监听43999这个端口了,其实它是ssh服务的。

这样就可以完成修改了。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/5899788.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-07
下一篇2023-03-07

发表评论

登录后才能评论

评论列表(0条)

    保存