BEEUM - BLOG
/
게시물
Search
게시물
시리즈
Table
전체 보기
Search
[실습] 악성코드 분석
6
파일 정보
악성코드 상세 분석
1. pdf 내 의심스러운 키워드 찾기
pdfid.py 를 이용하여 확인
OpenAction
1개,
JS
2개,
JavaScript
3개 의 의심스러운 키워드를확인
2. 키워드 기반 검색
2.1 OpenAction
OpenAction 키워드는 문서를 염과 동시에 실행될 동작을 의미하므로 우선적으로 검색
badpdf.pdf 분석
PDF, MS Office
[실습] 악성코드 분석
2024/07/31
기존 코드
개발자 도구 콘솔로 확인 (console.log())
•
코드가 실행되지 않도록 eval() 을 제외하고 콘솔에 실행
•
알람 및 리다이렉션이 실행되지 않도록 해당 부분 제외 후 재실행
•
console.log(KEY) 를 실행하여 KEY 값 확인 가능
KEY : BEEUM1@34!@#$
실제 자바스크립트가 어떻게 동작하는지 분석하는 것보다 개발자 도구로 디버깅하면서 확인하는 것이 빠름
JavaScript Unpacker
•
Unpacker 사이트를 활용하여 난독화 해제 난독화 해제 사이트를 활용하여 확인도 가능하다
JavaScript Unpacker
JavaScript_1
난독화 해제
[실습] 악성코드 분석
2024/07/21
JavaScript_2
난독화 해제, JJ
[실습] 악성코드 분석
2024/07/21
기존 코드
공백을 이용했기 때문에 초기에는 확인이 되지 않음!!
notepad++ 기준 보기 → 기호보기 → 공백과 탭 보기 선택하여 코드 확인
코드해석
공백, 탭을 제외한 앞부분의 코드를 해석해면 공백 = 1, 탭 = 0으로 변환하고 있다.
CyberChef
1. 공백, 탭 변환
공백, 탭 부분만 복사 후 데이터 변환 필터 : find/replace 공백 = 1, 탭 = 0으로 변환한다
변환 후
JavaScript_3
난독화 해제, whitespace stenganography
[실습] 악성코드 분석
2024/07/21
2일차 과제 (518 악성코드 분석, 최용우)
518, pestudio, sysmon
[실습] 악성코드 분석
2024/07/16
호스트 온리
이거 있어야함
윈도우 ip 설정
인터넷 다시 되는거 확인
방화벽 해제
UAC 내림
자동 업데이트 해제
쿠쿠 샌드박스 구축
쿠쿠 샌드박스
[실습] 악성코드 분석
2024/07/10
[실습] 보안솔루션 운영
8
개요
•
보안 솔루션 운영을 위한 가상 통합 보안 인프라를 구축한다.
•
방화벽 (pfSense), IPS (suricata), WAF (modsecurity) 를 각각 다른 대역을 사용하여 연동하고, 포트포워딩을 통해 최종적으로는 모바일 환경에서 WAF에 접근할 예정이다.
구현환경
구현환경은 아래와 같다
인프라 구성도
인프라 구성도는 아래와 같다
진행 단계
1. 환경설정
2. pfSense 설치 및 설정
3. 개발자 PC 설치 및 설정
4. suricata 설치 및 설정
가상 통합 보안 인프라 (개요)
[실습] 보안솔루션 운영
2024/06/18
구성환경
사진
어댑터 추가
필요한 대역만큼 어댑터 추가 (VMnet 1~3)
•
필요한 대역으로 Subnet IP 입력
•
Host Connection, DHCP 는 체크해제
•
VMnet8은 NAT 및 Host Connection, DHCP 사용으로 설정
Host Connection?
•
로컬컴퓨터와 통신할 수 있게 하는 기능
DHCP?
•
IP를 자동으로 할당
VMware NAT service 사용 중 확인
로컬 서비스 목록에서 VMware NAT service 가 사용중인지 확인한다.
가상 통합 보안 인프라 (환경설정)
어댑터
[실습] 보안솔루션 운영
2024/06/18
VM 추가
1. File - New virtual Machine - Custom
2. install later
3. Other - Other 64-bit
4. VM 이름 지정 (이름은 자유)
5. 프로세서 2 - 2
6. Memory - 4 GB
7. disk size - 20 GB
가상 통합 보안 인프라 (pfSense 설치 및 설정)
pfSense
[실습] 보안솔루션 운영
2024/06/18
VM 추가
이번 구성에서는 윈도우 7을 사용한다
Adapter : VMnet1 (10번 대역 사용 예정)
고정 IP 할당
1. 제어판 - 모든 제어판 항목 - 네트워크 및 공유 센터 - 어댑터 설정 변경
2. 로컬 영역 연결 - 속성
3. IPv4 - 다음 IP 주소 사용 - IP 입력
4. IP 변경 후 주소창에 pfSense의 LAN IP를 입력 시 pfSense 로그인 화면 확인
•
초기 ID : admin
•
비밀번호 : pfsense
가상 통합 보안 인프라 (개발자 PC 설치 및 설정)
[실습] 보안솔루션 운영
2024/06/19
VM 추가
운영체제 (OS) : Ubuntu 20.04 Adapter : VMnet2, VMnet3 (20, 30번대 대역 사용)
고정 IP 할당
아래와 같이 할당
IP 변경 후 인터넷 연결 확인
인터넷이 되어야 정상
suricata 설치 및 포워딩 설정
가상 통합 보안 인프라 (suricata 설치 및 설정)
Suricata
[실습] 보안솔루션 운영
2024/06/19
VM 추가
운영체제 (OS) : Ubuntu 20.04 Adapter : VMnet3 (30번대 대역 사용)
고정 IP 할당
아래와 같이 할당
IP 변경 후 인터넷 연결 확인 pfSense와 suricata 가 구동 중이라면 인터넷 연결이 되어야한다
기본 설정
1. 필요 패키지 다운 및 설정
가상 통합 보안 인프라 (modsecurity 설치 및 설정)
ModSecurity
[실습] 보안솔루션 운영
2024/06/19
개발자 PC 에서 WAF까지 접근하기 위해서 게이트웨이 추가 및 라우팅을 진행
1. 게이트웨이 추가
개발자 pc 에서 pfSense 접근 - System - Routing - Add
DMZ 게이트웨이 추가
20번대에서 30번대로 넘어가는 라우팅이 필요
2. 라우팅 설정
System - Routing - Static Routes - Add
라우팅 설정
방금 생성했던 게이트웨이를 이용해 30번대로 라우팅 설정
3. 테스트
가상 통합 보안 인프라 (각 대역 연동)
대역 연동
[실습] 보안솔루션 운영
2024/06/19
방화벽 해제
포트포워딩을 위해 로컬, 개발자 PC (VM) 의 방화벽을 모두 해제한다 인/아웃바운드 설정을 통하면 방화벽 해제 없이도 실습이 가능하지만 추후 추가 예정
포트포워딩 설정 (로컬)
1. 로컬 포트포워딩 설정
CMD 는 관리자 권한으로 실행
기존 포트포워딩 설정이 있는지 확인
불필요한 포트포워딩 설정이 있다면 모두 삭제
포트포워딩 설정
예시
로컬 IP (10.5.5.45) 의 8000 포트로 요청 시 pfSense의 WAN 으로 리다이렉션 하도록 포트포워딩 설정
가상 통합 보안 인프라 (포트포워딩)
포트포워딩
[실습] 보안솔루션 운영
2024/06/19
[실습] 네트워크 공격
4
[대역폭 공격] UDP Flood
UDP Flood, 네트워크 해킹, 대역폭 공격
[실습] 네트워크 공격
2024/05/02
[대역폭 공격] ICMP Flood
ICMP Flood, 네트워크해킹, 대역폭 공격
[실습] 네트워크 공격
2024/05/02
•
모든 실습은 VM Ware 환경에서 진행됩니다
실습환경
공격자 : kali linux 공격자 IP : 192.168.0.138 공격 대상 : Cent OS 사전 준비 : HTTP 서비스 활성화 (80번 포트 Open) 피해자 IP : 192.168.0.135
공격 실행
1) Kali 에서 터미널 실행
hping3 명령어를 이용하여 SYN 패킷 전송
•
c 400000 : 40만개 패킷만 보냄
•
p : 목적지 포트 설정
•
S : TCP SYN 패킷을 보냄
2) 공격 대상 PC 에서 Network History 증가 확인
3) Wireshark 로 보낸 패킷 확인
[자원소진 공격] SYN Flood
SYN Flood, 네트워크 해킹, 자원소진
[실습] 네트워크 공격
2024/05/02
작성예정
[Flooding] ACK Flood 실습
ACK Flood, 네트워크 해킹, 자원소진
[실습] 네트워크 공격
2024/05/02
클라우드 구축 운영
1
클라우드 구축 운영
클라우드
클라우드 구축 운영
2024/09/08
[실습] 리버스 엔지니어링
6
reverseMe.exe 분석
프로그램 구성
1.
CreateFileA 함수로 dat 파일 읽음
2.
파일이 없을 시 “Evaluation period out of date. Purchase new license” 출력
3.
파일이 있으면 ReadFile 함수로 파일을 읽고, 데이터가 판별식 조건에 참이면 성공
문제 해결
1.
“Evaluation period out of date. Purchase new license” 가 출력되는 이유는 파일이 없기 때문이다
2.
reverseMe.exe 와 동일한 위치에 .bat 파일 생성 (값은 임의로 설정)
3.
생성하면 해당 조건식을 통과하는 것을 확인할 수 있다 통과하여 ReadFile 함수 실행 수 처음 만나는 판별식에서 16과 비교 402173의 데이터를 확인해보면 내가 입력한 단어의 갯수임을 알 수 있다
reverseMe.exe 분석
리버싱
[실습] 리버스 엔지니어링
2024/04/19
Time attack.exe Printing flag 획득
프로그램 구성
WINMM.timeSetEvent 를 사용하여 타이머 설정
입력되는 파라미더 = (1388, 0, 00E11000, 0, 0, ECX(0))
각 파라미터 별 의미
•
1388 = 다음 이벤트가 발생하기까지의 시간 (밀리초)
•
0 = 해상도(정확도)
•
00E11000 = 콜백함수 (타이머 이벤트 발생 시 호출, 여기서는 타임아웃이 출력됨)
•
0 = 콜백함수에 전달될 사용자 지정 데이터 (콜백함수에 추가정보 전달)
•
0 = 이벤트 타입, (0이면 한번만, 1이면 반복)
해당 함수 해석
5초 마다 00E11000 호출해라 (반복은 없으니 1번만 호출됨)
Time attack.exe 분석
리버싱
[실습] 리버스 엔지니어링
2024/04/19
for2.exe
전체 직역
어셈블리어 해석
1.
8바이트(2칸) 확보 후 각 칸에 데이터 1씩을 넣음
2.
안에 서 1씩 증가하면서 출력하고 겉에 칸과 같으면 개행 입력
C언어 코드 구현
출력 확인
출력 변경
for2.exe 분석
리버싱
[실습] 리버스 엔지니어링
2024/04/18
Calc.exe 분석
전체 직역
어셈블리어 해석
1.
20바이트 확보 후 scanf() 로 입력받음
2.
연산자에 -42 실행, 각 연산자 별 실행결과 ( + = 1, - = 3, * = 0 , / = 5)
3.
5보다 클수 없으니 5 초과 시 “잘못된 수식입니다” 출력(if문) 그 외에는 각 숫자별로 swich 문으로 실행
4.
swich 문 구현 전 if 문에서 5 기준으로 판별했기 때문에 스위치로 올 수 있는 수는 0, 1, 2, 3, 4, 5 총 6개이다, *=0 +=1 -=3 /=5 이므로 2, 4에 대한 예외처리도 진행되어야함 (어셈블리어 스위치 테이블 또한 그렇게 되어있다)
C언어 코드 구현
연산 스위칭
Calc.exe 분석
리버싱
[실습] 리버스 엔지니어링
2024/04/18
if_hard.exe 분석
리버싱
[실습] 리버스 엔지니어링
2024/04/18
in_out
어셈블리어 전체 직역
1. EBP 값을 스택에 저장
이전 스택 프레임의 ebp 값 저장 (다시 돌아가기 위함)
2. ESP 값을 EBP 에 저장
새 스택 프레임의 처음 위치 설정 (이 시점에 esp 는 이전 스택의 마지막 값이므로 여기부터 새 스택 프레임을 설정)
3. ECX 값을 스택에 저장
ECX는 반복할 때 사용한다고 함
4. 00FE3000 을 스택에 저장
in_out, in_out2 분석
리버싱
[실습] 리버스 엔지니어링
2024/04/17
[이론] 네트워크 공격 위협
7
네트워크 해킹이 뭘까?
의미
•
네트워크 상에서 발생되는 해킹을 의미
•
보안의 기본 요소에 따라 기밀성, 무결성, 가용성의 침해 (Confidentiality, Integrity, Availability)
네트워크 위협 요소
•
여러 통신 구간에 따라 보안의 3요소에 취약한 여러 위협들이 존재
•
보안의 3요소 뿐만 아니라 다른요소나 복합적인 요소로 인한 침해사고 발생 가능
위협 예시
•
스푸핑 (Spoofing)
•
중간자 공격 (MITM)
•
DoS
•
방화벽 관련
•
네트워크 스캐닝
•
세션 하이재킹
네트워크 해킹 개요
네트워크, 네트워크 해킹
[이론] 네트워크 공격 위협
2024/04/30
정의
•
스캐닝은 네트워크를 통해 제공하고 있는 서비스, 포트, HOST 정보 등을 알아내는 것
•
TCP 기반의 프로토콜 질의(Request) 응답 (Response) 메커니즘
•
대표적인 스캔 프로그램으로는 nmap이 있음
목적
•
열려 있는 포트 확인
•
제공하는 서비스 확인
•
동작중인 Daemon의 버전
•
운영체제 종류 및 버전
•
취약점
⇒ Scanning 시 사용 Protocols : ICMP, TCP, UDP
절차
1.
활동 범위 결정
2.
네트워크 목록 수집
네트워크 스캐닝
네트워크, 네트워크 스캐닝, 네트워크 해킹
[이론] 네트워크 공격 위협
2024/04/30
근거리 네트워크 공격이란?
•
LAN 범위 내에서 수행될 수 있는 공격에 한정하여 2계층에서 이루어지는 공격을 의미
근거리 네트워크 공격 종류
주요 공격
ARP를 이용한 MITM 공격
•
Man In The Middle 의 약자로 중간자 공격이라 불림
•
통신하는 두 단말 사이에 중간자가 침입하여 양단의 통신을 도청하거나 조작
•
중간자 공격을 막기위해 TLS/SSL 프로토콜을 이용한 공개 키 기반 인증을 사용
•
2계층에서 주로 활용하는 공격으로는 ARP 스푸핑을 연계한 공격이 존재
STP (Spanning Tree Protocol) 공격
•
STP는 스위치 네트워크 환경에서 사용되는 프로토콜
•
루핑 (정상적인 연결을 수행하지 못하고 통신이 쳇바퀴처럼 도는 현상) 공격을 방지하는 프로토콜
•
STP를 이용하여 스위치 연결 흐름을 제어하여 악의적인 목적의 스위치로의 연결 가능
•
내부에서 트래픽이 증가한다 (DDoS와 다음)
근거리 네트워크 위협
네트워크, 네트워크 해킹
[이론] 네트워크 공격 위협
2024/04/30
ARP 스푸핑?
ARP 스푸핑
[이론] 네트워크 공격 위협
2024/04/30
ARP 스푸핑 공격 실습
•
실습 환경
•
각 가상환경 IP
0) 공격 준비
지속적으로 패킷을 보내기 위해 터미널을 3개 띄워야한다
1) 공격 코드 실행 (공격자)
코드 적기
A, B 에게 공격자를 서로로 인식하게끔 ARP 패킷을 보낸다
2) forwarding 설정 값 변경을 이용한 포워딩
forwarding 설정을 해야 원래 목적지로 패킷 전달 가능 (0 or 1)
3) fraqrouter 를 이용한 IP 포워딩
ARP 스푸핑 실습
ARP 스푸핑, 네트워크 해킹
[이론] 네트워크 공격 위협
2024/05/01
과거의 DoS 공격
DoS, 네트워크 해킹
[이론] 네트워크 공격 위협
2024/05/01
•
모든 실습은 VM Ware 환경에서 진행됩니다
실습환경
공격자 : kali linux 공격자 IP : 192.168.0.138 피해자 : Cent OS 피해자 IP : 192.168.0.135
실습 시 주의사항
•
IP 설정 주의
•
Flood 옵션 사용금지
대역폭 공격 실습
UDP Flood
ICMP Flood
자원소진 공격 실습
SYN Flood
공격 실습 (대역폭, 자원소진)
대역폭, 자원소진
[이론] 네트워크 공격 위협
2024/05/02
[실습] 모바일 앱 공격 위협
9
동적 분석 환경 구축
모바일, 안드로이드
[실습] 모바일 앱 공격 위협
2024/05/07
개요
•
adb shell을 사용하여 앱 정보가 저장된 폴더에 접근, 개인정보를 포함하는 파일을 선별 및 추출하여 추가정보 탈취
•
사용 APP : 피키캐스트
0) 테스트용 계정 회원가입
1) 정보가 취약하게 취급되고 있는지 확인
•
APP의 계정 관련 정보를 포함한 APP 관련 정보는
data/data/[패키지 명]
안에 저장되기 때문에 해당 폴더 안으로 들어가서 내 정보를 가지고 있는 파일이 있는지 검색해야한다
ADB 진입 후 해당 폴더 이동
내 정보 (이메일)을 가지고 있는 파일이 있는지 검색 -r : 모든 파일이 검색 대상 . : 현재 디렉토리에서 검색
•
email 도메인인 naver를 기준으로 검색
•
시간이 너무 오래걸릴경우 하위 디렉토리로 이동하여 검색
ADB를 이용한 파일(개인정보) 추출
모바일, 안드로이드
[실습] 모바일 앱 공격 위협
2024/05/07
개요
•
fridump3 툴을 사용하여 메모리를 덤프하고 분석 (중요정보 유무 확인)
•
덤프(dump)?
0) fridump3 다운로드
•
fridump3 다운로드 검색 → 다운 받고 압축 풀기
•
실습을 위해선 NOX, frida-server가
실행
중이어야한다 frida-server를 동작시키기 위해 환경 구축 단계에서 frida-server 파일을 저장했던 경로로 이동한다
adb shell 에서 확인해보면 해당 프로그램 파일에 대한 실행 권한이 없다
•
chmod로 실행권한 변경
•
frida-server 백그라운드로 실행
•
& : 백그라운드로 실행 백그라운드로 실행이란?
fridump3 활용 메모리 내 중요 정보 추출
모바일, 안드로이드
[실습] 모바일 앱 공격 위협
2024/05/07
툴을 사용하기 위해 자바 설치
설치한 다음 cmd 종료 후 재시작하여 java --version 으로 확인한다
밤비 설치
zip 파일로 만들고 압축 풀기
어플 분석 툴 받기 (apktool)
apktool
•
apktool 위치에 bambi.apk를 위치시킨다
•
작업이 완료되면 디컴파일된 bambi를 확인할 수 있다
apktool 이용 앱 디코딩, 리빌딩
모바일, 안드로이드
[실습] 모바일 앱 공격 위협
2024/05/08
분석 대상 앱 설치
•
SmartAppL02.apk
사용한 툴
•
jadx-1.4.2
1) 어플 실행
•
어플을 NOX에 설치하여 실행해본다
바로 실패.. jadx를 사용하여 분석해본다
APK signature에서 서명 검증이 실패하고 있는 것을 확인 이전 실습에서 진행했던 방법으로 서명을 진행해준다
2) 타켓 어플 서명
•
서명 완료된 apk 파일을 설치하면 설치가 완료되며 어플을 열어볼 수 있다
•
어플 내용을 확인하니 FIndKey 라는 메세지를 확인할 수 있었다
Key 획득 (jadx 활용 디컴파일)
[실습] 모바일 앱 공격 위협
2024/05/08
0) 실습 준비
•
어플 설치 후 기본 비밀번호와 핀번호를 설정한다
•
로그인을 진행하면 Your Passwords 화면을 확인할 수 있고 비밀번호를 저장할 수 있다 (각 서비스별 비밀번호를 저장할 수 있는 프로그램으로 보인다)
•
Add new Password 화면에서 test용 데이터를 저장한다
•
정상적으로 등록된 것을 확인
•
'앱 정보' 에서 어플을 강제 종료 후 다시 실행한다
•
다시 어플을 실행하면 설정했던 초기 비밀번호를 입력 후 내가 저장했던 데이터를 확인할 수 있도록 설계되어있음을 확인할 수 있다
1) 정적분석 시작 (jadx-gui)
•
jadx를 이용, 정적분석을 시작한다
•
소스코드 중 로그인과 관련되어 보이는 클래스를 중심으로 분석
2) Hooking 용 .py 파일 작성
•
해당 파일들 분석결과 onCreate() 함수를 통해 각 화면을 구현하고 있는 것으로 추정된다 (아래는 WelcomeActivity의 onCreate 함수)
•
onCreate()를 Hooking 하는 파이썬 파일 생성
비밀번호 인증 회피 (Hooking 활용 sieve.apk 공격)
Hooking, 모바일, 안드로이드
[실습] 모바일 앱 공격 위협
2024/05/09
0) 실습준비
•
SmartAppL03.apk 설치
•
Hooking을 활용하여 키 값을 콘솔에 띄울 예정이다
1) 정적분석 시작 (jasx-gui)
•
4개의 class 중에 메인으로 보이는 class 를 분석한다
addListenerOnButton() 메소드에서 "남은계단" 과 "현재위치" 의 value를 설정해주는 듯 한 코드를 발견
•
aView : 남은계단 (랜덤 값 생성 수 setText() 메소드로 value 설정)
•
bView : 현재위치 (setText() 메소드dml 인자로 "0"을 사용해 초기 value(0) 설정)
그 이후 stairs, myStairs 변수를 선언하여 각각 a.View, b.View의 값으로 초기화 해주는 것을 볼 수 있다 <br> 변수의 이름과 코드의 구성을 보았을 때, 각각의 변수가 "남은계단"과 "현재위치"를 의미한다는 것이 거의 확실하다
해당 메소드 아래에 비교문을 발견 남은계단 -1 != 현재위치 일 경우 현재위치 값을 +1 해주는 것을 확인할 수 있다<br> 그 아래에 복호화 코드도 확인했지만 해당 코드가 실행되기 위해선 <span style="color: red">if 문 조건을 만족하지 않아야 한다</span>
그러나 if 문 조건을 만족하지 않기 위해서 랜덤으로 설정된 "남은계단" value 만큼 클릭을 할 수는 없다
onClick() 메소드가 실행될 때 복호화 코드가 바로 실행될 수 있도록 해당 부분을 Hooking 한다
Hooking을 통한 키 값 추출 (FindKey3)
hooking, 모바일, 안드로이드
[실습] 모바일 앱 공격 위협
2024/05/10
Hooking을 통한 루팅감지 회피, 키 값 추출 (Uncarkable1)
hooking, 모바일, 안드로이드
[실습] 모바일 앱 공격 위협
2024/05/10
0) 실습준비
•
Uncarkable2.apk 설치
•
루팅 감지 회피는 진행한 상태에서 시작한다
1) 정적분석 시작(jadx-gui)
MainActivity 클래스에서 "Success!" 문자열을 포함한 구문을 확인했다
•
native 키워드?
1-1) 정적분석 준비
•
정적분석을 위해선 분석할 파일이 필요하다
•
파일 추출을 위해 기존 apk 파일을 zip 파일로 변환, 압축을 해제한다
•
소스코드가 저장되어있는 lib 폴더 중에서 NOX 의 CPU/ABI(Application Binary Interface) 유형과 일치하는 x86 폴더 소스코드를 확인해야한다
분석 대상 파일 확보완료
2) 정적분석 시작 (IDA)
IDA 에서 우리가 분석하고자 하는 코드를 찾았다
해당 부분 분석 시작
Hooking을 통한 키 값 추출 (Uncarkable2)
hooking, 모바일, 안드로이드
[실습] 모바일 앱 공격 위협
2024/05/10
[실습] 웹 공격위협
12
사용자 로그인 입력 값에 공격 문자열을 삽입하여 로그인 우회 공격 시도 (’ or 1=1 --)
예상 사용 SQL 문
”SELECT * FROM Members WHERE user_id = ‘id’ AND passwd = ‘pw’”;
•
id, pw 입력
예상 SQL 문 변화
”SELECT * FROM Members WHERE user_id = ‘admin’ AND passwd = ‘’ or 1=1--’”;
user_id = ‘admin’ AND passwd = ‘’ ⇒ False
1=1 ⇒ True 이기 때문에
user_id = ‘admin’ AND passwd = ‘’ or 1=1 ⇒ FALSE or TRUE ⇒ True 가 나오게 된다
•
공격 결과 로그인 성공하여 마이페이지 확인 가능
[Error based SQLi] 공격 문자열 삽입
SQLi, Error based SQLi
[실습] 웹 공격위협
2024/04/23
DB 이름 추출 : db_name() 함수 활용
⇒’ and db_name() > 1 --
예상 SQL 문 ”SELECT * FROM ~~ WHERE user_id = ‘id’ and passwd = ‘pw’”
문자열과 int 형을 대소비교하여 오류메시지를 유도한다
예상 SQL 변경 ”SELECT * FROM ~~ WHERE user_id = ‘’ and db_name() > 1 --’ and passwd = ‘pw’”
해당 공격 문자열 입력 (비밀번호는 중요하지않음)
오류메세지 확인 (DB 이름 확보)
해당 공격을 통해 DB 이름이 ‘oyesmall’ 이라는 정보를 알 수 있다
[Error based SQLi] Datebase 이름 추출
SQLi,
Error based SQLi
[실습] 웹 공격위협
2024/04/23
Table 이름 추출 : having 함수 활용!
→ having 은 group by() 와 같이 쓰여야 함!
⇒’ having 1=1 --
예상 SQL 문 ”SELECT * FROM ~~ WHERE user_id = ‘id’ and passwd = ‘pw’”
예상 SQL 변경 ”SELECT * FROM ~~ WHERE user_id = ‘’ having 1=1 --’ and passwd = ‘pw’”
(1) 해당 공격 문자열 입력 (비밀번호는 중요하지않음)
⇒ ‘ having 1=1 --
group by 문이 없기 때문에 해당 오류메시지 유도
‘테이블명 . 첫 번째 컬럼명’ 이 에러페이지에 노출
⇒ Table : Members
⇒ 첫 번째 Column : num
(2) 두 번째 Column 명 추출 : group by 활용!
⇒ ‘ group by num --
[Error based SQLi] Table, Column 추출
SQLi,
Error based SQLi
[실습] 웹 공격위협
2024/04/23
(1) 조회할 Table의 이름 찾기
sysobjects, information_schema.tables
해당 데이터베이스에서 사용하는 Table의 이름을 모아둔 Table
⇒ sysobject 에서 Table 의 이름 Data가 담겨있는 Column : name
⇒ information_schema 에서 Table의 이름 Data가 담겨있는 Column : table_name
syscolumns, information_schema.columns
해당 데이터베이스에서 사용하는 Table의 이름을 모아둔 Table
⇒ syscolumns 에서 Column의 Data가 담겨있는 Column : name
⇒ information_schema.columns 에서 Column의 Data가 담겨있는 Column : column_name
공격 문자열 입력
⇒ ‘ union SELECT table_name FROM information_schema.tables
동일한 개수의 식이 있어야 한다는 오류메세지에서 두 SELECT문이 가져오고있는 Column 개수가 다름을 확인할 수 있음
(2) Column 명 찾기
[Union based SQLi] 실습
SQLi, Union based SQLi
[실습] 웹 공격위협
2024/04/25
⇒ 즉각적, 액션에 대한 리액션이 바로 확인 됨
테스트 코드
어떤 곳이 취약할까?
⇒ 사용자가 입력한 값이 브라우저에 출력될 때 취약점이 존재할 것이라고 유추
공격 문자열 삽입
alert 동작 확인
해당 공격을 활용하여 쿠키 등 정보 탈취 가능
리다이렉션
검색할 때 요청을 보내는 URL
⇒ /demoshop/shop/shop_searchresult.asp
[Reflected XSS] 실습 (반사형)
Reflected XSS, XSS
[실습] 웹 공격위협
2024/04/25
⇒ 즉각적인 반응은 없음, 대신 악성 스크림트가 저장되어있어 해당 저장된 스크립트에 접근할 때 ⇒ 저장된 HTML 코드가 삭제되기 전까지 계속해서 동작 (다회성) ⇒ 저장되어있는 HTML 코드에 접근하는 일반 사용자를 노림 ⇒ 일반 사용자의 개인정보, 쿠키값, 권한 탈취 등을 시도 ⇒ 일반 사용자(피해자)는 어떤 동작을 했는지 모르는 경우가 다수
•
ex1) 스크립트 태그를 이용하여 해당 스크립트 태그가 동작했을 때, 장바구니에 물건을 담은 즉시 결제까지 하게끔 할 수 있음
•
ex2)
공격 문자열 삽입
입력한 스크립트 순차적으로 실행
naver에서 iframe 태그를 막아놨기 때문에 연결 거부 표시, 만약 열려있다면 정상동작
[Stored XSS] 실습 (저장형)
Stored XSS, XSS
[실습] 웹 공격위협
2024/04/26
[XSS] 게시글을 읽었을 때, 새로운 게시글이 작성될 수 있도록 조작
XSS
[실습] 웹 공격위협
2024/04/25
1) Q1 과 동일하게 진행
(action, parameter 추출 후 HTML 코드 작성)
단, 댓글의 경우 작성될 게시글의 num 값을 지정해줘야한다
Q1에서 작성했던 success의 num, page 값인 3706, 1 을 지정해서 작성하면 해당 게시글에 댓글 달기 가능
이해 안 되는 부분, post로 보내면 안 되고 이렇게 태그를 잘라서 get으로 쏘면 정상 작동
2) 게시글 작성
3) 공격 확인
[XSS] 게시글을 읽었을 때, 다른 게시글에 댓글이 달릴 수 있도록 조작
XSS
[실습] 웹 공격위협
2024/04/25
파일 업로드 공격 실습
파일 업로드 시도 실패
(1) 대소문자 우회 시도
실패
(2) 확장자 연장 우회
성공
첫 번째 “.” 을 기준으로 확장자를 구분하고 있다는 증거이다
[파일업로드] 실습
웹, 웹 해킹, 파일업로드
[실습] 웹 공격위협
2024/04/25
첨부 파일의 크기를 매우 작게 제한했을 경우
⇒ one line webshell
⇒ oneline.txt.asp 파일 생성 후 업로드
ipconfig 명령 실행 시 확인할 수 있는 정보 추출
[파일 업로드] one line webshell
one line webshell, 웹, 웹 해킹, 파일업로드
[실습] 웹 공격위협
2024/04/26
파일 다운로드 시도
1) Burp suite로 요청 잡기
다운 받는 파일은 상관없음
2) Repeater로 요청 보내기
Send 를 누르면 해당 요청에 대한 응답을 바로 확인할 수 있다
3) 소스코드 파일 다운로드 요청을 보내며 200 ok 응답이 돌아오는지 확인
•
shop_download.asp
•
../shop_dowmload.asp ../ 일때 200 ok 응답 확인, 해당 요청으로 재요청
4) Burp suite 에서 요청 파라미터 변경
[파일 다운로드] 소스코드 다운
웹, 웹 해킹, 파일 다운로드
[실습] 웹 공격위협
2024/04/26
[파일 다운로드] DB 접속 정보(ID / PW) 추출
웹, 웹 해킹, 파일 다운로드
[실습] 웹 공격위협
2024/04/26
[실습] C언어
2
C 언어 코드 과제
C언어 과제 3
C언어 과제 2
C언어
[실습] C언어
변수와 자료형 실습
변수와 자료형
data_type1.c
data_type2.c
이스케이프 시퀀스
Escape_Sequence1.c
형식 지정자
Format_specifier1.c
Format_specifier2.c
변수와 자료형
변수와 자료형
[실습] C언어
2024/04/09
[이론] 악성코드 분석
3
PDF?
•
PDF (Portable Document Format) : 이동 가능 문서 형식, 어도비 시스템즈에서 개발
PDF 포맷 구조
•
PDF 버전 별 Acrobat 버전
Acrobat : PDF 파일을 열고, 보고, 인쇄하는 데 사용되는 소프트웨어
•
일반적인 PDF 파일 구조
•
PDF 포맷 구조
Objects
Keywords
PDF의 동작 및 요소
PDF 구조
PDF
[이론] 악성코드 분석
2024/07/21
JavaScript 분석
스크립트 분석 악성 지표
•
의심스러운 URLs
•
명령어 실행
•
파일 이름
스크립트 난독화 종류
Formatting (서식변경)
•
읽기 어렵도록 코드 형식을 수정
•
해결방법
Extraneous Code (관계없는 코드)
•
분석가들을 혼동 시키기 위해 코드 줄을 추가
•
해결방법
Data Obfuscation (데이터 난독화)
•
데이터를 읽기 어렵거나 혼란스럽게 만듦
JavaScript
JavaScript
[이론] 악성코드 분석
2024/07/21
MS Office 취약점
Macros 취약점
•
주로 VBS 스크립트의 취약점
Features (기능) 취약점
•
Add-on 및 OLE 등 취약점 발생
Scripts
•
VBA macros
•
공격자가 VBA를 지원하는 문서를작성하고 취약한 응용 프로그램을 대상으로 공격 가능
•
악성 매크로는 데이터나 파일 추가, 변경 또는 삭제, 웹 사이트와 통신 또는 하드 드라이브 포맷과 같이 사용자가 수행할 수 있는 권한과 동일한 작업을 수행할 수 있음
Commands
•
내부에 파워쉘 및 명령어 코드를 이용하여 공격
Embedded files
•
DDE 취약점이라고도 함
•
DDE (Dynamic Data Exchange) 라고하며 MS Office 응용 프로그램 간에 데이터를 전송할 수 있도록 설계된 프로토콜
MS Office
Ms Office
[이론] 악성코드 분석
2024/07/21
[이론] 웹 공격위협
8
HTTP Request
•
요청 라인 : 첫 줄
•
요청 헤더 : 키와 값 방식
•
요청 바디 (엔티티)
HTTP Request Header (GET방식)
•
요청 라인
•
요청 헤더
•
요청 바디
HTTP Request Header (POST방식)
•
요청 라인
•
요청 헤더
•
요청 바디
HTTP 프로토콜
HTTP, 웹, 웹 공격
[이론] 웹 공격위협
2024/04/23
쿠키
배경
•
클라이언트의 정보(장비구니 등)를 유지하는 Stateful한 성격의 서비스가 생기기 시작함
•
정보를 유지할 수 없는 State-less의 성격을 가진 HTTP의 단점을 해결하기 위해 쿠키 개념이 도입
특징
•
웹 서버가 클라이언트 컴퓨터에 저장하는 작은 기록 정보
•
웹 서비스에 방문할 때 마다 수시로 정보가 변경될 수 있음
단점
•
많은 트래픽 발생, 쿠키 유출에 따른 보안 문제
세션
배경
•
쿠키의 문제와 보안적 이슈를 해결하기 위해 등장
특징
•
서버 데이터베이스에 정보를 저장
쿠키, 세션
웹, 세션, 쿠키
[이론] 웹 공격위협
2024/04/23
웹 해킹 개요
웹, 웹 해킹
[이론] 웹 공격위협
2024/04/23
SQL Injection
•
DB와 연동된 웹 애플리케이션에서 데이터 유효성 검증을 하지 않을 경우, 공격자가 입력 폼 URL 입력란에 SQL 구문을 삽입하여 DB로부터 정보를 열람하거나 조작할 수 있는 보안 취약점
SQL Injection 위험성
인증우회
•
공격기법
사용자 로그인 입력 값에 공격 문자열을 삽입하여 로그인 우회 공격 시도
데이터베이스(DB) 획득
•
의도적으로 DB 에러메시지 유발, DB의 구조 파악
•
데이터 베이스의 구조
Error based SQLi
⇒ 강제로 에러를 유발시켜 에러페이지에서 정보를 획득하는 SQLi
•
공격기법
Union based SQLi
⇒ SQL 문법 중 Table의 내용을 조회하는 쿼리(명령어) = SELECT
•
Union : SQL 문에서 SELECT를 여러번 사용할 수 있게 해주는 쿼리(명령어) 두 개의 SELECT문의 결과 집합을 하나로 합쳐서 반환
SQLi 이론
SQLi, 웹 공격
[이론] 웹 공격위협
2024/04/23
XSS란?
•
위부 사용자가 HTML 태그를 사용할 수 있을 때 발생하는 취약점
•
외부의 공격자가 클라이언트 스크립트를 악용하여 웹사이트에 접속하려는일반 사용자로 하여금 공격자가 의도한 명령이나 작업을 수행하도록 하는 공격
•
악성 서버 유도, 사용자 쿠키 정보 추출 (세션 가로채기) 공격등을 수행
•
자주 사용하는 HTML 태그 : <script>
[Reflected XSS] 실습 (반사형)
⇒ 1회성, 한 번 쓰면 끝
⇒ 보통 다른 웹사이트로 리다이렉션(이동) 시킬 때 자주 사용
[Stored XSS] 실습 (저장형)
⇒ 다회성, 저장된 HTML 코드가 삭제되기 전까지는 계속해서 동작
XSS의 대응방안
•
입력 값 검증
•
출력 값 검증
•
위험성 있는 삽입 지점 제거
XSS 이론
XSS, 웹, 웹 해킹
[이론] 웹 공격위협
2024/04/25
파일 업로드 이론
웹, 웹 해킹, 파일 업로드
[이론] 웹 공격위협
2024/04/25
파일 다운로드 취약점이란?
•
다운로드 권한이 없는 파일에 대해서 다운로드가 가능한 취약점
다운로드 권한이 없는파일 - 웹 서버 내부 설정파일(민감정보가 포함된 파일) - 웹 페이지 소스코드 (asp, jsp, php 등) - OS 파일
이 취약점은 어떤 부분에서 존재하는가?
•
다운로드 받을 수 있는 기능이 존재하는 웹 페이지
ex) 리눅스 웹 서버의 기본 디렉터리 : /var/www/html/
리눅스의 중요한 설정파일 -> /etc/shadow -> /etc/passwd <br> 웹 서비스의 파일 다운로드 기능 권한 : 웹 서버 권한 -> /etc/shadow (400) -r-------- (웹 서버가 접근할 수 없음) -> /etc/passwd (644) -rw-r--r-- (웹서버가 접근할 수 있는 권한이 존재)
파일 다운로드 취약점이 존재한다면 기본 디렉터리에서 벗어나 /etc/passwd와 같은 설정파일을 다운로드 받을 수 있다
CF) Spring/전자정부 Framework 인 경우에는 웹서버 내부 민감정보 파일의 경로 및 파일명이 동일
•
/WEB-INF/web.xml
•
/server.xml
파일 다운로드 취약점은 왜 발생하는가?
•
다운로드 경로가 상대경로로 되어있는 경우 ../ 를 사용하여 타고 넘어갈 수 있다
•
경로 순회 문자 (.. / \\)를 필터링하고 있지 않으며, 다운로드 기능을 가진 웹 페이지 제작 시, 첨부파일의 경로를 상대경로로 지정해둔 경우 파일 다운로드 취약점이 발생할 수 있음
파일 다운로드 이론
웹, 웹 해킹, 파일 다운로드
[이론] 웹 공격위협
2024/04/26
불충분한 인증 및 인가
웹, 웹 해킹, 인증 및 인가
[이론] 웹 공격위협
2024/04/26
시스템 기초
2
리눅스의 종류와 소개
유닉스 개요
•
대부분 C언어를 기반하여 개발된 운영체제
•
이식성이 강해 새로운 기종에 적은 노력으로 이식이 가능
리눅스 개요
•
타 운영체제와 달리 리눅스 커널과 다른 구성요소가 무료인 오픈 소스 소프트 웨어
•
PC 또는 기타 장비에서의 이식성이 높음
리눅스 종류
데비안 계열
•
우분투
•
개인용 노트북과 데스크톱에서 가장 인기가 많음 (서버 전용 운영체제도 존재)
•
칼리 리눅스
•
모의 해킹 또는 Offensive 보안을 목적으로 만들어진 운영체제
•
여러 해킹 도구, 툴이 포함되어 있음
리눅스 기초
리눅스
시스템 기초
2024/04/22
윈도우 기초
윈도우 기초
시스템 기초
2024/04/22
인프라 기초
5
시작
네트워크 기초& 인프라 기초 수업을 들으며 실습했던 내용을 기록하고자 합니다. 저처럼 처음 공부하시는 분들께도 좋은 정보가 되길 바라며 질문, 지적은
언제나 환영입니다!
최종적인 목표는 Web+Was sever, Development server, Log server, DB server, DB backup server 총 5개의 서버가 연동되는 것입니다.
전체 서버 공통
•
운영체제 : Ubuntu 20.04.6-live-server-amd64
•
계정 : luckey(ID) luckey123(Password)
각 구성요소 버전
•
VM Ware workstation 17
•
Apache 2
•
Tomcat 9
•
MariaDB 10
각 서버 고정 아이피 및 사양
네트워크 환경 설정
1. 네트워크 환경설정
네트워크, 서버
인프라 기초
2024/03/21
2. 가상환경 우분투 설치
우분투, Ubuntu
인프라 기초
2024/03/21
Ubuntu 버전 20.04 기준입니다 가상환경별로 실습 시작 전 정한 IP로 변경을 진행할 겁니다
네트워크 인터페이스 확인
(net-tools) 설치된 상태여야 실행됨
net-tools 미설치 시
확인된 인터페이스
DHCP가 자동으로 할당해준 IP 를 변경할 예정
192.168.0.134 -> 192.168.0.153
(dev_server 기준)
인터페이스 확인 관련 명령어들
ip address 확인
3. 고정 IP 설정
고정 IP, Ubuntu 20.04
인프라 기초
2024/03/21
시작
•
Tomcat9
3개 요소를 모두 설치하는 dev_server 부터 설치
Tomcat
JDK 설치
톰캣을 사용하려면 jdk 가 설치되어 있어야한다
패키지 상태 업데이트
각종 패키지를 사용하기 전 패키지 목록을 최신 상태로 업데이트
JDK 설치
default
우분투 환경에서는 기본적으로 jdk 11을 지원하기 때문에 default로 받아도 무방하지만 특정 버전을 지정해서 다운받기도 가능
4. Tomcat9 설치
톰캣, Tomcat9, Apache2
인프라 기초
2024/03/21
Apache2 설치 이건 좀 쉽다 (아마?)
패키지 업데이트 및 아파치 설치
동작 상태 확인
로컬에서 확인
192.168.0.153 주소창 입력
여기까지 확인하면 아파치는 정상적으로 동작하고있는 것이다. 근데 방화벽 이슈나 포트설정 이슈로 정상 동작이 되지 않을 수 있다. 왜 안 되는지, 혹은 왜 되는지 궁금한 분은 여기로
Apache2 포트확인
5. Apache2 설치
Apache2
인프라 기초
2024/03/21
자잘한 꿀팁
8
설정파일 편집
네트워크 재시작
안될 시
Ubuntu 14.04 IP 할당
고정 IP, Ubuntu14.04
자잘한 꿀팁
2024/08/07
Kali Linux 고정 IP 할당
Kali, 고정 IP 할당
자잘한 꿀팁
2024/08/07
근데 이거 왜 안 됨?
아파치를 설치해도 로컬에서 접속이 안 되는 경우가 있다
안되는 경우 1
방화벽(ufw) 사용중일 경우 포트 80(HTTP), 포트 443(HTTPS) 를 열어야함
•
방화벽 상태 확인
inactive 상태이면 사용중이 아닌거임
•
Apache 관련 두 포트 한 번에 열기
•
특정 포트만 열기
안되는 경우 2
방화벽 사용중이 아니라도 포트가 닫혀있으면 연결 불가
•
nmap 패키지 설치
Apache 포트 확인
Apache 포트확인
자잘한 꿀팁
2024/03/23
Ubuntu 계정 비밀번호 분실
Ubuntu, 비밀번호 분실
자잘한 꿀팁
2024/03/23
왜? 연동?
Apache 와 Tomcat을 연동하기전에 연동하는 이유를 알고가자
두 서버의 역할
•
Apache
•
Tomcat
연동을 하는 이유
상황에 따라 정적인 파일과 동적인 페이지가 함께 필요한 경우가 있다 이때 연동을 통해 아파치가 받은 요청중 동적인 페이지가 필요한 경우 톰캣으로 넘기고 이에 맞는 응답을 받아서 사용자에게 보여줄 수 있다
따라서 이러한 연동 작업은 웹 서비스를 보다 효율적으로 운영하고, 사용자에게 더 나은 경험을 제공하기 위해서이다
왜 Apache랑 Tomcat 일까?
왜 얘네를 쓸까?
결론부터 말하면 아파치와 톰캣 이외에도 다양한 웹 서버 및 어플리케이션 서버가 있고 각각의 특징과 용도에 따라 선택가능하다 아파치와 톰캣은 안정성과 오픈소스 소프트웨어(무료) 의 이유로 널리 사용된다
예시
1. Nginx
아파치와 유사한 웹 서버로, 정적 파일을 처리하는 데 특히 효율적이다. 높은 성능과 안정성을 제공
2. Microsoft IIS (Internet Information Services)
Apache? Tomcat? 왜 연동해?
Tomcat9, Apache2, Ubuntu
자잘한 꿀팁
2024/03/23
이거 왜 해야함?
자바 홈 환경변수가 설정되어있지 않을 경우 설정을 해주면 좋은 이유는 뭘까?
•
JAVA_HOME 환경변수의 역할
•
호환성 보장: 특정 애플리케이션이나 개발 도구는 특정 버전의 JDK가 필요할 수 있다. JAVA_HOME을 통해 원하는 JDK 버전을 명시적으로 지정가능
•
경로 간소화: 명령어를 실행할 때 매번 전체 경로를 입력하는 대신 JAVA_HOME을 참조함으로써 명령어를 단순화할 수 있다
•
툴체인과의 통합: 많은 자바 개발 도구와 빌드 시스템(예: Maven, Gradle)은 자동으로 JAVA_HOME 환경변수를 찾아 해당 버전의 JDK를 사용한다. 이는 개발자가 도구와 JDK 사이의 경로를 수동으로 설정하는 불편함을 줄여준다
•
다중 JDK 관리: 시스템에 여러 버전의 JDK를 설치한 경우, JAVA_HOME 환경변수를 변경함으로써 쉽게 다른 JDK 버전을 사용할 수 있다
그럼 해보자
자바 설치 경로 찾기
설치된 자바 버전들과 위치를 보여줌, 해당 경로에서 '/bin/java' 부분을 제외한 나머지 부분을 'JAVA_HOME'으로 설정할 예정이다
나의 경우 : /usr/lib/jvm/java-11-openjdk-amd64
'JAVA_HOME' 설정
JAVA_HOME 환경변수 설정
Java, 환경변수, Ubuntu
자잘한 꿀팁
2024/03/23
? 인터넷에서 받아오는게 wget이면 install은 뭐야
install 은 '다운로드'의 개념이 아니라 파일을 복사하고 시스템에 설치하는 데 사용된다. 일반적으로 시스템 내의 다른 위치로 파일을 복사하거나 이동시키고, 필요한 경우 파일 권한과 소유권을 설정한다.
그러니까 install 하는 애들은 이미 시스템 내에 존재했다는 것
특정 경로에 저장되어있지만, 실제 사용하기 위해서는 패키지 관리자를 통해 install 등의 추가 명령이 필요하다는 것
패키지 관리자는 또 뭐임
패키지 : 소프트웨어의 묶음으로, 프로그램 파일과 해당 소프트웨어를 설치하고 관리하는 데 필요한 메타 데이터가 포함된 단위
패키지관리자는 패키지를 설치, 삭제, 업데이트 및 관리하는 데 사용되는 도구이다. (계열별로 달라짐)
•
apt : Ubuntu와 같은 Debian 계열
•
yum/dnf: Red Hat 계열, yum은 CentOS 7 및 이전 버전에서 사용되었고, dnf는 CentOS 8 및 최신 Fedora와 같은 배포판에서 사용
wget? install?
리눅스, 패키지 관리자
자잘한 꿀팁
2024/03/22
VM Network 설정
브릿지를 이더넷만 사용하도록 수정
pfSense 어뎁터 추가
물리 인프라를 연결할 어뎁터 추가
랜선 연결 및 네트워크 세팅
노트북과 물리 인프라 (데스크탑) 랜선으로 연결 및 IP 세팅
IP :
192.168.100.20
gateway :
192.168.100.1
pfSense 인터페이스 설정
사진과 같이 인터페이스 설정
결과 확인
위 설정을 적용하면 물리 데스크탑이 pfSense 를 통해서 인터넷이 가능해진다
VM 뒤에 물리 인프라 구성
물리 인프라, VM뒤
자잘한 꿀팁
2024/09/12
침해사고 대응
3
1. 상황
피해자는 갑자기 바탕화면 변경과 함께 파일 암호화가 진행되었다고 하는 상황.
웹 서핑 이외에 별도의 동작은 하지 않았다고 한다.
2. 감염 시간 확인
바탕화면에 생성된
READ_IT.txt
의 속성을 확인
파일 타임스탬프 확인 결과
2019년 7월 18일 오후 3:32:23
에 생성됨을 확인
따라서 해당 시간에 랜섬웨어가 감염되었음을 추측
3. PC 내 의심스러운 파일 확인
의심스러운 파일을 찾을 때는 폴더옵션의
숨김 파일, 폴더 및 드라이브 표시
를 활성화하고
알려진 파일 형식의 파일 확장명 숨기기
를 비활성화 한 뒤 진행한다.
C 드라이브 접근 시 의심스러운 폴더 확인
Case 1: Ransomeware
Ransomware, 랜섬웨어, 웹 캐시
침해사고 대응
2024/07/31
웹서버의 정보를 기록하세요. (예시. Apache2, IIS, Tomcat, 버전 등)
•
Apache2
운영체제 버전을 입력하세요.
•
Ubuntu 16.04
공격이 발생한 날짜를 입력하세요.
•
2019/07/18
아파치 로그에서 해당 날짜에
sqlmap
키워드 확인
Case 2: DBD
DBD, Drive By Download
침해사고 대응
2024/08/01
crontab 에서 의심스러운 경로 확인
user_info 에서 admin 계정 있음 확인
계정 변경해서 해당 파일 확인
쉘코드 확인
확인결과 위 코드는 리버스쉘을 연결하고 있음을 확인
•
-i : 인터랙티브 모드로 실행
•
>& : 리다이렉트
•
/dev/tcp : 네트워크 연결
•
192.168.0.130/53 : IP/Port
•
0>&1 : 표준 입력(0)을 표준 출력(1) 으로 리다이렉트, 원격 서버로부터 오는 데이터를 받기 위해 사용
Case 3: Deface
Deface
침해사고 대응
2024/08/01
프로그래밍 기초
2
C언어 개요, 기본 자료형
C언어, 기본 자료형
프로그래밍 기초
2024/04/08
프로그래밍 개요
프로그래밍 의미
•
학문적 정의 : 특정 결과를 달성하기 위해 실행 가능한 컴퓨터 프로그램을 설계 및 구축하는 프로세스
•
간단한 정의
프로그래밍 vs 코딩
•
코딩 : 알고리즘을 선정한 프로그래밍 언어의 명령으로 변환하여 작성하는 것
•
프로그래밍 : 프로그램 작성 방법의 결정, 코딩, 에러수정 따위의 작업
프로그래밍이 코딩의 상위 개념이다
프로그래밍 시 고려사항
•
기능 적합성 : 요구되는 기능을 만족 시키는 능력
•
성능 효율성 : 적절한 자원의 사용 및 적정한 반응시간 정도
•
호환성 : 다른 시스템과 상호 연동 능력
•
사용성 : 사용자가 이해하고 배우기 쉬운 정도
프로그래밍 개요
프로그래밍
프로그래밍 기초
2024/04/08