Known_hosts 파일에서 호스트를 찾을 수 있습니까?

Known_hosts 파일에서 호스트를 찾을 수 있습니까?

Known_hosts 파일에 어떤 호스트가 있는지 확인하고 싶지만 읽을 수 없는 것 같습니다. 읽어도 될까요?

더 구체적으로 말하자면, 여러 이름으로 연결할 수 있는 호스트가 있는데 알려진 호스트 파일에서 어떤 지문이 나올지 알고 싶습니다.

업데이트: 저는 OpenSSH_5.3p1 Debian-3ubuntu7, OpenSSL 0.9.8k를 사용하고 있습니다. 2009년 3월 25일

내 Known_hosts 파일의 한 줄은 다음과 같습니다.

|1|guO7PbLLb5FWIpxNZHF03ESTTKg=|r002DA8L2JUYRVykUh7jcVUHeYE= ssh-rsa AAAAB3NzaC1yc2EAAFADAQABAAABAQDWp73ulfigmbbzif051okmDMh5yZt/DlZnsx3DEOYHu3Nu/+THJnUAfkfEc1XkOFiFgbUyK/08Ty0K6ExUaffb1ERfXXyyp63rpCTHOPonSrnK7adl7YoPDd4BcIUZd1Dk7HtuShMmuk4l83X623cr9exbfm+DRaeyFNMFSEkMzztBYIkhpA2DWlDkd90OfVAvyoOrJPxztmIZR82qu/5t2z58sJ6Jm2xdp2ckySgXulq6S4k+hnnGuz2p1klviYCWGJMZfyAB+V+MTjGGD/cj0SkL5v/sa/Fie1zcv1SLs466x3H0kMllz6gAk0/FMi7eULspwnIp65g45qUAL3Oj

답변1

호스트 이름이 일반 텍스트로 제공되지 않도록 파일에서 " " HashKnownHosts로 설정했습니다 .yesssh_config

찾고 있는 호스트 이름을 미리 알고 있는 경우 다음을 사용하여 검색할 수 있습니다.

ssh-keygen -H -F hostname
# Or, if SSH runs on port other than 22. Use literal brackets [].
ssh-keygen -H -F '[hostname]:2222'

관련 부분입니다ssh-keygen(1)매뉴얼 페이지:

-F CPU 이름

지정된 호스트 이름에 대한 파일을 검색하여 known_hosts발견된 일치 항목을 나열합니다. 이 옵션은 해시된 호스트 이름이나 주소를 찾는 데 유용하며, -H발견된 키를 해시 형식으로 인쇄하는 옵션과 함께 사용할 수도 있습니다.

답변2

미래의 검색자를 위해 이 기사(면책 조항 없음: 저는 소속이 없습니다)에는 무차별 대입 크래킹을 위한 상대적으로 간단한 Perl 스크립트가 있습니다 known_hosts.

http://blog.rootshell.be/2010/11/03/bruteforcing-ssh-known_hosts-files/

특정 IP 주소에서 시작할 수 있습니다. 사전을 사용하도록 쉽게 수정할 수도 있습니다.

또한 2014년 6월에는 존 더 리퍼 프로젝트(John the Ripper Project)가 시작되었습니다.Known_hosts 크랙에 대한 지원이 추가되었습니다., 여러 CPU 코어, GPU, 사전 수정 등을 활용할 수 있습니다.

전반적으로 이는 보다 예측 가능한(또는 적어도 제한된) 대상 공간을 사용하는 비밀번호 크래킹과 유사한 연습입니다.

개인 IP의 경우 이 nmap 조각을 사용하여 사전으로 사용할 모든 RFC1918 IP 주소 사전을 생성할 수 있습니다.

nmap -sL -Pn -n 192.168.0.0/16 172.16.0.0/12 10.0.0.0/8 |\
    grep '^Nmap scan report for' | cut -d\  -f5 >ips.list

공용 IP가 포함되어 있으면 규칙을 사용하는 것이 더 효율적일 수 있습니다.이 해시캣 규칙 세트JtR 작업에 적응하려면 추가 작업이 필요할 수 있지만 대부분의 어려운 작업을 수행하고 시작점을 제공해야 합니다.

호스트 이름은 사용자 및 환경에 따라 더 구체적이지만 호스트 이름 지정에도 추세가 있습니다. 정규화된 호스트 이름은 DNS, /etc/hosts, 셸 기록 등에서 검색된 모든 IP 주소와 연결될 수 있습니다. 대상 시스템은 호스트 시스템과 완전히 관련이 없을 수 있으므로 Censys와 같은 다양한 인터넷 전체 검색 작업의 DNS 데이터에서 공개 도메인 및 호스트 이름의 공개 덤프를 얻을 수 있습니다.

가장 단순한 경우를 제외한 모든 경우에 John the Ripper를 사용하는 것이 허용되는 답변에서 기본 SSH 솔루션보다 더 효율적이고 확장 가능합니다.

답변3

도움 이 되었나요 ssh-keygen -l -f ~/.ssh/known_hosts? 파일에 있는 각 호스트의 지문을 표시합니다. (이것을 사용하면 -v멋진 작은 보물 지도를 얻을 수도 있습니다.

+--[ RSA 2048]----+
|        .        |
|       + .       |
|      . B .      |
|     o * +       |
|    X * S        |
|   + O o . .     |
|    .   E . o    |
|       . . o     |
|        . .      |
+-----------------+

답변4

각 "known_hosts" 줄의 시작 부분("ssh-dss" 또는 "ssh-rsa" 문자열 앞)에 호스트 문자열/ip가 있습니다.

hostgn6 ssh-dss AAAB3NzaC1kc3MAAACBAIfGV4+/28Zr+dT/i+ifydUBS0dMRUjCtExIThOj3Yexynu+wSRGjMm4GfF+og2kAljZyUjhBFeM+WYbJzcDSDB [...] ==
yumyumn6.dik6.dir2g.some.net ssh-dss AAAAB3NzaC1kc3MAAACBAIfGV4+/28Zr+dT/i+ifydUBS0dMRUjCtExITh [...] ==

관련 정보