LetsDefend level 1 alert SOC107 - Privilege Escalation Detected event-id 19
Details
EventID: 19
Event Time: Sept. 22, 2020, 3:40 p.m.
Rule: SOC107 - Privilege Escalation Detected
Level: Security Analyst
Source Address 172.16.15.78
Source Hostname KatharinePRD
File Name creditcard
File Hash 7299c49dd85069e47d6514ab5e10c264
File Size 17K
Device Action Allowed
Download (Password:infected): 7299c49dd85069e47d6514ab5e10c264.zip
playbook
Define Threat Indicator
Answer:Other
Check if the malware is quarantined/cleaned
まず、
Device Action Allowed
から実行されていそうだ。また、EndpointのProcess Historyより
creditcard MD5:7299c49dd85069e47d6514ab5e10c264 Path:/home/katharine/Documents/creditcard Cmdline:/home/katharine/Documents/creditcard
実行が確認できる。
Answer:Not Quarantined
Analyze Malware
creditcard -> 27e56f0f4bbb933a9ef25e0e0c2a4aaae578bdc2623e6bcdf664834e4ce60c9d
ファイル概要
$ file creditcard creditcard: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=b363505cb5728e34f1104fe882b2e7b1431ffb76, for GNU/Linux 3.2.0, not stripped $ sha256sum creditcard 27e56f0f4bbb933a9ef25e0e0c2a4aaae578bdc2623e6bcdf664834e4ce60c9d creditcard
VirusTotal 34/61: https://www.virustotal.com/gui/file/27e56f0f4bbb933a9ef25e0e0c2a4aaae578bdc2623e6bcdf664834e4ce60c9d
このプログラムはMaliciousである。ネットワーク通信するものではなさそうであり、CVE-2017-16995に関連するとのレポートがある。
少し中身を見てみる。radare2より、
[0x00001110]> pdf @sym.pwn ; CALL XREF from main @ 0x183a ┌ 343: sym.pwn (); │ ; var int64_t var_28h { > 0xffffffffffffffff} @ rbp-0x28 │ ; var int64_t var_20h { > 0xffffffffffffffff} @ rbp-0x20 │ ; var int64_t var_18h { > 0xffffffffffffffff} @ rbp-0x18 │ ; var int64_t var_10h { > 0xffffffffffffffff} @ rbp-0x10 │ ; var int64_t var_8h { > 0xffffffffffffffff} @ rbp-0x8 │ 0x000016cc 55 push rbp │ 0x000016cd 4889e5 mov rbp, rsp │ 0x000016d0 4883ec30 sub rsp, 0x30 │ 0x000016d4 e808ffffff call sym.__get_fp │ 0x000016d9 488945f8 mov qword [var_8h], rax │ 0x000016dd 48b8ffffffff. movabs rax, 0xffff87ffffffffff │ 0x000016e7 483945f8 cmp qword [var_8h], rax │ ┌─< 0x000016eb 770c ja 0x16f9 │ │ 0x000016ed 488d3d840a00. lea rdi, qword str.bogus_fp ; 0x2178 ; "bogus fp" ; int status │ │ 0x000016f4 e80efdffff call sym.__exit ; void _exit(int status) │ │ ; CODE XREF from sym.pwn @ 0x16eb │ └─> 0x000016f9 488b45f8 mov rax, qword [var_8h] │ 0x000016fd 4889c7 mov rdi, rax ; uint32_t arg1 │ 0x00001700 e8b3ffffff call sym.get_sp │ 0x00001705 488945f0 mov qword [var_10h], rax │ 0x00001709 48b8ffffffff. movabs rax, 0xffff87ffffffffff │ 0x00001713 483945f0 cmp qword [var_10h], rax │ ┌─< 0x00001717 770c ja 0x1725 │ │ 0x00001719 488d3d610a00. lea rdi, qword str.bogus_sp ; 0x2181 ; "bogus sp" ; int status │ │ 0x00001720 e8e2fcffff call sym.__exit ; void _exit(int status) │ │ ; CODE XREF from sym.pwn @ 0x1717 │ └─> 0x00001725 488b45f0 mov rax, qword [var_10h] │ 0x00001729 4889c7 mov rdi, rax ; uint32_t arg1 │ 0x0000172c e8f2feffff call sym.__read │ 0x00001731 488945e8 mov qword [var_18h], rax │ 0x00001735 48b8ffffffff. movabs rax, 0xffff87ffffffffff │ 0x0000173f 483945e8 cmp qword [var_18h], rax │ ┌─< 0x00001743 770c ja 0x1751 │ │ 0x00001745 488d3d3e0a00. lea rdi, qword str.bogus_task_ptr ; 0x218a ; "bogus task ptr" ; int status │ │ 0x0000174c e8b6fcffff call sym.__exit ; void _exit(int status) │ │ ; CODE XREF from sym.pwn @ 0x1743 │ └─> 0x00001751 488b45e8 mov rax, qword [var_18h] │ 0x00001755 4889c6 mov rsi, rax │ 0x00001758 488d3d3a0a00. lea rdi, qword str.task_struct____lx ; 0x2199 ; "task_struct = %lx\n" ; const char *format │ 0x0000175f b800000000 mov eax, 0 │ 0x00001764 e827f9ffff call sym.imp.printf ; int printf(const char *format) │ 0x00001769 488b45e8 mov rax, qword [var_18h] │ 0x0000176d 4805f8050000 add rax, 0x5f8 │ 0x00001773 4889c7 mov rdi, rax ; uint32_t arg1 │ 0x00001776 e8a8feffff call sym.__read │ 0x0000177b 488945e0 mov qword [var_20h], rax │ 0x0000177f 48b8ffffffff. movabs rax, 0xffff87ffffffffff │ 0x00001789 483945e0 cmp qword [var_20h], rax │ ┌─< 0x0000178d 770c ja 0x179b │ │ 0x0000178f 488d3d160a00. lea rdi, qword str.bogus_cred_ptr ; 0x21ac ; "bogus cred ptr" ; int status │ │ 0x00001796 e86cfcffff call sym.__exit ; void _exit(int status) │ │ ; CODE XREF from sym.pwn @ 0x178d │ └─> 0x0000179b 488b45e0 mov rax, qword [var_20h] │ 0x0000179f 4883c004 add rax, 4 │ 0x000017a3 488945d8 mov qword [var_28h], rax │ 0x000017a7 48b8ffffffff. movabs rax, 0xffff87ffffffffff │ 0x000017b1 483945d8 cmp qword [var_28h], rax │ ┌─< 0x000017b5 770c ja 0x17c3 │ │ 0x000017b7 488d3dfd0900. lea rdi, qword str.bogus_uid_ptr ; 0x21bb ; "bogus uid ptr" ; int status │ │ 0x000017be e844fcffff call sym.__exit ; void _exit(int status) │ │ ; CODE XREF from sym.pwn @ 0x17b5 │ └─> 0x000017c3 488b45d8 mov rax, qword [var_28h] │ 0x000017c7 4889c6 mov rsi, rax │ 0x000017ca 488d3df80900. lea rdi, qword str.uidptr____lx ; 0x21c9 ; "uidptr = %lx\n" ; const char *format │ 0x000017d1 b800000000 mov eax, 0 │ 0x000017d6 e8b5f8ffff call sym.imp.printf ; int printf(const char *format) │ 0x000017db 488b45d8 mov rax, qword [var_28h] │ 0x000017df be00000000 mov esi, 0 ; int64_t arg2 │ 0x000017e4 4889c7 mov rdi, rax ; uint32_t arg1 │ 0x000017e7 e883feffff call sym.__write │ 0x000017ec e87ff8ffff call sym.imp.getuid ; uid_t getuid(void) │ 0x000017f1 85c0 test eax, eax │ ┌─< 0x000017f3 7522 jne 0x1817 │ │ 0x000017f5 488d3ddb0900. lea rdi, qword str.spawning_root_shell ; 0x21d7 ; "spawning root shell" ; const char *s │ │ 0x000017fc e83ff8ffff call sym.imp.puts ; int puts(const char *s) │ │ 0x00001801 488d3de30900. lea rdi, qword str.bin_bash ; 0x21eb ; "/bin/bash" ; const char *string │ │ 0x00001808 e873f8ffff call sym.imp.system ; int system(const char *string) │ │ 0x0000180d bf00000000 mov edi, 0 ; int status │ │ 0x00001812 e8c9f8ffff call sym.imp.exit ; void exit(int status) │ │ ; CODE XREF from sym.pwn @ 0x17f3 │ └─> 0x00001817 488d3dd70900. lea rdi, qword str.not_vulnerable ; 0x21f5 ; "not vulnerable?" ; int status └ 0x0000181e e8e4fbffff call sym.__exit ; void _exit(int status)
spawning root shellや/bin/bashという文字列から間違いなくMaliciousであることは分かる。bogus* という文字列がチラホラと見られるため検索すると、
Get Root Privileges Using CVE-2017-16995 | Infinite Script
CVE-2017-16995/exploit-poc-pentest.c at master · gugronnier/CVE-2017-16995 · GitHub
これらに行き着いた。これがおそらく今回のMaliciousなプログラムの基になったものだと思われる。
Answer:Malicious
Check If Someone Requested the C2
Logには5か月あとに、特定のURLへのアクセスがあったが関係性が分からない、MaliciousなURLでなさそうであった。
プログラムを見るとネットワーク通信をしないようなプログラムであると思われるため、アクセスは無さそうだ。
Answer:Not Accessed
Add Artifacts
Value | Type | Comment |
---|---|---|
7299c49dd85069e47d6514ab5e10c264 | MD5 Hash | CVE-2017-16995, Privilege Escalation |
End
いやいや、アクセスは無いですよ。