Skip to content

Commit

Permalink
Packet transmit wip.
Browse files Browse the repository at this point in the history
  • Loading branch information
Lucas Nicosia committed Dec 7, 2022
1 parent 2be6f03 commit 6719236
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 16 deletions.
1 change: 1 addition & 0 deletions headers/malcolm.h
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,7 @@ typedef struct s_data

int sockfd;
char *interface;
uint8_t if_ip[4];

uint32_t frequency; /* In seconds */
uint32_t duration; /* In seconds */
Expand Down
37 changes: 21 additions & 16 deletions sources/analysis.c
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ static int transmit_packet(struct iphdr *ip, ssize_t size)
{
int l3fd;
int one;
struct sockaddr_in dst_addr;
struct sockaddr_in save_daddr, save_saddr;
socklen_t addr_len = sizeof(struct sockaddr);

l3fd = socket(AF_INET, SOCK_RAW, ip->protocol);
Expand All @@ -150,26 +150,29 @@ static int transmit_packet(struct iphdr *ip, ssize_t size)
return 1;
}

ft_bzero(&dst_addr, sizeof(dst_addr));
dst_addr.sin_family = AF_INET;
ft_memcpy(&dst_addr.sin_addr, &ip->daddr, sizeof(ip->daddr));
ft_bzero(&save_saddr, sizeof(save_saddr));
ft_bzero(&save_daddr, sizeof(save_daddr));
save_saddr.sin_family = AF_INET;
save_daddr.sin_family = AF_INET;
ft_memcpy(&save_saddr.sin_addr, &ip->saddr, sizeof(ip->saddr));
ft_memcpy(&save_daddr.sin_addr, &ip->daddr, sizeof(ip->daddr));

ip->saddr = inet_addr("172.17.0.2");
ft_memcpy(&ip->saddr, &g_data.if_ip, sizeof(g_data.if_ip));

printf("[*] Transmitting packet\n");
if (sendto(l3fd, ip, size, 0, (struct sockaddr*)&dst_addr, addr_len) < 0) {
if (sendto(l3fd, ip, size, 0, (struct sockaddr*)&save_daddr, addr_len) < 0) {
fprintf(stderr, "[!] Failed to transmit packet\n");
close(l3fd);
return 1;
}

ssize_t ret = 0;
struct sockaddr_in src_addr;
struct sockaddr_in recv_addr;
int len = 65535;
char buffer[len];
while (g_data.loop) {
ret = recvfrom(l3fd, buffer, len, MSG_DONTWAIT,
(struct sockaddr *)&src_addr, &addr_len);
(struct sockaddr *)&recv_addr, &addr_len);
if (ret > 0) {
struct iphdr *newip = (struct iphdr*)buffer;
dprintf(STDOUT_FILENO, "Received from ");
Expand All @@ -178,20 +181,23 @@ static int transmit_packet(struct iphdr *ip, ssize_t size)
print_ip(STDOUT_FILENO, (uint8_t*)&newip->daddr);
dprintf(STDOUT_FILENO, "\n");

ft_bzero(&dst_addr, sizeof(dst_addr));
dst_addr.sin_family = AF_INET;
//ft_bzero(&dst_addr, sizeof(dst_addr));
//dst_addr.sin_family = AF_INET;

newip->daddr = inet_addr("172.17.0.3");
newip->saddr = inet_addr("8.8.8.8");
//newip->daddr = inet_addr("172.17.0.3");
ft_memcpy(&newip->daddr, &save_saddr.sin_addr, sizeof(ip->saddr));
//newip->saddr = inet_addr("8.8.8.8");
ft_memcpy(&newip->saddr, &save_daddr.sin_addr, sizeof(ip->daddr));

ft_memcpy(&dst_addr.sin_addr, &newip->daddr, sizeof(newip->daddr));
ft_memcpy(&save_saddr.sin_addr, &newip->daddr, sizeof(newip->daddr));

printf("[*] Transmitting packet\n");
if (sendto(l3fd, newip, ret, 0, (struct sockaddr*)&dst_addr, addr_len) < 0) {
if (sendto(l3fd, newip, ret, 0, (struct sockaddr*)&save_saddr, addr_len) < 0) {
fprintf(stderr, "[!] Failed to transmit packet\n");
close(l3fd);
return 1;
}
//exit(0);

ft_bzero(buffer, len);
break;
Expand Down Expand Up @@ -248,10 +254,9 @@ static int sniff_traffic(void *osef)
//else if (ip->protocol == IPPROTO_UDP)
// print_udp(layer4, ip);
(void)print_udp;
transmit_packet(ip, ret - sizeof(struct ethernet_hdr));
}

transmit_packet(ip, ret - sizeof(struct ethernet_hdr));

}
ft_bzero(buffer, len);
}
Expand Down
1 change: 1 addition & 0 deletions sources/proxy.c
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,7 @@ int ft_proxy(uint8_t *source_ip, uint8_t *target_ip)
return 1;
if (interface_ip(g_data.interface, if_ip) < 0)
return 1;
ft_memcpy(g_data.if_ip, if_ip, IP_ADDR_LEN);
if (g_data.opt & OPT_BROADCAST) {
uint8_t brdcst[ETH_ADDR_LEN] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
if (interface_brdcst(g_data.interface, if_brdcst) < 0)
Expand Down

0 comments on commit 6719236

Please sign in to comment.