네트워크교육 53일차 (2022.03.17)

정상훈·2022년 3월 17일
0

SysAnalyzer 사용한 파일 분석

XP에 SysAnalyzer 설치 후 서버파일을 실행하면 정보 출력

디렉토리 로그를 보면 서버 파일이 생성된 모습

서버파일 실행 후 iexplorer.exe 프로세스 생성 확인

리눅스/유닉스 흔적 분석

리눅스 주요 아티팩트

이외에 더 많은 아티팩트가 있지만,

실무에선 History, Secure 파일을 주로 사용한다.
[ lsof, netstat, ps -ef ]등등 사용

History Log

cd ~
cat ./.bash_history

history 명령어의 단점 : 어플리케이션에서 동작한 명령어나, 비 정상적으로 접속한 명령어 이력등은 남지 않는다.

uname, date, uptime 명령어

1. uname : 커널정보확인
2. date : 현재 날짜 확인
3. uptime : 시간 및 사용자, 사용률 통계

ps 명령어

1. ps -ef : 현재 실행중인 프로세스 명령어

2. pstree

vmstat , free-h , df-h, top 명령어

1. vmstat : 메모리 상태 확인

2. free-h : 메모리 정보 확인

3. df-h : 디스크 정보 확인

4. top : cpu정보 확인

netstat 명령어

1. netstat -an : 현재 어떤 네트워크와 연결되어 있는지 파악 (c&c 파악) 
감염자 = victim 공격자 = c&c

2. netstat -anp : 해당 네트워크들이 어디서 동작중인지 확인

lsof 명령어

1. lsof : 현재 열려있는 프로세스 확인 
( 어떤 개체와 연결되어 있는지 까지 확인)

2. lsof -i : 네트워크 정보 확인

nmcli 명령어

1. nmcli con show : 네트워크 확인

last 명령어

1. last : 최근 기록 확인

2. lastlog : 최근 로그인 확인

fdisk 명령어

1. fdisk -l : 파티션 정보 확인 

cat /etc/fstab 명령어

마운트 정보 확인

blkid, lsblk 명령어

uuid값 확인 (해당 디스크 파티션의 고유 ID)

2. lsblk : 디스크 파티션 정보 확인

/proc 프로세스 정보 확인 명령어

작업 스케줄러

계정 및 데몬 조사


cat /etc/rsyslog.conf

# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none                /var/log/messages

# The authpriv file has restricted access.
authpriv.*                                              /var/log/secure

# Log all the mail messages in one place.
mail.*                                                  -/var/log/maillog


# Log cron stuff
cron.*                                                  /var/log/cron

# Everybody gets emergency messages
*.emerg                                                 :omusrmsg:*

# Save news errors of level crit and higher in a special file.
uucp,news.crit                                          /var/log/spooler

# Save boot messages also to boot.log
local7.*                                                /var/log/boot.log 

cat /var/log/secure

UbuntuAI환경에서 Snoopy 툴 실습

snoopy : 히스토리 기록을 실시간으로 저장
1. sudo apt-get update
2. sudo apt-get install snoopy (안되면 재부팅)
3. sudo reboot (설치완료 후 재부팅)
4. 아무 명령어 실행 후 
(우분투) /var/log/auth.log 확인
(Centos) /var/log/Secure

웹 로그 분석

로그파일에는 Access Log, Referrer Log, Agent Log 및 Error Log 파일 등이 있다.

1. Access Log : 웹 사이트로의 트래픽에 대한 가장 기초적인 정보를 제공, 로그를 분석할 수 있는 기본 제공
2. Referrer Log : 사이트로 발생한 트래픽의 경로(방문자의 경로) 를 분석하는데 사용되는 로그, 링크의 중요성, 검색엔진의 관리, 사용 키워드 관리, 배너 효과 분석에 사용함
3. Agent Log : 웹 브라우저의 이름,  버전, OS, 화면 해상도 등의 정보를 제공, 브라우저의 유형을 통하여 좀 더 편리하게 웹 사이트 유지 보수하기 위한 용도
4. Error Log : 요청한 홈페이지가 없거나, 링크가 잘못되는 등의 오류가 있을 경우에 생성되는 파일

로그 유형

1. NCSA 로그 형식 : 웹 서버의 원조 격인 NCSA 계열 웹 서버에서 사용하는 파일 형식

아파치 로그 등 아파치의 경우, httpd.conf 파일 내 Logformat 이름으로 시작되는 부분이 필드를 설정하는 부분

vi /etc/httpd/conf/httpd.conf

아파치의 설정 파일 진입

웹 로그(AccessLog) 실습

1. Centos7에서 systemctl start httpd

2. firewall-cmd --permenent --add-service=http

3. 로컬에서 Centos7 아이피 확인 후 접속

4. find / -name access_log

5. 로그 확인

6. /etc/var/httpd/access_log 파일 바탕화면 저장

7. c: > Program Files(x86) > Log Parser 2.2 로 복사 후 csv로 변환

8. cmd C:\Program Files (x86)\Log Parser 2.2 진입 후 

logparser -i:NCSA "SELECT * into C:\result\web.csv FROM 'access_log'"
logparser -i:NCSA "SELECT * into C:\result\web.csv FROM 'access_log' where StatusCode = 404"

웹 해킹 사례 QUIZ

이벤트예약 웹사이트를 운영하고 있는 "깜짝이야"사의 관리자 앞으로 한통의 협박 메일이 도착했다.
당장 10억을 입금하지 않으면, 확보한 자사의 웹페이지 소스코드를 모두 공개할 것이며,
추가적인 위협을 가하겠다는 내용이다.
관리자는 포렌식 전문가인 당신에게 침해사고 분석을 의뢰하였다. 침해된 시스템에 남겨진 흔적과 각종 로그 파일을 분석하여 다음 사항을 밝혀내시오.

A. 공격자가 웹페이지 소스코드를 유출한 시간(UTC+09:00)은?(yyyy-MM-dd_hh:mm:ss)

B문제에서 777권한으로 바뀐 디렉토리 /var/www/upload/editor/image를 access_log에서 검색 
access_log 파일에서 해당 부분 발견 -> cmd.php 웹쉘 업로드 의심

(B,C 문제에서 먼저 발견된 힌트를 가지고 추측하며 풀어야함)
112.216.97.27 - - [25/Aug/2012:17:18:32 +0900] "GET /upload/editor/image/cmd.php HTTP/1.1" 294 311 "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2;
112.216.97.29 - - [25/Aug/2012:17:18:51 +0900] "GET /upload/editor/image/cmd.php?cmd=cHdk HTTP/1.1" 200 323 "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2;
112.216.97.29 - - [25/Aug/2012:17:19:23 +0900] "GET /upload/editor/image/cmd.php?cmd=bHMgLWFsICAvdmFyL3d3dy91cGxvYWQvZWRpdG9yL2ltYWdlLw%20%20 HTTP/1.1" 200 13318 "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2;

112.216.97.29 - - [25/Aug/2012:17:21:12 +0900] "GET /upload/editor/image/cmd.php?cmd=dGFyIC1jdmYgL3Zhci93d3cvdXBsb2FkL2VkaXRvci9pbWFnZS8xMzMwNjY0ODM4IC92YXIvd3d3Lw%20%20 HTTP/1.1" 200 14541 "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2;
      						탈취시간↑
                            
112.216.97.29 - - [25/Aug/2012:17:26:40 +0900] "GET /upload/editor/image/cmd.php?cmd=cGhwIC1mIC92YXIvd3d3L3VwbG9hZC9lZGl0b3IvaW1hZ2UvcmV2ZXJzZS5waHA%20 HTTP/1.1" 200 294 "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2;

base64 디코딩 실행


1330664838이라는 아카이브명을 통해 웹 소스 전체를 탈취

B. 리버스쉘(Reverse Shell)을 동작시키는 프로세스 ID(PID)는? (10진수)

History파일에서 해커가 /var/www/upload/editor/image 경로를 777권한(읽기,쓰기,실행) 으로 변경시킨 흔적 발견, 일반 개발자라면 하지 않을 행동이므로 의심.

network폴더 안에 netstat_an 파일 확인 중 192.168.184.162:52634 아이피를 가진 서버가 144.206.162.21:80 아이피/포트로 접속하는 행위 발견
-> 일반적으로는 서버에서 다른 클라이언트로 접속하는 경우는 없음

network폴더내의 lsof파일 확인 후 144.206.162.21 IP를 검색하니
php와 sh 권한을 둘다 가지고 있는 것을 확인
침입자의 IP 확보.

process폴더의 ps_eaf파일 확인 중
www-data 부분에서 침입자가 reverse.php 백도어 파일을 심어놓음.

C. 리버스쉘(Reverse Shell)에 대한 공격자 주소(IP)는?

144.206.162.21

Redline 실습


경로 지정 후 확인

SysinternalsSuite에서 psexec.exe 가져오기

cmd 관리자권한 실행 후 cd명령어 사용해 -> redline 스크립트 폴더 이동.

  1. cd C:\Users\user\Desktop\12
  2. PsExec.exe -s -i -d cmd.exe (시스템권한으로 cmd 실행)
  3. 다시 스크립트 폴더로 이동 C:\Users\user\Desktop\12
  4. RunRedlineAudit.bat 실행

완료 시 설정한 RedLine을 켜서 클릭

좌측 메뉴에서 Ports를 클릭하면 네트워크 정보가 나온다.

iexplore가 192.168.0.61 4444포트로 연결되어 있다. 
백도어가 의심된다. 
서버파일(악성코드) : iexplore.exe, 공격자 IP : 192.168.0.61 

좌측 메뉴에서 Prefetch로 들어가서 밑으로 내리면 server.exe 발견

Browser URL History확인

192.168.0.1/server.exe 다운받았음

위의 과정에서 확인 한 시간정보를 가지고 Timeline 확인

감염경로, 레지스트리 수정 등 여러가지 정보 확인

profile
"@____

0개의 댓글