상대방 사이의 채널에 접속한 공격자가 전송 프로토콜에 개입하여 정보를 삭제하거나 왜곡하는 행위.

공격의 원리

공격은 일반적으로 통신 채널을 듣는 것으로 시작하여 암호 분석가가 가로챈 메시지를 대체하려고 시도한다는 사실로 끝납니다. 유용한 정보, 일부 외부 리소스로 리디렉션합니다.

객체 A가 객체 B에 일부 정보를 보낼 계획이라고 가정합니다. Object C는 사용된 데이터 전송 방법의 구조 및 속성에 대한 지식은 물론 C가 가로채려는 실제 정보의 계획된 전송 사실에 대해서도 알고 있습니다. 공격을 수행하기 위해 C는 객체 A를 B로, 객체 B를 A로 "표시"합니다. 객체 A는 B에게 정보를 보낸다고 잘못 믿고 이를 객체 C로 보냅니다. 객체 C는 정보를 수신하고 일부 작업을 수행하면(예: 자체 목적을 위해 복사 또는 수정) 데이터를 수신자 자신에게 보냅니다. - B; 객체 B는 차례로 해당 정보가 A로부터 직접 수신되었다고 믿습니다.

공격 예

악성코드 주입

메시지 가로채기(man-in-the-middle) 공격을 통해 암호 분석가는 자신의 코드를 이메일, SQL 문 및 웹 페이지에 주입할 수 있으며(예: SQL 주입, HTML/스크립트 주입 또는 XSS 공격 허용) 사용자가 업로드한 바이너리를 수정할 수도 있습니다. 접근하기 위해 주문 계정사용자가 인터넷에서 다운로드한 프로그램의 동작을 변경하거나

다운그레이드 공격

"다운그레이드 공격"이라는 용어는 암호 분석가가 사용자에게 덜 안전한 기능, 즉 호환성을 위해 여전히 지원되는 프로토콜을 사용하도록 하는 공격을 말합니다. 이러한 유형의 공격은 SSH, IPsec 및 PPTP 프로토콜에서 수행할 수 있습니다.

다운그레이드 공격으로부터 보호하려면 안전하지 않은 프로토콜을 최소한 한 쪽에서 비활성화해야 합니다. 기본적으로 보안 프로토콜을 지원하고 사용하는 것만으로는 충분하지 않습니다!

SSH V2 대신 SSH V1

공격자는 서버와 클라이언트 사이에 연결이 설정되면 서버와 클라이언트 사이의 연결 매개변수를 변경하려고 할 수 있습니다. Blackhat Conference Europe 2003에서 발표된 강연에 따르면 암호 분석가는 SSH 세션의 버전 번호 "1.99"를 "1.51"로 변경하여 SSH2 세션 대신 SSH1 세션을 시작하도록 "강제"할 수 있습니다. SSH 사용 V1. SSH-1 프로토콜에는 암호 분석가가 악용할 수 있는 취약점이 있습니다.

IPsec

이 공격 시나리오에서 암호 분석가는 피해자가 IPsec 세션을 다른 쪽 끝(서버)에서 시작할 수 없다고 생각하도록 오도합니다. 이로 인해 호스트 시스템이 롤백 모드에 있는 경우 메시지가 명시적으로 전달됩니다.

PPTP

PPTP 세션 매개변수를 협상하는 단계에서 공격자는 피해자가 덜 안전한 PAP 인증인 MSCHAP V1(즉, MSCHAP V2에서 버전 1로 "롤백")을 사용하도록 하거나 암호화를 전혀 사용하지 않도록 할 수 있습니다.

공격자는 피해자가 PPTP 세션 매개변수 협상 단계를 반복하도록 하고(Terminate-Ack 패킷 전송) 기존 터널에서 암호를 훔쳐 공격을 반복할 수 있습니다.

정보의 진정성, 기밀성, 가용성 및 무결성이 보호되지 않는 공개 커뮤니케이션 수단

이 그룹의 가장 일반적인 의사 소통 수단은 다음과 같습니다. 소셜 네트워크, 공개 이메일 서비스 및 인스턴트 메시징 시스템. 통신 서비스를 제공하는 자원의 소유자는 통신원과 교환되는 정보에 대한 완전한 통제권을 가지며 자신의 재량에 따라 언제든지 쉽게 공격을 수행할 수 있습니다.

통신의 기술 및 기술 측면을 기반으로 하는 이전 시나리오와 달리 이 경우 공격은 정신적 측면, 즉 정보 보안 요구 사항을 무시한다는 개념의 사용자 마음에 뿌리를 두고 있습니다.

암호화가 저장됩니까?

표준 HTTP 트랜잭션의 경우를 고려하십시오. 이 경우 공격자는 원래 TCP 연결을 두 개의 새로운 연결로 아주 쉽게 끊을 수 있습니다. 하나는 자신과 클라이언트 사이, 다른 하나는 자신과 서버 사이입니다. 클라이언트와 서버 간의 연결이 직접 연결되는 경우는 거의 없고 대부분의 경우 여러 중간 서버를 통해 연결되기 때문에 이 작업을 수행하는 것은 매우 쉽습니다. MITM 공격은 이러한 서버 중 하나에서 수행될 수 있습니다.

그러나 클라이언트와 서버가 암호화를 지원하는 프로토콜인 HTTPS를 통해 통신하는 경우 메시지 가로채기(man-in-the-middle) 공격도 수행될 수 있습니다. 이러한 유형의 연결에서는 TLS 또는 SSL이 요청을 암호화하는 데 사용되며, 이는 채널을 스니핑 및 MITM 공격으로부터 안전하게 보호합니다. 공격자는 각 TCP 연결에 대해 두 개의 독립적인 SSL 세션을 만들 수 있습니다. 클라이언트는 공격자와 SSL 연결을 설정하고 공격자는 차례로 서버에 연결합니다. 이러한 경우 브라우저는 일반적으로 인증서가 신뢰할 수 있는 인증 기관에 의해 서명되지 않았음을 경고하지만 이전 브라우저의 일반 사용자는 이 경고를 쉽게 무시할 수 있습니다. 또한 공격자는 루트 CA에서 서명한 인증서(예: 이러한 인증서는 때때로 DLP에 사용됨)를 가지고 있고 경고를 생성하지 않을 수 있습니다. 또한 HTTPS에 대한 여러 공격이 있습니다. 따라서 HTTPS 프로토콜은 일반 사용자의 MITM 공격으로부터 안전한 것으로 간주될 수 없습니다. [ ] https 사이트, 특히 사이트에서 http 연결 사용을 금지하는 HSTS, 인증서 대체를 금지하는 인증서 고정 및 HTTP 공개 키 고정에 대한 일부 MITM 공격을 방지하는 조치가 있습니다.

MITM 공격 탐지

메시지 가로채기 공격을 탐지하려면 네트워크 트래픽을 분석해야 합니다. 예를 들어 SSL 공격을 감지하려면 다음 매개변수에 주의해야 합니다.

  • 서버 IP
  • DNS 서버
  • X.509 서버 인증서
    • 인증서가 자체 서명되어 있습니까?
    • 인증서는 인증 기관에서 서명한 것입니까?
    • 인증서가 취소되었습니까?
    • 인증서가 최근에 변경되었습니까?
    • 인터넷의 다른 클라이언트가 동일한 인증서를 받았습니까?

MITM 공격 구현

나열된 프로그램을 사용하여 메시지 가로채기(man-in-the-middle) 공격을 수행하고 이를 탐지하고 시스템의 취약점을 테스트할 수 있습니다.

또한보십시오

  • Aspidistra (영어) - MITM 공격의 변형인 제2차 세계 대전 "침공" 동안 사용된 영국 무선 송신기.
  • Babington Plot (영어) - Walsingham이 서신을 가로 채는 동안 Elizabeth I에 대한 음모.

기타 공격

  • "Man in the Browser"는 공격자가 트랜잭션 매개변수를 즉시 변경하고 페이지를 피해자에게 완전히 투명하게 변경할 수 있는 공격 유형입니다.
  • "Meet-in-the-middle attack" - 생일 공격과 같이 시간과 메모리 간의 균형을 사용하는 암호화 공격입니다.
  • "Loss in the middle"(Miss in the middle attack)은 이른바 불가능한 차등 암호 해독의 효과적인 방법입니다.
  • 릴레이 공격 - 가로채는 메시지를 유효한 수신자에게 전달하지만 의도한 수신자에게는 전달하지 않는 MITM 공격의 변형입니다.
  • 루트킷은 침입자의 존재 흔적을 숨기도록 설계된 프로그램입니다.

"중개자의 공격"기사에 대한 리뷰 작성

문학

연결

  • www.all.net/CID/Attack/Attack74.html
  • www.nag.ru/2003/0405/0405.shtml
  • www.schneier.com/blog/archives/2006/04/rfid_cards_and.html

중개인의 공격을 특징으로 하는 발췌문

“쿼티어, 쿼티어, 로망스.” 경찰관이 겸손하고 선량한 미소를 지으며 작은 남자를 내려다보며 말했다. – Les Francais sont de bons enfants. 큐 디아블! 보이욘! Ne nous fachons pas, mon vieux, [아파트, 아파트… 젠장, 싸우지 말자, 할아버지.] - 그는 겁에 질린 침묵의 Gerasim의 어깨를 두드리며 덧붙였다.
– 카! Dite donc, on ne parle donc pas francais dans cette 부티크? [글쎄, 여기도 불어를 할 줄 아는 사람이 없나?] 그는 주위를 둘러보더니 피에르와 눈이 마주쳤다. 피에르는 문에서 멀어졌다.
장교는 다시 게라심에게 몸을 돌렸다. 그는 Gerasim에게 집에 있는 방들을 보여달라고 요구했습니다.
- 마스터 아니오 - 이해하지 못함 ... 내 네 것 ... - Gerasim이 말하면서 거꾸로 말했다는 사실로 그의 말을 더 이해하기 쉽게 만들려고 노력했습니다.
프랑스 장교는 미소를 지으며 제라심의 코 앞에 손을 벌려 자신도 자신을 이해하지 못하는 듯 절뚝거리며 피에르가 서 있는 문으로 갔다. 피에르는 그에게서 몸을 숨기기 위해 도망치고 싶었지만, 바로 그 순간 마카르 알렉세이히가 권총을 들고 부엌의 열린 문 밖으로 몸을 기울이고 있는 것을 보았습니다. 미치광이의 교활함으로 Makar Alekseevich는 프랑스 인을보고 권총을 들어 조준했습니다.
- 탑승!!! - 술 취한 사람이 권총의 방아쇠를 당기며 소리쳤다. 프랑스 장교는 외침에 몸을 돌렸고, 동시에 피에르는 술 취한 사람에게 돌진했다. 피에르가 권총을 잡고 들어올리는 동안 Makar Alekseich는 마침내 손가락으로 방아쇠를 당겼고 총성이 울려 모든 사람을 화약 연기로 뒤덮었습니다. 프랑스인은 창백해져서 문으로 달려갔다.
프랑스어에 대한 자신의 지식을 공개하지 않으려는 의도를 잊어 버린 피에르는 권총을 낚아 채어 버리고 경찰관에게 달려가 프랑스어로 말했습니다.
- Vous n "etes pa 축복? [다쳤어?] - 그가 말했다.
"Je crois que non" 장교는 자신을 느끼며 대답했습니다. "mais je l "ai manque belle cette fois ci" 그는 벽에 있는 부서진 석고를 가리키며 덧붙였다. "Quel est cet homme? .. 그러나 이것은 가까이에 있었다.이 사람은 누구입니까?] - 피에르를 엄하게 쳐다 보며 경찰관이 말했습니다.
- Ah, je suis vraiment au desespoir de ce qui vient d "도착, [아, 무슨 일이 있었는지 정말 절망스럽습니다.] 피에르는 자신의 역할을 완전히 잊어버린 채 재빨리 말했습니다. - C" est un fou, un malheureux qui ne savait pas ce qu "il faisait. [이 사람은 자신이 무엇을 하고 있는지 모르는 불행한 미친 사람입니다.]
장교는 Makar Alekseevich에게 다가가 그의 옷깃을 잡았다.
마치 잠이 든 것처럼 갈라진 입술을 가진 Makar Alekseich가 벽에 기대어 몸을 흔들었다.
“Brigand, tu me la payeras.” 프랑스인이 손을 거두며 말했다.
– Nous autres nous sommes clements apres la victoire: mais nous ne pardonnons pas aux Traitres, [도둑, 당신이 이 값을 지불하게 될 것입니다. 우리 형제는 승리 후에 자비를 베풀지만 우리는 배신자들을 용서하지 않는다] 그는 우울한 엄숙한 얼굴과 아름다운 에너지 넘치는 몸짓으로 덧붙였다.
피에르는 계속해서 프랑스어로 장교에게 이 술에 취해 미친 사람에게 강요하지 말라고 설득했습니다. 그 프랑스인은 우울한 표정을 바꾸지 않고 조용히 듣고 있다가 갑자기 미소를 지으며 피에르를 향했다. 그는 몇 초 동안 조용히 그를 바라보았다. 그의 잘생긴 얼굴은 비극적으로 부드러운 표정을 띠고 손을 내밀었다.
- Vous m "avez sauve la vie! Vous etes Francais, [당신은 내 생명을 구했습니다. 당신은 프랑스인입니다.]"라고 그는 말했습니다. 프랑스인에게 이 결론은 부인할 수 없었습니다. 오직 프랑스인만이 위대한 일을 할 수 있고 그의 목숨을 구할 수 있었습니다. life, m r Ramball capitaine du 13 me leger [Monsieur Rambal, 13 경전대 대장]은 의심할 여지 없이 가장 위대한 업적이었습니다.
그러나 이 결론과 그에 따른 장교의 확신이 아무리 의심스럽더라도 피에르는 그를 실망시킬 필요가 있다고 생각했다.
"J suis Russe, [나는 러시아인입니다]." 피에르가 재빨리 말했다.
- Ti ti ti, a d "autres, [다른 사람들에게 이것을 말하십시오] - 프랑스인이 코 앞에서 손가락을 흔들며 웃으며 말했습니다. - Tout a l "heure vous allez me conter tout ca"라고 말했습니다. – Charme de rencontrer un compatriote. 어 비엔! qu "allons nous fair de cet homme? [이제 이 모든 것을 나에게 말해줄 것이다. 동포를 만나서 정말 반가워요. 음! 이 남자를 어떻게 해야 할까요?] - 그는 이미 그의 형제인 피에르에게 말했습니다. 피에르가 프랑스인이 아니었다면 세계 최고의 칭호를 한 번 받은 프랑스 장교는 이를 포기할 수 없다고 말했다. , 도착하기 직전에 이 술에 취해 미친 남자가 장전된 권총을 끌어내렸고, 그들은 그에게서 빼앗을 시간도 없었고, 그의 행동이 처벌받지 않게 해달라고 요청했다고 설명했습니다.
프랑스인은 가슴을 내밀고 손으로 왕의 몸짓을 했다.
- Vous m "avez sauve la vie. Vous etes Francais. Vous me demandez sa grace? Je vous l" accorde. Qu "on emmene cet homme, [당신은 내 생명을 구했습니다. 당신은 프랑스인입니다. 그를 용서하시겠습니까? 그를 용서합니다. 이 사람을 데려가십시오.] 프랑스 장교는 팔을 잡고 빠르고 활기차게 말했습니다. 피에르의 프랑스어로 자신의 생명을 구하기 위해 프로듀싱을 하고 그와 함께 집으로 갔다.
마당에 있던 군인들은 총성을 듣고 통로로 들어가서 무슨 일이 있었는지 묻고 죄인을 처벌할 준비가 되어 있다고 말했습니다. 그러나 장교는 그들을 가혹하게 막았다.
“On vous demandera quand on a aura besoin de vous, [필요할 때 전화를 받을 것입니다.”라고 그는 말했습니다. 병사들은 떠났다. 그 사이 부엌에 있던 배트맨이 경찰관에게 다가갔다.
"Capitaine, ils on de la sume et du gigot de mouton dans la 요리"라고 그는 말했습니다. - Faut il vous l "apporter? [선장님이 주방에 수프와 양고기 구이가 있습니다. 가져다주시겠습니까?]
- Oui, et le vin, [네, 그리고 와인,] - 선장이 말했습니다.

프랑스 장교는 피에르와 함께 집에 들어갔습니다. 피에르는 선장에게 자신이 프랑스인이 아니라는 것을 다시 한 번 확인시켜주는 것이 자신의 의무라고 생각하고 떠나고 싶었지만 프랑스 장교는 그것에 대해 듣고 싶어하지 않았습니다. 그는 매우 정중하고, 상냥하고, 성격이 좋았고, 자신의 생명을 구한 것에 대해 진정으로 감사했기 때문에 피에르는 그를 거부할 용기가 없었고 그들이 들어간 첫 번째 방의 홀에서 그와 함께 앉았습니다. 자신이 프랑스인이 아니라는 피에르의 주장에 캡틴은 어떻게 그런 아첨을 거부할 수 있는지 분명히 이해하지 못하고 어깨를 으쓱하며 러시아인으로 알려지기를 원한다면 그렇게 하라고 말했다. 그럼에도 불구하고 그는 생명을 구한 것에 대한 감사의 마음으로 영원히 그와 연결되어 있습니다.
이 사람이 적어도 다른 사람의 감정을 이해하는 능력을 타고났고 피에르의 감정을 추측했다면 피에르는 그를 떠났을 것입니다. 그러나 자신이 아닌 모든 것에 대한이 남자의 생생한 침투력은 피에르를 물리 쳤습니다.
- Francais ou Prince russe incognito, [Frenchman or Russia Prince incognito,] - 피에르의 더럽지만 얇은 속옷과 손에 낀 반지를 바라보며 프랑스인이 말했다. - Je vous dois la vie je vous offre mon amitie. Un Francais n "oublie Jamais ni une Insulte ni un service. Je vous offre mon amitie. Je ne vous dis que ca. [나는 당신에게 내 생명을 빚지고 있으며, 당신에게 우정을 바칩니다. 프랑스인은 모욕이나 서비스를 결코 잊지 않습니다. 너에게 우정, 나는 더 이상 말하지 않는다.]
그의 목소리에서, 그의 표정에서, 이 장교의 몸짓에서 너무나 좋은 본성과 귀족이 (프랑스 의미에서) 너무 많아서 피에르는 프랑스인의 미소에 무의식적인 미소로 대답했다, 뻗은 손을 흔들었다.
- Capitaine Ramball du treizieme leger, decoe pour l "affaire du Sept, [램볼 대위, 9월 7일의 명분을 위해 Legion of Honor의 기병대장, 13경대 연대,] - 그는 자신을 우스꽝스럽고 제어할 수 없는 미소로 소개했습니다. 콧수염 아래 입술에 주름이 잡혔다. - Voudrez vous bien me dire a gift, a qui "j" ai l "honneur de parler aussi agreablement au Lieu de rester a l" 구급차 avec la balle de ce fou dans le corps. 이 미친놈의 총알이 몸에 박힌 채 드레싱 스테이션에 있는 대신에 이렇게 유쾌하게 이야기할 수 있는 영광을 누군지 알려줄 만큼 친절하세요?]
피에르는 자신의 이름을 말할 수 없다고 대답하고 얼굴을 붉히며 이름을 만들려고 애쓰며 자신이 이것을 말할 수 없는 이유에 대해 이야기하기 시작했지만 프랑스인은 급하게 그를 방해했습니다.
그는 말했다. - Je comprends vos raisons, vous etes officier ...officier superieur, peut etre. Vous avez porte les armes contre nous. Ce n "est pas mon Affairse. Je vous dois la vie. Cela me suffit. Je suis tout a vous. Vous etes gentilhomme? [완료, 제발. 이해합니다. 당신은 장교입니다... 참모장교일 수도 있습니다. 당신은 우리를 상대로 복무했습니다 내 상관이 없습니다 당신에게 내 목숨을 빚지고 있습니다 그것으로 충분하고 나는 당신의 것입니다 당신은 귀족입니까?] - 그는 질문의 힌트와 함께 추가했습니다. 피에르는 고개를 기울였습니다. - Votre nom de bapteme, s "il vous plait? Je ne demande pass davantage. 무슈 피에르, 디테스 부... 파르페. C "est tout ce que je Desire savoir. [당신의 이름은? 다른 것은 묻지 않습니다. 피에르 씨, 말씀하셨어요? 알겠습니다. 그게 전부입니다.]
로스트 램, 스크램블 에그, 사모바르, 보드카, 그리고 프랑스인이 가져온 러시아 저장고의 와인을 가져왔을 때, 램볼은 피에르에게 이 저녁 식사에 참여하도록 요청했고 즉시 건강하고 배고픈 사람처럼 열정적으로 그리고 빠르게 남자, 먹기 시작했고, 그의 강한 이빨로 재빨리 씹고, 끊임없이 그의 입술을 찰싹 때리고, 훌륭하다, exquis! [굉장해, 훌륭해!] 그의 얼굴은 홍조를 띠고 땀으로 범벅이 되어 있었다. 피에르는 배가 고팠고 기꺼이 저녁 식사에 참여했습니다. 질서정연한 모렐은 따뜻한 물이 담긴 냄비를 가져와서 그 안에 적포도주 한 병을 담았습니다. 또한 그는 테스트를 위해 부엌에서 가져온 크 바스 병을 가져 왔습니다. 이 음료는 이미 프랑스인들에게 알려졌고 그 이름을 얻었습니다. 크바스 리모네이드 드 코숑(돼지고기 레모네이드)라고 불렀고, 모렐은 그가 부엌에서 발견한 이 리모네이드 드 코숑을 칭찬했다. 그러나 선장은 모스크바를 통과하는 동안 와인을 얻었으므로 모렐에게 크바스를 제공하고 보르도 한 병을 가져갔습니다. 그는 냅킨으로 병을 목까지 감싸고 자신과 피에르 와인을 부었다. 배고픔과 술에 대한 만족감은 선장을 더욱 활기차게 했고, 그는 저녁 식사를 하는 동안에도 말을 멈추지 않았다.
- Oui, mon cher monsieur Pierre, je vous dois une fiere chandelle de m "avoir sauve ... de cet enrage ... J" en ai assez, voyez vous, de balles dans le corps. En voila une(옆을 가리킴) a Wagram et de deux Smolensk - 그는 그의 뺨에 있는 흉터를 보여주었습니다. - Et cette jambe, comme vous voyez, qui ne veut pas Marcher. C "est a la grande bataille du 7 a la Moskowa que j" ai recu ca. Sacre dieu, c "etait beau. Il fallait voir ca, c" etait un deluge de feu. Vous nous avez taille une 무례한 besogne; vous pouvez vous en vanter, nom d "un petit bonhomme. Et, ma parole, malgre l" atoux que j "y ai gagne, je serais pret a recommencer. Je plains ceux qui n" ont pas vu ca. [예, 친애하는 피에르 씨, 이 미친 사람에게서 저를 구해주신 당신을 위해 좋은 촛불을 켜야 할 의무가 있습니다. 알다시피, 나는 내 몸에 있는 총알을 충분히 가지고 있습니다. 여기 하나는 Wagram 근처에 있고 다른 하나는 Smolensk 근처에 있습니다. 그리고 이 다리는 움직이고 싶지 않습니다. 이것은 모스크바 근처에서 7th의 큰 전투 중입니다. 영형! 그것은 멋 있었어! 당신은 그것을 보았어야 했습니다, 그것은 화재의 홍수였습니다. 당신은 우리에게 힘든 일을 주었습니다. 자랑할 수 있습니다. 그리고 하나님에 의해, 이 비장의 카드에도 불구하고(그는 십자가를 가리켰다), 나는 처음부터 다시 시작할 준비가 되어 있을 것입니다. 못보신 분들 안타깝습니다.]
- J "y ai et, [내가 거기에 있었다] - 피에르가 말했다.
- 바, 브라이먼트! Eh bien, tant mieux가 말했다. - Vous etes de fiers ennemis, tout de meme. La grande redoute a ete tenace, nom d "une pipe. Et vous nous l" avez fait cranement payer. J "y suis alle trois fois, tel que vous me voyez. Trois fois nous etions sur les canons et trois fois on nous a culbute et comme des capucins de cartes. Oh!! c" etait beau, monsieur Pierre. Vos 척탄병 on et et superbes, tonnerre de Dieu. Je les ai vu Six fois de Suite serrer les rangs, et Marcher comme a une revue. 레 보 옴므! Notre roi de Naples, qui s "y connait a cry: bravo! 아, 아! soldat comme nous autres! - 그는 웃으며 말하며 잠시 침묵을 지켰다. - Tant mieux, tant mieux, monsieur Pierre. Terribles en bataille . .. galants ... - 그는 미소로 윙크했습니다. - avec les belles, voila les Francais, monsieur Pierre, n "est ce pas? [바, 정말? 모든 것이 좋습니다. 당신은 돌진하는 적입니다, 나는 인정해야합니다. 큰 보루는 잘 버텼습니다, 젠장. 그리고 당신은 우리에게 값비싼 대가를 치르게 했습니다. 보시다시피 세 번이나 가봤습니다. 세 번은 대포를 탔고 세 번은 카드 병사처럼 넘어졌습니다. 당신의 척탄병은 위대했습니다. 나는 그들의 대열이 어떻게 여섯 번이나 닫혔는지, 그리고 그들이 퍼레이드에 정확히 어떻게 행진했는지 보았습니다. 멋진 사람들! 이 경우 개를 먹은 우리 나폴리 왕은 그들에게 소리 쳤습니다. 브라보! - 하하하, 당신은 우리의 형제 병사입니다! "훨씬 좋아졌어, 훨씬 더 좋아졌어, 피에르 씨. 전투에서 끔찍하고 미인에게 친절합니다. 여기 프랑스 인 피에르 씨가 있습니다. 안 그래?]
그만큼 선장은 순진하고 선량한 성격에 마음이 착하고 스스로 만족스러워서 피에르가 빙그레 웃으며 그를 보며 윙크할 뻔했다. 아마도 "galant"라는 단어는 선장이 모스크바의 위치를 ​​​​생각하게 만들었습니다.

이 기사에서는 메시지 가로채기(man-in-middle) 공격의 이론과 이러한 유형의 공격을 방지하는 데 도움이 되는 몇 가지 실용적인 사항을 알아 내려고 노력할 것입니다. MitM 공격을 통해 통신에 침입하고 대화를 들을 수 있으므로 이러한 침입이 개인 정보에 미치는 위험을 이해하는 데 도움이 됩니다.

인터넷 작동 방식 이해

메시지 가로채기 공격을 이해하려면 먼저 인터넷 자체가 어떻게 작동하는지 이해해야 합니다. 상호 작용의 주요 지점: 클라이언트, 라우터, 서버. 클라이언트와 서버 간의 가장 일반적인 통신 프로토콜은 HTTP(Hypertext Transfer Protocol)입니다. 브라우저를 통한 웹 서핑, 이메일, 인스턴트 메시징 - 모두 HTTP를 통해 이루어집니다.

브라우저의 주소 표시줄에 입력하면 클라이언트(귀하)는 웹 페이지를 표시하라는 요청을 서버에 보냅니다. 패킷(HTTP GET 요청)은 여러 라우터를 통해 서버로 전송됩니다. 그런 다음 서버는 클라이언트로 전송되어 모니터에 표시되는 웹 페이지로 응답합니다. HTTP 메시지는 기밀성과 익명성을 보장하기 위해 보안 모드에서 전송되어야 합니다.

그림 1. 클라이언트-서버 상호작용

통신 프로토콜 보안

보안 통신 프로토콜에는 다음 속성이 각각 있어야 합니다.

  1. 은둔- 지정된 수신자만 메시지를 읽을 수 있습니다.
  2. 확실성- 상호 작용 당사자의 신원이 입증됩니다.
  3. 진실성- 메시지가 전송 중에 수정되지 않았는지 확인합니다.

이러한 규칙 중 하나라도 따르지 않으면 전체 프로토콜이 손상됩니다.

HTTP 프로토콜을 통한 메시지 가로채기 공격

공격자는 ARP 스푸핑이라는 기술을 사용하여 중간자 공격을 쉽게 수행할 수 있습니다. Wi-Fi 네트워크에 있는 모든 사람이 가짜 ARP 패킷을 보낼 수 있으므로 자신도 모르게 라우터 대신 공격자를 통해 모든 트래픽을 보낼 수 있습니다.

그 후 공격자는 트래픽을 완전히 제어하고 양방향으로 전송된 요청을 모니터링할 수 있습니다.

그림 2. 중간자 공격 방식


이러한 공격을 방지하기 위해 보안 버전의 HTTP 프로토콜이 생성되었습니다. TLS(전송 계층 보안) 및 그 이전 버전인 SSL(Secure Socket Layer)은 네트워크를 통해 보안 통신을 제공하는 암호화 프로토콜입니다. 따라서 보안 프로토콜을 HTTPS라고 합니다. 브라우저의 주소 표시줄에 입력하여 보안 프로토콜이 어떻게 작동하는지 확인할 수 있습니다(https의 S 참고).

제대로 구현되지 않은 SSL에 대한 메시지 가로채기 공격

최신 SSL은 우수한 암호화 알고리즘을 사용하지만 올바르게 구현되지 않아도 문제가 되지 않습니다. 해커가 요청을 가로챌 수 있는 경우 요청된 URL에서 "S"를 제거하여 SSL을 우회하여 변경할 수 있습니다.

이러한 요청 가로채기 및 수정을 알 수 있습니다. 예를 들어 https://login.yahoo.com/ 을 요청하고 응답이 http://login.yahoo.com/ 인 경우 이는 의심을 불러일으킬 것입니다. 글을 쓰는 시점에서 이러한 공격은 실제로 Yahoo 이메일 서비스에서 작동합니다.

그림 3. 요청 가로채기 및 수정


이러한 공격을 방지하기 위해 서버는 HTTPS 프로토콜을 통해 강제 보안 연결을 적용하는 메커니즘인 HSTS(HTTP Strict Transport Security)를 구현할 수 있습니다. 이 경우 공격자가 URL에서 "S"를 제거하여 요청을 수정하면 서버는 여전히 302 리디렉션을 사용하여 사용자를 보안 프로토콜이 있는 페이지로 리디렉션합니다.

그림 4. HSTS 운영 계획


SSL을 구현하는 이 방법은 다른 유형의 공격에 취약합니다. 공격자는 서버에 SSL 연결을 생성하지만 사용자가 HTTP를 사용하도록 속입니다.

그림 5. HSTS에 대한 공격 체계


이러한 공격을 방지하기 위해 Chrome, Firefox 및 Tor와 같은 최신 브라우저는 HSTS를 사용하는 사이트를 모니터링하고 클라이언트 측 SSL 연결을 적용합니다. 이 경우 메시지 가로채기(man-in-the-middle) 공격을 수행하는 공격자는 피해자와 SSL 연결을 생성해야 합니다.

그림 6. 공격자가 피해자와 SSL 연결을 설정하는 공격 계획


사용자에 대한 SLL 연결을 보호하기 위해 공격자는 서버 역할을 하는 방법을 알아야 합니다. SSL의 기술적 측면을 이해합시다.

SSL 이해

해커의 관점에서 통신 프로토콜을 손상시키는 것은 위에 나열된 구성 요소(프라이버시, 신뢰성 및 무결성) 간의 약한 링크를 찾는 것으로 귀결됩니다.

SSL은 비대칭 암호화 알고리즘을 사용합니다. 대칭 암호화에서 문제는 동일한 키가 데이터를 암호화하고 해독하는 데 사용된다는 것입니다. 공격자가 이 키를 추적할 수 있기 때문에 이 접근 방식은 인터넷 프로토콜에 적합하지 않습니다.

반면 비대칭 암호화는 암호화에 사용되는 공개 키와 데이터를 복호화하는 데 사용되는 개인 키라는 양쪽에 2개의 키를 포함합니다.

그림 7. 공개 키와 개인 키의 작업

SSL은 보안 통신에 필요한 세 가지 속성을 어떻게 제공합니까?

  1. 비대칭 암호화가 데이터를 암호화하는 데 사용되기 때문에 SSL은 개인 연결을 제공합니다. 이 암호화는 깨지기 쉽고 눈에 띄지 않습니다.
  2. 서버는 신뢰할 수 있는 제3자인 인증 기관에서 발급한 SSL 인증서를 클라이언트에 전송하여 서버의 적법성을 증명합니다.

공격자가 어떻게든 인증서를 확보할 수 있다면 메시지 가로채기(man-in-the-middle) 공격의 조건을 만들 수 있습니다. 따라서 서버 및 피해자와 2개의 연결이 생성됩니다. 이 경우 서버는 공격자가 정상적인 클라이언트라고 생각하고 피해자는 자신이 서버임을 증명하는 인증서를 제공했기 때문에 공격자를 식별할 방법이 없습니다.

귀하의 메시지는 암호화된 형태로 도달 및 도착하지만 사이버 범죄자의 컴퓨터를 통해 사슬을 따라 전달되어 사이버 범죄자가 완전히 제어할 수 있습니다.

그림 8. 공격자가 인증서를 가지고 있는 경우 공격 방식


공격자가 피해자의 브라우저를 손상시킬 수 있는 경우 인증서를 위조할 필요가 없습니다. 이 경우 기본적으로 신뢰할 수 있는 자체 서명된 인증서를 삽입할 수 있습니다. 이것이 대부분의 메시지 가로채기 공격이 구현되는 방식입니다. 더 복잡한 경우 해커는 다른 방법으로 인증서를 위조해야 합니다.

인증 기관의 문제

서버에서 보낸 인증서는 인증 기관에서 발급하고 서명합니다. 각 브라우저에는 신뢰할 수 있는 CA 목록이 있으며 이를 추가하거나 제거할 수 있습니다. 여기서 문제는 큰 기관을 제거하기로 결정하면 이러한 기관에서 서명한 인증서를 사용하는 사이트를 방문할 수 없다는 것입니다.

인증서와 CA는 항상 HTTPS 연결에서 가장 약한 링크였습니다. 모든 것이 올바르게 구현되었고 각 인증 기관이 견고한 권한을 가지고 있다고 해도 많은 제3자를 믿어야 한다는 사실을 받아들이기는 여전히 어렵습니다.

오늘날 650개 이상의 조직에서 인증서를 발급할 수 있습니다. 공격자가 그 중 하나를 해킹하면 원하는 인증서를 얻을 수 있습니다.

인증기관인 베리사인(VeriSign)만 있을 때도 중간자(man-in-the-middle) 공격을 막아야 하는 사람들이 가로채기 서비스를 팔고 있다는 문제가 있었다.

또한 인증 기관을 해킹하여 많은 인증서가 생성되었습니다. 공격을 받은 사용자가 사기성 인증서를 신뢰하도록 하기 위해 다양한 기술과 트릭이 사용되었습니다.

범죄학

공격자는 가짜 ARP 패킷을 보내기 때문에 그의 IP 주소를 볼 수 없습니다. 대신 네트워크의 각 장치에 고유한 MAC 주소에 주의를 기울여야 합니다. 라우터의 MAC 주소를 알고 있으면 기본 게이트웨이의 MAC 주소와 비교하여 실제로 라우터인지 침입자인지 확인할 수 있습니다.

예를 들어 Windows에서는 명령줄(CMD)에서 ipconfig 명령을 사용하여 기본 게이트웨이(마지막 줄)의 IP 주소를 볼 수 있습니다.

그림 9 ipconfig 명령 사용


그런 다음 arp -a 명령을 사용하여 이 게이트웨이의 MAC 주소를 찾습니다.

그림 10. arp –a 명령 사용


그러나 공격을 알아차릴 수 있는 또 다른 방법이 있습니다. 공격이 시작될 때 네트워크 활동을 모니터링하고 ARP 패킷을 관찰하는 경우입니다. 예를 들어, 이 용도로 Wireshark를 사용할 수 있습니다. 이 프로그램은 기본 게이트웨이의 MAC 주소가 변경된 경우 알려줍니다.

참고: 공격자가 MAC 주소를 올바르게 스푸핑하면 그를 추적하는 것이 큰 문제가 됩니다.

결론

SSL은 공격자가 공격을 수행하기 위해 많은 작업을 수행하도록 하는 프로토콜입니다. 그러나 정부가 후원하는 공격이나 자격을 갖춘 해커 조직으로부터 사용자를 보호하지는 못합니다.

사용자의 임무는 가짜 인증서(매우 일반적인 기술)의 삽입을 방지하기 위해 브라우저와 컴퓨터를 보호하는 것입니다. 또한 신뢰할 수 있는 인증서 목록에 주의를 기울이고 신뢰할 수 없는 인증서를 제거해야 합니다.

2016년 10월 18일 | 블라디미르 카조프

러시아 통신의 가로채기 및 암호 해독에 관한 Yarovaya 법 조항을 구현하기 위한 FSB, 통신부 및 산업통상부의 계획은 더 이상 단순한 계획이 아니라 이미 실행되기 시작했습니다. MITM 공격을 사용하여 WhatsApp, Viber, Facebook Messenger, Telegram, Skype 메시지를 가로챌 가능성에 대한 전문가 의견을 준비하고 이러한 도구의 프로토타입을 시연합니다.

우리는 이전 기사에서 "합법적인" MITM 공격을 조직하기 위한 계획에 대해 썼습니다. 오늘 우리는 그러한 공격의 원리와 그것을 구현하는 방법에 대해 더 자세히 설명할 것입니다.

MITM 공격이란

중간자(MITM)는 "중간자"로 번역됩니다. 이 용어는 공격자가 인터넷 사용자와 그가 액세스하는 응용 프로그램 사이에 있을 때의 네트워크 공격을 나타냅니다. 물론 물리적으로가 아니라 특수 소프트웨어의 도움으로. 요청한 응용 프로그램(웹 사이트 또는 인터넷 서비스일 수 있음)에 의해 사용자에게 표시되고 작업을 모방하고 정상적인 작동 및 정보 교환의 느낌을 주는 방식으로 수행합니다.

공격의 대상은 다양한 시스템에 대한 로그인 자격 증명, 은행 세부 정보 및 카드 번호, 개인 서신 및 기타 기밀 정보와 같은 사용자의 개인 데이터입니다. 대부분의 경우 금융 애플리케이션(은행 고객, 온라인 은행, 결제 및 송금 서비스), 회사 SaaS 서비스, 전자 상거래 사이트(온라인 상점) 및 기타 시스템에 진입하기 위해 승인이 필요한 사이트가 공격을 받습니다.

공격자가 획득한 정보는 불법송금, 계좌이체, 개인 서신 가로채기, 타인 비용으로 구매, 도용, 협박 등 다양한 용도로 사용될 수 있습니다.

또한 자격 증명을 도용하고 시스템을 해킹한 후 범죄자가 다음을 설치할 수 있습니다. 기업 네트워크지적 재산권(특허, 프로젝트, 데이터베이스)을 도용하도록 조직화하고 중요한 데이터를 삭제하여 경제적 피해를 입히는 악성 소프트웨어입니다.

MITM 공격은 서신을 배달하는 동안 편지를 열어 개인적 사용을 위해 그 내용을 다시 쓰거나 심지어 손글씨를 위조하여 자신의 것을 추가한 다음 봉투를 봉인하고 배달하는 우체부와 비교할 수 있습니다. 마치 아무 일도 없었다는 듯이 수취인에게. 또한 편지의 텍스트를 암호화한 상태에서 수취인에게 직접 복호화 코드를 알리고 싶다면 우편 배달부가 자신을 수취인으로 표시하여 사용자가 대체를 눈치채지 못하게 할 것입니다.

MITM 공격이 수행되는 방식

MITM 공격의 실행은 가로채기와 해독의 두 단계로 구성됩니다.

  • 차단

공격의 첫 번째 단계는 사용자로부터 의도된 대상으로의 트래픽을 가로채서 공격자의 네트워크로 보내는 것입니다.

가장 일반적이고 가장 쉬운 가로채기 방법은 공격자가 무료 액세스(암호 및 권한 부여 없이)로 Wi-Fi 포인트를 생성하는 수동 공격입니다. 사용자가 이러한 지점에 연결하는 순간 공격자는 이를 통과하는 모든 트래픽에 액세스할 수 있으며 가로채기 위해 모든 데이터를 추출할 수 있습니다.

두 번째 방법은 다음 옵션 중 하나로 수행할 수 있는 능동 차단입니다.

IP 스푸핑– 패킷 헤더의 대상 IP 주소를 공격자의 주소로 대체합니다. 결과적으로 사용자는 요청된 URL로 이동하는 대신 공격자의 사이트로 이동합니다.

ARP 스푸핑– 호스트의 실제 MAC 주소를 피해자의 ARP 테이블에 있는 공격자의 주소로 대체. 결과적으로 사용자가 필요한 노드의 IP 주소로 보낸 데이터는 공격자의 주소로 이동합니다.

DNS 스푸핑 - DNS 캐시 감염, DNS 서버 침투, 웹사이트 주소의 일치 기록 스푸핑. 결과적으로 사용자는 요청된 사이트에 액세스를 시도하지만 DNS 서버에서 공격자의 사이트 주소를 받습니다.

  • 복호화

가로채기 후에 양방향 SSL 트래픽을 해독해야 하며, 이는 사용자와 그가 요청한 리소스가 간섭을 인지하지 못하는 방식으로 수행되어야 합니다.

이를 위한 몇 가지 방법이 있습니다.

HTTPS 스푸핑– HTTPS 프로토콜을 통해 사이트에 연결되면 가짜 인증서가 피해자의 브라우저로 전송됩니다. 이 인증서에는 손상된 응용 프로그램의 디지털 서명이 포함되어 있어 브라우저가 공격자와의 연결을 신뢰할 수 있는 것으로 수락합니다. 이러한 연결이 설정되면 공격자는 응용 프로그램에 전달되기 전에 피해자가 입력한 모든 데이터에 액세스할 수 있습니다.

SSL 비스트(SSL/TLS에 대한 브라우저 익스플로잇) – 이 공격은 TLS 버전 1.0 및 1.2의 SSL 취약점을 익스플로잇합니다. 피해자의 컴퓨터는 웹 애플리케이션으로 전송되는 암호화된 쿠키를 가로채는 악성 자바스크립트에 감염됩니다. 이것은 공격자가 해독된 쿠키와 인증 키를 가져오는 방식으로 "암호문 블록 체인" 암호화 모드를 손상시킵니다.

SSL 하이재킹– TCP 세션 시작 시 사용자와 애플리케이션에 가짜 인증 키 전송. 이것은 실제로 "중간자"가 세션을 제어할 때 보안 연결처럼 보입니다.

SSL 스트리핑- 애플리케이션에서 사용자에게 보낸 TLS 인증을 가로채서 보안 HTTPS에서 일반 HTTP로 연결을 다운그레이드합니다. 공격자는 사이트에 대한 암호화되지 않은 액세스 권한을 사용자에게 제공하는 한편, 자신은 애플리케이션과의 보안 세션을 유지하여 피해자의 전송된 데이터를 볼 기회를 얻습니다.\

MITM 공격에 대한 보호

사용자가 여러 예방 조치를 취하고 웹 애플리케이션 개발자가 암호화 및 인증 방법을 조합하여 사용할 때 MITM 공격에 대한 안정적인 보호가 가능합니다.

사용자 작업:

  • 비밀번호로 보호되지 않는 Wi-Fi 핫스팟에 연결하지 마십시오. 기능 비활성화 자동 연결알려진 액세스 포인트로 - 공격자는 자신의 Wi-Fi를 합법적인 것으로 가장할 수 있습니다.
  • 안전하지 않은 사이트로의 전환에 대한 브라우저 알림에 주의하십시오. 이러한 메시지는 공격자의 가짜 사이트로 이동했거나 합법적인 사이트의 보호에 문제가 있음을 나타낼 수 있습니다.
  • 응용 프로그램이 사용 중이 아니면 세션을 종료합니다(로그아웃).
  • 기밀 거래를 위해 공용 네트워크(카페, 공원, 호텔 등)를 사용하지 마십시오( 비즈니스 서신, 금융 거래, 온라인 상점에서의 구매 등).
  • 컴퓨터나 랩톱에서 최신 바이러스 백신을 사용하면 악성 소프트웨어를 사용하는 공격으로부터 보호하는 데 도움이 됩니다.

웹 응용 프로그램 및 웹 사이트 개발자는 전송된 데이터를 암호화하여 스푸핑 공격을 크게 복잡하게 만드는 보안 프로토콜인 TLS 및 HTTPS를 사용해야 합니다. 또한 인증 매개변수와 액세스 키를 얻기 위해 트래픽을 가로채는 것을 방지합니다.

인증 페이지뿐만 아니라 사이트의 다른 모든 섹션에 대해서도 TLS 및 HTTPS를 보호하는 것이 좋습니다. 이렇게 하면 로그인 후 안전하지 않은 페이지를 탐색하는 동안 공격자가 사용자의 쿠키를 훔칠 가능성이 줄어듭니다.

MITM 공격에 대한 보호는 사용자와 통신 사업자의 책임입니다. 사용자에게 가장 중요한 것은 경계를 늦추지 않고 검증된 인터넷 액세스 방법만 사용하며 HTTPS 암호화가 적용된 사이트를 선택하여 개인 데이터를 전송하는 것입니다. 통신 사업자는 DPI(Deep Packet Inspection) 시스템을 사용하여 데이터 네트워크의 이상을 감지하고 스푸핑 공격을 방지하도록 권장할 수 있습니다.

정부 기관은 공격자와 달리 피해를 입히지 않고 시민을 보호하기 위해 MITM 공격을 사용할 계획입니다. 개인 메시지 및 기타 사용자 트래픽의 가로채기는 현행법의 틀 내에서 수행되며 테러, 마약 밀매 및 기타 금지된 활동과 싸우기 위한 사법 당국의 결정에 의해 수행됩니다. 일반 사용자의 경우 "합법적인" MITM 공격은 위험하지 않습니다.

거의 항상 여러 가지 방법으로 원하는 결과를 얻을 수 있습니다. 이는 정보 보안 분야에도 적용됩니다. 때로는 목표를 달성하기 위해 무차별적으로 구멍을 찾고 스플로잇을 개발하거나 네트워크를 통해 전송되는 내용을 들을 수 있습니다. 그리고 마지막 옵션종종 최적입니다. 그렇기 때문에 오늘 우리는 MITM 공격을 사용하여 네트워크 트래픽에서 중요한 정보를 포착하는 데 도움이 되는 도구에 대해 이야기할 것입니다.

MITMf

더 흥미로운 후보 중 하나부터 시작하겠습니다. 이것은 sergio-proxy 위에 구축된 중간자 공격을 위한 전체 프레임워크입니다. 최근에 Kali Linux에 포함되었습니다. 직접 설치하려면 저장소를 복제하고 몇 가지 명령을 실행하기만 하면 됩니다.

# setup.sh # pip install -r requirements.txt

# pip install -r 요구 사항.txt

플러그인으로 확장할 수 있는 아키텍처가 있습니다. 주요 내용은 다음과 같습니다.

  • 스푸핑 - ARP/DHCP 스푸핑, ICMP 리디렉션 및 DNS 쿼리 수정을 사용하여 트래픽을 리디렉션할 수 있습니다.
  • 스니퍼 - 이 플러그인은 다양한 프로토콜에 대한 로그인 시도를 모니터링합니다.
  • BeEFAutorun - OS 및 클라이언트 브라우저 유형에 따라 BeEF 모듈을 자동으로 실행할 수 있습니다.
  • AppCachePoison - 캐시 중독 공격을 수행합니다.
  • SessionHijacking - 세션을 가로채고 받은 쿠키를 firelis 프로필에 저장합니다.
  • BrowserProfiler - 브라우저에서 사용하는 플러그인 목록을 가져오려고 합니다.
  • FilePwn - Backdoor Factory 및 BDFProxy를 사용하여 HTTP를 통해 전송된 파일을 대체할 수 있습니다.
  • 주입 - HTML 페이지에 임의의 콘텐츠를 주입합니다.
  • jskeylogger - JavaScript 키로거를 클라이언트 페이지에 삽입합니다.

이 기능이 충분하지 않은 경우 적절한 확장을 구현하여 언제든지 고유한 기능을 추가할 수 있습니다.

퍼티 라이더

또 다른 주목할만한 유틸리티. 사실, 오늘날 고려되는 다른 모든 도구와 달리 매우 협소하게 전문화되어 있습니다. 프로젝트의 저자가 말했듯이 그는 침투 테스트 중에 가장 중요한 데이터가 SSH/Telnet/rlogin을 통해 연결된 관리자가 연결된 Linux/UNIX 서버에 있다는 사실에서 그러한 유틸리티를 만드는 데 영감을 받았습니다. 그리고 대부분의 경우 관리자의 컴퓨터에 액세스하는 것이 대상 서버에 액세스하는 것보다 훨씬 쉬웠습니다. 시스템 관리자의 컴퓨터에 침투한 후에 남은 것은 PuTTY가 실행 중인지 확인하고 이 도구를 사용하여 공격자에 대한 역방향 브리지를 구축하는 것입니다.

이 유틸리티는 관리자와 원격 서버(암호 포함), 주어진 세션 내에서 임의의 셸 명령도 실행합니다. 그리고 이 모든 것은 사용자(관리자)에게 절대적으로 투명하게 이루어집니다. PuTTY 프로세스의 구현 방법과 같은 기술적인 세부 사항에 관심이 있다면 저자의 프레젠테이션을 읽는 것이 좋습니다.

태어난 지 8년이 넘은 다소 오래된 유틸리티입니다. 쿠키를 훔쳐 세션을 복제하도록 설계되었습니다. 세션 하이재킹의 경우 호스트를 탐지하는 기본 기술이 있습니다. 무선 네트워크또는 habu) 및 ARP 중독을 수행합니다. 유일한 문제는 8년 전과 달리 오늘날 Yahoo나 Facebook과 같은 거의 모든 대기업이 SSL 암호화를 사용하여 이 도구를 완전히 쓸모 없게 만든다는 것입니다. 그럼에도 불구하고 웹에는 SSL을 사용하지 않는 리소스가 여전히 충분하므로 유틸리티를 폐기하기에는 너무 이릅니다. 장점은 Firefox에 자동으로 통합되고 가로채는 각 세션에 대해 별도의 프로필을 생성한다는 사실입니다. 원천저장소에서 사용할 수 있으며 다음 명령 시퀀스를 사용하여 직접 빌드할 수 있습니다.

# apt-get install build-essential libwxgtk2.8-dev libgtk2.0-dev libpcap-dev # g++ $(wx-config --cppflags --libs) -lpcap -o sessionthief *.cpp # setcap cap_net_raw,cap_net_admin=eip 세션 도둑

# apt-get install 빌드 필수 libwxgtk2.8-dev libgtk2.0-dev libpcap-dev

# g++ $(wx-config --cppflags --libs) -lpcap -o sessionthief *.cpp

# setcap cap_net_raw,cap_net_admin=eip sessionthief

프록시 퍼즈

ProzyFuzz는 MITM 공격과 직접적인 관련이 없습니다. 이름에서 짐작할 수 있듯이 이 도구는 퍼징용으로 설계되었습니다. 이것은 네트워크 트래픽 패킷의 내용을 무작위로 변경하는 파이썬으로 구현된 작은 비결정적 네트워크 fuzzer입니다. TCP 및 UDP 프로토콜을 지원합니다. 한쪽 면만 퍼지하도록 구성할 수 있습니다. 일부 네트워크 애플리케이션(또는 프로토콜)을 빠르게 테스트하고 PoC를 개발해야 할 때 유용합니다. 사용 예:

파이썬 프록시퍼즈 -l -아르 자형 -피

파이썬 프록시퍼즈 -l -아르 자형 -피

옵션 목록에는 다음이 포함됩니다.

  • w - 퍼징이 시작되기 전에 전송된 요청 수를 설정합니다.
  • c - 클라이언트만 퍼즈합니다(그렇지 않으면 양쪽 모두).
  • s - 서버만 퍼즈합니다(그렇지 않으면 양쪽 모두).
  • u - UDP 프로토콜(그렇지 않으면 TCP가 사용됨).

중간자

다양한 프로토콜에 대한 MITM 공격을 수행하기 위한 유틸리티인 DEF CON 컨퍼런스에서 발표되었습니다. 알파 버전은 HTTP 프로토콜을 지원했으며 무기고에 세 가지 멋진 플러그인이 있습니다.

  • plugin-beef.py - 로컬 네트워크에서 들어오는 모든 HTTP 요청에 BeEF(브라우저 공격 프레임워크)를 삽입합니다.
  • plugin-metasploit.py - 암호화되지 않은(HTTP) 요청에 삽입하여 Metasploit에서 브라우저 익스플로잇을 로드하는 IFRAME를 요청합니다.
  • plugin-keylogger.py - HTTPS를 통해 전송될 모든 텍스트 필드에 JavaScript onKeyPress 이벤트 핸들러를 삽입하여 전체 양식이 제출되기 전에 브라우저가 사용자의 비밀번호를 공격자의 서버에 문자별로 보내도록 합니다.

Middler는 네트워크 트래픽을 자동으로 분석하여 그 안에 있는 쿠키를 찾을 뿐만 아니라 클라이언트에게 독립적으로 요청합니다. 즉, 프로세스가 최대한 자동화됩니다. 이 프로그램은 모든 보호되지 않는 계정의 수집을 보장합니다. 컴퓨터 네트워크(또는 공용 핫스팟) 액세스 권한이 있는 트래픽. 프로그램이 올바르게 작동하려면 Scapy, libpcap, readline, libdnet, python-netfilter 패키지가 시스템에 설치되어 있어야 합니다. 안타깝게도 리포지토리가 오랫동안 업데이트되지 않았으므로 새 기능을 직접 추가해야 합니다.

HTTP 트래픽을 대화식으로 검사하고 수정할 수 있는 콘솔 유틸리티입니다. 이러한 기술 덕분에 이 유틸리티는 침투 테스터/해커뿐만 아니라 예를 들어 웹 응용 프로그램을 디버깅하는 데 사용하는 일반 개발자도 사용합니다. 애플리케이션이 어떤 요청을 하고 어떤 응답을 받는지에 대한 자세한 정보를 얻는 데 사용할 수 있습니다. 또한 mitmproxy는 일부 REST API, 특히 제대로 문서화되지 않은 API의 작동 방식을 배우는 데 도움이 될 수 있습니다.

설치는 매우 간단합니다.

$ sudo 적성 설치 mitmproxy

mitmproxy를 사용하면 자체 서명된 인증서를 클라이언트에 발급하여 HTTPS 트래픽을 가로챌 수도 있습니다. 트래픽 가로채기 및 수정을 설정하는 방법에 대한 좋은 예를 찾을 수 있습니다.

디스니프

글쎄, 이 유틸리티는 일반적으로 당신이 듣자마자 마음에 와야 하는 첫 번째 것들 중 하나입니다.
"MITM 공격". 이 도구는 꽤 오래되었지만 계속해서 활발하게 업데이트되고 있습니다. 이는 좋은 소식입니다. 기능에 대해 자세히 이야기하는 것은 의미가 없으며 14년 동안 네트워크에서 두 번 이상 다루어졌습니다. 예를 들어 다음과 같은 가이드에서:

또는 당사 웹사이트의 지침:

마지막으로..

평소와 같이 모든 유틸리티를 고려하지 않고 가장 인기 있는 유틸리티만 고려했습니다. 언젠가는 이야기할 수 있는 잘 알려지지 않은 프로젝트가 더 많이 있습니다. 보시다시피 MITM 공격을 수행하기 위한 도구는 부족하지 않으며 자주 발생하지 않는 멋진 도구 중 하나가 Windows에서 구현됩니다. nix 시스템에 대해서는 할 말이 없습니다. 따라서 항상 올바른 하이재킹 도구를 찾을 수 있다고 생각합니다.
다른 사람의 자격 증명. 죄송합니다. 즉, 테스트 목적입니다.

공격 "man in the middle"(Eng. Man in the middle, MitM-attack) - 공격자가 통신원과 교환한 메시지를 마음대로 읽고 수정할 수 있고 후자는 할 수 없는 상황을 나타내는 암호화 용어 채널에서 그의 존재에 대해 추측하십시오.

상대방 사이의 채널에 접속한 공격자가 적극적으로 전송 프로토콜에 개입하여 정보를 삭제, 왜곡하거나 허위 정보를 부여하여 통신 채널을 손상시키는 방법.

공격 원리:

개체 "A"가 개체 "B"에 일부 정보를 보낼 계획이라고 가정해 보겠습니다. 개체 "C"는 사용된 데이터 전송 방법의 구조 및 속성에 대한 지식은 물론 "C"가 가로채려는 실제 정보의 계획된 전송 사실에 대한 지식을 가지고 있습니다.

공격을 수행하기 위해 "C"는 개체 "A"에 대해 "B"로, 개체 "B"에 대해서는 "A"로 "대표"됩니다. 개체 "A"는 "B"에게 정보를 보내는 것으로 잘못 믿고 개체 "C"에 정보를 보냅니다.

정보를 수신하고 일부 작업(예: 자체 목적을 위해 복사 또는 수정)을 수행한 개체 "C"는 데이터를 받는 사람 자체("B")에게 보냅니다. 객체 "B"는 차례로 정보가 "A"로부터 직접 수신되었다고 믿습니다.

MitM 공격의 예:

Alice가 재정적 어려움에 있고 인스턴트 메시징 프로그램을 사용하여 John에게 메시지를 보내어 일정 금액을 요청하기로 결정했다고 가정해 보겠습니다.
앨리스: 존, 안녕!
앨리스: 암호화 키를 보내주세요. 작은 요청이 있습니다!
남자: 안녕하세요! 잠깐만!

하지만 이때 스니퍼로 트래픽을 분석하던 X씨는 이 메시지와 '암호화 키'라는 문구를 발견해 궁금증을 자아냈다. 그래서 그는 다음 메시지를 가로채서 필요한 데이터로 교체하기로 결정했고 다음 메시지를 수신했습니다.
남자: 여기 내 열쇠가 있습니다: 1111_D

그는 John의 키를 자신의 것으로 변경하고 Alice에게 메시지를 보냈습니다.
남자: 여기 내 열쇠가 있습니다: 6666_M

앨리스는 자신이 존의 키인지 모르고 개인 키를 사용하여 6666_M, John에게 암호화된 메시지를 보냅니다.
앨리스: John, 나는 곤경에 처해 급히 돈이 필요합니다. $300를 제 계좌 Z12345로 이체하십시오. 고맙습니다. 추신. 내 키: 2222_A

메시지를 받은 Mister-X는 자신의 키로 암호를 해독하고 읽고 기뻐하며 앨리스의 계좌번호와 암호화 키를 자신의 것으로 변경하고 키로 메시지를 암호화합니다. 1111_D, 그리고 John에게 메시지를 보냅니다.
앨리스: John, 문제가 있고 급하게 돈이 필요합니다. $300를 제 계좌 Z67890으로 이체하십시오. 고맙습니다. 추신. 내 키: 6666_A

메시지를 받은 후 John은 키를 사용하여 암호를 해독합니다. 1111_D, 그리고 의심의 여지 없이 계좌로 돈을 이체할 것입니다. Z67890...

그래서 Mr. X는 메시지 가로채기(man-in-the-middle) 공격을 사용하여 300달러를 벌었지만 이제 Alice는 돈을 받지 못했다고 설명해야 합니다... 그리고 John은? 존은 앨리스에게 자신이 보냈다는 것을 증명해야 합니다...

구현:

네트워크 수신을 위해 일부 소프트웨어 제품에서 유사한 유형의 공격이 사용됩니다. 예를 들면 다음과 같습니다.
NetStumbler- 무선 네트워크에 대한 많은 유용한 데이터를 수집하고 작동과 관련된 몇 가지 문제를 해결할 수 있는 프로그램입니다. NetStumbler를 사용하면 네트워크 범위를 결정하고 장거리 통신을 위해 안테나를 정확하게 지시할 수 있습니다. 발견된 각 액세스 포인트에 대해 MAC 주소, 신호 대 잡음비, 서비스 이름 및 보안 정도를 확인할 수 있습니다. 트래픽이 암호화되지 않은 경우 승인되지 않은 연결을 감지하는 프로그램의 기능이 유용할 것입니다.

dsniff- 네트워크 감사 및 침투 검사를 위한 프로그램 세트로, 관심 데이터(비밀번호, 이메일 주소, 파일 등) 검색을 위한 수동 네트워크 모니터링 제공, 분석을 위해 일반적으로 액세스할 수 없는 네트워크 트래픽 가로채기(예: , 교환 네트워크에서) PKI 결함을 악용하여 SSH 및 HTTPS 세션을 가로채기 위해 MITM 공격을 구성할 가능성도 있습니다.

가인과 아벨- 분실한 비밀번호를 복구할 수 있는 무료 프로그램 운영체제윈도우 패밀리. 무차별 대입 무차별 대입 공격, 사전 검색, 별표로 숨겨진 암호 보기 등 여러 복구 모드가 지원됩니다. 정보 패킷 및 후속 분석을 가로채고 네트워크 대화 기록, 캐시 분석 등을 통해 암호를 감지하는 옵션도 있습니다.

에터캡- 로컬 이더넷 네트워크용 스니퍼, 패킷 인터셉터 및 레지스트라로, 많은 프로토콜의 능동 및 수동 분석을 지원하고 기존 연결에 자체 데이터를 "투입"하고 연결 동기화를 방해하지 않고 "즉시" 필터링합니다. 이 프로그램은 SSH1, HTTPS 및 기타 보안 프로토콜을 가로채고 다음 프로토콜에 대한 암호를 해독하는 기능을 제공합니다. TELNET, ftp, POP, RLOGIN, SSH1, icq, SMB, Mysql, HTTP, NNTP, X11, NAPSTER, IRC , RIP, BGP, SOCKS 5, IMAP 4, VNC, LDAP, NFS, SNMP, HALF LIFE, QUAKE 3, MSN, YMSG.

- 무선 클라이언트의 보안을 평가하기 위한 유틸리티 세트는 802.11 프로브 요청 프레임을 수동적으로 수신하여 클라이언트와 선호하는/신뢰할 수 있는 네트워크를 검색할 수 있는 무선 스니퍼입니다. 그런 다음 요청된 네트워크 중 하나에 대해 가짜 액세스 포인트를 만들어 자동으로 연결할 수 있습니다. 높은 수준의 가짜 서비스는 개인 데이터를 훔치거나 호스트의 클라이언트 측 취약점을 악용하는 데 사용할 수 있습니다.

에어잭- WiFi 해킹 분야의 전문가에 따르면 다음과 같은 일련의 프로그램 최고의 도구다양한 802.11 프레임을 생성합니다. AirJack에는 숨겨진 ESSID를 감지하고 가짜 MAC으로 세션 종료 프레임을 보내고 MitM 공격을 수행하고 수정하도록 설계된 여러 유틸리티가 포함되어 있습니다.

반대:

이러한 유형의 공격을 피하려면 가입자 "A"와 "B"가 신뢰할 수 있는 채널을 사용하여 공개 암호화 키의 디지털 서명을 서로 전송하는 것으로 충분합니다. 그런 다음 암호화 세션에서 키 서명을 비교할 때 데이터가 암호화된 키와 키가 스푸핑되었는지 여부를 설정할 수 있습니다.