4ensiX

4ensiX

FPと言ったものはFPを選んだが表示はTPになっていることに気づいた。

LetsDefend level 1 alert SOC105 - Requested T.I. URL address event-id 16

Details

EventID: 16
Event Time: Sept. 20, 2020, 10:54 p.m.
Rule: SOC105 - Requested T.I. URL address
Level: Security Analyst
Source Address 172.148.17.47
Source Hostname BillPRD
Destination Address 5.188.0.251
Destination Hostname pssd-ltdgroup.com
Username Mike01
Request URL https[:]//pssd-ltdgroup[.]com
User Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36 Edge/15.15063
Device Action Allowed

playbook

Analyze Threat Intel Data

URL https[:]//pssd-ltdgroup[.]com/

VirusTotal 9/93: https://www.virustotal.com/gui/url/59da6e4583f0ceeb2b5d3933f883ccad9bfc91cd3bbfc0c4afb37c0eafc9ce48/detection
登録数は少ないが、Avira,Bitdefender,ESET,Fortinet,Sophosといった有名どころに登録されている。

Forcepoint ThreatSeeker  elevated exposure
Sophos  spyware and malware
Webroot Phishing and Other Frauds

Hybrid-Analysis: https://www.hybrid-analysis.com/sample/e06dcdb951cbef8ffddd75a9a2d38382d41a4c9ce98569409ab21133c8bfb981?environmentId=100
こちらでも、Maliciousの判定が出ている。

Domain pssd-ltdgroup[.]com

VirusTotal 9/90: https://www.virustotal.com/gui/domain/pssd-ltdgroup.com/relations
ドメインでも検知数はあまり変わらないが、Communicating Filesには明らかにマルウェアが多い。

5.188.0.251

AbuseIPDB: https://www.abuseipdb.com/check/5.188.0.251
登録はあるが、レポートは少ない。
ip-sc: https://ip-sc.net/ja/r/5.188.0.251
SCAMALYTICS: https://scamalytics.com/ip/5.188.0.251
ip-scでは脅威として登録されていないが、SCAMALYTICSではVery high Riskとなっている。
Connection type wireless?

Answer:Malicious

Interaction with TI data

Log

DATE TYPE SOURCE ADDRESS SOURCE PORT DESTINATION ADDRESS DESTINATION PORT
Sep, 20, 2020, 10:54 PM Firewall 172.16.17.47 54211 5.188.0.251 443
Sep, 20, 2020, 10:54 PM Proxy 172.16.17.47 54211 5.188.0.251 443
Main Process: Krankheitsmeldung_092020_07.xlsm
Request URL: https://pssd-ltdgroup.com

おや、xlsmからのURLへのアクセスのようだ。

Endpoint

Process History

Krankheitsmeldung_092020_07.xlsm
MD5:14970ce0a3d03c46a4180db69866d0d1
Path:c:/users/Bill/desktop/Krankheitsmeldung_092020_07.xlsm
Size:558.83 KB
Username:Bill01
Start Time:20.09.2020 22:51

ちなみに、
14970ce0a3d03c46a4180db69866d0d1 - VirusTotal 45/64: https://www.virustotal.com/gui/file/0e3a83e441951860929c99e24bf19e76fe281c3e1b1f7f3aea49b0a38673f873
Malicious!

Answer:Accessed

Containment

Add Artifacts

Value Type Comment
https[:]//pssd-ltdgroup[.]com URL Address accessed from malicious xlsm file
14970ce0a3d03c46a4180db69866d0d1 MD5 Hash Requested T.I. URL address

True Positive

End

f:id:Zarat:20220411205803p:plain
close alert event-id 16

LetsDefend level 1 alert SOC106 - Found Suspicious File - TI Data event-id 17

Details

EventID: 17
Event Time: Sept. 22, 2020, 11:10 a.m.
Rule: SOC106 - Found Suspicious File - TI Data
Level: Security Analyst
Source Address 172.148.17.150
Source Hostname ChanProd
File Name ChromeSetup.exe
File Hash 1430438f19e3d3e2b375d127c68254ab
File Size 63.65 MB
Device Action Cleaned
Download (Password:infected): 1430438f19e3d3e2b375d127c68254ab.zip

playbook

Check if the malware is quarantined/cleaned

Device Action Cleaned

であるので
Answer: Quarantined

Analyze Malware

まず該当ファイルは、

$ file ChromeSetup.exe 
ChromeSetup.exe: PE32 executable (GUI) Intel 80386, for MS Windows
$ md5sum ChromeSetup.exe 
1430438f19e3d3e2b375d127c68254ab  ChromeSetup.exe

VirusTotal: https://www.virustotal.com/gui/file/38dbb5166b28e62fbc482646618a55dc8430fa596d98df6f3eed257df0007db0
VTでは、Maliciousとの報告は無い。
ANYRUN: https://app.any.run/tasks/c8dfb3da-52c3-4df4-8c9e-d91bd4b03129/
ANYRUNでは、動作にはMaliciousの判定がある。ただ、公式から配布されているChromeSetupもMaliciousの判定がついているためANYRUNでは判断しづらい。
通信先は、Maliciousとして登録されているものは無いが怪しいロシアのサーバであるとのレポートも見られる。
redirector.gvt1[.]com - VirusTotal: https://www.virustotal.com/gui/domain/redirector.gvt1.com/community
ただ、ベンダーにMaliciousと登録されているものは無いのでMaliciousではないと判断する。
Answer: Non-malicious

Add Artifacts

Value Type Comment
1430438f19e3d3e2b375d127c68254ab MD5 Hash ChromeSetup.exe

False Positive

End

f:id:Zarat:20220408193747p:plain
close alert event id 17

導入当時は信頼できるものであったも、自動取得するようなセキュリティの情報元は定期的に見直すべきかもしれない。

LetsDefend level 1 alert SOC101 - Phishing Mail Detected event-id 18

Details

EventID: 18
Event Time: Sept. 22, 2020, 3:35 p.m.
Rule: SOC101 - Phishing Mail Detected
Level: Security Analyst
SMTP Address 172.82.128.241
Source Address david@cashbank.com
Destination Address katharine@letsdefend.io
E-mail Subject URGENT! Your bank account may have fallen into the hands of fraudsters!
Device Action Allowed

URGENT! Your bank account may have fallen into the hands of fraudsters!

From: david@cashbank.com Sept. 22, 2020, 3:35 p.m.
To: katharine@letsdefend.io Sept. 22, 2020, 3:35 p.m.

Hi,

I'm working in the CASHBANK fraud department. We urgently expect information from you about the following topic.

I tried to reach you by phone but I could not reach you because your phone was turned off.

We detected suspicious activities in your account. We suspect fraudsters have taken over your credit card.

Can you quickly check your attached credit card statement and return to us?

Yours truly.

Attachments
7299c49dd85069e47d6514ab5e10c264.zip

playbook

Are there attachments or URLs in the email?

Answer: Yes

Analyze Url/Attachment

送信側アドレス

cashbank[.]com

VirusTotal: https://www.virustotal.com/gui/domain/cashbank.com

172.82.128.241

VirusTotal: https://www.virustotal.com/gui/ip-address/172.82.128.241
ドメインもIPもMaliciousとは言えない。

mail Attachments

$ md5sum creditcard 
7299c49dd85069e47d6514ab5e10c264  creditcard

これは、LetsDefend level 1 alert SOC107 - Privilege Escalation Detected event-id 19 - 4ensiXで解析したものと同じであった。

Answer: Malicious

Check If Mail Delivered to User?

Device Action Allowed

アラートと以前の調査から、届いた上で実行している。
Answer: Delivered

Check If Someone Opened the Malicios File/URL?

以前の調査から、実行してしまっている。
Answer: Opened

Add Artifacts

Value Type Comment
david@cashbank.com E-mail Sender
7299c49dd85069e47d6514ab5e10c264 MD5 Hash CVE-2017-16995, Privilege Escalation

End

f:id:Zarat:20220407215802p:plain
close alert event-id 18

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

f:id:Zarat:20220407201806p:plain
close alert event-id 19

いやいや、アクセスは無いですよ。

LetsDefend level 1 alert SOC105 - Requested T.I. URL address event-id 20

Details

EventID: 20
Event Time: Oct. 19, 2020, 9:54 p.m.
Rule: SOC105 - Requested T.I. URL address
Level: Security Analyst
Source Address 172.16.20.4
Source Hostname gitServer
Destination Address 151.101.112.133
Destination Hostname raw.github.com
Username gitUser
Request URL https[:]//raw.githubusercontent[.]com/django/django/master/setup.py
User Agent Wget/1.19.4 (linux-gnu)
Device Action Allowed

playbook

Analyze Threat Intel Data

Requested T.I. URL addressということなので、URLを重点的に見ていく。

https[:]//raw.githubusercontent[.]com/django/django/master/setup.py

djangoのsetupスクリプトですね。
Django overview | Django
VTで見ると、
VirusTotal: https://www.virustotal.com/gui/url/a129d9a69a5feae5c6b26dd4976fc6d6cf7fc50862f81bd79b94129990f1816c
VTでは登録されていない。他のHybrid-Analysisなどでも脅威としての登録は確認できなかった。
このスクリプトに過去にバックドアが仕組まれたことがあるから登録されているのかと思ったが、そのような事実は見つからない。
DNSがハイジャックされて、アクセス先が変わりMaliciousなファイルがダウンロードされたときにTIとして登録されたものが残っていたのだろうか。
脅威として登録されていたのは、https[:]//raw.githubusercontent[.]comの可能性もある。 自身が取得できた情報の中では、URLはMaliciousではないと考える。

151.101.112.133

一応IPを確認する。
VirusTotal 1/89: https://www.virustotal.com/gui/ip-address/151.101.112.133
ip-sc: https://ip-sc.net/ja/r/151.101.112.133
VTで登録されているが1件である。また、IPはFastlyのものだ。正直Fastlyが乗っ取られるのは考えにくく、悪意のあるグループがFastlyを利用できるかも怪しいと考える。
今回のアラートはFalse Positiveの可能性が見られる。

Answer:Non-malicious

Add Artifacts

Value Type Comment
https[:]//raw.githubusercontent[.]com/django/django/master/setup.py URL Address github django
https[:]//raw.githubusercontent[.]com URL Address threat intel?

False Positive

End

f:id:Zarat:20220406172502p:plain
close alert event-id 20

久々のFalse Positive.