假设 Alice、Bob 和 Mallory 都住在一个房子里。
马洛里决定去度假,但在离开之前,她决定和鲍勃和爱丽丝玩一场游戏。她提出两个主张:
- 她在房子里安装了隐藏的摄像头。
- 她可以远程访问摄像机。
马洛里向鲍勃和爱丽丝挑战寻找摄像机,然后离开去度假。
Bob 和 Alice 对整个房子进行了随意的视觉搜索,但没有找到任何摄像头。
根据搜索结果,鲍勃认为马洛里在摄像头问题上撒谎。爱丽丝不相信马洛里在撒谎,所以鲍勃想要证明这一点。
他决定尝试揭穿马洛里的第二个说法。
据他所知,屋内只安装了一台无线路由器。Bob 在他的笔记本电脑上运行了一个命令行。
# iw dev wlan1 scan | grep -B 4 SSID
他多次运行此iw命令并注意到始终发现只有一个 SSID。这是他知道他的路由器使用的 SSID。
然后他试图找到路由器的网关地址。
$ netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.1.254 0.0.0.0 UG 0 0 0 wlan1
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 wlan1
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 wlan1
Bob 的网络知识有限,而他对摄像头的了解更加有限,但他认为,为了远程访问摄像头,Mallory 必须为这些摄像头打开端口。
# nmap -v -A 192.168.1.254 | grep "open port"
Discovered open port 443/tcp on 192.168.1.254
Discovered open port 80/tcp on 192.168.1.254
Discovered open port 49152/tcp on 192.168.1.254
快速谷歌搜索显示端口 80 用于 HTTP,端口 443 用于 HTTPS,但 Bob 不确定端口 49152 用于什么。似乎nmap也不确定该端口的用途:
49152/tcp open unknown
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at http://www.insecure.org/cgi-bin/servicefp-submit.cgi :
SF-Port49152-TCP:V=5.21%I=7%D=3/28%Time=53362E24%P=x86_64-unknown-linux-gnu%r(FourOhFourRequest,5,"\*\xced\0\x03")%r(GetRequest,5,"\*\xced\0\x03")%r(
SF:HTTPOptions,5,"\*\xced\0\x03")%r(RTSPRequest,5,"\*\xced\0\x03")%r(RPCCh
SF:eck,5,"\*\xced\0\x03")%r(DNSVersionBindReq,5,"\*\xced\0\x03")%r(DNSStat
SF:usRequest,5,"\*\xced\0\x03")%r(SSLSessionReq,5,"\*\xced\0\x03")%r(SMBPr
SF:ogNeg,5,"\*\xced\0\x03")%r(X11Probe,5,"\*\xced\0\x03")%r(LDAPBindReq,5,
SF:"\*\xced\0\x03")%r(SIPOptions,5,"\*\xced\0\x03")%r(LANDesk-RC,5,"\*\xce
SF:d\0\x03")%r(TerminalServer,5,"\*\xced\0\x03")%r(NCP,5,"\*\xced\0\x03")%
SF:r(NotesRPC,5,"\*\xced\0\x03")%r(WMSRequest,5,"\*\xced\0\x03")%r(oracle-
SF:tns,5,"\*\xced\0\x03");
问题
Bob 可以做些什么来验证这是否是 Mallory 用于远程访问摄像机的端口?
Bob 还担心没有考虑任何有线互联网连接。他想知道 Mallory 是否有可能聘请了一家安保公司来安装摄像头,而 Mallory 是否可以通过安保公司的网站远程访问这些摄像头。
鲍勃还能做些什么来说服爱丽丝马洛里在她的第二个主张上撒谎?