이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 37207|회답: 1

RFID 보안 캠퍼스 워터카드 해킹 튜토리얼, 캠퍼스 워터 카드 해킹

[링크 복사]
게시됨 2014. 10. 27. 오전 10:07:21 | | | |
이번에는 주인공이 학교의 가난한 물 카드(온수 카드)입니다



NFC 폰에 설치된 MCT(Mifare Classic Tool)를 확인해보니, 물 카드는 실제로 Mifare Classic 1k 타입입니다


이 크랙에 사용되는 도구들은 컴퓨터, ACR122U, NFC 기능이 있는 휴대전화, 그리고 물 카드입니다


해결하기 전에 컴퓨터에 대응하는 환경을 구축해야 하고, 컴퓨터에 설치해야 합니다. NET Farmwork 4와 Java는 온라인으로 다운로드하여 설치해 주시기 바랍니다. 이후 사용하는 소프트웨어는 이 두 런타임 라이브러리에 의존합니다.


런타임을 설치한 후에는 ACR122U 드라이버(기사는 소프트웨어 링크에 첨부됨)를 설치해야 하고, 이후 개발을 원활하게 하기 위해 SDK도 설치했습니다.






드라이버와 SDK를 설치한 후 ACR122U를 컴퓨터에 연결하면 기기가 정상적으로 작동합니다. 워터카드를 착용하면 ACR122U 버저가 울리고 LED 색상이 변합니다


취약점이 악용될 수 있음을 검증하는 프로그램은 mfoc이며, Windows 버전의 mfoc는 mfocgui라고 불리지만, mfocgui는 RFID 보안에 익숙하지 않은 학생들에게는 다소 까다로워서 이번에는 M1 카드 서비스 프로그램(사실상 mfocgui의 단순화판)을 직접 사용합니다.


열면 프로그램 인터페이스가 매우 간단하며, 단 하나의 버튼만 있으면 크랙을 시작해야 합니다. 카드 리더 목록에서 제 ACR122U을 봤으니, 그냥 시작 크래킹 버튼을 누르면 됩니다


그 후 프로그램이 스스로 키를 해독할 때까지 기다리세요.


곧 모든 구역이 고장 나고 깨진 것을 알게 되었다.


크래킹이 성공하면 루트 디렉터리가 이 카드의 덤프 파일을 생성하며, 크기는 1kb이고 전체 카드를 읽습니다.


하지만 mfoc는 원래 리눅스 환경에서 실행되었으며, mfocgui가 Windows로 이식한 덤프 파일은 직접 사용할 수 없으며, 1kb 덤프 파일을 4kb 덤프 파일로 복원하려면 fix dump(fix dump 다운로드 도구)가 필요합니다.


fixdump는 명령줄 연산이며 반드시 .과 함께 설치해야 합니다. NET Farmwork 4 런타임 라이브러리에서 명령어 조작을 용이하게 하기 위해 덤프 파일을 fixdump 디렉터리에 복사하고 cmd를 열어 복구합니다. 명령어는 간단합니다. 단순히 "fixdump"만 사용하며, 생성된 파일이 소스 파일을 직접 덮어씁니다.


복구가 완료된 후에는 UltraEdit나 WinHex 같은 16진수 편집기로 열면 덤프 파일 데이터를 볼 수 있습니다.


위 사진의 상자에 프레임에 넣은 데이터를 보시나요? 이 구간은 카드 섹터의 제어 세그먼트이며, FFFFFFFFFFFF의 처음 6바이트와 마지막 6바이트는 이 섹터의 비밀번호이고, 가운데의 FF078069은 제어 비트입니다.


비밀번호를 알게 된 후, 비밀번호를 MCT에 불러와 카드 데이터를 읽기 시작했습니다.


MCT와 데이터 하이라이트 기능 덕분에, 4개 섹터에 두 줄의 가치 블록이 명확히 있고, 제 카드의 현재 잔액은 32.31입니다. 값 블록의 값은 두 번, 한 번 반전되며, 가장 낮은 주소에 저장됩니다. 첫 번째 값 블록인 0C9F를 보면, 컴퓨터 데이터가 역순으로 저장되기 때문에 실제 데이터는 9F0C이며, 십진수 순서로 3231입니다. 중간 부분의 60F3는 역전이며, 60F3의 역순은 F360으로, 뒤집으면 1111001101100000, 뒤집으면 0000110010011111, 십진수로 바뀐 때는 3231입니다. 마지막 단락은 첫 번째 단락처럼 가져가서 보존되지 않습니다. 끝에 있는 11과 EE는 주소로, 주소가 일관되다면 나중에 일관되게 사용한다면 무시해도 됩니다. 지금까지 카드의 데이터는 암호화되지 않아 해독되었습니다. 이제 카드의 화폐를 999.99로 수정해 보겠습니다. 999.99위안은 소수점으로 999999, 16진수는 01869F, 역순 결과는 9F8601입니다. 나머지 비트들은 같은 원리로 계산하거나, MCT의 자체 값 블록 계산 도구를 사용해 계산한 후 아래 그림에 보이는 결과를 최종 계산할 수 있습니다.


카드를 기록하고, 이제 기계 연습에 갈 시간입니다.





이전의:포럼은 앞으로 업데이트되지 않을 것이며, 바이두가 내부 페이지를 포함하기 시작할 때까지 기다릴 예정입니다.
다음:아이폰6로 바꾸는 법을 몇 초 만에 가르쳐 줍니다 (안드로이드 사용자는 입력하지 않음)
게시됨 2014. 11. 10. 오후 5:23:59 |
훌륭한 칭찬이네요.
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com