티스토리 뷰

반응형






칼리리눅스를 배우기 시작하고 가장먼저 해보고 싶었던 내용은 공유기 해킹이였습니다. 공유기를 탈취해서 공유기를 통해 전달되는 패킷들을 확인하여 중요사이트의 계정정보를 탈취 등을 해보는 것이였죠. 해킹을 배우기 시작한지 오래되지 않아 다양한 케이스가 생각이 나지 않네요. 그래서 막연하게 이것저것 검색해보면서 다양한 시도를 해보았으나 역시 기초가 부족해 생각처럼 쉽게 되지는 않더라구요.


그러다 ARP Spoofing을 이용해서 간단히 사용자가 사용하는 계정정보를 탈취해보았습니다. 구글링을 해보니 칼리리눅스를 이용해 ARP Spoofing을 하는 내용은 상당히 많더라구요. 저도 다들 하는 방법을 이용해 보았는데... 문제는 Spoofing까지는 성공했는데 그 이후를 하지 못하겠습니다.ㅋㅋ 다시한번 기초의 부족함을 느낄 수 있는 대목이였죠.


아무튼 ARP Spooing은 아래와 같이 진행됩니다. 게이트웨이(공유기)와 피해자(사용자) 사이에 IP에 해당하는 MAC 주소를 제가 사용하는 Kali의 MAC로 변경하여 중간자 공격을 하는 것입니다. 패킷이 칼리에 지나갈 때 어떻게 하느냐에 따라 다양한 공격이 가능할 것으로 예상되지만 저는 와이어샤크를 통해 실제 패킷을 확인해 보았습니다.

실제로 패킷을 확인해보니 앞으로 대응방안도 많은 부분 생각이 들었습니다.


우선 사용자의 IP와 게이트웨이를 확인합니다. 이때 ARP 테이블을 확인했을 때 게이트웨이의 MAC 주소를 확인할 수 있습니다.




이제 칼리에서 arpspoof 툴을 이용하여 사용자 => 게이트웨이 방향의 MAC 주소와 반대 방향의 MAC 주소를 칼리의 MAC주소로 변경되도록 해줍니다. 이제 사용자가 보내는 패킷과 사용자에게 보내지는 패킷을 모두 저에게 오도록 만들어 주었습니다.


# arpspoof -i [인터페이스] -t [Source IP] [Destination IP]





다음은 중간에 탈취한 패킷을 본래 가야할 곳으로 다시 보내주기 위해 fagrouter 툴을 사용하여 패킷을 포워딩해줘 사용자가 정상적으로 통신이 가능하도록 만들어줘야 합니다.




마지막으로 스니핑을 통해 중요정보를 탈취할 수가 있습니다. 이때는 dsniff 툴을 사용하면 됩니다. 여러 페이지를 찾아보니 여기서 SSH나 TELNET 등 다양한 패킷의 중요정보를 탈취할 수가 있다고 하는데 저는 잘 되지 않네요. 나중에 이 부분도 공부를 해보아야 겠습니다.




사용자의 ARP 테이블을 다시 확인해보니 게이트웨이의 MAC주소가 변경된 것을 확인할 수 있습니다.





그럼 이제 ARP Spoofing을 통해 중간자 공격을 진행해보겠습니다. 여기서 일단 어떻게 해야 뭔가 의미있는 정보를 탈취할 수가 있을까 고민해보았습니다. 딱히 아이디어가 떠오르지 않았지만, 패킷을 주고 받는 것이니까 와이어샤크를 통해 어떤 데이터들이 주고받는지 확인할 수 있지 않을까 싶어 실행해 보았습니다.






다음으로 사용자가 어떤 서비스에 로그인을 시도해 보았습니다. 제가 최근까지 궁금했던 내용으로 과연 와이파이를 연결해서 네트워크를 사용할 때 SSL을 적용하면 공유기에서 정보가 암호화가 될것인가 아닌가를 정확히 확인해볼 수 있었습니다.




몇몇 서비스의 로그인 페이지에서 로그인 패킷을 전달해보니, SSL이 적용된 페이지는 패킷이 암호화 되어 복호화를 하지 않는 이상 정보를 확인할 수 없었습니만, SSL을 적용하지 않은 경우에는 평문으로 계정정보를 확인할 수 있었습니다. SSL을 적용하면 공유기에서 외부로 나가는 구간에서만 암호화가 된다고 생각했는데 그게 아니였네요. 사용자 브라우저를 떠나는 순간부터 암호화가 적용되는 것 같습니다.




이렇게 예전부터 궁금했었던 중간자 공격을 하는 알게 되어 나름 기쁜 하루였네요. 게다가 항상 궁금했던 HTTPS 통신 시 암호화 되는 시기도 어느정도 알 수 있게 되었습니다. 항상 고민되었던 부분이 과연 '로그인 등 중요정보를 전송해야 할 경우 HTTPS 통신만 적용하면 안전한가'에 대한 부분이였거든요. 확실한 것은 아니지만 브라우저 해킹이 된다면 통신 암호화가 적용되기 전에 평문으로 탈취가 되지 않을까 싶기도 하지만요. 어째든 일반적인 경우라면 HTTPS 통신만으로 어느정도 안전할 것 같다는 결론입니다.


이번에 공부를 진행하면서 중요정보는 반드시 데이터 암호화 또는 HTTPS 통신(TLS 1.2 이상)을 통해 전달해야 한다는 것을 다시한번 알게 되었고, 현재 시나리오의 경우 공격자가 같은 망에 있다는 전제하에 작성된 시나리오인데, 사실 대체로 일반인들은 공유기의 보안을 신경쓰지 않는 사람이 대다수이기 때문에 너무나 쉽게 같은 망에 접속할 수 있을 것이라 생각합니다. 때문에 자신이 관리하는 공유기에 대해 보안을 철저히 지켜야 할 것 같네요.



서비스 보안

01. 중요정보/계정정보/민감정보 등을 네트워크 상으로 전달할 경우 반드시 암호화를 적용한다.

02. 암호화는 데이터 암호화를 하거나 네트워크 구간 암호화를 적용한다.

03. 네트워크 암호화를 적용할 경우 TLS 1.2 이상을 사용한다.


공유기 보안

01. 기본 암호를 사용하지 않고 자신만의 복잡한 암호를 사용한다. (대/소문자, 영문, 숫자 조합한 최소 8자리 이상)

02. 네트워크ID(SSID)를 브로드캐스트 하지 않는다.

03. 무선 네트워크의 경우 등록된 MAC 주소의 장비만 네트워크 접속을 허용한다.

04. 네트워크 암호는 최소한 WPA2 방식을 사용한다.


사용자 보안

01. 공개된 무선 네트워크는 되도록 사용하지 않는다.

02. 공개된 무선 네트워크를 사용할 경우, 단순 검색 등의 중요정보가 전달되지 않는 서비스 이용으로 제한한다.





Fin





반응형
댓글
반응형
최근에 올라온 글
Total
Today
Yesterday