
ligolo-ng v0.9.1
TUN 인터페이스를 사용하는 고급스럽지만 간단한 터널링/피보팅 도구입니다.
Ligolo-ng : VPN처럼 터널링

고급스럽지만 단순한, TUN 인터페이스를 사용하는 터널링 도구입니다.
[!TIP] Ligolo-ng 0.8에는 다음과 같은 많은 새로운 기능이 추가되었습니다:
- 🌐 L'ami du Raisin 덕분에 구현된 API와 아름다운 웹 인터페이스, 멀티플레이어 지원!
- ⚙️ 터널링/프록시 설정을 유지하는 간단한 설정 파일
- 🚦 데몬 모드, Ligolo-ng를 서비스로 실행
- 🔗 자동 바인드, 특정 에이전트가 연결될 때 터널링을 자동으로 구성
- 📶 Windows, Linux, MacOS 및 BSD에서 쉽고 자동적인(autoroute) 경로 및 인터페이스 관리!
- 💀 에이전트 종료, 원격으로 에이전트를 종료
한번 사용해 보세요!
목차
- 소개
- 기능
- 데모
- Ligolo/Chisel/Meterpreter...와 어떻게 다른가요?
- 사용 방법 - 문서 - 튜토리얼
- Administrator/root 권한이 필요한가요?
- 지원되는 프로토콜/패킷
- 성능
- 주의사항
- 할 일
- 크레딧
소개
Ligolo-ng는 tun 인터페이스를 사용하여 역방향 TCP/TLS 연결로부터 터널을 구축할 수 있게 해주는 간단하고, 가볍고, 빠른 도구입니다 (SOCKS가 필요 없습니다).
기능
- Tun 인터페이스 (이제 SOCKS/Proxychains는 필요 없습니다!)
- 에이전트 선택 및 네트워크 정보를 제공하는 간단한 UI
- 사용 및 설정이 쉬움
- Let's Encrypt를 통한 자동 인증서 구성
- 뛰어난 성능 (멀티플렉싱)
- 에이전트에 권한이 필요하지 않음
- 에이전트에서 소켓 리슨/바인딩
- 에이전트에서 여러 플랫폼 지원
- 여러 터널 처리 가능
- 역방향/바인드 연결
- 자동 터널/리스너 복구 (네트워크 문제 발생 시)
- Websocket 지원
데모
Ligolo/Chisel/Meterpreter...와 어떻게 다른가요?
SOCKS 프록시나 TCP/UDP 포워더를 사용하는 대신, Ligolo-ng는 Gvisor를 사용하여 사용자 영역 네트워크 스택을 생성합니다.
relay/proxy 서버를 실행하면 tun 인터페이스가 사용되며, 이 인터페이스로 전송된 패킷은 변환된 후 agent 원격 네트워크로 전송됩니다.
예를 들어, TCP 연결의 경우:
- SYN은 원격에서 connect()로 변환됩니다.
- connect()가 성공하면 SYN-ACK가 다시 전송됩니다.
- connect 이후 ECONNRESET, ECONNABORTED 또는 ECONNREFUSED syscall이 반환되면 RST가 전송됩니다.
- 시간 초과 시 아무것도 전송되지 않습니다.
이를 통해 proxychains 없이 nmap과 같은 도구를 실행할 수 있습니다 (더 간단하고 빠릅니다).
사용 방법 - 문서 - 튜토리얼
Ligolo-ng에 대한 문서와 실행 방법에 대한 단계는 Ligolo-ng 문서에서 확인할 수 있습니다.
Administrator/root 권한이 필요한가요?
agent 쪽에서는 아닙니다! 모든 작업은 관리자 권한 없이 수행할 수 있습니다.
그러나 relay/proxy 서버에서는 tun 인터페이스를 생성할 수 있어야 합니다.
지원되는 프로토콜/패킷
- TCP
- UDP
- ICMP (에코 요청)
성능
100 Mbits/sec 이상을 쉽게 달성할 수 있습니다. 다음은 200Mbits/s 서버에서 200Mbits/s 연결로 iperf를 사용한 테스트입니다.
$ iperf3 -c 10.10.0.1 -p 24483
Connecting to host 10.10.0.1, port 24483
[ 5] local 10.10.0.224 port 50654 connected to 10.10.0.1 port 24483
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 12.5 MBytes 105 Mbits/sec 0 164 KBytes
[ 5] 1.00-2.00 sec 12.7 MBytes 107 Mbits/sec 0 263 KBytes
[ 5] 2.00-3.00 sec 12.4 MBytes 104 Mbits/sec 0 263 KBytes
[ 5] 3.00-4.00 sec 12.7 MBytes 106 Mbits/sec 0 263 KBytes
[ 5] 4.00-5.00 sec 13.1 MBytes 110 Mbits/sec 2 134 KBytes
[ 5] 5.00-6.00 sec 13.4 MBytes 113 Mbits/sec 0 147 KBytes
[ 5] 6.00-7.00 sec 12.6 MBytes 105 Mbits/sec 0 158 KBytes
[ 5] 7.00-8.00 sec 12.1 MBytes 101 Mbits/sec 0 173 KBytes
[ 5] 8.00-9.00 sec 12.7 MBytes 106 Mbits/sec 0 182 KBytes
[ 5] 9.00-10.00 sec 12.6 MBytes 106 Mbits/sec 0 188 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 127 MBytes 106 Mbits/sec 2 sender
[ 5] 0.00-10.08 sec 125 MBytes 104 Mbits/sec receiver
주의사항
agent가 권한 없이 실행되기 때문에 raw 패킷을 전달할 수 없습니다. NMAP SYN-SCAN을 수행하면 에이전트에서 TCP connect()가 실행됩니다.
nmap을 사용할 때는 오탐을 피하기 위해 --unprivileged 또는 -PE를 사용해야 합니다.
할 일
- 잘못된 TCP 연결에서 ACK를 수신할 때 RST를 보내지 않기 (nmap이 호스트를 살아있는 것으로 보고함) ;
- mTLS 지원 추가.
크레딧
- Nicolas Chatelain <nicolas -at- chatelain.me>
- Jeremie Bedjai (Ligolo-ng-Web)
