18일에 있던 2022 세종 핵테온 CTF를 마치고 다시 돌아와서
그 당시에 못 풀던 문제가 버전 문제라고 하여 여러 우분투 버전을 가지고 있어야겠다고 느꼈고
아니 나는 맥북으로 포너블을 못하는데 어떻게 사람들은 잘만 맥북을 가지고 대회를 나가는걸까? 싶어서 물어봤더니
컨퍼런스에서 오랜만에 만난 친구가 자기는 서버를 만들어두고 쓴다고 하더라고요
예전엔 무슨 말인지 몰랐겠지만 이젠 뭔가 해볼만한 용기가 생겨서.
평소에 쓰던 그램으로 서버를 구축해보기로 생각했습니다.
vm은 기존에 있던 Ubuntu 16.04, 18.04와 더불어 추가로 설치한 20.04, kali를 사용하기로 했습니다.
참고문헌
https://cowhacker.tistory.com/87
https://shanepark.tistory.com/239
위 두 글이 가장 도움이 되었습니다.
docker로 어떻게 안되려나 싶었는데.. 아무래도 도커를 사용해본 적이 없어서 막막했습니다.
그리고.. 대회에서는 풀이자의 ip를 대회장 내의 ip로 되어야 하는 경우에. 서버에서 익스를 하면 안되므로..
그냥 맥에서 코드를 복붙해서 remote하면 되지 않을까 싶어..
일단 시작
ssh 설치
우선은 우분투에서
sudo apt update
sudo apt install openssh-server
이걸 한 줄씩 입력해서 openssh를 설치합니다.
설치하고
sudo systemctl status ssh
를 입력하면
active로 ssh 서버가 열린 것을 알 수 있습니다.
ssh는 기본적으로 22번 포트를 사용하는데. 보안적으로 위험할지도 모르니(?) 각자 원하는 포트로 바꿔봅시다.
포트를 바꾸는 방법으로는
sudo vi /etc/ssh/sshd_config
를 통해서 vi 명령어로 #Port 22 아랫줄에
Port 1201
이런 식으로 넣어주면 포트가 변경됩니다.
그리고
sudo ufw allow ssh
방화벽인거 같고..?
윈도우 방화벽은 꺼둡니다.
참고로 ssh에 뭐 설정해줄 때마다 저는 혹시 몰라서
sudo systemctl restart ssh
를 하거나
우분투 네트워크에 설정이 변경되면
init 6
를 이용해서 재시작하기도 했습니다.
이제 NAT 설정을 해봅시다.
NAT 설정
NAT는 VMware에서 기본적으로 설정되어있는 네트워크 설정인데, 혹시 Bridged로 되어있다면 다른 글을 찾아보거나 NAT로 바꾸는게 좋을 것 같습니다.
vmware내에 NAT를 설정할텐데
내부 ip를 알아야하므로 ip부터 확인해줍니다.
ip a
inet 192.168.130.146/24로 되어있는 부분을 보니
해당 ip는 192.168.130.146이군요
이제 좌측 상단 edit 에서 Virtual Network Editor
Change Settings를 클릭합니다.
그러면 다음과 같이 VMnet8이 선택이 가능한데, 해당 부분을 선택하고 NAT Settings로 들어갑니다.
Add 클릭
아까 설정했던 포트를 Host port, virtual machine port에 입력하고 ip를 해당 자리에 입력합니다.
그리고 ok하고 apply okay 이렇게 하고 재시작
포트포워딩
다음으로는 윈도우에서 공유기 설정을 해뒀는데.
본인이 iptime이라면 192.168.0.1 하면 공유기 화면이 나타날거고
거기서 로그인 한 뒤
포트포워드 설정에서
현재 접속된 ip주소에 체크하고 규칙 이름은 아무거나 합니다.
나머지는 건드리지 않고 외부포트를 아까 설정하기로 했던 포트로 설정하면 됩니다.
다른 환경에서는 ssh 명령어를 사용하여 접속합니다. (nc로 하려고 했는데 버전이 안 맞는듯)
ssh -p [port_number] [user_id]@[ip_address]
이런 형식으로 접속하면 되는데
ip_address는 외부에서 접속하기 때문에
네이버에서 내 ip라고 하면 뜨는 ip로 입력하면 됩니다.
우분투에서 포너블 환경을 미리 구축하고 이렇게 연결하면 맥에서도 포너블을 할 수가 있습니다.
tmux
하지만 이렇게 ssh연결을 하게되면 우분투에서는 terminator이라는 것으로 화면을 분할하여 사용하고 gdb attach도 했는데 그럴 수가 없습니다.
그래서 tmux를 사용하기로 했고
tmux설치는 ssh연결 후
sudo apt install tmux
원래 tmux는 단축키가 ctrl+b였는데 이건 손이 불편해서 위 링크에서 ctrl+a로 바꾸고 화면 분할하고 나서도 보다 쉽게 움직일 수 있습니다.
tmux사용법은 따로 구글링하면 나옴
맨 위 참고문헌에서는 windows의 VMnet8 ip도 고정하라고 했는데 그거 안 해도 잘 되어서 그냥 올려봅니다.
아 그리고
혹시 모를 상황을 위해서 포트포워딩을 microsoft remote Desktop으로도 해뒀고(램이 부족해서 껐다 키고 하려고)
원격으로 윈도우에 접속하는 방법은
https://www.youtube.com/watch?v=WgT0KF2fmJc
해당 영상을 보고 위와 비슷하게 연결하면 무슨 원리인지 알 것입니다.
하나가 어렵지 나머지는 할만하더군요