[캡쳐 1] https://owasp.org/Top10/A07_2021-Identification_and_Authentication_Failures/

식별 및 인증 실패(Identification and Authentication Failures)는 OWASP TOP 10 2017에서는 A02으로 소개된 취약한 인증(Broken Authentication)를 포함해 2021에서는 A07로 소개되었다. 2017 대비 조금 더 넓은 의미를 포함한다.

대응 방안으로는 2중 인증을 구현하고, 비밀번호 설정 정책을 적용하고, 다수 로그인 실패 시 계정 잠금을 통해 지속적인 비인가 로그인 시도를 예방한다. 임의의 랜덤한 값으로 세션 ID를 생성해 부여하고, 암호화된 채널을 통해 전송 및 세션 ID를 재사용하지않고 폐기해야 한다.

 

취약점 유형

유효한 계정 목록을 가지고 있는 경우 Brute Forcing 등 자동화된 공격을 시도, 허용하는 경우
기본 계정 정보를 사용하는 경우
다중 인증이 존재하지 않는 경우
URL에 세션 ID를 노출하는 경우(GET Method)
세션 ID를 재사용하거나 만료된 세션 ID를 파기하지 않는 경우

 

공격 시나리오

유효한 계정 목록을 가진 공격자는 자동화 툴을 사용해 Brute Force 공격을 시도할 수 있고, 이때 , admin/admin 등 기본 계정 정보나 잘 알려진 계정 정보를 사용하고 있는 경우 공격자는 계정을 탈취해 임의의 명령을 수행하는 등 악의적인 행위를 수행할 수 있다.

 

대응방안

다중 인증 구현
기본 계정 정보를 사용 금지
안전한 패스워드 설정 정책 생성 및 인증 실패 횟수 제한 적용
임의의 랜덤한 세션 ID 생성, 암호화 채널 등 안전한 전송 수단을 통한 전송 및 재사용 금지와 만료된 세션 ID 파기 

[캡쳐 1] https://owasp.org/Top10/A06_2021-Vulnerable_and_Outdated_Components/

취약하고 오래된 구성 요소(Vulnerable and Outdated Components)는 취약한 버전이나 EoS, EoL(기술 지원 종료)인 소프트웨어를 계속 사용하는 경우 발생가능한 유형이다. 서비스를 구성하는 모든 요소(OS, WEB, DB, API 등)가 영향을 받는다.

대응방안으로는, 형상관리를 통해 불필요한 서비스를 제거하고, 버전 정보를 확인하여 최신 버전으로 업데이트를 적용한다. 또한, 모니터링을 통해 취약점이 발생한 버전을 확인하여 조치한다. 추가적으로, 애플리케이션 또는 포트폴리오의 수명 주기 동안 업데이트 또는 구성 변경을 모니터링, 분류 및 적용하기 위한 지속적인 계획을 수립해야 한다.

 

취약점 유형

기술 지원 종료된 OS를 사용하는 경우
취약점이 존재하는 애플리케이션, 프레임워크, 라이브러리 등을 사용하는 경우

 

공격 시나리오

[캡쳐 2] Apache struts 2 취약점(CVE-2018-11776)

취약한 버전의 아파치 스트럿츠 2(Apache struts 2)를 사용하고 있는 경우, 원격의 공격자가 서버를 공격해 원격코드를 실행할 수 있다.

 

대응방안

불필요한 소프트웨어나 서비스, 기능, 문서 등 제거
패치 관리, 형상 관리 프로세스 정립 - 소프트웨어 버전 확인 및 업그레이드
 취약점 모니터링을 통한 취약한 소프트웨어 사용 유무 확인

1. Global Privacy Trend

개요  

> 최근 디지털 흐름 방해 요소 多 : 팬데믹, 전쟁, 공급망 이슈 등 => 새로운 서비스모델과 디지털 혁신 증가

> 현 상황과 변화에 대한 평가가 필요 : 미래 신규 위협을 예측하고 대응하기 위해 활용가능한 데이터의 유무

> 신뢰 ∝ 기술혁신 : 기업에 대한 신뢰, 기술에 대한 신뢰, 소비자들의 신뢰

> 신뢰 ∝ 책임 : 신뢰와 책임이 더 큰 위협으로 부터 대응하고, 탈출 할 수 있는 원동력

> 서비스에 대한 사용자들의 다양한 요구 ↑ : 사용자들의 강력한 프라이버시 보호 요구ㆍ프라이버시에 대한 관심 ↑

 

본론

> 개인들의 디지털 기술 활용 : 개인 데이터 활용 => 개인 프라이버시 보호 문제 ↑

> 오프라인 => 온라인 전환 : 온라인 의존성 ↑ => 개인 데이터 사용 ↑ => 프라이버시 보호 문제 ↑

                                                 개인 데이터 중 다수는 사용자의 동의없이 수집되는 개인 정보

                                                 사내 환경 대비 약 85% 공격 위협 증가 (랜섬웨어 급증)

> 디지털 무역 ↑ : 국경간 데이터 흐름 => 각 국가간 프라이버시 규제가 데이터 흐름을 방해하지 않도록 상호협력

                               ex) EU-한국 GDPR 협정, EU-US Safe-Harbor

> AI 도입 : 서비스 향상 vs 기술 격차 => 특정 기업이나 소수가 독점하지 않고, 기술 격차가 발생하지 않도록 도입ㆍ발전

> 프라이버시 보호 기술 : 익명화, 동형암호, 연합학습, 차등 프라이버시,데이터 처리 내 규제 준수 여부(특히 기밀성)

 

결론

> 실요성 있는, 수평적인 정책 필요

> 프라이버시는 규제 당국 뿐 아니라 다수의 이해관계자 간 면밀한 협력이 필요

> 기관들은 보호와 관련된 노력 입증 必 : 각종 지침서 등

> 데이터 흐름의 이해 = 데이터 흐름의 자유 : 관련 규제 이해, 국가간 규제의 차이, 국가간 신뢰ㆍ협력 必

 

∴ 프라이버시는 중요한 문제 : 프라이버시 보호를 이해하고, 관련된 문제를 예측하고 대응

 

2. 데이터 밸런스

> 국내 개인정보보호 흐름 : 개보법 최초 재정 = 개보법을 판단하고 분석하는데 "합리적 판단" 부재 =>혼란 가중

                                                대규모 데이터 유출 = 2014 카드 3사 데이터 유출   => 개보법 "징벌적 손해" 명시

                                                데이터 3법 개정 = 데이터 경쟁력 강화 목적

> 국제적으로 데이터 보호와 데이터 활용 간 견해 차이는 감소하는 추세

> 데이터 밸런스와 관련된 국내 문제점 : "활용 < 보호"의 정책과 처리 흐름

                                                                   ① 타국가 대비 제한적인 합법적 개인정보처리가 가능한 범위

                                                                   ② 합리적 관점을 통한 법리해석 미흡

                                                                   ③ 익명정보에 가까운 가명정보의 처리

> 보호의 목적 : 개인정보의 안전한 활용 <=균형=> 개인정보처리자의 법 준수 및 합립적 접근, 그에 따른 보상책

 

3. Track B. 가명정보 활용 사례 및 전망

> 가명정보 : 데이터 가치 최대한 유지 + 개인정보 일부 또는 전부를 대체ㆍ삭제 = 추가정보 없이 특정 개인 식별 불가한 정보

> 가명정보의 활용 : 통계작성, 과학적 연구, 공익적 기록 보존 등의 목적 내에서 정보주체의 동의없이 활용 가능

> 가명처리 절차 : 목적 설정 등 사전 준비 => 위험성 검토 => 가명처리 => 적정성 검토 => 안전한 관리

> 가명정보 결합 절차 : 서로 다른 개인정보처리자간 가명정보 결합 시

                                        결합 신청 => 결합키관리기관+결합전문기관 or 데이터전문기관 => 결합 가명정보 반출

                                         ※ 개보법 기준 : 결합키관리기관 = KISA, 결합전문기관 = 보호위원회 등이 지정

                                         ※ 신용정보법 기준 : 데이터전문기관 = 금융위원회가 지정하는 결합ㆍ적정성 평가 수행 기관  

> 가명정보 처리 시 준수 사항 : 제3자 제공 시 특정 개인을 식별할 수 있는 정보가 포함되면 안됨

                                                     가명정보 활용과 관련된 모든 안전조치 적용

                                                     결합전문기관에서 가명처리 결합

                                                     특정 개인을 알아보기 위한 가명정보 처리 금지

                                                     가명처리 전일 경우 개인정보가 가명정보로 처리되지 않도록 제외 요청 가능

> 기존의 수기 설문ㆍ연구와 달리 검증된 데이터를 사용하여 정확하고 명확한 결론 도출 가능

 

4. Track C. 재택근무 환경 사례 공유

> 재택근무 : 회사의 구조/사업특성과 임직원 업무 유형 파악이 선행 되어야 함

> 위험요소 : 원격 디바이스의 네트워크 환경 & 실 사용자의 모호성

> 환경 구축 : Zero-Trust 관점에서 MFA, 접근통제 적용 + 임직원 업무적 특성을 고려한 망 구성 및 접근 통제

> 위협 모델링 : 기존의 공개 솔루션(VPN,VDI 등) 위주 모델링에서 가능한 모든 케이스에 대한 모델링 必

> 임직원 인식 개선 : 재택근무 환경을 고려한 다양한 교육방식

                                     ex) PC 팝업, 모바일 앱, 컨텐츠 재작 등

 

5. Track C. 다크웹 내 정보를 활용한 랜섬웨어 범죄 동향

> 딥/다크 웹 : 4% 일반 웹 환경 + 96% 딥/다크 웹 환경

> 범죄의 비즈니스화 : Enablers(자금 조달자) + Offenders(공격그룹) + Monetization(자금 세탁자)

> IAB(Initial Access Broker) : Enablers 중 개인정보를 판매하는 조직 ex) 랩서스

> 전년 대비 다크 웹 기반 랜섬웨어 급증 : Enablers 역할ㆍ비중 증가

> 랜섬웨어 조직 구성 : Master(지도자) + Coordinator(조정자) + Developer(개발자) + Pentester(공격자) +

                                        Recruiter(채용자) + Infra(기반시설) + Money Laundry(자금세탁)

> 랜섬웨어 조직 협력자 : Botnet Owner + Affiliates(파트너사) + RaaS

> "콜로얼 파이프라인" 랜섬웨어 공격 : 다크 웹에서 RaaS를 제공하는 공격 그룹 "다크사이드"

                                                                 랜섬웨어 대응책 변경 = 선제적 대응(공격자 서버 해킹 등)을 통한 무력화

> 데이터 유출 경로 : 내부자 포섭, 환경설정 미흡으로 외부에 공개된 서버, 외주 업체에 의한 유출 등 다양

> 다양한 공격 표면에 대한 분석 必 : 모니터링, 내부자산 목록화, 자동화 도구 활용 => 식별되지 않은 자산 존재 확인

> 유출되어 있는 데이터에 대한 가시성 확보 => 원인 파악 => 수시 점검 등 대응 프로세스 정립

'대외활동' 카테고리의 다른 글

제22회 세계 보안 엑스포(SECON 2023)  (0) 2023.03.31
2023 CONCERT FORECAST  (0) 2023.03.03
제1회 개인정보 위험대응 공모전  (0) 2022.11.28
제6회 금융보안원 논문공모전  (1) 2022.09.02
NAVER PER BootCamp  (0) 2022.09.01

 

 

File Upload 취약점_webshell

1. File Upload 취약점 - 주로 게시판 등에서 파일 업로드 기능을 악용하여 시스템 권한을 획득 - 공격자는 서버 사이드 스크립트(ASP, JSP, PHP 등)을 이용하여 웹쉘(WebShell)을 제작 및 업로드 웹쉘(Web

ggonmerr.tistory.com

 

File Inclusion (DVWA실습)

1. File Inclusion - PHP로 구현된 웹 서버를 대상으로 PHP의 include 기능을 악용하는 방식 - PHP는 incude를 이용해 다른 PHP 파일을 현재 웹 페이지에 포함시킬 수(or 불러올 수) 있음 - 공격자는 악의적인 PH

ggonmerr.tistory.com

 

- File Upload 취약점_webshell 글 "2.4 File Upload (High Level)"에서 필터링 우회를 웹쉘 확장자에 jpg를 추가해 업로드

- 업로드한 웹쉘에 접근 시 jpg 확장자로 되어있어 웹쉘이 실행되지 않음

 

- File Inclusion 공격을 통해 웹쉘을 웹 페이지에 직접 삽입하여 File Upload (High Level) 필터링 우회가 가능함

- DVWA는 High Level로 설정되어 있기 때문에 File Inclusion의 High Level에 대한 우회도 필요함

 

[캡쳐 1] File Upload (High Level) 필터링 우회

- File Upload (High Level)에서 적용되는 필터링을 우회하기 위해 버프슈트를 통한 값 변경

- 확장자 검사를 우회하기 위해 확장자명을 .php.jpg로 변경 및 getimagesize() 우회를 위해 GIF89a 추가

 

- File Inclusion (High Level)에서 적용되는 필터링을 우회하기 위해 page 매개변수의 파라미터 변경

- 파라미터의 명이 file로 시작되도록 변경

 

- 현재 디렉터리의 위치를 모르기 때문에, 상위 디렉터리로 이동하기 위해 ../ 충분히 입력

 

- 최종 URL : hxxp://DVWA 주소/dvwa/vulnerabilities/fi/?page=file/../../../hackable/uploads/webshell.php.jpg

[캡쳐 2] File Upload (High Level) 우회

 

- 명령어 입력 후 Submit Query 시 ERROR 반환

[캡쳐 3] 에러 반환

 

- URL에 Query 파라미터로 명령을 입력해 전달 시 명령 수행 결과를 반환

[캡쳐 4] 공격 성공

 

- File Upload 공격과 File Inclusion 공격을 혼합해 File Upload High Level을 우회함

- 특정 기법만을 방어하기 보다는 다양한 방안을 고려해야 함

1. File Inclusion

- PHP로 구현된 웹 서버를 대상으로 PHP의 include 기능을 악용하는 방식

- PHP는 incude를 이용해 다른 PHP 파일을 현재 웹 페이지에 포함시킬 수(or 불러올 수) 있음

- 공격자는 악의적인 PHP 파일을 생성해 대상 웹 페이지에 include의 파라미터로 전송해 악성 파일을 실행시키거나, 시스템의 로컬 파일에 접근한다.

- 시스템의 로컬 파일에 접근하는 LFI(Local File Inclusion) 방식과, 외부 파일을 불러오는 RFI(Remote File Inclusion) 방식이 존재

 

2. DVWA 실습 - Low Level

2.1 RFI 방식

[캡쳐 1] 최초 페이지

- file1.php, file2.php, file3.php에 접속 시 page 매개변수의 인자값만 변경됨

[캡쳐 2] 악성 PHP 파일 생성

- 웹에서 접근이 가능하도록 /var/www/html에 악성 PHP 파일 생성

[캡쳐 3] /etc/passwd 파일 노출

- 취약한 웹 페이지에서 page 매개변수로 악성 PHP 파일 경로를 전달하면, 해당 PHP이 삽입되어 실행됨

 

2.2 LFI

[캡쳐 4] /etc/passwd 파일 노출

- 로컬 시스템의 파일에 접근 및 파일 내용 노출

 

3. DVWA 실습 - Medium

[캡쳐 5] RFI 공격 실패

- 취약한 웹 페이지에서 RFI를 시도해 보았을 때 공격에 실패한 것을 확인

[캡쳐 6] 입력값 필터링

- page 매개변수로 전달 받은 값에서 http://, https://(File Inclusion 대응), ../, ..\(Directory Traversal 대응)를 공백으로 치환을 수행

[캡쳐 7] 필터링 우회

- http:// 사이에 http://를 입력(hthttp://tp://) 시 필터링에 의해 http://가 공백으로 치환되어 최종적으로 http://가 완성됨.

 

4. DVWA 실습 - High Level

[캡쳐 8] RFI 공격 실패

- page 매개변수를 통해 RFI를 시도하면 ERROR가 출력되며, 필터링을 우회하기 위해 hthttp://tp://를 전달하여도 ERROR가 출력됨.

[캡쳐 9] 입력값 필터링

- 파라미터의 명이 file로 시작하지 않거나, include.php가 아니면 에러를 반환하도록 필터링이 적용됨.

[캡쳐 9] 필터링 우회

- 파라미터를 file로 시작하고, ../를 충분히 입력해 root 디렉터리로 이동 후 /etc/passwd에 접근 시 파일 내용을 확인할 수 있음

- [캡쳐 9]에 적용된 필터링으로는 Directory Traversal 공격에 대응하지 못함.

 

5. DVWA 실습 - Impossible Level

[캡쳐 10] RFI 공격 실패

- 앞서 확인한 필터링을 우회하기 위한 다양한 방법을 시도해 보았지만 ERROR를 출력함

[캡쳐 11] 입력값 필터링

- 소스코드를 확인해 보면 꼭 필요한 파일만 include 될 수 있도록 파일을 지정

 

6. 대응방안

6.1 RFI

1. 원격지 파일을 열지 못하도록 php.ini(php 환경설정 파일) 수정

- allow_url_fopen = OFF
- allow_url_include = OFF

 

6.2 공통

1. 입력값에 대한 필터링을 강화한다(시큐어 코딩 적용)

- hthttp://tp://, ../ 등 필터링을 우회하지 못하도록 필터링 적용

- 중요정보가 저장된 디렉터리나 파일(ex. /etc/passwd, /etc/shadow 등)에 대한 필터링

 

2. include 관련한 에러를 출력하지 않도록 php.ini 수정

- display_errors = OFF

 

3. 파일 존재 유무를 확인하는 코드 삽입

function check_validation($filename){
if (file_exists("$DOCUMENT_ROOT/common/$filename){
echo $filename;
}
else{
echo "접근경로가 올바르지 않습니다.";
exit;
}

 

4.  정기적 로그 분석 진행

 

5. 공격 IP를 탐지 및 차단할 수 있도록 Snort 정책 등 규칙 적용

1.개요

- 기업의 업무와 제품 등과 밀접한 연관을 지닌 데이터베이스(이하 DB)를 노린 랜섬웨어의 증가

- DB 서버를 대상으로 한 해킹시도는 빈번히 발생했으나, 암호화폐와 다크웹, RaaS의 유행으로 다양한 랜섬웨어 발생

2. Masscan 랜섬웨어

2.1 요약

- 외부에 노출되어 취약하게 운영 중인 MS-SQL(MS의 DB 관리시스템)만을 노린 랜섬웨어

- 22년 7월을 시작으로 외부에 공개되어 있는 데이터베이스에 무작위 대입 공격을 통해 침투 및 랜섬웨어 유포

 DB 서버 대상 랜섬웨어
1. Globeimposter 랜섬웨어
- 시기 : 2021 ~ 2022 상반기
- 침투 방법 : DB 서버 무작위 대입 공격, RDP가 열려있는 서버를 대상으로 무작위 대입 공격

2. mallox, 520, 360 랜섬웨어
- 시기 : 2022년 초
- 침투 방법 : Globeimposter 랜섬웨어와 유사

- 감염시 파일 확장자가 masscan-{대문자 한 글자}-{GUID 8자리}로 변경

1. 랜섬웨어 및 확장자를 통해 현재 version 3(F, R, G 버전 등)까지 나온 것으로 추정
2. 확장자 변경 사항 : masscan-F-id값(초기) ⇒ masscan-R-id값 ⇒ masscan-G-id값(현재)

 

2.2 침투 및 유표 방법

[캡쳐 1] 침투 및 유포 요약 (https://kisa-irteam.notion.site/Masscan-bca2eff1e838469faeaa47479c6bd06e)

2.2.1 정보 수집

- ATT&CK Matrix : T1596.005 Search Open Technical Database : Scan Databases

- 외부에 노출된 기업의 DB(MS-SQL, 1433 포트) 서버를 스캔하여 공격 대상 탐색

- OSINT(Open Source Intelligence)를 통해 정보 수집

 

2.2.2 무차별 대입 공격

- ATT&CK Matrix : T1190 Exploit Public-Facing Application

- 대상 DB 서버에 브루트포싱 공격 수행

 

2.2.3 계정 정보 수집

- ATT&CK Matrix : T1110.001 Brute Force : Password Guessing

- sa계정 및 자주 사용하는 계정을 대상으로 브루트포싱 공격을 통해 계정정보 수집

* sa계정 : admin, administrator, administrators 등과 같이 ERP 서버에서 사용하는 관리자 계정

 

2.2.4 실행

- ATT&CK Matrix : T1059.003 Command and Scripting Interpreter : Windows Command Shell

                                 T1059.001 Command and Scripting Interpreter : PowerShell

- 수집된 데이터베이스 계정 정보를 이용해 xp_cmdshell을 활성화 쿼리 전송, 활성화 후 스크립트 파일을 생성하거나 파워셸을 실행

* xp_cmdshell 활성화 : show advanced options 1로 변경, xp_cmdshell을 1로 변경

- xp_cmdshell을 통해 파워셸 스크립트를 사용하는 주목적은 공격자가 사용할 계정을 생성하거나 악성도구(원격접속 프로그램(anydesk) 및 계정탈취 도구(mimikatz), 네트워크 스캔 도구) 다운로드

 

2.2.5 영속성

- ATT&CK Matrix : T1136.001 Create Account : Local Account

- 파워셸을 통해서 공격자가 사용할 계정 생성

 

2.2.6 C2 서버 통신

- ATT&CK Matrix : T1219 Remote Access Software

- xp_cmdshell 또는 파워셸을 이용해 원격접속 프로그램(anydesk)을 설치하고 공격자 PC에서 원격접속

 

2.2.7 계정 정보 수집

- ATT&CK Matrix : T1003.002 OS Credential Dumping : Security Account Manager
                                 T1110.002 Brute Force : Credential Cracking

- 공격자는 계정정보를 획득하기 위해 계정탈취 도구를 사용해 계정정보 수집

- mimikatz : 계정정보 / NLBrute : RDP 계정정보

 

2.2.8 권한 상승

- ATT&CK Matrix : T1078.003 Vaild Accounts : Local Accounts
- 공격자는 계정수집 도구를 통해 관리자 계정 획득 후 관리자 계정으로 로그인 혹은 원격접속

 

2.2.9 대응 회피

- ATT&CK Matrix : T1562.001 Impair Defenses : Disable or Modify Tools
                                 T1562.004 Impair Defenses : Disable or Modify System Firewall

- 관리자 계정으로 접속한 공격자는 윈도우 디펜더 및 백신 중지 / 모니터링 도구를 이용해 프로세스 확인 후 종료 / 방화벽 차단을 막기위해 원격접속(netsh) 허용

 

2.2.10 내부 정찰

- ATT&CK Matrix : T1046 Network Service Discovery

- 공격자는 내부이동을 위해 네트워크 스캔 도구 및 SQL tool를 사용하여 네트워크 정보 수집

 

2.2.11 내부 이동

- ATT&CK Matrix : T1021.001 Remote Services : Remote Desktop Protocol

- 공격자는 이전에 수집한 정보를 이용하여 다른 서버로 원격접속하여 내부이동
- 내부이동 시 위에서 사용한 RDP 정보수집 도구 및 네트워크 스캔 도구를 통해 추가 서버를 찾으며, 가장 많은 정보를 가지고 있는 서버를 거점으로 삼아 랜섬웨어 공격준비

* 대체로 백업서버가 모든 서버와 연결되는 서버이므로, 공격자가 거점으로 많이 선택

 

2.2.12 감염

- ATT&CK Matrix : T1486 Data Encrypted for Impact

- 공격자는 거점서버를 통해 다른 서버에 접속하여 랜섬웨어를 실행(RunExe.exe 파일과 EnCrypt.exe 파일을 사용)
- RunExe.exe의 경우 VSS(VolumShadowCopy Service)를 삭제하고 디렉터리내 exe파일을 실행
- RunExe.exe를 통해 실제 파일을 암호화하는 EnCrypt.exe이 실행되어 파일을 암호화
- 랜섬웨어에 감염된 후, 각 폴더에 랜섬노트(RECOVERY INFORMATION !!!.txt)가 생성

 

2.2.13 로그 삭제

- ATT&CK Matrix : T1070.001 Indicator Removal on Host : Clear Windows Event Logs

                                 T1070.004 Indicator Removal on Host : File Deletion

- 공격자는 랜섬웨어를 실행 후 공격 흔적을 지우기 위해서 이벤트로그(Security, System), 정보수집 도구 삭제

 

2.2.14 사후 정리

- ATT&CK Matrix : T1529 System Shutdown / Reboot
- 공격자는 공격흔적을 모두 지운 뒤 서버 재부팅, 원격접속을 해제

 

2.3 공격 도구 정리

목적 이름 및 버전 MD5 기타
계정 정보 수집 및
계정 탈취
무작위 대입 공격 - 로그인 실패에 따른 다수의 로그 생성
NLBrute.exe e213d0fa6d84c63faf6f0f5c0551b45c RDP 계정 탈취 도구
mimikatz.exe 32bit
mimikatz.exe 64bit
16ccba5b4f17e6aba6089f97db47d501
5c92d71871ea2367337ae2d09126498a
계정 탈취 도구
GetPassword.exe 56398c3eb7453017af674ab85df17386 비밀번호 탈취 도구
스크립트 실행 및
파일 다운
xp_cmdshell - 스크립트 생성 또는 파워쉘 실행
xp_cmdshell 활성화를 위한 설정값 변경 로그 생성
PowerShell - 공격자 사용 계정 생성 및 악성도구 다운
원격 접속 anydesk v7.0.9
anydesk v7.0.10
a1543457c743c62c73c4a6a326e190b1
0dbe3504bc5daa73e7b3f75bbb104e42
공격자 PC로 원격 접속
원격 접속 로그 생성
탐지 우회 HRSword.exe a60a60af95a32a81795761865b7f3bd9 프로세스 중지를 위한 모니터링 도구(ver 5.0.1.1)
netsh - 원격접속 시 방화벽 차단을 막기위한 방화벽 허용 정책 생성
네트워크 정보 수집 ScanPort.exe 36c6f6fee875b519a81284fafb3e41b1 내부 이동을 위한 네트워크 정보 수집
sccman = 闪电扫描.exe
NTScan.exe 1f36c64a8320284f6cc6300db7b59123
sccman 036f82700b985d8a50b2f60c98ab9d77
sqltool.exe 8c3b9af0c1c6db5eaa4ebd3150dc01d0
netpass f627c30429d967082cdcf634aa735410
랜섬웨어 유포 RunExe.exe 00e63af19c1a4cfef68df4b7acf91475 VSS(VolumShadowCopy Service)를 삭제 및 EnCrypt.exe 실행
EnCrypt.exe 566c0616437be7bbd5ce6781981cf5e5 실제 파일 암호화 파일
masscan-F-{id}
masscan-R-{id}
masscan-G-{id}
EnCrypt.exe ea6f19b477aef535dd52132e795b4b40
EnCrypt.exe d055658ed50601a747d0970ed1db6242

 

3. 대응

1. 외부 접속 관리 강화

- 인가된 IP만 접근할 수 있도록 접근통제정책 적용

- 외부에 공개된 서비스 접근 차단

- 외부에 공개 시 접속 포트 변경 및 VPN을 통한 접속

- 원격 데스크톱을 이용할 경우 이중 인증 방식 적용

 

2. 계정 관리 강화

- 기본 계정정보 사용 금지 및 계정 관리 정책 수립

 

3. 백업 관리 강화

- 외부 저장장치 또는 인터넷과 연결되지 않은 PC에 정기적 백업

 

4. 기타

- 최신 OS 업그레이드 및 패치 적용

- 최신 버전의 AV 설치 및 랜섬웨어 차단 기능 활성화

- 랜섬웨어 관련 KISA에서 제공하는 서비스 등 관련된 서비스 이용

- 모의훈련을 통한 대응방안 숙지

- 임직원 교육

 

4. 참조

https://www.boho.or.kr/ransom/bbsView.do?bulletin_writing_sequence=66951&ranking_keyword= 

https://www.boannews.com/media/view.asp?idx=110532&page=1&kind=1 

https://krcert.or.kr/data/guideView.do?bulletin_writing_sequence=36327&queryString=cGFnZT0yJnNvcnRfY29kZT0mc29ydF9jb2RlX25hbWU9JnNlYXJjaF9zb3J0PXRpdGxlX25hbWUmc2VhcmNoX3dvcmQ9 

 

'랜섬웨어 > 분석' 카테고리의 다른 글

LockBit 랜섬웨어 동향  (0) 2023.06.16
다크파워 (Dark Power) 랜섬웨어  (1) 2023.03.28
ESXiArgs Ransomware  (0) 2023.02.15
LockBit 3.0 랜섬웨어 빌더 분석  (1) 2022.10.04

1. File Upload 취약점

- 주로 게시판 등에서 파일 업로드 기능을 악용하여 시스템 권한을 획득

- 공격자는 서버 사이드 스크립트(ASP, JSP, PHP 등)을 이용하여 웹쉘(WebShell)을 제작 및 업로드

웹쉘(Web Shell)
1. 웹페이지를 뜻하는 "웹(Web)"과 서버에게 명령을 내려 실행하기 위한 인터페이스 역할을 하는 "쉘(Shell)"의 합성어
2. 원격에서 웹서버에 명령어를 실행하기 위하여 만들어진 프로그램
3. 서버 사이드 스크립트(ASP, JSP, PHP 등)를 이용해 제작
4. 취약점을 이용해 웹 서버에 웹쉘 업로드 후 서버상의 정보 유출 및 변조, 악성코드 유포 등의 행위를 수행

- 업로드 파일에 대한 검증이나 환경 설정의 미흡으로 인해 발생할 수 있음

- 해당 공격을 성공하기 위한 조건은 3가지가 있음

공격 성공 조건
1. 파일 업로드가 가능해야 함
2. 파일이 업로드된 디렉터리의 경로를 알아야 함
3. 파일이 업로드된 디렉터리의 실행 권한이 있어야 함

2. 공격실습

2.1 웹쉘 제작

[캡쳐 1] webshell.php

- [캡쳐 1]은 HTTP form에서 입력된 값을 GET 방식으로 전달 받으며, 값이 설정된 경우 쉘 명령어를 수행하는 웹쉘임

 

2.2 File Upload (Low Level)

[캡쳐 2] DVWA

- 파일 업로드 기능이 구현된 페이지에 웹쉘 업로드 시도

[캡쳐 2] 웹쉘 업로드

- 파일 업로드 결과 php 파일이 업로드 되었으며, 파일이 업로드 된 경로 또한 알 수 있음 

- 파일 업로드 경로는 /dvwa/hackable/uploads/webshell.php임을 알 수 있음

1. 현재 디렉터리(/dvwa/vulnerabilities/upload)
2. 상위 디렉터리(../)로 2번 이동 후 /hackable/uploads/에 업로드

[캡쳐 3] 경로 접근

- 해당 경로로 접근 시 webshell.php 파일을 실행할 수 있으며, 임의의 명령을 수행할 수 있음

[캡쳐 4] 명령 수행

2.3 File Upload (Medium Level)

[캡쳐 5] 업로드 실패

- 웹쉘(PHP) 업로드 시 JPEG나 PNG 파일만 업로드 가능하다는 에러 메시지를 출력함

[캡쳐 6] 필터링

- 업로드 파일의 type과 size를 검사하여 JPEG와 PNG 파일이 맞는지 확인하여 필터링을 수행

- Content-Type 헤더 변조를 통해 우회할 수 있음

Content-Type : 클라이언트가 서버에 자원을 보낼 때 어떤 유형의 자원을 보내는지 알려주는 헤더 

[캡쳐 7] content-type 변경 전

- 버프슈트를 이용해 요청을 인터셉트하여 content-type 헤더를 [캡쳐 8]과 같이 변경

[캡쳐 9] content-type 변경 후

- 변경 후 업로드에 성공한 것을 확인할 수 있음

[캡쳐 10] 업로드 성공

- 해당 경로에 접근하여 임의의 명령 수행이 가능함

[캡쳐 11] 명령 수행

 

2.4 File Upload (High Level)

- 파일 업로드 시 [캡쳐 5]와 같이 JPEG나 PNG 파일만 업로드 가능하다는 에러 메시지를 출력함

[캡쳐 12] 필터링

- 업로드 파일명에서 .를 기준으로 나누어 확장자명만을 추출하여, 확장자가 JPG, JPEG, PNG가 맞는지, 업로드 파일 사이즈 검증getimagesize함수를 통해 업로드된 파일이 이미지인지 필터링

getimagesize() : 지정된 이미지 파일의 크기를 확인해서 파일타입과 이미지의 크기에 대한 정보를 배열 형태로 출력

- content-type 변조를 통한 우회 방법은 확장자명이 php를 유지하기 때문에 해당 방법은 통하지 않음

- 확장자 검사를 우회하기 위해 확장자명을 .php.jpg로 변경getimagesize() 우회를 위해 GIF89a 추가

GIF89a : GIF 이미지 파일 표준에 정의된 값으로 이미지 파일인 것처럼 속이는 것이 가능

[캡쳐 13] 정보 변경

- 버프슈트를 통해 파일명과 GIF89a를 추가하여 전송하면 파일 업로드에 성공함

[캡쳐 14] 업로드 성공

- 업로드 후 해당 경로에 접근하면 웹쉘이 실행되지 않는데, 이는 업로드한 파일이 jpg 확장자를 가지기 때문

- [캡쳐 12]에서 디렉터리 이동문자에 대한 필터링이 없으므로, ../를 추가하여 시도해 보았으나 실패함(추가적인 매개변수 등이 있는 것으로 판단됨)

[캡쳐 15] 웹쉘 접근 실패

2.5 File Upload (Impossible Level)

[캡쳐 16] 소스 코드

- Impossible Level의 소스코드를 확인하면 필터링을 2번 수행하는 것을 확인할 수 있음

- 2번의 검증을 통해 php 파일인 웹쉘이 본연의 역할을 수행하지 못하게 됨.

1. 업로드한 파일 이미지인지 확장자, Type, getimagesize함수를 이용해 검증
2. 1차 검증을 통과한 파일의 내용으로 이미지 파일 재생성
- imagecreatefromjpeg() : 파일 또는 URL에서 새 이미지 만들기
- imagejpeg() : 브라우저 또는 파일에 이미지 출력

 

추가 대응 방안

1. 업로드 파일의 이름을 랜덤하게 변경하여 공격자가 변경된 파일명을 알지못하게 한다

2. 업로드 디렉터리의 실행권한을 제거한다

3. 업로드 파일에 대한 필터링을 강화한다(시큐어 코딩 적용)

 1. Masscan 

- 대량 IP 포트 스캔할 수 있는 인터넷 규모의 포트 스캐너

- 6분 이내에 전체 인터넷을 스캔하여 단일 시스템에서 초당 천만 개의 패킷을 전송할 수 있음

- 과거에는 Nmap을 많이 사용했지만, 큰 범위를 스캔할 때는 속도가 느려져 요즘에는 Masscan을 사용

2. 설치 및 실행

- 다음 명령을 이용해 Masscan를 설치

$ sudo apt-get install gcc git libpcap-dev
$ git clone https://github.com/robertdavidgraham/masscan
$ cd masscan
$ make

- 설치 후 Masscan -h 명령을 통해 사용법을 알 수 있음

 

[캡쳐 1] Masscan 사용법

- Masscan 결과는 다음과 같음

[캡쳐 2] Masscan 수행 결과
[캡쳐 3] Wireshark 결과

- Masscan 스캐너를 사용하면 User-Agent 헤더에 Masscan이 명시

[캡쳐 4] https://peemangit.tistory.com/243

3. 대응

- robots.txt 파일에 Masscan에 대한 접근을 차단

[캡쳐 5] robots.txt

- User-Agent 헤더에 Masscan으로 명시되기 때문에 해당 문자열을 탐지 가능한 패턴 적용 및 IP 차단

- 짧은 시간에 한 IP에서 포트정보만 변경하여 다수의 요청이 발생할 경우 포트스캔을 의심할 수 있음

'취약점 > Scanner' 카테고리의 다른 글

고 언어 기반 스캐너 GoBruteforcer  (2) 2023.03.25
SIPVicious scanner  (0) 2022.12.09
ZGrab Scanner  (0) 2022.10.06

+ Recent posts