-
1.
Ricardo Amaral a.k.a L0gan
Co0L BSidesSP 2015
-
2.
$Whoami
Mach-O – A New Threat
### Long live Open Source - Use Linux (Slackware) ###
Ricardo L0gan
Security Specialist with over 15 years of experience,
enthusiastic in malware research, pen-test and reverse
engineering. I’ve a solid knowledge on topics like
network security, hardening and tuning across multiple
platforms such as Windows, Linux, OS X and Cisco.
Beginner in programming languages as Python, C and
Assembly.
In Brazil I contribute to the Slackware community
(Slackshow and Slackzine) and I’m member of the Staff
of some events: H2HC, SlackShow and Bsides SP.
-
3.
Agenda
0x00 Motivation of Research
0x01 OS X, The New Target
0x02 The Mach-O Format
0x03 Tools For Analysis (Static / Dynamic)
0x04 Current Threats
0x05 Conclusions
Mach-O – A New Threat
-
4.
0x00 - Motivation of Research
Mach-O – A New Threat
Windows always gets infected!!!
Does Linux ever gets infected??
“Mac OS ever gets infected...”
-
5.
Source: www.virustotal.com
Mach-O – A New Threat
0x01 – OS X, The New Target
-
6.
Source: www.virustotal.com
7-day period in April 2014
Mach-O – A New Threat
0x01 – OS X, The New Target
-
7.
Source: www.virustotal.com
7-day period in April 2015
Mach-O – A New Threat
0x01 – OS X, The New Target
-
8.
Source: www.virustotal.com
Mach-O – A New Threat
0x01 – OS X, The New Target
-
9.
Source: http://thehackernews.com/2015/02/vulnerable-
operating-system.html
Mach-O – A New Threat
0x01 – OS X, The New Target
-
10.
Source: http://thehackernews.com/2015/02/vulnerable-operating-system.html
0x01 – OS X, The New Target
Mach-O – A New Threat
-
11.
Binary (Linux)
Binary (Windows)
Binary (OS X)
Mach-O – A New Threat
0x02 - The Mach-O Format
-
12.
The mach-o format was adopted as the
standard in OS X from version 10.6 on
We are currently in version 10.11 (Yosemite El Capitan).
Mach-O – A New Threat
0x02 - The Mach-O Format
-
13.
CA FE BA BE - Mach-O Fat Binary
FE ED FA CE - Mach-O binary (32-bit)
FE ED FA CF - Mach-O binary (64-bit)
CE FA ED FE - Mach-O binary (reverse byte 32-bit)
CF FA ED FE - Mach-O binary (reverse byte 64-bit)
Mach-O – A New Threat
0x02 - The Mach-O Format
-
14.
Mach-O (Mach Object)
HEADER
LOAD COMMANDS
SECTIONS
Architecture of object code
ppc ppc64 i386 x86_64 armv6
armv7 armv7s arm64
Mach-O – A New Threat
0x02 - The Mach-O Format
-
15.
Mach-O – A New Threat
0x02 - The Mach-O Format
HEADER
-
16.
LOAD COMMANDS
Mach-O – A New Threat
0x02 - The Mach-O Format
-
17.
SECTIONS
0x02 - The Mach-O Format
Mach-O – A New Threat
-
18.
0x03 – Tools For Analysis (Static / Dynamic)
Dynamic Analysis
- xcode (graphical)
- IDA Pro (graphical)
- lldb
- fseventer
- open snoop
- activity Monitor (graphical)
- procoxp
- tcpdump
- cocoaPacketAnalyzer (graphical)
- wireshark (graphical)
- lsock
- little Snitch
Static Analysis
- file
- strings
- hex editor (graphical)
- lipo
- otool
- nm
- codesign
- machOView (graphical)
- hopper (graphical)
- class-dump
Mach-O – A New Threat
-
19.
0x03 – Tools For Analysis (Static)
mach-o
FILE
Mach-O – A New Threat
-
20.
STRINGS
0x03 – Tools For Analysis (Static)
Mach-O – A New Threat
-
21.
HEX EDITOR
0xED
HexEdit
wxHexEditor
0x03 – Tools For Analysis (Static)
Mach-O – A New Threat
-
22.
0xcafebabe
LIPO
0x03 – Tools For Analysis (Static)
Mach-O – A New Threat
-
23.
LIPO
0x03 – Tools For Analysis (Static)
Mach-O – A New Threat
-
24.
OTOOL
0x03 – Tools For Analysis (Static)
Mach-O – A New Threat
-
25.
NM
0x03 – Tools For Analysis (Static)
Mach-O – A New Threat
-
26.
CODESIGN
0x03 – Tools For Analysis (Static)
Mach-O – A New Threat
-
27.
MachOView
0x03 – Tools For Analysis (Static)
Mach-O – A New Threat
-
28.
HOPPER
0x03 – Tools For Analysis (Static)
Mach-O – A New Threat
-
29.
CLASS-DUMP
0x03 – Tools For Analysis (Static)
Mach-O – A New Threat
-
30.
- Keep Virtualization Software Updated
- Use System Tools Installed in VM
- Network Host-Only mode
- If you use Shared Folder(Host) leave it as “read-only”
- Disable Gatekeeper (Allow apps downloaded from: Anywhere)
VMWARE FUSION / PARALLELS / VIRTUALBOX
0x03 – Tools For Analysis (Dynamic)
Mach-O – A New Threat
-
31.
XCODE
0x03 – Tools For Analysis (Dynamic)
Mach-O – A New Threat
-
32.
IDA PRO
0x03 – Tools For Analysis (Dynamic)
Mach-O – A New Threat
also is a static tool
-
33.
LLDB
0x03 – Tools For Analysis (Dynamic)
Mach-O – A New Threat
-
34.
FSEVENTER
0x03 – Tools For Analysis (Dynamic)
Mach-O – A New Threat
-
35.
OPEN SNOOP
0x03 – Tools For Analysis (Dynamic)
Mach-O – A New Threat
-
36.
ACTIVITY MONITOR
0x03 – Tools For Analysis (Dynamic)
Mach-O – A New Threat
-
37.
PROCXP
0x03 – Tools For Analysis (Dynamic)
Mach-O – A New Threat
-
38.
TCPDUMP
0x03 – Tools For Analysis (Dynamic)
Mach-O – A New Threat
-
39.
COCOA
0x03 – Tools For Analysis (Dynamic)
Mach-O – A New Threat
-
40.
WIRESHARK
0x03 – Tools For Analysis (Dynamic)
Mach-O – A New Threat
-
41.
LSOCK
0x03 – Tools For Analysis (Dynamic)
Mach-O – A New Threat
-
42.
Little Snitch
0x03 – Tools For Analysis (Dynamic)
Mach-O – A New Threat
-
43.
0x04 – Current Threats
Mach-O – A New Threat
-
44.
Source: www.virustotal.com
0x04 – Current Threats
Mach-O – A New Threat
-
45.
Mac.BackDoor.OpinionSpy.3
Names:
MacOS_X/OpinionSpy.A (Microsoft),
Mac.BackDoor.OpinionSpy.3 (F-Secure),
Mac.BackDoor.OpinionSpy.3 (Trend)
.OSA --> ZIP:
PremierOpinion
upgrade.xml
Source:
http://vms.drweb.com/virus/?i=4354056&lng=en
http://news.drweb.com/show/?i=9309&lng=en&c=5
0x04 – Current Threats
Mach-O – A New Threat
-
46.
OSX_KAITEN.A
Names:
MacOS_X/Tsunami.A (Microsoft),
OSX/Tsunami (McAfee),
OSX/Tsunami-Gen (Sophos),
OSX/Tsunami.A (F-Secure),
OSX/Tsunami.A (ESET)
Binary:
/tmp/.z
Source:
http://www.trendmicro.com/vinfo/us/threat-encyclopedia/malware/osx_kaiten.a
0x04 – Current Threats
Mach-O – A New Threat
-
47.
OSX_CARETO.A
Names:
MacOS:Appetite-A [Trj] (Avast)
OSX/BackDoor.A (AVG)
MAC.OSX.Backdoor.Careto.A (Bitdefender)
OSX/Appetite.A (Eset)
MAC.OSX.Backdoor.Careto.A (FSecure)
Trojan.OSX.Melgato.a (Kaspersky)
OSX/Backdoor-BRE (McAfee)
Backdoor:MacOS_X/Appetite.A (Microsoft)
OSX/Appetite-A (Sophos)
Source:
http://www.trendmicro.com/vinfo/us/threat-encyclopedia/malware/osx_careto.a
0x04 – Current Threats
Mach-O – A New Threat
-
48.
Hacking is a way of life
0x05 – Conclusions
Reference:
Sarah Edwards
REVERSE Engineering Mac Malware - Defcon 22
https://www.defcon.org/images/defcon-22/dc-22-presentations/Edwards/DEFCON-22-
Sarah-Edwards-Reverse-Engineering-Mac-Malware.pdf
https://developer.apple.com/library/mac/documentation/DeveloperTools/Conceptual/MachO
Runtime/index.html
http://www.agner.org/optimize/calling_conventions.pdf
Mach-O – A New Threat
-
49.
ricardologanbr@gmail.com
@l0ganbr
Contact
Thanks a Lot
Any Questions ?
http://www.slideshare.net/l0ganbr
http://2015.latinoware.org/ricardo-logan
Com a popularidade do sistemas da apple (iphone / Ipad / Mac book) surgem uma nova e promissora linha usuários (melhores financeiramente falando) que pode ser alvos para novos bankers / malwares.
Bot / rootkit / alvos linux (servers)... Ver listas de rootkits .... X-agent (operation pawnstorm)
Neste primeiro gráfico podemos ver que em um período de apenas 7 dias o comparativo de submissões para cada tipo de binário.
Samples mach-o período de 2014 para comparação com 2015 no próximo slide. OK OK parece ser um pouco tendencioso e também mencionar o fato da pesquisa utilizar dados do virustotal por justamente não ser publico pelas empresas de AV.
Neste gráfico já percebe-se um aumento de submissões em binários mach-o comparado com o gráfico do slide anterior.
Detecções de mach-o por vendor. Ai fica a pergunta detectam realmente estes binários ? E realmente efetivo ?
Com todas informações disponibilizadas nos slides anteriores concluímos que o OS X realmente pode ser um plataforma muito explorada. Tanto para malwares quanto para exploração de vulnerabilidades.
Mencionar Empresa Hacker Team que tinha ferramentas de interceptação que rodava ate em OSX
https://github.com/RookLabs/milano
Neste gráfico o resultado e um pouco tendencioso devido ao fato da plataforma Windows estar divido em varias versões, já na o OS X foi apresentado apenas uma versão. Porem de qualquer forma da pra perceber que o OS X e um sistema potencialmente alvo para pesquisadores de vulnerabilidades.
Explicar rapidamente os binários utilizados em outras distribuições (Windows / Linux).
O Mac OS X roda binários do tipo ELF (Linux) e binários Mach-o.
O Nome mach-o vem de Mach Object
Falar do Magic Number, que é um cabeçalho curto e compacto geralmente utilizado para caracterizar seu formato. (ELF/PE/Mach-o/DOS/etc..)
Mach-O, short para formato de arquivo objeto Mach, é um formato de arquivo para arquivos executáveis, código objeto, bibliotecas compartilhadas código dinamicamente-carregado, e core dumps. Também conhecido como binário do tipo FAT que pode ser executado em varias arquiteturas.
O arquivo loader.h contem a estrutura do binário mach-o (header / load_commands / sections).
Existem outras ferramentas como: dtrace, fs_usage, optool, class-dump
A Maior parte das tools command line podem ser obtidas via mac ports.
Ferramenta utilizada para determinar o tipo de binário.
O wxHexEditor é de código aberto !!!
Ferramenta utilizada para extração de binário.
Parecido com o objdump e ldd - Utilizado para dump/disassembly de arquivos e bibliotecas.
O comando “nm” lista os símbolos do arquivo objeto
Criar e manipular assinaturas de códigos.
Ferramenta visual para visualização e edição de binários mach-o.
Disassembler (OS X e Linux) utilizado para engenharia reversa do binário.
Ferramenta utilizada para examinar o design de aplicações mach-o suas estruturas e informações em tempo de execução Objective-C.
ele gera declarações para as classes, categorias e protocolos. (semelhante ao otool -ov)
Na versão 10.7 a apple inseriu o gatekeeper no OS X como forma de evitar a instalação de softwares oriundos de qualquer origem.
Xcode é um (IDE) que contém um conjunto de ferramentas de desenvolvimento de software desenvolvidos pela Apple para o desenvolvimento de software para OS X e iOS
LLDB é um debugger de alto desempenho padrão no Xcode no Mac OS X e suporta a depuração C,
Objective-C e C ++ nos dispositivos de desktop e iOS e simulador.
fseventer é uma ferramenta que monitora as atividades do disco. A exibição de árvore é particularmente interessante,
pois mostra os processos em que são criados ou modificados e destaques relacionados caminhos.
ferramenta que rastreia o arquivo aberto exibindo informações como UID,PID caminho do arquivo. (pode ser utilizado com o dtrace)
Parecido com o top e htop.
Deixar claro para o pessoal que o cocoa citado não tem nada a ver com o framework COCOA.
A Detecção do binário pelo AV basicamente(Pattern Comum) se da por hooking das API do SO (criação / leitura / execução).
Surgiu em 2010 e entre 2014/2015 sofreu algumas atualizações. Basicamente ele monitora usuários Mac OS X coletando informações sobre sites, trafego de rede e outras ações maliciosas. O Malware e distribuído a partir de um binário não malicioso que contem o pacote de download e instalação. PremierOpinion e o backdoor propriamente dito com direitos administrativos e funções de Command and Control.
Sample surgiu em setembro de 2014 ele se conecta em um canal IRC para execução de comandos. O Binário em si altera o nome do processo apache2
Sample surgiu em fevereiro de 2014, fui utilizado em um ataque chamado careto, ele foi utilizado para execução de código remoto (de forma criptografada) na maquina alvo.