
Neto | 브라우저 확장 프로그램을 분석하는 도구
Project Neto는 Firefox 및 Chrome과 같은 잘 알려진 브라우저의 플러그인 및 확장 기능의 숨겨진 기능을 분석하고 파헤치기 위해 고안된 Python 3 패키지입니다. 패키지된 파일의 압축을 풀고 manifest.json, 지역화 폴더 또는 Javascript 및 HTML 소스 파일과 같은 확장 기능의 관련 리소스에서 이러한 기능을 추출하는 과정을 자동화합니다.
패키지를 설치하려면 pip3를 사용할 수 있습니다.
pip3 install -e . --user
선택적으로 sudo를 사용하여 관리자 권한으로 설치할 수도 있습니다:
sudo pip3 install -e .
성공적인 설치는 다음 명령어로 확인할 수 있습니다:
python3 -c "import neto; print(neto.__version__)"
확장 프로그램 분석을 수행하려면 분석가가 다음을 입력할 수 있습니다:
neto analysis -u https://yoururl.com/extension-name.xpi
확장 프로그램은 기본적으로 시스템의 임시 폴더에 자동으로 다운로드 및 압축 해제됩니다.
그러나 분석가는 로컬에 저장된 확장 프로그램을 대상으로 분석을 실행할 수도 있습니다:
neto analysis -e ./my-extension-name.xpi
정적 분석이 수행된 후, 기본적으로 output이라는 새로 생성된 폴더에 저장되는 JSON 파일이 생성됩니다.
Python을 사용하는 경우, 자신의 Python 모듈에서 패키지를 라이브러리로 가져올 수도 있습니다:
>>> from neto.lib.extensions import Extension
>>> my_extension = Extension ("./sample.xpi")
>>> my_extension.filename
'adblock_for_firefox-3.8.0-an+fx.xpi'
>>> my_extension.digest
'849ec142a8203da194a73e773bda287fe0e830e4ea59b501002ee05121b85a2b'
속성을 사용하여 확장 프로그램에서 발견된 요소에 액세스하는 것 외에도, 분석가는 항상 사전(dictionary)으로 액세스할 수 있습니다:
>>> my_extension.__dict__
{'_analyser_version': '0.0.1', '_digest': '849ec142a8203da194a73e773bda287fe0e830e4ea59b501002ee05121b85a2b'…
Python을 사용하지 않는 경우, JSON RPC 데몬을 사용할 수 있습니다:
$ neto daemon
____ _ _ _ _ _
| _ \ _ __ ___ (_) ___ ___| |_ | \ | | ___| |_ ___
| |_) | '__/ _ \| |/ _ \/ __| __| | \| |/ _ \ __/ _ \
| __/| | | (_) | | __/ (__| |_ | |\ | __/ || (_) |
|_| |_| \___// |\___|\___|\__| |_| \_|\___|\__\___/
|__/
Developed by @ElevenPaths
Version: 0.5.0b
* Running on http://localhost:14041/ (Press CTRL+C to quit)
그런 다음 선호하는 JSON RPC 라이브러리를 사용하여 클라이언트를 작성하거나 (bin 폴더에 짧은 데모를 작성했습니다) curl을 사용하여 명령을 실행할 수 있습니다:
curl --data-binary '{"id":0, "method":"remote", "params":["https://example.com/myextension.xpi"], "jsonrpc": "2.0"}' -H 'content-type:text/json;' http://localhost:14041
이 패키지에 포함된 기능의 불완전한 목록은 다음과 같습니다:
eval()과 같은 의심스러운 Javascript 코드 탐지.